ch3-03.y

来自「編譯器的虛擬yacc工具」· Y 代码 · 共 41 行

Y
41
字号
%{double vbltable[26];%}%union {   VYint val;   int dval;   int vblno;}%token <dval> NUMBER %token <vblno> NAME %type <val> expression%left '-' '+'%left '*' '/'%nonassoc UMINUS%%statement_list:	statement '\n'	|	statement_list statement '\n'	;statement:	NAME '=' expression	{ vbltable[$1] = $3; }	|	expression		{ printf("= %d\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 ')'	{ $$ = $2; }	|	NUMBER			{$$ = $1; }	|	NAME		{$$ = vbltable[$1]; }	;%%

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?