2 # ex: set filetype=python:
4 """Generate header top boilerplate"""
9 from generators
import Boilerplate
, header_guard_infix
10 from generators
import create_jinja2_environment
, get_jinja2_template
11 from xdr_ast
import Specification
14 class XdrHeaderTopGenerator(Boilerplate
):
15 """Generate header boilerplate"""
17 def __init__(self
, language
: str, peer
: str):
18 """Initialize an instance of this class"""
19 self
.environment
= create_jinja2_environment(language
, "header_top")
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")
27 infix
=header_guard_infix(filename
),
29 mtime
=time
.ctime(os
.path
.getmtime(filename
)),
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")
38 infix
=header_guard_infix(filename
),
40 mtime
=time
.ctime(os
.path
.getmtime(filename
)),
44 def emit_source(self
, filename
: str, root
: Specification
) -> None: