mirror of https://github.com/vitalif/lime
25 lines
361 B
Plaintext
25 lines
361 B
Plaintext
%class calc
|
|
%start stmt
|
|
|
|
%left '+' '-'
|
|
%left '*' '/'
|
|
|
|
stmt = exp { echo " -> "; echo $1; echo "\n"; }
|
|
| var/v '=' exp/e {
|
|
echo "$v = $e\n";
|
|
set_variable($v, $e);
|
|
}
|
|
.
|
|
|
|
|
|
exp = num
|
|
| var { $$ = get_variable($1); }
|
|
| exp '+' exp { $$ = $1 + $3; }
|
|
| exp '-' exp { $$ = $1 - $3; }
|
|
| exp '*' exp { $$ = $1 * $3; }
|
|
| exp '/' exp { $$ = $1 / $3; }
|
|
| '(' exp/$ ')'
|
|
.
|
|
|
|
|