anchor.diff:  	|	forStatement
   	;
   
  -topExpr
  +exprList
   	:	expr ( ',' expr)* ','?
  -	|	'(' topExpr ')'
   	;
   
   expr
  -	:	expr '->' expr											#composeExpr
  +	:	'(' exprList ')'											#groupExpr
  +	|	expr '->' expr											#composeExpr
   	|	expr '(' expr? ')'										#executeExpr
   	|	expr '<' expr '>'										#argExpr
   	|	sign=( PLUS | MINUS ) expr						#unarySignExpr
  
positive.code: 
  assignBlock
  	:	nameRef blockStatements
  	|	topExpr ':' blockStatements
  	;
  
  block
  
negative.code: 	;
  
  ifStatement
  	:	'if' exprList doableBlock ( 'else' 'if' exprList doableBlock )* ( 'else' doableBlock )?
  	;
  
  doStatement
  	:	'do' ( Label )? block ( 'then' block )?
  	|	'do' 'if' exprList ( Label )? block ( 'then' block )?
  	;
  
  forStatement
  	:	'for' exprList ( Label )? block ( 'then' block )?
  	|	'for' exprList 'if' exprList ( Label )? block ( 'then' block )?
  	;
  
  tryStatement
  	:	'try' doableBlock ( 'catch' 'if' exprList doableBlock )* ( 'catch' doableBlock )?
  	;
  
  withStatement
  