Python写个Basic解析器(1)词法分析。
来源:互联网 发布:mac重装系统找不到磁盘 编辑:程序博客网 时间:2024/06/13 02:30
'''
定义代码入口点,虚拟机运行时将从它指定的地方开始运行。
'''
print('start:')
'''
定义语句解析函数映射表,不同的语句指定到对应的函数来处理。
'''
self._blocks = {
BSCSM_GOTO: self._make_goto,
BSCSM_IF: self._make_if,
BSCSM_THEN: self._make_then,
BSCSM_ELSE: self._make_else,
BSCSM_DIM: self._make_dim,
BSCSM_FOR: self._make_for,
BSCSM_EXIT: self._make_exit,
BSCSM_NEXT: self._make_next,
BSCSM_CONST: self._make_const,
BSCSM_STATIC: self._make_static,
BSCSM_PRIVATE: self._make_private,
BSCSM_PUBLIC: self._make_public,
BSCSM_SUB: self._make_func,
BSCSM_FUNCTION: self._make_func,
BSCSM_DECLARE: self._make_declare,
BSCSM_CALL: self._make_call,
BSCSM_RETURN: self._make_return,
BSCSM_DO: self._make_do,
BSCSM_WHILE: self._make_while,
BSCSM_UNTIL: self._make_until,
BSCSM_LOOP: self._make_loop,
BSCSM_WEND: self._make_wend,
BSCSM_GOSUB: self._make_call,
BSCSM_REM: self._make_rem,
BSCSM_SET: self._make_set,
BSCSM_ERASE: self._make_erase,
BSCSM_SELECT: self._make_select,
BSCSM_CASE: self._make_case,
BSCSM_ADDRESSOF: self._make_addressof}
'''
开始解析代码,直到代码文件全部解析结束。
'''
res = self._begin()
'''
如果解析过程中出错,这里将显示出错信息。
'''
if res in ParseError:
print('编译错误:第%d行' % self._reader.line, '%d字符,' % self._reader.pos, '代码:0x%08X %s' % (res, ParseError[res]))
'''
指定代码入口点,虚拟机运行时将从它指定的地方开始运行。
'''
print('end start')
- Python写个Basic解析器(1)词法分析。
- Python写个Basic解析器(1)代码扫描。
- Python写个Basic解析器(1)虚拟机。
- Python写个Basic解析器(1)表达式。
- Python写个Basic解析器(1)解析全局变量声明。
- 关于Basic程序解释器及编译原理的简单化(1)--词法分析和代数式求值
- C++ 代码解析(词法分析、语法分析)
- python词法分析(分词+词性标注)
- 【python】python 入门<1>——python词法和解析器
- 准备写个词法分析器~~
- Python 词法分析 识别数字
- jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——词法解析
- jQuery-1.9.1源码分析系列(三) Sizzle选择器引擎——词法解析
- Atitit.注解解析(1)---------词法分析 attilax总结 java .net
- 编译器-词法解析器
- 词法分析(C++)
- 词法分析(字符串分析)
- 词法分析(字符串分析)
- win7下vc++6.0使用wincap接口时遇到的问题
- 构造函数和析构函数能否声明为虚函数?
- B,K,M,G,T大小转换
- 一个通用的Trie树,标准C++实现
- C语言解惑63页代码错了
- Python写个Basic解析器(1)词法分析。
- noi05-聪聪和可可
- 第七周实验报告任务二
- mysqlbinlog 实用工具
- 第七周任务三(通过模板类的技术手段,设计Complex,使实部和虚部的类型为定义对象时用的实际类型。)
- 第七周C++任务二。三个版本的求两点间距离
- 【android基础】之Android返回键处理(事件)
- Python写个Basic解析器(1)虚拟机。
- 美法官:甲骨文与谷歌专利诉讼无法和解