anchor.diff:  	| basicStatement
       ;
   
  +doLoopWhileStatement
  +    :   doWhileUntilLoop
  +    |   doLoopWhileUntil
  +    ;
  +
  +doWhileUntilLoop
  +    :   'DO' ('UNTIL' | 'WHILE') expression delimiter statement* delimiter 'LOOP' delimiter
  +    ;
  +
  +doLoopWhileUntil
  +    :   'DO' delimiter statement* delimiter 'LOOP' ('WHILE' | 'UNTIL') expression delimiter
  +    ;
  +
  +tryCatchStatement
  +    : tryStatement catchStatement*? finallyStatement? endTryStatement
  +    ;
  +
  +tryStatement 
  +    : 'TRY' delimiter statement* delimiter
  +    ;
  +
  +catchStatement
  +    : 'CATCH' '(' variableDeclaration ')' delimiter statement* delimiter
  +    ;
  +
  +finallyStatement
  +    : 'FINALLY' delimiter statement* delimiter
  +    ;
  +
  +endTryStatement
  +    : 'END' 'TRY' delimiter
  +    ;
  +
   forStatement
   	: forStatementBegin forStatementBody forStatementEnd
   	;
  
positive.code: forStatementBeginToStep
  	: 'STEP' IntegerLiteral
  	;
  
  
  
  ifStatement
  	: 'IF' expression ifStatementThen ifStatementBody+? ifStatementEnd 
  
negative.code:     : expression
  	| ifStatement
  	| callStatement
  	| tryCatchStatement
  	| doLoopWhileStatement
  	| forStatement
  	| returnStatement
  	| destroyStatement
  