anchor.diff:          CBRACKET    = ']';
           OCURBRA     = '{';
           CCURBRA     = '}';
  -        EQUAL       = '=';
  -        OR      = '||';
  -        AND     = '&&';
  +        ASSIGN      = '=';
  +        NOT         = '!';
  +        OR          = '||';
  +        AND         = '&&';
           EQUALS      = '==';
           LESS        = '<';
  -        LEQ     = '<=';
  +        LEQ         = '<=';
           PLUS        = '+';
           MINUS       = '-';
           MULT        = '*';
  -        DIV     = '/';
  -        IF      = 'if';
  +        DIV         = '/';
  +        IF          = 'if';
           ELSE        = 'else';
  -        FOR     = 'for';
  +        FOR         = 'for';
           RECTANGLE   = 'rectangle';
           TRIANGLE    = 'triangle';
           CIRCLE      = 'circle';
           ANIMATION   = 'animation';
  -        ON      = 'on';
  +        ON          = 'on';
           SPACE       = 'space';
           LEFTARROW   = 'leftarrow';
           RIGHTARROW  = 'rightarrow';
  
positive.code: decl        : varDecl SEMI | objDecl SEMI;
  varDecl     : ( INT LDF init? ) | ( INT LDF OBRA NUMBER CBRA );
  init        : EQ expr;
  objDecl     :   ;
  expr        :   ;
  attrAssList :   ;
  stmtBlock   :   ;
  block       :   ;
  
  // lexer rules
  LDF         :   ( '_' ( DIGIT | CHAR )+ )+;
  CHAR            :   ( LOWCASE | UPCASE );
  NUMBER          :   ( DIGIT )+;
  //NEGNUMBER     :   ( DIGIT )+;
  fragment LOWCASE    :   'a' .. 'z';
  fragment UPCASE     :   'A' ..  'Z';
  fragment DIGIT      :   '0' .. '9';
  
negative.code: // token rules -- complete like mgpl enbf a2
  tokens {
          GAME        = 'game';
          INT         = 'int';
          DOT         = '.';
          SEMIKOL     = ';';
          OPARAN      = '(';
          CPARAN      = ')';
  