anchor.diff:  	;
   
   formalParameterList
  -	:	formalParameter (',' formalParameter)*
  +	:	formalParameter (COMMA formalParameter)*
   	;
   
   formalParameters
  -	:	'(' formalParameterList? ')'
  +	:	LPAREN formalParameterList? RPAREN
   	;
   
   // statements
   statement
   	:	block
  -	|	'if' parExpression statement ('else' statement)?
  -	|	'for' '(' forControl ')' statement
  -	|	'while' parExpression statement
  -	|	'break;'
  -	|	'continue;'
  -	|	';'
  -	|	statementExpression ';'
  -	|	attachEmitterStatement ';'
  -	|	fireStatement ';'
  -	|	waitStatement ';'
  +	|	IF parExpression statement (ELSE statement)?
  +	|	FOR LPAREN forControl RPAREN statement
  +	|	WHILE parExpression statement
  +	|	BREAK SEMI
  +	|	CONTINUE SEMI
  +	|	SEMI
  +	|	statementExpression SEMI
  +	|	attachEmitterStatement SEMI
  +	|	fireStatement SEMI
  +	|	waitStatement SEMI
   	;
   
   attachEmitterStatement
  -	:	Identifier 'attach' Identifier parExpressionList withUpdaterOption?
  +	:	Identifier ATTACH Identifier parExpressionList withUpdaterOption?
   	;
   
   fireStatement
  -	:	'fire' Identifier parExpressionList fromEmitterOption
  +	:	FIRE Identifier parExpressionList fromEmitterOption
   	;
   
   waitStatement
  -	:	'wait' expression 'frames'
  +	:	WAIT expression FRAMES
   	;
   
   fromEmitterOption
  -	:	'from' Identifier
  +	:	FROM Identifier
   	;
   
   forControl
  -	:	forInit? ';' expression? ';' forUpdate
  +	:	forInit? SEMI expression? SEMI forUpdate
   	;
   
   forInit
  
positive.code: 
  expression
  	:	primary
  	|	expression ('++' | '--')
  	|	('+'|'-'|'++'|'--') expression
  	|	'!' expression
  	|   expression '(' expressionList? ')'
  	|	expression ('*'|'/'|'%') expression
  	|	expression ('+'|'-') expression
  	|	expression ('<=' | '>=' | '>' | '<') expression
  	|	expression ('==' | '!=') expression
  	|	expression '&&' expression
  	|	expression '||' expression
  	|	expression
  		(	'='
  		|	'+='
  		|	'-='
  		|	'*='
  		|	'/='
  		|	'%='
  		)
  		expression
  	|	'create' 'emitter' parExpressionList withUpdaterOption?
  	|	'build' Identifier
  	;
  
  withUpdaterOption
  	:	'with' 'updater' methodExpression
  	;
  
  primary
  	:	'(' expression ')'
  	|	literal
  	|	Identifier
  	|	ContextIdentifier
  
negative.code: 	;
  
  block
  	:	LBRACE blockStatement* RBRACE
  	;
  
  localVariableDeclarationStatement
  	:	localVariableDeclaration SEMI
  	;
  
  localVariableDeclaration
  