Example #1
0
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()
Example #2
0
    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")
Example #4
0
 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 = ''
Example #5
0
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()