• R/O
  • SSH

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

Castle: The best Real-Time/Embedded/HighTech language EVER. Attempt 2


Commit MetaInfo

Revisãobe541e58affa82256baba6e1a93d0fa01f1d6cb6 (tree)
Hora2022-04-20 21:34:01
AutorAlbert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Mensagem de Log

Removed onld DEMO file

Mudança Sumário

  • delete: demos/readers/parser/__init__.py
  • delete: demos/readers/parser/test_Rule.py

Diff

diff -r 8630266187d0 -r be541e58affa demos/readers/parser/test_Rule.py
--- a/demos/readers/parser/test_Rule.py Tue Apr 19 16:59:48 2022 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,62 +0,0 @@
1-import pytest
2-import logging;logger = logging.getLogger(__name__)
3-
4-from castle.readers.parser import grammar
5-
6-import arpeggio
7-
8-def format_node(n):
9- return f"\tNODE:: {n!r}:{type(n)}"
10-
11-def format_children(l):
12- if l is None: return "~~~Forget to pass children~~~"
13- if len(l)<1: return "\tCHILDREN: None"
14- return ("\n\tCHILDREN::" + ", ".join(f'>>{c}<<' for c in l))
15-
16-def show_visited(label="VISIT_", node=None, children=None):
17- nl= "\n" if label[-1] != '_' else ""
18- logger.info(f'{label}{nl}{format_node(node)}{format_children(children)}')
19-
20-
21-
22-class DemoVisitor(arpeggio.PTNodeVisitor):
23- def visit__default__(self, node, children):
24- show_visited('visit__default__', node, children)
25- return (node, children)
26- def visit_rule(self, node, children):
27- show_visited('visit_rule', node, children)
28- return (node, children)
29- def visit_ordered_choice(self, node, children):
30- show_visited('ordered_choice', node, children)
31- return (node, children)
32-
33- def visit_rule_name(self, node, children):
34- show_visited('VISIT_rule_name', node, children)
35- return (node, children)
36- def visit_rule_crossref(self, node, children):
37- show_visited('VISIT_rule_crossref', node, children)
38- return (node, children)
39-
40-
41-
42-def _test_Rule():
43- TXT= """RULE_NAME <- EXP1 EXP2 ;"""
44- parse_tree = arpeggio.ParserPython(language_def=grammar.rule).parse(TXT)
45-
46- print("\nPARSE-TREE\n" + parse_tree.tree_str()+'\n')
47-
48- ast = arpeggio.visit_parse_tree(parse_tree, DemoVisitor())
49- print("\nAST:\t" + ast)
50-
51-
52-def QAZ(txt, rule, label=None):
53- if label: print(f'\nLABEL: {label}')
54- parse_tree = arpeggio.ParserPython(language_def=rule).parse(txt)
55- print("PARSE-TREE\n" + parse_tree.tree_str()+'\n')
56-
57- ast = arpeggio.visit_parse_tree(parse_tree, DemoVisitor())
58- print("AST:\t", ast)
59-
60-def test_QAZ_rule_name(): QAZ("""aName""", grammar.rule_name, label="rule_name")
61-def test_QAZ_rule_crossref(): QAZ("""aName""", grammar.rule_crossref, label="rule_crossref")
62-def test_QAZ_expression(): QAZ("""aName""", grammar.expression, label="expression")