github.com/skycoinproject/nex@v0.0.0-20191231010827-3bb2d0c49bc5/test/rp.y (about)

     1  %{
     2  package main
     3  %}
     4  
     5  %union {
     6    n int
     7  }
     8  
     9  %token NUM
    10  %%
    11  input:    /* empty */
    12         | input line
    13  ;
    14  
    15  line:     '\n'
    16         | exp '\n'      { println($1.n); }
    17  ;
    18  
    19  exp:     NUM           { $$.n = $1.n;        }
    20         | exp exp '+'   { $$.n = $1.n + $2.n; }
    21         | exp exp '-'   { $$.n = $1.n - $2.n; }
    22         | exp exp '*'   { $$.n = $1.n * $2.n; }
    23         | exp exp '/'   { $$.n = $1.n / $2.n; }
    24  	/* Unary minus    */
    25         | exp 'n'       { $$.n = -$1.n;       }
    26  ;
    27  %%