https://github.com/zhb2000/mini-python-parser
A "Mini-Python" parser
https://github.com/zhb2000/mini-python-parser
parser python typescript
Last synced: about 2 months ago
JSON representation
A "Mini-Python" parser
- Host: GitHub
- URL: https://github.com/zhb2000/mini-python-parser
- Owner: zhb2000
- Created: 2021-06-07T08:31:58.000Z (about 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-18T04:38:53.000Z (about 5 years ago)
- Last Synced: 2025-06-18T10:53:20.100Z (about 1 year ago)
- Topics: parser, python, typescript
- Language: TypeScript
- Homepage: https://zhb2000.github.io/mini-python-parser
- Size: 2.46 MB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Mini-Python Parser
编译原理大作业,一个“Mini-Python”语言的 Parser,可以在浏览器里运行并查看结果:[Mini-Python Parser](https://zhb2000.github.io/mini-python-parser)。
Mini-Python 的语法基于 Python 3.6 简化而来,文法定义详见[语法分析.md](./doc/parser/语法分析.md)。
如果本仓库对你有帮助,你可以给我点个 Star。( '▿' )
## 截图


## 流程
### 预处理
Python 带缩进的语法属于上下文有关文法,但是经过预处理后可以变为上下文无关文法:
- “缩进增”相当于其他语言的左花括号
- “缩进减”相当于右花括号
- “换行”相当于分号
此外,预处理器还会执行去除注释、去除空白行等操作。
### 词法分析
输入预处理后的代码,输出 token 序列。这里使用有限状态自动机(DFA)完成这个步骤。
Mini-Python 的词法定义详见[词法分析.md](./doc/scanner/词法分析.md)。
### 语法分析
输入 token 序列,输出分析树(Parse Tree)。这里使用递归下降方法完成这个步骤。
Mini-Python 的文法定义详见[语法分析.md](./doc/parser/语法分析.md)(使用 EBNF 表示)。
### 翻译
将分析树变换为抽象语法树(AST)。