• R/O
  • SSH

提交

標籤
無標籤

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

修訂1ac340d435c98f4d18738783f4ddae17c5ef5d57 (tree)
時間2023-01-28 23:06:47
作者Albert Mietus < albert AT mietus DOT nl >
CommiterAlbert Mietus < albert AT mietus DOT nl >

Log Message

asis

Change Summary

差異

diff -r fdd301b5a3cb -r 1ac340d435c9 castle/writers/CC2Cpy/Protocol.py
--- a/castle/writers/CC2Cpy/Protocol.py Sun Jan 22 22:23:18 2023 +0100
+++ b/castle/writers/CC2Cpy/Protocol.py Sat Jan 28 15:06:47 2023 +0100
@@ -77,40 +77,42 @@
7777 var_name = f'cc_P_{self.name}'
7878 based_on_link = f'&cc_P_{self.based_on.name}' if self.based_on else "NULL"
7979
80- retval = ""
81- retval += f'{prepent}struct CC_B_Protocol {var_name} = {{\n'
82- retval += f'{prepent}{indent}.name = "{self.name}",\n'
83- retval += f'{prepent}{indent}.kind = CC_B_ProtocolKindIs_{self.kind.name},\n'
84- retval += f'{prepent}{indent}.inherit_from = {based_on_link},\n'
85- retval += f'{prepent}{indent}.length = {len(self.events)},\n'
80+ retval = []
81+ retval.append(f'{prepent}struct CC_B_Protocol {var_name} = {{')
82+ retval.append(f'{prepent}{indent}.name = "{self.name}",')
83+ retval.append(f'{prepent}{indent}.kind = CC_B_ProtocolKindIs_{self.kind.name},')
84+ retval.append(f'{prepent}{indent}.inherit_from = {based_on_link},')
85+ retval.append(f'{prepent}{indent}.length = {len(self.events)},')
8686
8787 ## For now, loop over the events here ...
88- retval += f'{prepent}{indent}.events = {{\n'
88+ lineval = []
89+ lineval.append(f'{prepent}{indent}.events = {{')
8990 for n, e in enumerate(self.events, len(self.event_dict(inherired=True,mine=False))):
90- retval += f'{prepent}{indent*2}{{'
91- retval += f' .seqNo = {n}, '
92- retval += f' .name = "{e.name}", '
93- retval += f' .part_of = &{var_name} '
94- retval += "},\n"
95- retval += f'{prepent}{indent*2}}}\n'
91+ lineval.append(f'{prepent}{indent*2}{{') # pragma: no mutate
92+ lineval.append(f' .seqNo = {n}, ')
93+ lineval.append(f' .name = "{e.name}", ')
94+ lineval.append(f' .part_of = &{var_name} ')
95+ lineval.append("},\n")
96+ lineval.append(f'{prepent}{indent*2}}}')
9697
97- retval += f'{prepent}}};\n' # end of struct
98- return retval
98+ retval.append("".join(lineval))
99+ retval.append(f'{prepent}}};\n') # end of struct
100+ return '\n'.join(retval) +"\n"
99101
100102 def render_indexes(self, prepent:str="", indent=" ") ->str: ## #define CC_P_<proto>_<event> index
101103 ## For now, loop over the events here ...
102- retval = ""
104+ retval = []
103105 for n, e in enumerate(self.events, len(self.event_dict(inherired=True,mine=False))):
104- retval +=f'#define CC_P_{self.name}_{e.name}\t{n}\n'
105- return retval
106+ retval.append(f'#define CC_P_{self.name}_{e.name}\t{n}\n')
107+ return '\n'.join(retval)+"\n"
106108
107109
108110 def render_FTs(self, prepent:str="", indent=" ") ->str: ##typedef void (*CC_E_{...}_FT)(CC_selfType, CC_ComponentType, {...});
109111 type_name = lambda ptype : ptype if isinstance(ptype, str) else ptype.__name__
110112
111- retval = ""
113+ retval = []
112114 for e in self.events:
113115 types =" , ".join(f'{type_name(parm.type)}' for parm in e.typedParameters)
114- retval += f'typedef void (*CC_E_{self.name}_{e.name}_FT)(CC_selfType, CC_ComponentType, {types});\n'
115- return retval
116+ retval.append( f'typedef void (*CC_E_{self.name}_{e.name}_FT)(CC_selfType, CC_ComponentType, {types});')
117+ return '\n'.join(retval)+"\n"
116118