def load_python_file(moduleobject): """ Try to create an indexable instance from a module""" if isinstance(moduleobject, str): moduleobject = load_module(moduleobject) if not hasattr(moduleobject, "iclass"): raise KeyError("Element" + str(moduleobject)) iclass = getattr(moduleobject, "iclass") resultdic = {} mylist = list( filter(lambda x: x[:1] != "_" and x != "iclass", (dir(moduleobject)))) for x in mylist: resultdic[x] = getattr(moduleobject, x) if iclass == "SymbolGrammar": from pydsl.Grammar.BNF import BNFGrammar return BNFGrammar(**resultdic) elif iclass == "PLY": from pydsl.Grammar.Definition import PLYGrammar return PLYGrammar(moduleobject) elif iclass == "MongoDict": from pydsl.Grammar.Definition import MongoGrammar return MongoGrammar(resultdic) elif iclass in ["PythonGrammar"]: from pydsl.Grammar.Definition import PythonGrammar return PythonGrammar(resultdic) elif iclass == "PythonTransformer": return resultdic elif iclass == "pyparsing": return resultdic['root_symbol'] else: raise ValueError(str(moduleobject))
def testCheck(self): """Test checker instantiation and call""" from pydsl.Check import PLYChecker from pydsl.contrib.grammar import example_ply from pydsl.Grammar.Definition import PLYGrammar grammardef = PLYGrammar(example_ply) checker = PLYChecker(grammardef) self.assertTrue(checker.check("O")) self.assertTrue(checker.check(["O"])) self.assertFalse(checker.check("FALSE"))
class TestGrammarDefinitionPLY(unittest.TestCase): def setUp(self): import plye from pydsl.Grammar.Definition import PLYGrammar self.grammardef = PLYGrammar(plye) @unittest.skip def testEnumerate(self): self.grammardef.enum() @unittest.skip def testFirst(self): self.grammardef.first @unittest.skip def testMin(self): self.grammardef.minsize @unittest.skip def testMax(self): self.grammardef.maxsize def testAlphabet(self): self.assertListEqual(self.grammardef.alphabet, Alphabet)
def setUp(self): import plye from pydsl.Grammar.Definition import PLYGrammar self.grammardef = PLYGrammar(plye)