代码拉取完成,页面将自动刷新
同步操作将从 zren/compiler-homework6 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
%{
#include <stdio.h>
#include <stdlib.h>
extern int yylex();
extern int yyparse();
extern FILE* yyin;
void yyerror(const char* s);
%}
%union {
int ival;
}
%token<ival> T_INT
%token T_PLUS T_MINUS T_LEFT T_RIGHT
%token T_END
%left T_PLUS T_MULT;
%type<ival> E
%type<ival> T
%type<ival> F
%start calculation
%%
calculation: E T_END {printf("%d\n", $1);exit(0);}
;
E: E T_PLUS T {$$ = $1 + $3;}
| T {$$ = $1;}
| E T_MINUS T {$$ = $1 - $3;}
;
T: T T_MULT F {$$ = $1 * $3;}
| F {$$ = $1;}
;
F: T_INT {$$ = $1;}
|T_LEFT E T_RIGHT {$$ = $2;}
;
%%
int main() {
yyin = stdin;
do {
yyparse();
} while(!feof(yyin));
return 0;
}
void yyerror(const char* s) {
fprintf(stderr, "Parse error: %s\n", s);
exit(1);
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。