anchor.diff:  sourceElement
    : statement
    | functionDeclaration
  + | importDeclaration
  + | exportDeclaration
  + | lexicalDeclaration
  + | classDeclaration
    ;
   
   /// Statement :
  
positive.code:   : '...' Identifier
  ;
  
  importStatement
   : 'import' importClause fromClause ';'?
   | 'import' StringLiteral ';'?
  ;
  
  
  
negative.code:   | Identifier 'as' Identifier
  ;
  
  exportDeclaration
    : Export '*' fromClause ';'?
    | Export namedImports fromClause? ';'?
    | Export variableStatement
    | Export functionDeclaration
    | Export lexicalDeclaration
    | Export Default functionDeclaration
    | Export Default singleExpression ';'?
  ;
  
  classDeclaration
    : Default? Class Identifier? classTail
  ;
  
  classTail
    : heritage? '{' classElement+ '}'
  ;
  
  heritage
    : Extends singleExpression
  ;
  
  classElement
    : Static? methodDefinition
  ;
  
  methodDefinition
    : propertyName '(' formalParameterList ')' '{' functionBody '}'
    | getter propertyName '(' ')' '{' functionBody '}'
    | setter propertyName '(' propertySetParameterList ')' '{' functionBody '}'
    | '*' propertyName '(' formalParameterList ')' '{' functionBody '}'
  ;
  
  /// Block :
  