anchor.diff:    |  do_loop ';'
     |  match
     |  command ';'
  -  |  'return'
  -  |  'break'
  -  |  'continue'
  -  |  'throw'
     ;
   
   block
  
positive.code:   |  INT
    |  FLOAT
    |  STRING
    |  '[' arglist ']'
    |  '(' expr ')'
    ;
    
  // FIX: != could be wrong
  // var a:Type!=Type!(thing)
  mode
    :  '~' | '!' | '@' | '[:' expr ']'
    ;
  
  formalargs
  
negative.code: 
  command
    :  lvalue_list ('=' expr_list)?
    |  'continue'
    |  'break'
    |  'return'
    |  'throw'
    ;
  
  lvalue_list
  