brintos

brintos / linux-shallow public Read only

0
0
Text · 1.4 KiB · c6bc21c Raw
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