Example #1
0
def _metagrammar():
    gstring = util.builtin_grammar("meta.bkgrammar")

    # Use the bootstrap parser to parse the meta grammar
    mg = p.BootGrammar().parse(gstring)
    assert isinstance(mg, p.Grammar)

    # Use the meta-grammar to parse itself
    mg2 = mg.parse(gstring)
    return mg2
Example #2
0
def test_parse_meta():
    gstring = util.builtin_grammar("meta.bkgrammar")

    # Use the bootstrap parser to parse the meta grammar
    mg = p.BootGrammar().parse(gstring)
    assert isinstance(mg, p.Grammar)

    # Use the meta-grammar to parse itself
    mg2 = mg.parse(gstring)

    rd1 = mg.ruledict
    rd2 = mg2.ruledict

    # Check that the results are the same
    assert rd1.keys() == rd2.keys()
    pairs = [(rd1[k], rd2[k]) for k in sorted(rd1.keys())]
    for r1, r2 in pairs:
        if r1 != r2:
            r1.dump()
            r2.dump()
        assert r1 == r2
Example #3
0
def setup_module():
    global wg

    gstring = util.builtin_grammar("wiki.bkgrammar")
    wg = _parse_wiki_grammar(gstring)
Example #4
0
def test_parse_meta_string():
    gstring = util.builtin_grammar("meta.bkgrammar")
    bg = p.BootGrammar()
    #bg.context.tracing = True
    out, i = bg.context["rule"].accept(gstring, 0, bg.context)
    assert out is not p.Miss