anchor.diff:      |   expression
       ;
   
  +enum_block
  +    :   Identifier '=' (enum_flow | enum_inline)
  +    ;
  +
  +enum_flow
  +    :   INDENT ('|' expression NL)+ DEDENT
  +    ;
  +
  +enum_inline
  +    :   '|'? (assign | Identifier) ('|' (assign | Identifier) )*
  +    ;
  +
   if_block
       :   IF expression block (ELSIF expression block)* (ELSE block)?
  +    ;
  +
  +foreach_block
  +    :   FOREACH Identifier IN expression block
       ;
   
   while_block
  
positive.code:     ;
  
  func
      :   '(' params ')' flow
      |   '(' params ')' '->' inline
      ;
  
  call
  
negative.code: 
  statement
      :   namespace
      |   enum_block
      |   if_block
      |   foreach_block
      |   while_block
      |   dowhile_block
      |   RETURN expression?
  