anchor.diff:          action_statements
           "endrule" [ ":"  rule_name ]
   
  -    rule variable_assignment:
  -        VAR  "=" expression ';'
  -
  -    rule variable_declaration:
  -        Type_item VAR [ "=" expression ] ';'
  -
  -    rule variable_declaration_and_initializations:
  -        variable_declaration
  -        | let_statement
  -
       rule rules_statement:
           "rules" [ ":"  rules_name]
           rule_satements
  -        (variable_declaration | variable_assignment)*
  -        #variable_declaration
  +        (variable_declaration_or_call ';')*
           "endrules" [ ":"  rules_name]
   
       rule action_statement:
  
positive.code:     rule factor<<V>>: term<<V>>           {{ v = term }}
                       ( "[*]" term<<V>>    {{ v = v*term }}
                       |  "/"  term<<V>>    {{ v = v/term }}
                       |  "<<"  term<<V>>
                       |  ">>"  term<<V>>
                       |  "=="  term<<V>>
                       |  "\\?"  term<<V>> ':'  term<<V>>
                       )*                   {{ return v }}
  
      # A term is a number, variable, or an expression surrounded by parentheses
      rule term<<V>>:
                   NUM                      {{ return int(NUM) }}
                 | VAR 
                      ( r"[\\.]" VAR )*
                      [ [ '#' ]
                          ( "\\(" [ expr<<V>> ( ',' expr<<V>> )* ] "\\)"
                          | "{" VAR ':' expr<<V>> ( ',' VAR ':' expr<<V>> )* "}"
                          )
                      ]
                      [ "\\[" expr<<V>> [ ':' expr<<V>> ] "\\]" ]
  
negative.code:     rule attribute_statement:
           "\\([*]" attribute [ "=" expression ] "[*]\\)"
  
      rule Type_item_or_name:
          Type_item
          | VAR [ "#" "\\(" expression (',' expression )* "\\)" ]
  