• R/O
  • SSH

Commit

Tags
Keine 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

Revisionef8e21a1d01e06ea2d0c9e2c93fbde909dd39c59 (tree)
Zeit2023-10-06 23:03:43
AutorAlbert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Log Message

Refacrored RPy-templated: split into subdirs

Ändern Zusammenfassung

Diff

diff -r 0631b1df53f4 -r ef8e21a1d01e castle/writers/RPy/templates/CastleMacros.jinja2
--- a/castle/writers/RPy/templates/CastleMacros.jinja2 Fri Oct 06 15:47:43 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,15 +0,0 @@
1-{#- (C) Albert Mietus, 2023. Part of Castle/CCastle project -#}
2-
3-{# See:: http://docideas.mietus.nl/en/default/CCastle/3.Design/B.Workshop/rPY/8.RPY_Jinja.html #}
4-
5-
6-{%macro ProtocolName(ProtoName) -%}
7- cc_P_{{ProtoName}}
8-{%- endmacro %}
9-
10-{%macro EventIndexName(ProtoName, EventName) -%}
11- CC_P_{{ProtoName}}_{{EventName}}
12-{%- endmacro %}
13-
14-
15-
diff -r 0631b1df53f4 -r ef8e21a1d01e castle/writers/RPy/templates/EventIndexes.jinja2
--- a/castle/writers/RPy/templates/EventIndexes.jinja2 Fri Oct 06 15:47:43 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,18 +0,0 @@
1-{#- (C) Albert Mietus, 2023. Part of Castle/CCastle project -#}
2-{% import "CastleMacros.jinja2" as m %}
3-
4-{# parameters:
5-- ``events`` : PTH.Sequence[aigr.Event]
6-- ``protocol``: aigr.EventProtocol
7-#}
8-
9-{# Note: the caller (:file:`protocol.jinja2` will loop over the sequence of protocols.
10- Or, should we do it here? #}
11-##
12-## EventIndexes (All {{events|length}} events of {{protocol.name}})
13-##
14-
15-{% for e in events %}
16- {{- m.EventIndexName(protocol.name, e.name) }} = {{ protocol.eventIndex(e)}}
17-{% endfor %}
18-
diff -r 0631b1df53f4 -r ef8e21a1d01e castle/writers/RPy/templates/ProtocolDataStructures.jinja2
--- a/castle/writers/RPy/templates/ProtocolDataStructures.jinja2 Fri Oct 06 15:47:43 2023 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
1-{# (C) Albert Mietus, 2023. Part of Castle/CCastle project #}
2-
3-{# parameters: ``protocols``: PTH.Sequence[aigr.EventProtocol]
4-#}
5-
6-{%- import "CastleMacros.jinja2" as m -%}
7-
8-{%- macro Str_or_Type(t) -%}
9- {%- if t is string -%}
10- "{{t}}"
11- {%- else -%}
12- {{t.__name__}}
13- {%- endif -%}
14-{%- endmacro -%}
15-
16-{%- for proto in protocols %}
17- {{- m.ProtocolName(proto.name) }} = buildin.CC_B_Protocol(name="{{ proto.name }}",
18- {% if proto.typedParameters %}
19- parameters=(
20- {% for parm in proto.typedParameters %}
21- ('{{ parm.name}}', {{ Str_or_Type(parm.type) }}),
22- {% endfor %}
23- ), {#- XXX ToDo: parms: tuple, namedType, strings, ... (see event -- use macro?) #}
24-
25- {% endif %}
26- kind=buildin.{{proto.kind}},
27- inherit_from={{m.ProtocolName(proto.based_on.name)}},
28- events=[])
29-
30- {% for e in proto.events %}
31- {{- m.ProtocolName(proto.name) }}.events.append(buildin.CC_B_P_EventID(name="{{- e.name -}}",
32- seqNo={{- m.EventIndexName(proto.name, e.name) }},
33- part_of={{ m.ProtocolName(proto.name) }}))
34- {% endfor %} {#- event #}
35-
36-{% endfor %} {#- protocols #}
diff -r 0631b1df53f4 -r ef8e21a1d01e castle/writers/RPy/templates/macros/CastleMacros.jinja2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/castle/writers/RPy/templates/macros/CastleMacros.jinja2 Fri Oct 06 16:03:43 2023 +0200
@@ -0,0 +1,15 @@
1+{#- (C) Albert Mietus, 2023. Part of Castle/CCastle project -#}
2+
3+{# See:: http://docideas.mietus.nl/en/default/CCastle/3.Design/B.Workshop/rPY/8.RPY_Jinja.html #}
4+
5+
6+{%macro ProtocolName(ProtoName) -%}
7+ cc_P_{{ProtoName}}
8+{%- endmacro %}
9+
10+{%macro EventIndexName(ProtoName, EventName) -%}
11+ CC_P_{{ProtoName}}_{{EventName}}
12+{%- endmacro %}
13+
14+
15+
diff -r 0631b1df53f4 -r ef8e21a1d01e castle/writers/RPy/templates/parts/protocol_DataStructures.jinja2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/castle/writers/RPy/templates/parts/protocol_DataStructures.jinja2 Fri Oct 06 16:03:43 2023 +0200
@@ -0,0 +1,36 @@
1+{# (C) Albert Mietus, 2023. Part of Castle/CCastle project #}
2+
3+{# parameters: ``protocols``: PTH.Sequence[aigr.EventProtocol]
4+#}
5+{% import 'macros/CastleMacros.jinja2' as m %}
6+{#------------------------------------------#}
7+
8+{%- macro Str_or_Type(t) -%}
9+ {%- if t is string -%}
10+ "{{t}}"
11+ {%- else -%}
12+ {{t.__name__}}
13+ {%- endif -%}
14+{%- endmacro -%}
15+
16+{%- for proto in protocols %}
17+ {{- m.ProtocolName(proto.name) }} = buildin.CC_B_Protocol(name="{{ proto.name }}",
18+ {% if proto.typedParameters %}
19+ parameters=(
20+ {% for parm in proto.typedParameters %}
21+ ('{{ parm.name}}', {{ Str_or_Type(parm.type) }}),
22+ {% endfor %}
23+ ), {#- XXX ToDo: parms: tuple, namedType, strings, ... (see event -- use macro?) #}
24+
25+ {% endif %}
26+ kind=buildin.{{proto.kind}},
27+ inherit_from={{m.ProtocolName(proto.based_on.name)}},
28+ events=[])
29+
30+ {% for e in proto.events %}
31+ {{- m.ProtocolName(proto.name) }}.events.append(buildin.CC_B_P_EventID(name="{{- e.name -}}",
32+ seqNo={{- m.EventIndexName(proto.name, e.name) }},
33+ part_of={{ m.ProtocolName(proto.name) }}))
34+ {% endfor %} {#- event #}
35+
36+{% endfor %} {#- protocols #}
diff -r 0631b1df53f4 -r ef8e21a1d01e castle/writers/RPy/templates/parts/protocol_EventIndexes.jinja2
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/castle/writers/RPy/templates/parts/protocol_EventIndexes.jinja2 Fri Oct 06 16:03:43 2023 +0200
@@ -0,0 +1,18 @@
1+{#- (C) Albert Mietus, 2023. Part of Castle/CCastle project -#}
2+{% import 'macros/CastleMacros.jinja2' as m %}
3+
4+{# parameters:
5+- ``events`` : PTH.Sequence[aigr.Event]
6+- ``protocol``: aigr.EventProtocol
7+#}
8+
9+{# Note: the caller (:file:`protocol.jinja2` will loop over the sequence of protocols.
10+ Or, should we do it here? #}
11+##
12+## EventIndexes (All {{events|length}} events of {{protocol.name}})
13+##
14+
15+{% for e in events %}
16+ {{- m.EventIndexName(protocol.name, e.name) }} = {{ protocol.eventIndex(e)}}
17+{% endfor %}
18+
diff -r 0631b1df53f4 -r ef8e21a1d01e castle/writers/RPy/templates/protocol.jinja2
--- a/castle/writers/RPy/templates/protocol.jinja2 Fri Oct 06 15:47:43 2023 +0200
+++ b/castle/writers/RPy/templates/protocol.jinja2 Fri Oct 06 16:03:43 2023 +0200
@@ -1,7 +1,5 @@
11 {% include '_header.jinja2' %}
22 {#--------------------------#}
3-{% import 'CastleMacros.jinja2' as m1 %}
4-{#------------------------------------#}
53
64
75 {# These imports are static #}
@@ -18,10 +16,10 @@
1816 {% block EventIndexes %}
1917 {% for protocol in protocols %}
2018 {% set events = protocol.events %}
21- {% include 'EventIndexes.jinja2' %}
19+ {% include 'parts/protocol_EventIndexes.jinja2' %}
2220 {% endfor %}
2321 {% endblock %}
2422
2523 {% block ProtocolDataStructures %}
26-{% include 'ProtocolDataStructures.jinja2' %}
24+{% include 'parts/protocol_DataStructures.jinja2' %}
2725 {% endblock %}