46 lines · python
1#!/usr/bin/env python32# ex: set filetype=python:3 4"""Generate header top boilerplate"""5 6import os.path7import time8 9from generators import Boilerplate, header_guard_infix10from generators import create_jinja2_environment, get_jinja2_template11from xdr_ast import Specification12 13 14class XdrHeaderTopGenerator(Boilerplate):15 """Generate header boilerplate"""16 17 def __init__(self, language: str, peer: str):18 """Initialize an instance of this class"""19 self.environment = create_jinja2_environment(language, "header_top")20 self.peer = peer21 22 def emit_declaration(self, filename: str, root: Specification) -> None:23 """Emit the top header guard"""24 template = get_jinja2_template(self.environment, "declaration", "header")25 print(26 template.render(27 infix=header_guard_infix(filename),28 filename=filename,29 mtime=time.ctime(os.path.getmtime(filename)),30 )31 )32 33 def emit_definition(self, filename: str, root: Specification) -> None:34 """Emit the top header guard"""35 template = get_jinja2_template(self.environment, "definition", "header")36 print(37 template.render(38 infix=header_guard_infix(filename),39 filename=filename,40 mtime=time.ctime(os.path.getmtime(filename)),41 )42 )43 44 def emit_source(self, filename: str, root: Specification) -> None:45 pass46