From dc1f0c4c0096013799416664894c5194dc7e1f52 Mon Sep 17 00:00:00 2001 From: Yuqian Yang Date: Fri, 28 Feb 2025 23:13:39 +0800 Subject: chore(store): move everything to store. --- works/life/compile-principle-experiment/3/syn.y | 42 ------------------------- 1 file changed, 42 deletions(-) delete mode 100644 works/life/compile-principle-experiment/3/syn.y (limited to 'works/life/compile-principle-experiment/3/syn.y') diff --git a/works/life/compile-principle-experiment/3/syn.y b/works/life/compile-principle-experiment/3/syn.y deleted file mode 100644 index 80abb17..0000000 --- a/works/life/compile-principle-experiment/3/syn.y +++ /dev/null @@ -1,42 +0,0 @@ -%{ -#include "main.h" -#include -%} -%union { - double val; /* actual value */ - Symbol *sym; /* symbol table pointer */ -} -%token NUMBER -%token VAR BLTIN UNDEF -%type expr asgn -%right '=' -%left '+' '-' -%left '*' '/' -%left UNARYMINUS -%right '^' /* exponentiation */ -%% -list: /* nothing */ - | list '\n' - | list asgn '\n' - | list expr '\n' { printf("\t%.8g\n", $2); } - | list error '\n' { yyerrok; } - ; -asgn: VAR '=' expr { $$=$1->value.val=$3; $1->type = VAR; } - ; -expr: NUMBER - | VAR { if ($1->type == UNDEF) - execerror("undefined variable", $1->name); - $$ = $1->value.val; } - | BLTIN '(' expr ')' { $$ = (*($1->value.ptr))($3); } - | expr '+' expr { $$ = $1 + $3; } - | expr '-' expr { $$ = $1 - $3; } - | expr '*' expr { $$ = $1 * $3; } - | expr '/' expr { - if ($3 == 0.0) - execerror("division by zero", ""); - $$ = $1 / $3; } - | expr '^' expr { $$ = Pow($1, $3); } - | '(' expr ')' { $$ = $2; } - | '-' expr %prec UNARYMINUS { $$ = -$2; } - ; -%% -- cgit v1.2.3