cminus.yy
来自「自己写的一个简易的YACC程序」· YY 代码 · 共 79 行
YY
79 行
%{
%}
%token IDENTIFIER FOR WHILE IF ELSE
%token INT FLOAT LONG SHORT CHAR DOUBLE SIGNED UNSIGNED
%token EQU LESS GREAT NE
%token NUM
%%
source_file : type function_name '(' parament_list ')' compound_statement
| type function_name '(' ')' compound_statement
;
type : INT
| FLOAT
| LONG
| SHORT
| CHAR
| DOUBLE
| SIGNED
| UNSIGNED
;
function_name : identifier
;
identifier : IDENTIFIER
;
parament_list : type identifier ',' parament_list
| type identifier
;
compound_statement : '{' statement_list '}'
;
statement_list : statement statement_list
| statement
;
statement : assign_statement
| selection_statement
| iteration_statement
;
assign_statement : assign_expression ';'
| initial_expression ';'
;
assign_expression : identifier operator identifier
;
operator : '+'
| '-'
| '*'
| '/'
;
initial_expression : type identifier
| type identifier '=' NUM
| type identifier '=' identifier
| type identifier '=' assign_expression
| identifier '=' assign_expression
;
selection_statement : IF '(' relate_expression ')' compound_statement
;
relate_expression : identifier relation_operator identifier
;
relation_operator : EQU
| LESS
| GREAT
| NE
;
iteration_statement : WHILE '(' relate_expression ')' compound_statement
;
%%
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?