~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/tools/net/sunrpc/xdrgen/generators/enum.py

Version: ~ [ linux-6.12-rc7 ] ~ [ linux-6.11.7 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.60 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.116 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.171 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.229 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.285 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.323 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.12 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 #!/usr/bin/env python3
  2 # ex: set filetype=python:
  3 
  4 """Generate code to handle XDR enum types"""
  5 
  6 from generators import SourceGenerator, create_jinja2_environment
  7 from xdr_ast import _XdrEnum, public_apis
  8 
  9 
 10 class XdrEnumGenerator(SourceGenerator):
 11     """Generate source code for XDR enum types"""
 12 
 13     def __init__(self, language: str, peer: str):
 14         """Initialize an instance of this class"""
 15         self.environment = create_jinja2_environment(language, "enum")
 16         self.peer = peer
 17 
 18     def emit_declaration(self, node: _XdrEnum) -> None:
 19         """Emit one declaration pair for an XDR enum type"""
 20         if node.name in public_apis:
 21             template = self.environment.get_template("declaration/close.j2")
 22             print(template.render(name=node.name))
 23 
 24     def emit_definition(self, node: _XdrEnum) -> None:
 25         """Emit one definition for an XDR enum type"""
 26         template = self.environment.get_template("definition/open.j2")
 27         print(template.render(name=node.name))
 28 
 29         template = self.environment.get_template("definition/enumerator.j2")
 30         for enumerator in node.enumerators:
 31             print(template.render(name=enumerator.name, value=enumerator.value))
 32 
 33         template = self.environment.get_template("definition/close.j2")
 34         print(template.render(name=node.name))
 35 
 36     def emit_decoder(self, node: _XdrEnum) -> None:
 37         """Emit one decoder function for an XDR enum type"""
 38         template = self.environment.get_template("decoder/enum.j2")
 39         print(template.render(name=node.name))
 40 
 41     def emit_encoder(self, node: _XdrEnum) -> None:
 42         """Emit one encoder function for an XDR enum type"""
 43         template = self.environment.get_template("encoder/enum.j2")
 44         print(template.render(name=node.name))

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php