ch3-03.y
来自「編譯器的相關東西原始碼」· Y 代码 · 共 41 行
Y
41 行
%{double vbltable[26];%}%union { double dval; int vblno;}%token <vblno> NAME%token <dval> NUMBER%left '-' '+'%left '*' '/'%nonassoc UMINUS%type <dval> expression%%statement_list: statement '\n' | statement_list statement '\n' ;statement: NAME '=' expression { vbltable[$1] = $3; } | expression { printf("= %g\n", $1); } ;expression: expression '+' expression { $$ = $1 + $3; } | expression '-' expression { $$ = $1 - $3; } | expression '*' expression { $$ = $1 * $3; } | expression '/' expression { if($3 == 0.0) yyerror("divide by zero"); else $$ = $1 / $3; } | '-' expression %prec UMINUS { $$ = -$2; } | '(' expression ')' { $$ = $2; } | NUMBER | NAME { $$ = vbltable[$1]; } ;%%
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?