passthru.py 940 B

1234567891011121314151617181920212223242526
  1. #!/usr/bin/env python3
  2. # ex: set filetype=python:
  3. """Generate code for XDR pass-through lines"""
  4. from generators import SourceGenerator, create_jinja2_environment
  5. from xdr_ast import _XdrPassthru
  6. class XdrPassthruGenerator(SourceGenerator):
  7. """Generate source code for XDR pass-through content"""
  8. def __init__(self, language: str, peer: str):
  9. """Initialize an instance of this class"""
  10. self.environment = create_jinja2_environment(language, "passthru")
  11. self.peer = peer
  12. def emit_definition(self, node: _XdrPassthru) -> None:
  13. """Emit one pass-through line"""
  14. template = self.environment.get_template("definition.j2")
  15. print(template.render(content=node.content))
  16. def emit_decoder(self, node: _XdrPassthru) -> None:
  17. """Emit one pass-through line"""
  18. template = self.environment.get_template("source.j2")
  19. print(template.render(content=node.content))