anchor.diff:            //TODO: error!
           } }
       ;       
  -             
  +
  +fragment
  +LIdentifierPrefix
  +    : '$'
  +    ;
  +
  +fragment
  +UIdentifierPrefix
  +    : '$$'
  +    ;
  +    
   fragment 
   IdentifierPart
       :   '_'
  
positive.code:     ;
  
  fragment
  LIDENTIFIER :;
  fragment
  PIDENTIFIER :;
  fragment
  
negative.code:     :   IdentifierStart IdentifierPart*
          { int cp = $text.codePointAt(0);
            if (cp=='_' || Character.isLowerCase(cp)) $type=LIDENTIFIER; }
      |   UIdentifierPrefix name=IdentifierPart+
          { $text = $name; /* FIXME this is unlikely to work */ }
      ;
  
  fragment
  