• R/O
  • SSH

提交

标签
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

修订版2f2ee2f28a8e65eca88b5ba513bb28745a00bac6 (tree)
时间2023-02-22 01:03:52
作者Albert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Log Message

asis

更改概述

差异

diff -r 54ed798bdf8c -r 2f2ee2f28a8e .hgignore
--- a/.hgignore Tue Feb 21 00:25:39 2023 +0100
+++ b/.hgignore Tue Feb 21 17:03:52 2023 +0100
@@ -17,3 +17,4 @@
1717 castle/writers/CC2Cpy/_ComponentClass.c
1818 castle/writers/CC2Cpy/_SIEVE.c
1919 castle/writers/CC2Cpy/jinja_hack.py
20+.mypy_cache
diff -r 54ed798bdf8c -r 2f2ee2f28a8e Makefile
--- a/Makefile Tue Feb 21 00:25:39 2023 +0100
+++ b/Makefile Tue Feb 21 17:03:52 2023 +0100
@@ -63,8 +63,6 @@
6363 PYTHONPATH=`pwd` pytest ${PYTEST_OPTONS} ${TODO_TESTS}
6464 current-ds current-sd:
6565 PYTHONPATH=`pwd` pytest ${PYTEST_OPTONS} --log-cli-level=DEBUG -s ${CURRENT_TESTS}
66-
67-
6866 demo: pytest-demo python-demo
6967
7068 python-demo:
diff -r 54ed798bdf8c -r 2f2ee2f28a8e castle/writers/CC2Cpy/Component.py
--- a/castle/writers/CC2Cpy/Component.py Tue Feb 21 00:25:39 2023 +0100
+++ b/castle/writers/CC2Cpy/Component.py Tue Feb 21 17:03:52 2023 +0100
@@ -30,8 +30,8 @@
3030 count += len(self.ports)
3131 return count
3232
33- def find_port_by_name(self,name:str) -> CC_Port:
34- return next(p for p in self.ports if p.name=='try')
33+ def find_port_by_name(self, name:str) -> CC_Port:
34+ return next(p for p in self.ports if p.name==name)
3535
3636 def render(self, prepend:str="", indent:str=" ") ->str:
3737 return (
@@ -138,17 +138,26 @@
138138 Those functions are collected in CC_B_methodHandler-array and CC_B_eventHandler-arrays (aka dispatch-tables).
139139 those are NOW generated here*/"""
140140
141+
142+
143+
144+
145+
141146 def render_Fill_MethodHandlers(self, prepend:str="", indent:str=" ") ->str:
142147 retval = []
143- retval.append(f'CC_B_methodHandler cc_S_Sieve_methods[] = {{')
148+ retval.append(f'{prepend}CC_B_methodHandler cc_S_{self._name()}_methods[] = {{')
149+ ### XXX TODO:: loop over base_classes
144150
145- retval.append("""/* TODO: render_Fill_MethodHandlers
146- the local/internal functions & methods
147- Note: cc_S_Sieve_methods is hardcoded
148- */""")
151+ for m in self.methods:
152+ retval.append(f'{prepend}{indent}(CC_B_methodHandler)CC_Mi_{self._name()}__{m.name},')
153+
149154 retval.append(f'}};')
150155 return '\n'.join(retval)+"\n"
151156
157+
158+
159+
160+
152161 def render_Fill_PortHandlers(self, port, prepend:str="", indent:str=" ") ->str:
153162 retval = []
154163
diff -r 54ed798bdf8c -r 2f2ee2f28a8e pytst/writers/CC2Cpy/test_4a_HandlerTables.py
--- a/pytst/writers/CC2Cpy/test_4a_HandlerTables.py Tue Feb 21 00:25:39 2023 +0100
+++ b/pytst/writers/CC2Cpy/test_4a_HandlerTables.py Tue Feb 21 17:03:52 2023 +0100
@@ -16,6 +16,11 @@
1616 (CC_B_methodHandler)CC_Mi_Sieve__init,
1717 };
1818 """
19+ref_sieveMethods="""\
20+CC_B_methodHandler cc_S_Sieve_methods[] = {
21+ (CC_B_methodHandler)CC_Mi_Sieve__init,
22+};
23+"""
1924
2025 ref_TryPort="""\
2126 CC_B_eventHandler cc_S_Sieve_try[] = {
@@ -38,7 +43,7 @@
3843 assert CCompare(ref_sieveMethods,dispatch_table, log_all=True)
3944
4045 TRY="fill_in_later"
41-#@pytest.mark.skip
46+@pytest.mark.skip
4247 def test_TryPortHandlers(sieveClass):
4348 dispatch_table= sieveClass.render_Fill_PortHandlers(TRY)
4449 logger.debug("\n%s\n", dispatch_table)
diff -r 54ed798bdf8c -r 2f2ee2f28a8e pytst/writers/CC2Cpy/test_9_genSieve.py
--- a/pytst/writers/CC2Cpy/test_9_genSieve.py Tue Feb 21 00:25:39 2023 +0100
+++ b/pytst/writers/CC2Cpy/test_9_genSieve.py Tue Feb 21 17:03:52 2023 +0100
@@ -40,7 +40,7 @@
4040 f.write(sieveInterface.render())
4141 verify_it_compiles(f.name, tmp_path)
4242
43-#@pytest.mark.skip(reason="sieveClass refer to ``cc_B_Sieve_methods`` and ``CC_C_Sieve`` which aren't renderable yet. See test-4")
43+@pytest.mark.skip(reason="sieveClass refer to ``cc_B_Sieve_methods`` and ``CC_C_Sieve`` which aren't renderable yet. See test-4")
4444 def test_1b_ProtoInterClass(simpleSieveProto, sieveInterface, sieveClass, tmp_path):
4545 FILE="sieve-ProtoInterClass.c"
4646 with open(tmp_path/FILE, 'w') as f: