Esempio n. 1
0
def print_grammar(grammar_txt, grammar_fname):
    g_parser = HandRolledGrammarParser(grammar_txt, grammar_fname)
    g_ast, err = g_parser.parse()
    if err:
        return None, err

    g, _ = Analyzer(g_ast).analyze()
    printer = GrammarPrinter(g)
    return printer.parse()
Esempio n. 2
0
def compile_grammar(grammar_txt, grammar_fname, compiled_parser_class_name,
                    package, inline_base):
    g_parser = HandRolledGrammarParser(grammar_txt, grammar_fname)
    g_ast, err = g_parser.parse()
    if err:
        return None, err

    g, _ = Analyzer(g_ast).analyze()
    compiler = Compiler(g, compiled_parser_class_name, package, inline_base)
    return compiler.walk()
Esempio n. 3
0
def parse(grammar_txt,
          input_txt,
          grammar_fname='',
          input_fname='',
          use_compiled_grammar_parser=False):
    if use_compiled_grammar_parser:
        g_parser = CompiledGrammarParser(grammar_txt, grammar_fname)
    else:
        g_parser = HandRolledGrammarParser(grammar_txt, grammar_fname)
    g_ast, err = g_parser.parse()
    if err:
        return None, err

    g, _ = Analyzer(g_ast).analyze()
    interp = Interpreter(g, input_txt, input_fname)
    return interp.parse()