anchor.diff: +
   /** 
   This grammar is generated with antlrworks in order to parse an asm source
   code.First of all the lexical rules established here do not replace the ones 
   generated in JFlex we used in EditorASM to color the tokens, instead they are used
   to provide the necessary tokens for the parser.
   **/
  +
   /*
       Ported to Antlr4 by Tom Everett <tom@khubla.com>
   */
  -
   grammar MASM;
  -@ header { 
  +@ header{ 
    	 package com.Ostermiller.Syntax;
    	 }
   compilationUnit
  -   : ( segments | directive_exp1 )* 'end' Identifier
  +   : (segments | directive_exp1)* 'end' Identifier
      ;
   
   segments
  -   : Identifier 'segments' 'para' 'public' ( code | proc )* Identifier 'ends'
  +   : Identifier 'segments' 'para' 'public' (code | proc)* Identifier 'ends'
      ;
   
   proc
  -   : Identifier 'proc' ( code )* 'ret' Identifier 'endp'
  +   : Identifier 'proc' (code)* 'ret' Identifier 'endp'
      ;
   
   code
  -   : binary_exp1 | binary_exp10 | binary_exp11 | binary_exp12 | binary_exp2 | binary_exp3 | binary_exp4 | binary_exp5 | binary_exp6 | binary_exp7 | binary_exp8 | binary_exp9 | unuary_exp1 | unuary_exp2 | unuary_exp3 | unuary_exp4 | unuary_exp5 | notarguments | variabledeclaration | directive_exp1
  +   : binary_exp1
  +   | binary_exp10
  +   | binary_exp11
  +   | binary_exp12
  +   | binary_exp2
  +   | binary_exp3
  +   | binary_exp4
  +   | binary_exp5
  +   | binary_exp6
  +   | binary_exp7
  +   | binary_exp8
  +   | binary_exp9
  +   | unuary_exp1
  +   | unuary_exp2
  +   | unuary_exp3
  +   | unuary_exp4
  +   | unuary_exp5
  +   | notarguments
  +   | variabledeclaration
  +   | directive_exp1
      ;
   
   binary_exp1
  -   : o register Separator ( register | Integer | memory ) | o memory Separator ( register | Integer )
  +   : o register Separator (register | Integer | memory)
  +   | o memory Separator (register | Integer)
      ;
   
   unuary_exp1
  -   : op ( Integer | register | memory )
  +   : op (Integer | register | memory)
      ;
   
   unuary_exp2
  -   : ope ( register | memory )
  +   : ope (register | memory)
      ;
   
   binary_exp2
  -   : oper register Separator ( register | memory ) | oper memory Separator register
  +   : oper register Separator (register | memory)
  +   | oper memory Separator register
      ;
   
   notarguments
  
positive.code:    ;
  
  binary_exp4
     : operator register Separator ( register | memory )
     ;
  
  binary_exp5
  
negative.code:    ;
  
  ope
     : POP
     | IDIV
     | INC
     | DEC
     | NEG
     | MUL
     | DIV
     | IMUL
     | NOT
     | SETPO
     | SETAE
     | SETNLE
     | SETC
     | SETNO
     | SETNB
     | SETP
     | SETNGE
     | SETL
     | SETGE
     | SETPE
     | SETNL
     | SETNZ
     | SETNE
     | SETNC
     | SETBE
     | SETNP
     | SETNS
     | SETO
     | SETNA
     | SETNAE
     | SETZ
     | SETLE
     | SETNBE
     | SETS
     | SETE
     | SETB
     | SETA
     | SETG
     | SETNG
     ;
  
  oper
  