anchor.diff:      ;
   
   literal
  -    : STRING # str
  -    | NUMBER # nbr
  -    | CHARACTER #char
  -    | NIL #nil
  -    | BOOLEAN #bool
  -    | KEYWORD #keyw
  -    | SYMBOL #sym
  -    | PARAM_NAME #parm
  +    : STRING
  +    | NUMBER
  +    | CHARACTER
  +    | NIL
  +    | BOOLEAN
  +    | KEYWORD
  +    | SYMBOL
  +    | PARAM_NAME
       ;
   
   STRING : '"' ( ~'"' | '\\' '"' )* '"' ;
  
positive.code:     | '#\'' SYMBOL // TJP added (get Var object instead of the value of a symbol)
      ;
  
  let_form: '(' let binding body ')';
  
  let: 'let' ;
  
  binding: '[' form* ']' ;
  
  body: form*;
  
  /* list: '(' form* ')' ; */
  list: '(' form* ')' ;
  
  kw: 'defn' | 'def' | 'do' ; // etc.
  
  vector: '[' form* ']' ;
  
  
negative.code: 
  grammar Clojure;
  
  file: list*;
  
  form: literal
      | list
      | vector
      | map
  