Castle: The best Real-Time/Embedded/HighTech language EVER. Attempt 2
Revisión | 5661f00112dabd1905805cd7eaf332be9a6e6a2b (tree) |
---|---|
Tiempo | 2022-02-08 06:02:05 |
Autor | Albert Mietus < albert AT mietus DOT nl > |
Commiter | Albert Mietus < albert AT mietus DOT nl > |
'make demos' works again (asis)
@@ -5,4 +5,6 @@ | ||
5 | 5 | .*\.dot |
6 | 6 | .*/pyreversed |
7 | 7 | |
8 | -demos/ThinOnion/OUT_* | |
\ No newline at end of file | ||
8 | +demos/ThinOnion/OUT_* | |
9 | +OUT_* | |
10 | + |
@@ -11,9 +11,15 @@ | ||
11 | 11 | pytest ${PYTEST_OPTONS} -s pytst |
12 | 12 | test-ds test-sd test-d: |
13 | 13 | pytest ${PYTEST_OPTONS} --log-cli-level=DEBUG -s pytst/ |
14 | -demo: | |
14 | + | |
15 | +demo: pytest-demo python-demo | |
16 | + | |
17 | +python-demo: | |
18 | + @echo Running all 'dem*.py' python-files | |
19 | + for d in `find demos -type f -iname \*.py `; do echo "=== $$d ==="; python $$d; echo "=========="; done | |
20 | + | |
21 | +pytest-demo: | |
15 | 22 | pytest -s demos |
16 | - @echo run other demos by hand | |
17 | 23 | |
18 | 24 | |
19 | 25 | missing_visitor: castle/readers/parser/grammar.py |
@@ -22,9 +28,9 @@ | ||
22 | 28 | echo "Warning: $${R} has no visitor (nor is marked as to need none)" ;\ |
23 | 29 | fi ;\ |
24 | 30 | done |
25 | -QAZ := ${shell grep '^ *class ' castle/ast/peg.py | sed 's/class //g' | sed 's/[:( ].*$$//g' } | |
31 | + | |
26 | 32 | missing_serialization: |
27 | - @for R in ${QAZ} ; do \ | |
33 | + @for R in ${shell grep '^ *class ' castle/ast/peg.py | sed 's/class //g' | sed 's/[:( ].*$$//g' } ; do \ | |
28 | 34 | if ! grep -q -E "^ *((def)|(# *NO_VISITOR_NEEDED:)) $${R}2xml" castle/ast/ast2xml.py > /dev/null ; then\ |
29 | 35 | echo "Warning: $${R} has no xml-serializer (nor is marked as to need none)" ;\ |
30 | 36 | fi ;\ |
@@ -22,14 +22,14 @@ | ||
22 | 22 | |
23 | 23 | |
24 | 24 | def demo_4A(): |
25 | - rules = [ peg.Rule( name=r['name'], expr=r['expr']) for r in demo_3_rules] | |
25 | + rules = [ peg.Rule( name=peg.ID(name=r['name']), expr=r['expr']) for r in demo_3_rules] | |
26 | 26 | settings = [ peg.Setting( name=s['name'], value=s['value']) for s in demo_3_settings] |
27 | 27 | |
28 | 28 | producer = Demo1(default_template='file.jinja2') |
29 | 29 | return producer.render(rules=rules, settings=settings) |
30 | 30 | |
31 | 31 | def demo_4B(): |
32 | - rules = [ peg.Rule( name=r['name'], expr=r['expr']) for r in demo_3_rules] | |
32 | + rules = [ peg.Rule( name=peg.ID(name=r['name']), expr=r['expr']) for r in demo_3_rules] | |
33 | 33 | settings = [ peg.Setting( name=s['name'], value=s['value']) for s in demo_3_settings] |
34 | 34 | grammar = peg.Grammar(rules=rules, settings=settings) |
35 | 35 |
@@ -1,7 +1,8 @@ | ||
1 | 1 | import pytest |
2 | 2 | import logging;logger = logging.getLogger(__name__) |
3 | 3 | |
4 | -import grammar | |
4 | +from castle.readers.parser import grammar | |
5 | + | |
5 | 6 | import arpeggio |
6 | 7 | |
7 | 8 | def format_node(n): |