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))
80 def emit_union_case_spec_decoder(environment: Environment, node: _XdrCaseSpec) -> None:
83 if isinstance(node.arm, _XdrVoid):
87 for case in node.values:
90 assert isinstance(node.arm, _XdrBasic)
91 template = get_jinja2_template(environment, "decoder", node.arm.template)
94 name=node.arm.name,
95 type=node.arm.spec.type_name,
96 classifier=node.arm.spec.c_classifier,
104 def emit_union_default_spec_decoder(environment: Environment, node: _XdrUnion) -> None:
106 default_case = node.default
109 if default_case is None and node.discriminant.spec.type_name == "bool":
131 def emit_union_decoder(environment: Environment, node: _XdrUnion) -> None:
134 print(template.render(name=node.name))
136 emit_union_switch_spec_decoder(environment, node.discriminant)
138 for case in node.cases:
141 emit_union_default_spec_decoder(environment, node)
148 environment: Environment, node: _XdrDeclaration
151 assert isinstance(node, _XdrBasic)
153 print(template.render(name=node.name, type=node.spec.type_name))
156 def emit_union_case_spec_encoder(environment: Environment, node: _XdrCaseSpec) -> None:
159 if isinstance(node.arm, _XdrVoid):
163 for case in node.values:
166 assert isinstance(node.arm, _XdrBasic)
167 template = get_jinja2_template(environment, "encoder", node.arm.template)
170 name=node.arm.name,
171 type=node.arm.spec.type_name,
179 def emit_union_default_spec_encoder(environment: Environment, node: _XdrUnion) -> None:
181 default_case = node.default
184 if default_case is None and node.discriminant.spec.type_name == "bool":
205 def emit_union_encoder(environment, node: _XdrUnion) -> None:
208 print(template.render(name=node.name))
210 emit_union_switch_spec_encoder(environment, node.discriminant)
212 for case in node.cases:
215 emit_union_default_spec_encoder(environment, node)
229 def emit_declaration(self, node: _XdrUnion) -> None:
231 emit_union_declaration(self.environment, node)
233 def emit_definition(self, node: _XdrUnion) -> None:
235 emit_union_definition(self.environment, node)
237 def emit_decoder(self, node: _XdrUnion) -> None:
239 emit_union_decoder(self.environment, node)
241 def emit_encoder(self, node: _XdrUnion) -> None:
243 emit_union_encoder(self.environment, node)