aboutsummaryrefslogtreecommitdiff
path: root/sem1/osc/mm11/regn/regn.y
diff options
context:
space:
mode:
authorJulian T <julian@jtle.dk>2020-02-11 12:24:56 +0100
committerJulian T <julian@jtle.dk>2020-02-11 12:24:56 +0100
commit6db1a2cdd3b96731f2e092d55d8c2136eabc52d0 (patch)
tree2be8fae8ce82d708ed9f00f376dda14420850e80 /sem1/osc/mm11/regn/regn.y
parent57305119e05559c1c37e903aef89cd43f44c42c9 (diff)
Rename and cleanup
Diffstat (limited to 'sem1/osc/mm11/regn/regn.y')
-rw-r--r--sem1/osc/mm11/regn/regn.y54
1 files changed, 0 insertions, 54 deletions
diff --git a/sem1/osc/mm11/regn/regn.y b/sem1/osc/mm11/regn/regn.y
deleted file mode 100644
index d0f67eb..0000000
--- a/sem1/osc/mm11/regn/regn.y
+++ /dev/null
@@ -1,54 +0,0 @@
-%{
-#include <stdio.h>
-#include <math.h>
-#include "symtab.h"
-#include <string.h>
-%}
-
-%union {
- char *string;
- double dval;
-}
-
-%token <string> VAR
-%token <dval> TAL
-%token LOG EXP SQRT VAR_BEGIN
-
-%left '-' '+'
-%right LOG EXP SQRT
-%left '*' '/'
-%right UMINUS
-
-%type <dval> expression
-
-%%
-
-statement_list: statement '\n'
- | statement_list statement '\n' ;
-
-statement: expression {printf("= %f\n",$1);}
- | VAR_BEGIN VAR '=' expression {symnode_t *n = sym_lookup($2);
- if( !n ) {n = sym_insert($2); }
- n->value = $4;};
-
-expression: expression '+' expression {$$ = $1 + $3;}
- | expression '-' expression {$$ = $1 - $3;}
- | expression '*' expression {$$ = $1 * $3;}
- | expression '/' expression {if ($3 == 0.0)
- yyerror("divide dy zero");
- else $$ = $1 / $3;}
- | '-' expression %prec UMINUS {$$ = - $2;}
- | '(' expression ')' {$$= $2;}
- | LOG expression {$$ = log($2);}
- | EXP expression {$$ = exp($2);}
- | SQRT expression {$$ = sqrt($2);}
- | TAL {$$ = $1;}
- | VAR {symnode_t *n = sym_lookup($1);
- if( !n ) { yyerror("Var not found"); } else { $$ = n->value;} };
-%%
-
-int main()
-{
- yyparse();
-}
-