Skip to content
Snippets Groups Projects
Select Git revision
  • c1ed9884d2adcbac4bb9c22732f5f203039fe27e
  • master default
  • multipleinheritance
3 results

RdfsRange.html

Blame
  • TypeCheck.jrag NaN GiB
    aspect TypeCheck {
      public void ASTNode.typeCheck() {
          // calls to the different type checks to be performed
          nullTypeCheck();
      }
    
    // void is not allowed as a field in a struct or an array element
      
      syn boolean Type.isNull();
      eq Type.isNull() = false;
      eq VoidType.isNull() = true;
      eq UserType.isNull() = decl().isNull();
    
      syn boolean TypeDecl.isNull();
      eq TypeDecl.isNull() = getType().isNull();
      
      public void ASTNode.nullTypeCheck() {}
     
      public void Field.nullTypeCheck() {
        if(getType().isNull()) {
          error("field " + getName() + " of struct "+ declName()+ " may not be of type void");
        }
      }
    
      public void ParseArrayType.nullTypeCheck() {
        if(getType().isNull()) {
          error("elements of array "+declName()+" may not be of type void");
        }
      }
    
      public void ArrayType.nullTypeCheck() {
        if(getType().isNull()) {
          error("elements of array "+declName()+" may not be of type void");
        }
      }
    }