编译原理 课程设计(Python)
说明语句的词法分析器
lookup_dic = {
'const': 1, ';': 2, ',': 3, '=': 4, }
symbols = ['const', ';', ',', '=']
const_type = ['integer', 'float', 'string', 'char']
def emit(value, type_str):
emit_index = 'var'
emit_value = value
if type_str == 'num':
if '.' in value:
emit_index = 'float'
else:
emit_index = 'integer'
if value[0] == '0':
print('\n【Error】:')
error_msg = 'The integer can’t be started with ‘0’'
print(error_msg, ':', value)
emit_value = error_msg
elif type_str == 'char':
emit_index = 'char'
if len(value) == 3:
pass
else:
print('\n【Error】:')
error_msg = 'There are more than one char in ‘’:'
print(error_msg, value, end=