原创的c++版语法分析器

时间:2012-01-18 12:05:08
【文件属性】:
文件名称:原创的c++版语法分析器
文件大小:5KB
文件格式:RAR
更新时间:2012-01-18 12:05:08
语法分析器 事例文法: NOTHING INT FLOAT CHAR STRING sizeof struct ID * [ ] { } ( ) , . -> main return break continue if else while = || && INTNUM FLOATNUM CHARNUM != == > >= < <= + - / % ! & ++ -- ; %% program array addop args_list args_list_declare args_declare args_declare_right base_type expr_list expr expr_right expr0 expr0_right expr1 expr1_right expr2 expr2_right expr3 expr3_right expr4 expr4_right expr5 expr5_right expr6 expr6_right expr7 expr7_right expr8 expr8_right function_list function_declare if_else if_else_right id_val mulop pointer prefixop postfixop relop refer_array_right refer_right real_args refer_id refer_id_right simple_type single_type struct_type stmt_list stmt_block stmt single_stmt struct_stmt term var_declare while_loop %% program --> function_list main ( args_list ) { stmt_list } \ function_list --> function_declare function_list \ function_list --> NOTHING \ function_declare --> single_type ID ( args_list ) { stmt_list } \ args_list --> args_list_declare \ args_list --> NOTHING \ args_list_declare --> args_declare args_declare_right \ args_declare_right --> , args_declare args_declare_right \ args_declare_right --> NOTHING \ args_declare --> var_declare \ var_declare --> single_type ID array \ base_type --> INT \ base_type --> FLOAT \ base_type --> CHAR \ struct_type --> struct ID \ simple_type --> base_type \ simple_type --> struct_type \ single_type --> simple_type pointer \ pointer --> * pointer \ pointer --> NOTHING \ array --> [ INTNUM ] array \ array --> NOTHING \ stmt_block --> { stmt_list } \ stmt_block --> stmt \ stmt_list --> stmt stmt_list \ stmt_list --> NOTHING \ stmt --> single_stmt ; \ stmt --> struct_stmt \ single_stmt --> var_declare \ single_stmt --> expr_list \ single_stmt --> return expr_list \ single_stmt --> break \ single_stmt --> continue \ single_stmt --> NOTHING \ struct_stmt --> if_else \ struct_stmt --> while_loop \ if_else --> if ( expr_list ) stmt_block if_else_right \ if_else_right --> NOTHING \ if_else_right --> else stmt_block \ while_loop --> while ( expr_list ) stmt_block \ expr_list --> expr expr_right \ expr_right --> , expr expr_right \ expr_right --> NOTHING \ expr --> expr0 expr0_right \ expr0_right --> = expr0 expr0_right \ expr0_right --> NOTHING \ expr0 --> expr1 expr1_right \ expr1_right --> || expr1 expr1_right \ expr1_right --> NOTHING \ expr1 --> expr2 expr2_right \ expr2_right --> && expr2 expr2_right \ expr2_right --> NOTHING \ expr2 --> expr3 expr3_right \ expr3_right --> != expr3 expr3_right \ expr3_right --> NOTHING \ expr3 --> expr4 expr4_right \ expr4_right --> == expr4 expr4_right \ expr4_right --> NOTHING \ expr4 --> expr5 expr5_right \ expr5_right --> relop expr5 expr5_right \ expr5_right --> NOTHING \ expr5 --> expr6 expr6_right \ expr6_right --> addop expr6 expr6_right \ expr6_right --> NOTHING \ expr6 --> expr7 expr7_right \ expr7_right --> mulop expr7 expr7_right \ expr7_right --> NOTHING \ expr7 --> expr8 expr8_right \ expr7 --> prefixop expr8 \ expr8_right --> postfixop \ expr8_right --> NOTHING \ expr8 --> refer_id refer_right \ expr8 --> term \ refer_right --> . id_val refer_right \ refer_right --> -> id_val refer_right \ refer_right --> NOTHING \ term --> INTNUM \ term --> FLOATNUM \ term --> CHARNUM \ term --> STRING \ term --> ( expr ) \ term --> sizeof ( expr8 ) \ refer_id --> ID refer_id_right \ refer_id_right --> [ expr_list ] refer_array_right \ refer_id_right --> ( real_args ) \ refer_id_right --> NOTHING \ real_args --> expr_list \ real_args --> NOTHING \ id_val --> ID refer_array_right \ refer_array_right --> [ expr_list ] refer_array_right \ refer_array_right --> NOTHING \ relop --> < \ relop --> <= \ relop --> > \ relop --> >= \ addop --> + \ addop --> - \ mulop --> * \ mulop --> / \ mulop --> % \ prefixop --> ! \ prefixop --> - \ prefixop --> * \ prefixop --> & \ postfixop --> ++ \ postfixop --> -- \ %%
【文件预览】:
SYNTAX.H
main.c
STACK.H
ANALYSE_TABLE.H
GLOBAL.H
test.txt
SYN_LEX.H

网友评论

  • 这个真的有太多错误了 改了半天才能用
  • 同上,无法打开
  • 能运行但打开文件错误