anchor.diff:  
   wa              : '#WA' wa_stmt* 
                   ;
  -wa_stmt         : ID ':' wa_jc                           # wa_stmtInvar
  -                | ID '--' sync_const ',' wa_jc '->' ID   # wa_stmtTrans
  +wa_stmt         : ID '*'? ':' wa_jc                           # wa_stmtInvar
  +                | ID '*'? '--' sync_const ',' wa_jc '->' ID   # wa_stmtTrans
                   ;
   wa_jc           : 'true'           # wa_jcTrue
                   | ID '==' INT      # wa_jcEql
  
positive.code:  */
   
  ID      : [a-zA-Z] [a-zA-Z0-9]* ;
  INT     : ( '0' | [1-9] [0-9]* ) ;
  STRING  : '\'' .*? '\'' ;
  FUNC    : [a-zA-Z] [a-zA-Z0-9_-.:]* ;
  
negative.code: 
  cam             : '#CAM' cam_stmt* 
                  ;
  cam_stmt        : ID '*'? '--' sync_const ',' e '->' ID 
                  ;
  		
  		
  e	: t OP e                # cam_dcBinRel
  	| t
  	;
  t 	: STRING                               # cam_termString
  	| INT                                  # cam_termInteger
  	| ID                                   # cam_termPortOrMem
  	| ID '\''                              # cam_termMemoryNext
  	| ID '(' t (',' t )* ')'               # cam_termFunc
  	| '(' e ')' 
  	;
  
  /**
   * Work Automata
  