anchor.diff:          | tryExpr
           ;
   
  +patExpr : patExpr200 ('=' patExpr)? ;
  +
  +patExpr200 : patExpr300 (compOp patExpr300)? ;
  +
  +patExpr300 : patExpr400 (listOp patExpr300)? ;
  +
  +patExpr400 : patExpr400 addOp patExpr500
  +           | patExpr500 ;
  +
  +patExpr500 : patExpr500 multOp patExpr600
  +           | patExpr600 ;
  +
  +patExpr600 : prefixOp patExpr600
  +           | patExpr650 ;
  +
  +patExpr650 : mapPatExpr
  +           | patExpr700 ;
  +
  +patExpr700 : recordPatExpr
  +           | patExpr800 ;
  +
  +patExpr800 : patExprMax ;
  +
  +patExprMax : tokVar
  +           | atomic
  +           | list
  +           | binary
  +           | tuple
  +           | '(' patExpr ')'
  +           ;
  +
  +mapPatExpr : patExprMax? '#' mapTuple
  +           | mapPatExpr  '#' mapTuple ;
  +
  +recordPatExpr : '#' tokAtom ('.' tokAtom | recordTuple) ;
  +
   list : '['      ']'
        | '[' expr tail
        ;
  
positive.code: // An ANTLR4 Grammar of Erlang R16B01 made by Pierre Fenoll from
  // https://github.com/erlang/otp/blob/maint/lib/stdlib/src/erl_parse.yrl
  
  
  grammar Erlang;
  
  forms : form+ EOF ;
  
  form : (attribute | function_ | ruleClauses) '.' ;
  
  /// Tokens
  
  
negative.code:        | '=/='
         ;
  
  