Пример #1
0
 def test_with_name(self):
     grammar = '\n'.join([
         'import base.bnf', '', 'Grammar: MySpecialGrammar', '',
         '<A> ::= "SPECIAL"'
     ])
     tree = Parser().parse(grammar)
     name = next(tree.filter(Node.is_name))
     self.assertEqual(
         name.value,
         'MySpecialGrammar',
     )
     py_repr = tree.to_python()
     self.assertTrue('class MySpecialGrammar' in py_repr)
Пример #2
0
    def test_external_filename_preserved_in_both_python_and_bnf(self):
        external = ('from darglint.parse.identifiers import (\n'
                    '    ArgumentIdentifier,\n'
                    '    NoqaIdentifier,\n'
                    ')')
        grammar = f'''
        {external}

        <A> ::= "A"
        '''
        node = Parser().parse(grammar)
        self.assertTrue(external in str(node))
        self.assertTrue(external in node.to_python())