def setup(precedence_type): if precedence_type == "EVEN": precedence = ( ('left', 'TIMES', 'DIVIDE', 'PLUS', 'MINUS'), ('right', 'UMINUS'), ) if precedence_type == "ADDITION_FIRST": precedence = ( ('left', 'TIMES', 'DIVIDE'), ('left', 'PLUS', 'MINUS'), ('right', 'UMINUS'), ) yacc.yacc()
def __init__(self, script_text, method_registry, logger, conf_paths=None): self.method_registry = method_registry self.logger = logger self.conf_paths = conf_paths if not self.conf_paths: self.conf_paths = [] self.node_map = {} self.conf_map = {} self.__conf_gen_list__ = [] # to record the last loading time stamp for each conf file self.conf_update_ts = {} self.__load_confs__() lexer = lex.lex(module=compile_lexer) syntax = yacc.yacc(module=compile_syntax) syntax.__define_node__ = self.__define_node__ if logger: syntax.__logger__ = logger parser = preparser.Parser() for c in script_text: parser.feed(c) parser.close() self.logger.warning('final shuvi script[%s]' % parser.get_final_script()) syntax.parse(parser.get_final_script(), lexer=lexer)
def Run(): data = main_text.get(1.0, tkinter.END) lexer = lex.lex(optimize=1) lexer.input(data) while True: tok = lexer.token() if not tok: break # print(tok) parser = yacc.yacc() result = parser.parse(data) pop_up.showinfo("Done", "Program Run With No More Error")
def __init__(self, **yacc_args): self.lexer = Lexer() self.yacc_args = yacc_args self.parser = yacc.yacc(module=self, **yacc_args) self.root = 'Something error' self.asgn_count = 0 self.cond_count = 0 self.block_count = 1 self.asgn_buffer = [] self.stmt_buffer = [] self.block_temp = None self.stmt_temp = None self.block_temp_true = None self.block_temp_false = None self.if_flag = self.flag_root self.condition = ''
def p_empty(p): """ empty : """ pass def p_error(p): print("syntax error", p.lineno) if __name__ == "__main__": lexer = lex.lex(module=lexer_lex) parser = yacc.yacc(debug=True) with open(sys.argv[1], "rt") as f: data = f.read() lexer.input(data) result = parser.parse(data) print(result) print() print() print() print("Printing SYMBOL_TABLE") print(symtab) print() print() print()