anchor.diff:  	: Int        {$type = TypeToken.toPrimitive($Int);}
   	| Float      {$type = TypeToken.toPrimitive($Float);}
   	| Boolean    {$type = TypeToken.toPrimitive($Boolean);}
  -	| Identifier {$type = TypeToken.toClass($Identifier);}
  +	| identifier {$type = TypeToken.toClass($identifier.token);}
   	| Func openType r=typeNameWithVoid {$type = new TypeToken.FuncTypeToken($Func, $r.type);}
   		(typeSep openParamType a=typeName {((TypeToken.FuncTypeToken)$type).addParamTypeToken($a.type);}
   			( typeSep b=typeName 
   				{((TypeToken.FuncTypeToken)$type).addParamTypeToken($b.type);}
   			)* closeParamType
   		)? closeType
  -	| Identifier openType {$type = new TypeToken.GenericTypeToken($Identifier);} 
  +	| identifier openType {$type = new TypeToken.GenericTypeToken($identifier.token);} 
   		a=typeName {((TypeToken.GenericTypeToken)$type).addElementTypeToken($a.type);}
   			(comma b=typeName
   				{((TypeToken.GenericTypeToken)$type).addElementTypeToken($b.type);}
   			)* closeType
  +	;
  +
  +identifier returns [Token token]
  +	: Identifier  {$token = $Identifier;}
  +	| As          {$token = $As;}
  +	| Catch       {$token = $Catch;}
  +	| Constructor {$token = $Constructor;}
  +	| Do          {$token = $Do;}
  +	| Else        {$token = $Else;}
  +	| Extends     {$token = $Extends;}
  +	| Finally     {$token = $Finally;}
  +	| If          {$token = $If;}
  +	| In          {$token = $In;}
  +	| Is          {$token = $Is;}
  +	| New         {$token = $New;}
  +	| Not         {$token = $Not;}
  +	| While       {$token = $While;}
   	;
   
   typeNameWithVoid returns [TypeToken type]
  
positive.code: 
  andListCommand returns [Node.ExprNode node]
  	: l=commandExpression {$node = $l.node;}
  		(CmdSep? op=AndList r=commandListExpression
  			{$node = new Node.CondOpNode($node, $op, $r.node);}
  		)*
  	;
  
negative.code: 				$node.addRedirOption($b.get(i).option);
  			}
  		}
  	;
  
  trace returns [Token token]
  	: Trace {!hasNewLine()}? {$token = $Trace;}
  	;
  
  commandArg returns [Node.ArgumentNode node]
  