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 + -
显示快捷键?