def main(): prepare_grammar() lexer.read_source_file('1.c') do_parsing() print("SYMBOL TABLE") print("------------") print_symbol_table() print('\n') print("CODE") print("------------") print_code_result()
def main(): resourceFile = input('请输入源文件路径:') import os while not os.path.exists(resourceFile): resourceFile = input('文件不存在,请输入源文件路径') prepare_grammar() lexer.read_source_file(resourceFile) do_parsing() print("SYMBOL TABLE") print("------------") print_symbol_table() print('\n') print("CODE") print("------------") print_code_result()
def clear(): global input_file global analysis global TERMINAL_SET global NON_TERMINAL_SET global SYMBOL_DICT global PRODUCTION_LIST global PARSING_TABLE global SEMA_ACTION_TABLE global SYMBOL_STACK global LAST_STACK_TOP_SYMBOL global CODE_SIZE global CODE_RESULT global current_symbol_table_pos global current_symbol_index global CURRENT_CONDITION_NODE global SYMBOL_TABLE input_raw = code.get(1.0, END) lexer.read_source_file(input_raw) analysis.delete(1.0, END) TERMINAL_SET = set() NON_TERMINAL_SET = set() SYMBOL_DICT = {} PRODUCTION_LIST = [] PARSING_TABLE = {} SYMBOL_STACK = [] SYMBOL_TABLE = [] LAST_STACK_TOP_SYMBOL = None CODE_SIZE = 0 CODE_RESULT = [] current_symbol_table_pos = 0 current_symbol_index = 0 CURRENT_CONDITION_NODE = None SYMBOL_TABLE = []
def main(): prepare_grammar() lexer.read_source_file('1.c') do_parsing() print_symbol_table()