anchor.diff:      :
           commandArguments[head]
           {
  -        	prev = astFactory.dupTree((AST)returnAST);
  -        	//prev = #(create(LPAREN,"(",prev),prev);
  +            prev = astFactory.dupTree((AST)returnAST);
  +            //prev = #(create(LPAREN,"(",prev),prev);
           }
           (
  -        	(COMMA! nls!|)
  +            (COMMA! nls!|)
   
               current : expression[LC_STMT]
  -			{
  -         		AST chain = #(create(DOT,".",#prev),#prev, #current);
  -         		commandArguments(chain);
  -         		AST chained =astFactory.dupTree((AST)returnAST);
  -         		prev = chained;
  -            }
  -		)*
  -		{ #commandArgumentsGreedy = prev; } ;
  +            {
  +                 AST chain = #(create(DOT,".",#prev),#prev, #current);
  +                 commandArguments(chain);
  +                 AST chained =astFactory.dupTree((AST)returnAST);
  +                 prev = chained;
  +            }
  +        )*
  +        { #commandArgumentsGreedy = prev; } ;
   
   commandArgument
       :
  
positive.code:             {isPathExpr}?
              cmd:commandArgumentsGreedy[#head]!
              {
              	#expressionStatement = #cmd;
              }
          )?
          {#expressionStatement = #(create(EXPR,"EXPR",first,LT(1)),#expressionStatement);}
  
negative.code:         // Checks are now out of the way; here's the real rule:
          head:expression[LC_STMT]
          {   isPathExpr = (#head == lastPathExpression);
               //System.out.println("#head: " + #head.toStringTree());
               //System.out.println("#latsPath " + #lastPathExpression.toStringTree());
  
            }
          (
  