anchor.diff:      |   LPAREN SIN {System.err.println("sin only takes 1 argument");}
           ( var )+
           RPAREN
  +    |   LPAREN COS {$value = 0;}
  +        ( l=expr {$value = Math.cos($l.value);})
  +        RPAREN
  +    |   LPAREN COS {System.err.println("cos only takes 1 argument");}
  +        ( var )+
  +        RPAREN
       |   LPAREN SQRT {$value = 0;}
           ( m=expr {$value = Math.sqrt($m.value);})
           RPAREN
  
positive.code: prog:   stat+ ;
  
  stat:   expr NEWLINE {System.out.println($expr.value);}
      |   LPAREN STRING LPAREN expr RPAREN RPAREN NEWLINE {System.out.println($STRING.text + ' ' + $expr.value);}
      |   NEWLINE
      ;
  
  
negative.code:     |   LPAREN STRING g = expr RPAREN {
              $value = $g.value;
              System.out.println($STRING.text + " " + $g.value);
          }
      |   LPAREN letsinglevar IN p=expr RPAREN{
              $value = $p.value;
          }
      |   n=var {$value = $n.value;}
      ;
  