东北大学计算机编译原理实验报告一、二、三 编译实验报告一之词法分析扫描器 编译实验报告二之语法分析器 编译实验报告三之中间代码四元式生成
1
合肥工业大学编译原理课程设计,计算机学院,关于lr(0)分析器的构造
2019-12-21 19:25:28 380KB 编译原理 lr(0)
1
词法分析器 输入为字符串(或待进行词法分析的源程序),输出为单词串,即由(单词,类别)所组成的二元组序列。
2019-12-21 19:25:18 4.67MB 词法分析器
1
利用Java编写简单的C语言词法分析器,实现编译原理课程的第一部分:词法分析器
2019-12-21 19:24:57 136KB 编译原理 词法分析器
1
在学习编译原理的过程中写的一个关于C语言的词法分析器,大家一起交流,是一个Eclipse项目文件,导入项目后test类运行主程序
2019-12-21 19:24:15 738KB C语言词法分析器 Java版 界面
1
通过java实现词法分析器。 解压: 1) src文件夹:实现代码 2)data文件夹:测试代码 3)README:说明文档
2019-12-21 19:23:26 41KB java
1
本文为转载资源,希望大家积极下载指正。
2019-12-21 19:22:23 24KB snl 词法分析 语法分析
1
NFA,DFA实验,词法分析,语法分析
2019-12-21 19:22:10 479KB 编译原理实验报告加代码
1
一个很简单的c语言词法分析器,适合刚学编译原理的同学阅读
2019-12-21 19:21:34 4KB c语言 词法分析
1
设计思想 (1)程序主体结构部分: 说明部分 %% 规则部分 %% 辅助程序部分 (2)主体结构的说明 在这里说明部分告诉我们使用的LETTER,DIGIT, IDENT(标识符,通常定义为字母开头的字母数字串)和STR(字符串常量,通常定义为双引号括起来的一串字符)是什么意思.这部分也可以包含一些初始化代码.例如用#include来使用标准的头文件和前向说明(forward ,references).这些代码应该再标记"%{"和"%}"之间;规则部分>可以包括任何你想用来分析的代码;我们这里包括了忽略所有注释中字符的功能,传送ID名称和字符串常量内容到主调函数和main函数的功能. (3)实现原理 程序中先判断这个句语句中每个单元为关键字、常数、运算符、界符,对与不同的单词符号给出不同编码形式的编码,用以区分之。 PL/0语言的EBNF表示 ::==; ::=={|}; ::=+|- ::=*|/ ::==|#|<||>= ::=a|b|…|X|Y|Z ::=0|1|2|…|8|9 三:设计过程 1. 关键字:void,main,if,then,break,int,Char,float,include,for,while,printfscanf 并为小写。 2."+”;”-”;”*”;”/”;”:=“;”:”;”<“;”“;”>=“;”“;”=“;”(“;”)”;”;”;”#”为运算符。 3. 其他标记 如字符串,表示以字母开头的标识符。 4. 空格符跳过。 5. 各符号对应种别码 关键字分别对应1-13 运算符分别对应401-418,501-513。 字符串对应100 常量对应200 结束符# 四:举例说明 目标:实现对常量的判别 代码: digit [0-9] letter [A-Za-z] other_char [!-@\[-~] id ({letter}|[_])({letter}|{digit}|[_])* string {({letter}|{digit}|{other_char})+} int_num {digit}+ %% [ |\t|\n]+ "auto"|"double"|"int"|"struct"|"break"|"else"|"long"|"switch"|"case"|"enum"|"register"|"typedef"|"char"|"extern"|"return"|"union"|"const"|"float"|"short"|"unsigned"|"continue"|"for"|"signed"|"void"|"default"|"goto"|"sizeof"|"do"|"if"|"static"|"while"|"main" {Upper(yytext,yyleng);printf("%s,NULL\n",yytext);} \"([!-~])*\" {printf("CONST_string,%s\n",yytext);} -?{int_num}[.]{int_num}?([E][+|-]?{int_num})? {printf("CONST_real,%s\n",yytext);} "0x"?{int_num} {printf("CONST_int,%s\n",yytext);} ","|";"|"("|")"|"{"|"}"|"["|"]"|"->"|"."|"!"|"~"|"++"|"--"|"*"|"&"|"sizeof"|"/"|"%"|"+"|"-"|">"|"="|">="|"<<="|"&="|"^="|"|="|"=" {printf("%s,NULL\n",yytext);} {id} {printf("ID,%s\n",yytext);} {digit}({letter})+ {printf("error1:%s\n",yytext);} %% #include Upper(char *s,int l) { int i; for(i=0;i
2019-12-21 18:52:27 105KB 词法分析器制作
1