anchor.diff:  stopStmt : STOP;
   
   subStmt : 
  -	(visibility WS)? (STATIC WS)? SUB WS? ambiguousIdentifier (WS? argList)? NEWLINE+ 
  -	(block NEWLINE+)? 
  +	(visibility WS)? (STATIC WS)? SUB WS? ambiguousIdentifier (WS? argList)? endOfStatement
  +	block? 
   	END_SUB
   ;
   
   timeStmt : TIME WS? EQ WS? valueStmt;
   
   typeStmt : 
  -	(visibility WS)? TYPE WS ambiguousIdentifier NEWLINE+ 
  -	(typeStmt_Element)*
  +	(visibility WS)? TYPE WS ambiguousIdentifier endOfStatement
  +	typeStmt_Element*
   	END_TYPE
   ;
   
  -typeStmt_Element : ambiguousIdentifier (WS? LPAREN (WS? subscripts)? WS? RPAREN)? (WS asTypeClause)? NEWLINE+;
  +typeStmt_Element : ambiguousIdentifier (WS? LPAREN (WS? subscripts)? WS? RPAREN)? (WS asTypeClause)? endOfStatement;
   
   typeOfStmt : TYPEOF WS valueStmt (WS IS WS type)?;
   
  
positive.code: 
  nameStmt : NAME WS valueStmt WS AS WS valueStmt;
  
  onErrorStmt : ON_ERROR | ON_LOCAL_ERROR WS (GOTO WS valueStmt | RESUME WS NEXT);
  
  onGoToStmt : ON WS valueStmt WS GOTO WS valueStmt (WS? ',' WS? valueStmt)*;
  
  
negative.code: filecopyStmt : FILECOPY WS valueStmt WS? ',' WS? valueStmt;
  
  forEachStmt : 
  	FOR WS EACH WS ambiguousIdentifier typeHint? WS IN WS valueStmt endOfStatement
  	block?
  	NEXT (WS ambiguousIdentifier)?
  ;
  
  forNextStmt : 
  	FOR WS ambiguousIdentifier typeHint? (WS asTypeClause)? WS? EQ WS? valueStmt WS TO WS valueStmt (WS STEP WS valueStmt)? endOfStatement 
  	block?
  	NEXT (WS ambiguousIdentifier)?
  ; 
  
  functionStmt :
  	(visibility WS)? (STATIC WS)? FUNCTION WS? ambiguousIdentifier typeHint? (WS? argList)? (WS? asTypeClause)? endOfStatement
  	block?
  	END_FUNCTION
  ;
  
  