anchor.diff:     ;
   
   line
  -   : lbl? (instruction | directive | title | include)? comment?
  +   : (instruction | assemblerdirective)? comment?
  +   ;
  +
  +instruction
  +   : lbl? PREFIX? opcode expressionlist?
  +   ;
  +
  +lbl
  +   : label ':'?
  +   ;
  +
  +
  +PREFIX
  +   : R E P
  +   ;
  +
  +assemblerdirective
  +   : org
  +   | end
  +   | if_
  +   | endif
  +   | equ
  +   | db
  +   | dw
  +   | title
  +   | include
  +   ;
  +
  +dw
  +   : DW expressionlist
  +   ;
  +
  +db
  +   : DB expressionlist
  +   ;
  +
  +equ
  +   : string EQU expression
  +   ;
  +
  +if_
  +   : IF expression
  +   ;
  +
  +endif
  +   : ENDIF
  +   ;
  +
  +end
  +   : END
  +   ;
  +
  +org
  +   : ORG string
      ;
   
   title
  
positive.code:    ;
  
  include
     : INCLUDE NAME
     ;
  
  instruction
     : prefix? opcode expressionlist?
     ;
  
  prefix
     : REP
     ;
  
  directive
     : argument? assemblerdirective expressionlist?
     ;
  
  assemblerdirective
     : ASSEMBLER_DIRECTIVE
     ;
  
  lbl
     : label ':'?
     ;
  
  expressionlist
  
negative.code:    ;
  
  
  REGISTER
     : A X | B C | C X | D X | C I | D I | B P | S P | I P | C S | D S | E S | S S
     ;
  
  
  OPCODE
     : M O V | A N D | M O V S | M V I | L D A | S T A | L D A X | S T A X | L H L D | S H L D | L X I | P U S H | P O P | X T H L | S P H L | P C H L | X C H G | A D D | S U B | I N R | I N C | D C R | C M P | A N A | O R A | O R | X R A | A D I | S U I | C P I | A N I | O R I | X R I | D A A | A D C | A C I | S B B | S B I | D A D | I N X | D C X | J M P | C A L L | R E T | R A L | R A R | R L C | R R C | I N | O U T | C M C | S T C | J M P S | T E S T | X O R | S H L | S H R | C M A | H L T | N O P | D I | E I | R S T | J N Z | J N B | J N E | J Z | J E | J N C | D E C | J C | J P O | J P E | J P | J M | C N Z | C Z | C N C | C C | C P O | C P E | C P | C M | R N Z | R Z | R N C | R C | R P O | R P E | R P | R M | J B | J A
     ;
  