anchor.diff:  			$type = TypeSymbol.toGeneric($Identifier, $types);
   		}
   	;
  +
   paramTypes returns [TypeSymbol[] types] locals [ParserUtils.ParamTypeResolver resolver]
   	: ',' '[' a+=typeName (',' a+=typeName)* ']'
   		{
  
positive.code: 			}
  		}
  	;
  classElement returns [Node node]
  	: fieldDeclaration {$node = $fieldDeclaration.node;}
  	| functionDeclaration {$node = $functionDeclaration.node;}
  	| constructorDeclaration {$node = $constructorDeclaration.node;}
  	;
  fieldDeclaration returns [Node node]
  	: variableDeclaration
  	;
  constructorDeclaration returns [Node node]
  	: Constructor '(' argumentsDeclaration ')' block
  		{$node = new Node.ConstructorNode($Constructor, $argumentsDeclaration.decl, $block.node);}
  	;
  statement returns [Node node]
  	: assertStatement statementEnd {$node = $assertStatement.node;}
  	| emptyStatement {$node = $emptyStatement.node;}
  
negative.code: 			}
  		}
  	;
  
  importCommandEnd
  	: EOF
  	| ';'
  