mirror of
				https://github.com/mozilla/gecko-dev.git
				synced 2025-11-04 02:09:05 +02:00 
			
		
		
		
	Differential Revision: https://phabricator.services.mozilla.com/D64170 --HG-- extra : moz-landing-system : lando
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
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()
 |