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/1/hoc.y | 65 ------------------------- 1 file changed, 65 deletions(-) delete mode 100644 works/life/compile-principle-experiment/1/hoc.y (limited to 'works/life/compile-principle-experiment/1/hoc.y') diff --git a/works/life/compile-principle-experiment/1/hoc.y b/works/life/compile-principle-experiment/1/hoc.y deleted file mode 100644 index c4452ad..0000000 --- a/works/life/compile-principle-experiment/1/hoc.y +++ /dev/null @@ -1,65 +0,0 @@ -%{ -#define YYSTYPE double /* data type of yacc stack */ -#include -#include -#include - -int yylex(); -int yyerror(const char * s); -%} -%token NUMBER -%left '+' '-' /* left associative, same precedence */ -%left '*' '/' '%' /* left assoc., higher precedence */ -%left UNARYMINUS -%% -list: /* nothing */ - | list '\n' - | list expr '\n' { printf("%lf\n", $2); } - ; -expr: NUMBER { $$ = $1; } - | expr '+' expr { $$ = $1 + $3; } - | expr '-' expr { $$ = $1 - $3; } - | expr '*' expr { $$ = $1 * $3; } - | expr '/' expr { $$ = $1 / $3; } - | expr '%' expr { $$ = fmod($1, $3); } - | '-' expr %prec UNARYMINUS { $$ = -$2; } - | '(' expr ')' { $$ = $2; } - ; -%% - -int lineno = 1; - -int main(int argc, char** argv) -{ - yyparse(); - return 0; -} - -int yylex() -{ - int c; - - do { - c = getchar(); - } while (c == ' ' || c == '\t'); - - if (c == EOF) - return 0; - - if (c == '.' || isdigit(c)) { - ungetc(c, stdin); - scanf("%lf", &yylval); - return NUMBER; - } - - if (c == '\n') - lineno++; - - return c; -} - -int yyerror(const char* s) -{ - fprintf(stderr, "Error occured near line %d\n", lineno); - return 0; -} -- cgit v1.2.3