Example #1
0
File: main.py Project: moreati/glop
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()
Example #2
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()
Example #3
0
File: main.py Project: moreati/glop
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()
Example #4
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()
Example #5
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()
 def check(self, text, ast=None, dedent=True, err=None):
     text_to_parse = textwrap.dedent(text) if dedent else text
     parser = HandRolledGrammarParser(text_to_parse, 'glop.g')
     actual_ast, actual_err = parser.parse()
     self.assertEqual(actual_ast, ast)
     self.assertEqual(actual_err, err)