6
#include "parser_vars.hpp"
10
void yyerror(const char *str);
11
void debug(const char *format, ...);
38
op: expseq { printf("Result: %lf\n", $<val>1); }
40
debug("= %s %lf\n", $<var>1, $<val>3);
41
vars.Set($<var>1, $<val>3);
46
expseq: NUM { debug("NUM %lf\n", $<val>1); }
48
$<val>$ = vars.Get($<var>1);
49
debug("VAR %s\n", $<var>1);
52
| expseq '+' expseq { $<val>$ = $<val>1 + $<val>3; debug("+ %lf %lf\n", $<val>1, $<val>3); }
53
| expseq '-' expseq { $<val>$ = $<val>1 - $<val>3; debug("- %lf %lf\n", $<val>1, $<val>3); }
54
| expseq '*' expseq { $<val>$ = $<val>1 * $<val>3; debug("* %lf %lf\n", $<val>1, $<val>3); }
55
| expseq '/' expseq { $<val>$ = $<val>1 / $<val>3; debug("/ %lf %lf\n", $<val>1, $<val>3); }
56
| '(' expseq ')' { $<val>$ = $<val>2; debug("() %lf\n", $<val>2); }
63
void debug(const char *format, ...) {
73
void yyerror(const char *str) {
74
fprintf(stderr, "error parsing input file: '%s'\n", str);