'''
定义代码入口点,虚拟机运行时将从它指定的地方开始运行。
'''
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')