代码简单明了并有详细的注释,最适合编译原理实验--词法分析器检查,C#实现
2020-04-15 03:04:37 71KB 编译原理实验 词法分析器 C#
1
1. 课程设计目标 实验建立C-编译器。只含有扫描程序(scanner)和语法分析(parser)部分。 2. 分析与设计 C-编译器设计的整体框架,本实验实现扫描处理和语法分析程序(图中粗黑部分)。 2.1 、扫描程序scanner部分 2.1.1系统设计思想 设计思想:根据DFA图用switch-case结构实现状态转换。 惯用词法: ① 语言的关键字:else if int return void while ② 专用符号:+ - * / < >= == != = ; , ( ) [ ] { } /* */ ③ 其他标记是ID和NUM,通过下列正则表达式定义: ID = letter letter* NUM = digit digit* letter = a|..|z|A|..|Z digit = 0|..|9 大写和小写字母是有区别的 ④ 空格由空白、换行符和制表符组成。空格通常被忽略,除了它必须分开ID、NUM关键字。 ⑤ 注释用通常的C语言符号/ * . . . * /围起来。注释可以放在任何空白出现的位置(即注释不能放在标记内)上,且可以超过一行。注释不能嵌套 说明:当输入的字符使DFA到达接受状态的时候,则可以确定一个单词了。初始状态设置为START,当需要得到下一个token时,取得次token的第一个字符,并且按照DFA与对此字符的类型分析,转换状态。重复此步骤,直到DONE为止,输出token类型。当字符为“/”时,状态转换为SLAH再判断下一个字符,如果为“*”则继续转到INCOMMENT,最后以“*”时转到ENDCOMMENT状态,表明是注释,如果其他的则是字符停滞于当前字符,并且输出“/”。 2.1.2程序流程图
1
词法分析器,希望对大家有所帮助,。。。。
2020-04-08 03:06:15 1.1MB 词法分析器 词法,分析器,Lex
1
char ch;//保存最新读进的源程序字符 char strToken[128];//保存构成单词符号的字符串 void GetChar();//将下一个字符读到ch中,搜索指示器前移一个字符位置 void GetBC();//检查ch中的字符是否为空白,若是,则调用getChar,直至ch中为非空字符 void Concat();//将ch中的字符连接到strToken之后, /*int IsLetter();//判断ch中的字符是否为字母,利用ctype.h中提供的isalpha来实现。 */ /*int IsDigit();//判断ch中的字符是否为数字,利用ctype.h中提供的isdigit来实现*/ int Reserve();//对strToken中的字符串查找保留字表,若是保留字,则返回它的编码,若不是则返回一个非编码数值。 void Retract();//将搜索指示器回调一个字符位置,ch置为空。 int InsertId();//将strToken中的标识符插入符号表,返回符号表指针。 int InsertConst();//将strToken中的常数插入常数表中,返回常数表的指针。 /*
2020-03-28 03:02:27 8KB 词法分析 c语言 编译原理
1
这是一个大学编译原理实验课上老师让做的无符号数词法分析器,代码完整可运行,可以集成环境下运行,也可在cmd控制台编译运行
1
用C++实现的无符号数的词法分析程序。
2020-03-23 03:01:45 2KB C++ 无符号数
1
利用词法分析的有关知识,设计算法实现对C语言中八、十、十 六进制整数的识别。 【基本要求】 1、输入待识别的符号串。 2、运行识别程序将输入串中的整数识别出来。 3、输出所识别出的整数,输出形式为二元组(进制,整数),如八进制数的输出 形式是( OCT,值),十进制数的输出形式是( DEC,值),十六进制数的输出形 式是( HEX,值)。
2020-03-13 03:15:33 582B 编译原理 词法分析
1
通过C语言编写一个词法分析器完成输入是字符串(或源程序文本文件),输出是源程序中各单词的字符串、起止位置、词的类别。附带实验报告。
2020-01-11 03:15:31 36KB 词法分析器 C语言
1
编译原理词法分析器语法分析器实验报告软件
2020-01-11 03:07:34 411KB 100
1
设计实现了一个图形界面的简易C语言的词法分析器和语法分析器。从规定关键词及设计文法开始,采用LL(1)分析法进行文法分析编写词法分析器,完成识别语言单词的任务,编写语法分析程序,对词法分析程序所提供的单词序列进行语法检查和结构分析。
2020-01-09 03:09:34 3.25MB 编译原理 实验报告
1