anchor.diff:    | breakStatement
     | returnStatement
     | throwStatement
  +  | emitStatement
     | simpleStatement ;
   
   expressionStatement
  
positive.code:   : '{' nameValueList? '}'
    | expressionList? ;
  
  assemblyBlock
    : '{' assemblyItem* '}' ;
  
  
negative.code: throwStatement
    : 'throw' ';' ;
  
  emitStatement
    : 'emit' functionCall ';' ;
  
  variableDeclarationStatement
    : ( 'var' identifierList | variableDeclaration | '(' variableDeclarationList ')' ) ( '=' expression )? ';';
  
  variableDeclarationList
    : variableDeclaration? (',' variableDeclaration? )* ;
  
  identifierList
    : '(' ( identifier? ',' )* identifier? ')' ;
  