def compile(self, grammar): """ Produce an object capable of parsing via this grammar. @param grammar: A string containing an OMeta grammar. """ from pymeta.grammar import OMetaGrammar, NullOptimizer g = OMetaGrammar(dedent(grammar)) tree = g.parseGrammar('TestGrammar', TreeBuilder) opt = NullOptimizer([tree]) opt.builder = TreeBuilder("TestGrammar", opt) tree, err = opt.apply("grammar") grammarClass = moduleFromGrammar(tree, 'TestGrammar', OMetaBase, {}) return HandyWrapper(grammarClass)
def compile(self, grammar): """ Produce an object capable of parsing via this grammar. @param grammar: A string containing an OMeta grammar. """ from pymeta.grammar import OMetaGrammar, NullOptimizer g = OMetaGrammar(grammar) tree = g.parseGrammar('TestGrammar', TreeBuilder) opt = NullOptimizer([tree]) opt.builder = AstBuilder("<grammar>", opt) methodDict = opt.apply("grammar") grammarClass = type("<grammar>", (OMetaBase,), methodDict) return HandyWrapper(grammarClass)
def compile(self, grammar): """ Produce an object capable of parsing via this grammar. @param grammar: A string containing an OMeta grammar. """ from pymeta.grammar import OMetaGrammar, NullOptimizer g = OMetaGrammar(grammar) tree = g.parseGrammar('TestGrammar', TreeBuilder) opt = NullOptimizer([tree]) opt.builder = TreeBuilder("TestGrammar", opt) tree, err = opt.apply("grammar") grammarClass = moduleFromGrammar(tree, 'TestGrammar', OMetaBase, {}) return HandyWrapper(grammarClass)
def compile(self, grammar): """ Produce an object capable of parsing via this grammar. @param grammar: A string containing an OMeta grammar. """ from pymeta.grammar import OMetaGrammar, NullOptimizer g = OMetaGrammar(grammar) tree = g.parseGrammar('TestGrammar', TreeBuilder) opt = NullOptimizer([tree]) opt.builder = AstBuilder("<grammar>", opt) methodDict = opt.apply("grammar") grammarClass = type("<grammar>", (OMetaBase, ), methodDict) return HandyWrapper(grammarClass)