anchor.diff:  }
   		:	(aliasStatement
   			|	undefStatement
  -			|	keyword_BEGIN 	LCURLY_BLOCK (compoundStatement)? RCURLY	{if (is_in_method_defination>0) {throw new RecognitionException("BEGIN in method");}}
  -			|	keyword_END 	LCURLY_BLOCK (compoundStatement)? RCURLY		{if (is_in_method_defination>0) {throw new RecognitionException("END in method");}}
  +			|	keyword_BEGIN 	LCURLY_BLOCK (compoundStatement)? RCURLY	{if (is_in_method_definition>0) {throw new RecognitionException("BEGIN in method");}}
  +			|	keyword_END 	LCURLY_BLOCK (compoundStatement)? RCURLY		{if (is_in_method_definition>0) {throw new RecognitionException("END in method");}}
   			|	expression
   				(options{greedy=true;}:
   					COMMA!
  
positive.code: {
  	boolean seen_line_feed = false;
  }
  		:	';'	(options{greedy=true;}:(WHITE_SPACE_CAHR!	|	LINE_FEED!{seen_line_feed = true;}	|	';'!))*
  			{
  				if (lastTokenIsSemi())
  				{
  
negative.code: //of letters, digits, and underscores
  IDENTIFIER
  options{testLiterals=true;}
  		:	{getColumn() == 1}?	"__END__"	((WHITE_SPACE_CHAR)*	LINE_BREAK	(.)*	{$setType(Token.EOF_TYPE);})?
  		|	('a'..'z'|'_') ('a'..'z'|'A'..'Z'|'_'|'0'..'9')*		(	{if (lastTokenIsDotOrColon2()) {$setType(FUNCTION);}}
  												|'?'	{$setType(FUNCTION);}	//PREDICATE_FUNCTION
  												|'!'	{$setType(FUNCTION);}	//DESTRUCTIVE_FUNCTION
  