文件名称:编译原理课程设计:词法分析器
文件大小:7.3MB
文件格式:RAR
更新时间:2022-05-15 15:43:00
python 编译原理 课程设计 词法分析器
所使用的开发环境:Windows10、python(PyCharm)环境 注意,main.py里面有一个写函数,如果没有该位置可能会出错,建议注释掉。 课题功能: 创建一个词法分析程序,该程序支持分析常规语法。使用DFA(确定性有限自动机)来实现此程序。 程序有两个输入:1)一个文本文档,包括一组3º语法(正规文法)的产生式;2)一个源代码文本文档,包含一组需要识别的字符串。 程序的输出是一个token(令牌)表,该表由5种token组成:关键词,标识符,常量,限定符和运算符。 项目简介: 词法分析器读入三型文法,将三型文法构建成一个起点和一个终点的NFA,然后将NFA用子集法构造成DFA,创建DFA的索引表,后续读取要扫描的代码,将代码中的每个词依次带入DFA的索引表进行状态转换,如果到达终态说明词符合文法要求,输出token列表(三元组:所在行号,类别,token 内容)如果出错会输出另一种三元组(行号, 对错判定, token内容),并将token列表写入txt文件供任务二LR(1)语法分析器来使用,同时也会将结果输出到result.txt文件来观测。
【文件预览】:
Lexical analyzer
----expression()
--------ex1.txt(2KB)
--------ex_test.txt(43B)
----main.py(2KB)
----to_dfa.py(2KB)
----__pycache__()
--------to_dfa.cpython-310.pyc(1KB)
--------to_nfa.cpython-310.pyc(2KB)
--------read.cpython-310.pyc(3KB)
--------to_regularExpression.cpython-310.pyc(160B)
----result.txt(515B)
----read.py(4KB)
----main.exe(7.47MB)
----state_changes.txt(1KB)
----.idea()
--------Lexical analyzer.iml(291B)
--------misc.xml(208B)
--------modules.xml(291B)
--------sonarlint()
--------workspace.xml(3KB)
--------.gitignore(50B)
--------inspectionProfiles()
----to_nfa.py(3KB)
----code()
--------code1.txt(149B)
--------code_test.txt(92B)
----main.spec(852B)