anchor.diff:  		Block sblock = null;
   		Block eblock = null;
   	}:
  -	t:TRY! { s = new TryStatement(ToLexicalInfo(t)); }
  +	t:TRY { s = new TryStatement(ToLexicalInfo(t)); }
   		compound_stmt[s.ProtectedBlock.Statements]
   	(
   		exception_handler[s]
   	)*
   	(
  -		stoken:SUCCESS! { sblock = new Block(ToLexicalInfo(stoken)); }
  +		stoken:SUCCESS { sblock = new Block(ToLexicalInfo(stoken)); }
   			compound_stmt[sblock.Statements]
   		{ s.SuccessBlock = sblock; }
   	)?
   	(
  -		etoken:ENSURE! { eblock = new Block(ToLexicalInfo(etoken)); }
  +		etoken:ENSURE { eblock = new Block(ToLexicalInfo(etoken)); }
   			compound_stmt[eblock.Statements]
   		{ s.EnsureBlock = eblock; }
   	)?
  
positive.code: 					lle.Items.Add(item);
  				}
  				(
  					COMMA! item=expression { lle.Items.Add(item); }
  				)*
  			)
  		)
  		|
  		{ e = new ListLiteralExpression(ToLexicalInfo(lbrack)); }
  	)
  	RBRACK!
  	;
  		
  protected
  
negative.code: 		ArrayLiteralExpression tle = null;
  		e = null;
  	}:
  	t:LPAREN
  	e=expression
  	(
  		COMMA
  		{
  			tle = new ArrayLiteralExpression(ToLexicalInfo(t));
  			tle.Items.Add(e);
  