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 if isinstance(node.arm, _XdrString):
47 type_name = node.arm.spec.type_name
48 classifier = node.arm.spec.c_classifier
50 assert isinstance(node.arm, (_XdrBasic, _XdrString))
54 name=node.arm.name,
61 def emit_union_definition(environment: Environment, node: _XdrUnion) -> None:
64 print(template.render(name=node.name))
66 emit_union_switch_spec_definition(environment, node.discriminant)
68 for case in node.cases:
71 if node.default is not None:
72 emit_union_case_spec_definition(environment, node.default)
75 print(template.render(name=node.name))
79 environment: Environment, node: _XdrDeclaration
82 assert isinstance(node, _XdrBasic)
84 print(template.render(name=node.name, type=node.spec.type_name))
88 environment: Environment, node: _XdrCaseSpec
92 if isinstance(node.arm, _XdrVoid):
94 if isinstance(node.arm, _XdrString):
98 type_name = node.arm.spec.type_name
99 classifier = node.arm.spec.c_classifier
101 assert isinstance(node.arm, (_XdrBasic, _XdrString))
102 template = get_jinja2_template(environment, "decoder", node.arm.template)
105 name=node.arm.name,
113 environment: Environment, node: _XdrCaseSpec, big_endian_discriminant: bool
117 if isinstance(node.arm, _XdrVoid):
119 if isinstance(node.arm, _XdrString):
123 type_name = node.arm.spec.type_name
124 classifier = node.arm.spec.c_classifier
130 for case in node.values:
133 assert isinstance(node.arm, (_XdrBasic, _XdrString))
134 template = get_jinja2_template(environment, "decoder", node.arm.template)
137 name=node.arm.name,
147 def emit_union_default_spec_decoder(environment: Environment, node: _XdrUnion) -> None:
149 default_case = node.default
152 if default_case is None and node.discriminant.spec.type_name == "bool":
174 def emit_union_decoder(environment: Environment, node: _XdrUnion) -> None:
177 print(template.render(name=node.name))
180 if node.discriminant.spec.type_name == "bool":
182 print(template.render(name=node.discriminant.name, type=node.discriminant.spec.type_name))
185 for case in node.cases:
193 emit_union_switch_spec_decoder(environment, node.discriminant)
195 for case in node.cases:
199 node.discriminant.spec.type_name in big_endian,
202 emit_union_default_spec_decoder(environment, node)
209 environment: Environment, node: _XdrDeclaration
212 assert isinstance(node, _XdrBasic)
214 print(template.render(name=node.name, type=node.spec.type_name))
218 environment: Environment, node: _XdrCaseSpec
222 if isinstance(node.arm, _XdrVoid):
224 if isinstance(node.arm, _XdrString):
227 type_name = node.arm.spec.type_name
229 assert isinstance(node.arm, (_XdrBasic, _XdrString))
230 template = get_jinja2_template(environment, "encoder", node.arm.template)
233 name=node.arm.name,
240 environment: Environment, node: _XdrCaseSpec, big_endian_discriminant: bool
244 if isinstance(node.arm, _XdrVoid):
246 if isinstance(node.arm, _XdrString):
249 type_name = node.arm.spec.type_name
254 for case in node.values:
257 template = get_jinja2_template(environment, "encoder", node.arm.template)
260 name=node.arm.name,
269 def emit_union_default_spec_encoder(environment: Environment, node: _XdrUnion) -> None:
271 default_case = node.default
274 if default_case is None and node.discriminant.spec.type_name == "bool":
294 def emit_union_encoder(environment, node: _XdrUnion) -> None:
297 print(template.render(name=node.name))
300 if node.discriminant.spec.type_name == "bool":
302 print(template.render(name=node.discriminant.name, type=node.discriminant.spec.type_name))
305 for case in node.cases:
313 emit_union_switch_spec_encoder(environment, node.discriminant)
315 for case in node.cases:
319 node.discriminant.spec.type_name in big_endian,
322 emit_union_default_spec_encoder(environment, node)
328 def emit_union_maxsize(environment: Environment, node: _XdrUnion) -> None:
330 macro_name = get_header_name().upper() + "_" + node.name + "_sz"
335 width=" + ".join(node.symbolic_width()),
348 def emit_declaration(self, node: _XdrUnion) -> None:
350 emit_union_declaration(self.environment, node)
352 def emit_definition(self, node: _XdrUnion) -> None:
354 emit_union_definition(self.environment, node)
356 def emit_decoder(self, node: _XdrUnion) -> None:
358 emit_union_decoder(self.environment, node)
360 def emit_encoder(self, node: _XdrUnion) -> None:
362 emit_union_encoder(self.environment, node)
364 def emit_maxsize(self, node: _XdrUnion) -> None:
366 emit_union_maxsize(self.environment, node)