anchor.diff:  
   {
   	private int can_be_command_ = 0;
  -	private int is_in_method_defination = 0;
  +	private int is_in_method_definition = 0;
   
   	protected void enterScope()	{assert(false);}
   	protected void enterBlockScope()	{assert(false);}
  
positive.code: //of letters, digits, and underscores
  IDENTIFIER
  options{testLiterals=true;}
  		:	{getColumn() == 1}?	"__END__"	((WHITE_SPACE_CAHR)*	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
  
negative.code: 		;
  
  methodDefinition
  		:	"def"^		{++is_in_method_definition;}
  			(options{greedy=true;}:LINE_BREAK!)?
  			methodName	{enterScope();}
  			methodDefinitionArgument
  			(bodyStatement)?
  			"end"!		{leaveScope();--is_in_method_definition;}
  		;
  
  protected
  