Source code

Revision control

Copy as Markdown

Other Tools

import unittest
import jsparagus.gen
from jsparagus import parse_pgen, parse_pgen_generated
class ParsePgenTestCase(unittest.TestCase):
def test_self(self):
import os
filename = os.path.join(os.path.dirname(parse_pgen.__file__), "..",
"pgen.pgen")
grammar = parse_pgen.load_grammar(filename)
self.maxDiff = None
pgen_grammar = parse_pgen.pgen_grammar
self.assertEqual(pgen_grammar.nonterminals, grammar.nonterminals)
self.assertEqual(pgen_grammar.variable_terminals,
grammar.variable_terminals)
self.assertEqual(pgen_grammar.goals(), grammar.goals())
with open(parse_pgen_generated.__file__) as f:
pre_generated = f.read()
import io
out = io.StringIO()
jsparagus.gen.generate_parser(out, grammar)
generated_from_file = out.getvalue()
self.maxDiff = None
self.assertEqual(pre_generated, generated_from_file)
if __name__ == '__main__':
unittest.main()