Lines Matching full:node
15 def emit_union_declaration(environment: Environment, node: _XdrUnion) -> None:
17 if node.name in public_apis:
19 print(template.render(name=node.name))
23 environment: Environment, node: _XdrDeclaration
26 assert isinstance(node, _XdrBasic)
30 name=node.name,
31 type=node.spec.type_name,
32 classifier=node.spec.c_classifier,
38 environment: Environment, node: _XdrDeclaration
41 if isinstance(node.arm, _XdrVoid):
43 assert isinstance(node.arm, _XdrBasic)
47 name=node.arm.name,
48 type=node.arm.spec.type_name,
49 classifier=node.arm.spec.c_classifier,
54 def emit_union_definition(environment: Environment, node: _XdrUnion) -> None:
57 print(template.render(name=node.name))
59 emit_union_switch_spec_definition(environment, node.discriminant)
61 for case in node.cases:
64 if node.default is not None:
65 emit_union_case_spec_definition(environment, node.default)
68 print(template.render(name=node.name))
72 environment: Environment, node: _XdrDeclaration
75 assert isinstance(node, _XdrBasic)
77 print(template.render(name=node.name, type=node.spec.type_name))
81 environment: Environment, node: _XdrCaseSpec, big_endian_discriminant: bool
85 if isinstance(node.arm, _XdrVoid):
92 for case in node.values:
95 assert isinstance(node.arm, _XdrBasic)
96 template = get_jinja2_template(environment, "decoder", node.arm.template)
99 name=node.arm.name,
100 type=node.arm.spec.type_name,
101 classifier=node.arm.spec.c_classifier,
109 def emit_union_default_spec_decoder(environment: Environment, node: _XdrUnion) -> None:
111 default_case = node.default
114 if default_case is None and node.discriminant.spec.type_name == "bool":
136 def emit_union_decoder(environment: Environment, node: _XdrUnion) -> None:
139 print(template.render(name=node.name))
141 emit_union_switch_spec_decoder(environment, node.discriminant)
143 for case in node.cases:
147 node.discriminant.spec.type_name in big_endian,
150 emit_union_default_spec_decoder(environment, node)
157 environment: Environment, node: _XdrDeclaration
160 assert isinstance(node, _XdrBasic)
162 print(template.render(name=node.name, type=node.spec.type_name))
166 environment: Environment, node: _XdrCaseSpec, big_endian_discriminant: bool
170 if isinstance(node.arm, _XdrVoid):
177 for case in node.values:
180 template = get_jinja2_template(environment, "encoder", node.arm.template)
183 name=node.arm.name,
184 type=node.arm.spec.type_name,
192 def emit_union_default_spec_encoder(environment: Environment, node: _XdrUnion) -> None:
194 default_case = node.default
197 if default_case is None and node.discriminant.spec.type_name == "bool":
217 def emit_union_encoder(environment, node: _XdrUnion) -> None:
220 print(template.render(name=node.name))
222 emit_union_switch_spec_encoder(environment, node.discriminant)
224 for case in node.cases:
228 node.discriminant.spec.type_name in big_endian,
231 emit_union_default_spec_encoder(environment, node)
237 def emit_union_maxsize(environment: Environment, node: _XdrUnion) -> None:
239 macro_name = get_header_name().upper() + "_" + node.name + "_sz"
244 width=" + ".join(node.symbolic_width()),
257 def emit_declaration(self, node: _XdrUnion) -> None:
259 emit_union_declaration(self.environment, node)
261 def emit_definition(self, node: _XdrUnion) -> None:
263 emit_union_definition(self.environment, node)
265 def emit_decoder(self, node: _XdrUnion) -> None:
267 emit_union_decoder(self.environment, node)
269 def emit_encoder(self, node: _XdrUnion) -> None:
271 emit_union_encoder(self.environment, node)
273 def emit_maxsize(self, node: _XdrUnion) -> None:
275 emit_union_maxsize(self.environment, node)