资源简介
不知道怎么一次性上传两个文件 lex代码 在另一个下载地址http://download.csdn.net/detail/leecoding/9534587
下载后修改文件后缀为.y 编译后 运行时需要使用 < 文件名.txt 来导入文件流
(具体的文件流知识可以去搜索,如果不明白)
代码片段和文件信息
%{
#include
#include
#include
#include
%}
%token IDENTIFIER NUM CONST VAR PROCEDURE B END ODD IF THEN CALL WHILE DO READ WRITE EQ BE SE
%left ‘+‘ ‘-‘
%left ‘*‘ ‘/‘
%%
program:part_program ‘.‘ {printf(“program -> part_program\n“);}
;
part_program:constant_illstruction var_instruction process_instruction statment{printf(“part_program -> constant_illstruction+var_instruction+process_instruction\n“);}
|constant_illstruction var_instruction statment{printf(“part_program -> constant_illstruction+var_instruction\n“);}
|constant_illstruction statment{printf(“part_program -> constant_illstruction\n“);}
|constant_illstruction process_instruction statment{printf(“part_program -> constant_illstruction+process_instruction\n“);}
|var_instruction process_instruction statment{printf(“part_program -> var_instruction+process_instruction\n“);}
|var_instruction statment{printf(“part_program -> var_instruction\n“);}
|process_instruction statment{printf(“part_program -> process_instruction\n“);}
|statment{printf(“part_program -> statment\n“);}
;
constant_illstruction: CONST const_define ‘;‘ {printf(“constant_illstruction -> const_define\n“);}
|constant_illstruction ‘‘ const_define{printf(“constant_illstruction -> constant_illstruction\n“);}
;
const_define:IDENTIFIER ‘=‘ NUM {printf(“const_define -> IDENTIFIER\n“);}
;
var_instruction:VAR var_mid ‘;‘{printf(“var_instruction -> IDENTIFIER\n“);}
;
var_mid:IDENTIFIER{printf(“var_mid -> IDENTIFIER\n“);}
|IDENTIFIER ‘‘ var_mid{printf(“var_mid -> var_mid \n“);}
;
process_instruction:process_head part_program ‘;‘{printf(“process_instruction -> process_head\n“);}
|process_head part_program ‘;‘ process_instruction ‘;‘ {printf(“process_instruction -> process_head + process_instruction“);}
;
process_head:PROCEDURE IDENTIFIER ‘;‘{printf(“process_head -> PROCEDURE\n“);}
;
statment:assignment {printf(“statment -> assignment\n“);}
|condition {printf(“statment -> condition\n“);}
|circle {printf(“statment -> circle\n“);}
|process_transfer {printf(“statment -> process_transfer\n“);}
|read_statment {printf(“statment -> read_statment\n“);}
|write_statment {printf(“
相关资源
- 编译原理识别活缀的DFA
- 编译原理实验 计算器 语法树 逆波兰
- FOR循环语句的翻译LR,输出三地址
- 编译原理实验指导含源代码
- 编译原理实验报告完整版词法语法语
- 编译原理及实现课后答案
- 华中科技大学学位论文参考文献Note
- 《编译原理第二版》龙书部分习题答
- 合工大 编译原理课程设计 LR(1)
- PL0语言编译器分析实验报告
- 编译原理课后第十章答案
- 编译原理课后习题全部答案(陈火旺
- 《编译原理》蒋立源课后答案
- zw_编译原理-龙书答案.zip
- 科技大学 编译原理 华保健 全86讲
- 程序设计语言-编译原理第三版 课后习
- 程序设计语言编译原理(陈火旺第3版
- 西安交通大学 编译原理 冯博琴教授
- 《电机学》华中科技大学出版社课后
- 计算机系统结构华中科技大学
- 编译原理第三版课后习题答案
- 华中科技大学电机学-高清版
- 杭电编译原理实验报告
- 华中科技大学计算机组成原理实验二
- 华中科技大学操作系统课程设计源代
- 3-8译码器,4选1多路选择器,Verilog
- 华中科技大学数字逻辑实验源文件
- 编译原理部分习题答案,龙书第二版
- 编译原理实验.rar
- 华中科技大学计算机组成原理实验一
评论
共有 条评论