expr: NAME
"""
grammar = parse_string(grammar_source, GrammarParser)
- print(list(Path(self.tmp_path).iterdir()))
extension = generate_parser_c_extension(grammar, Path(self.tmp_path))
for text in ("a b 42 b a", "名 名 42 名 名"):
try:
"""
rules = parse_string(grammar, GrammarParser).rules
self.assertEqual(str(rules["start"]), "start: ','.thing+ NEWLINE")
- print(repr(rules["start"]))
self.assertTrue(repr(rules["start"]).startswith(
"Rule('start', None, Rhs([Alt([NamedItem(None, Gather(StringLeaf(\"','\"), NameLeaf('thing'"
))
expr: NUMBER
"""
parser_class = make_parser(grammar)
- node = parse_string("(1)", parser_class, verbose=True)
+ node = parse_string("(1)", parser_class)
self.assertEqual(node, [
TokenInfo(OP, string="(", start=(1, 0), end=(1, 1), line="(1)"),
[TokenInfo(NUMBER, string="1", start=(1, 1), end=(1, 2), line="(1)")],
printer.print_grammar_ast(rules, printer=lines.append)
output = "\n".join(lines)
- print()
- print(output)
expected_output = textwrap.dedent(
"""\
└──Rule