2828logger .setLevel (logging .INFO )
2929
3030
31- def emit_header_definitions (
32- root : Specification , language : str , peer : str
33- ) -> None :
31+ def emit_header_definitions (root : Specification , language : str , peer : str ) -> None :
3432 """Emit header definitions"""
3533 for definition in root .definitions :
3634 if isinstance (definition .value , _XdrConstant ):
@@ -52,6 +50,25 @@ def emit_header_definitions(
5250 gen .emit_definition (definition .value )
5351
5452
53+ def emit_header_maxsize (root : Specification , language : str , peer : str ) -> None :
54+ """Emit header maxsize macros"""
55+ print ("" )
56+ for definition in root .definitions :
57+ if isinstance (definition .value , _XdrEnum ):
58+ gen = XdrEnumGenerator (language , peer )
59+ elif isinstance (definition .value , _XdrPointer ):
60+ gen = XdrPointerGenerator (language , peer )
61+ elif isinstance (definition .value , _XdrTypedef ):
62+ gen = XdrTypedefGenerator (language , peer )
63+ elif isinstance (definition .value , _XdrStruct ):
64+ gen = XdrStructGenerator (language , peer )
65+ elif isinstance (definition .value , _XdrUnion ):
66+ gen = XdrUnionGenerator (language , peer )
67+ else :
68+ continue
69+ gen .emit_maxsize (definition .value )
70+
71+
5572def handle_parse_error (e : UnexpectedInput ) -> bool :
5673 """Simple parse error reporting, no recovery attempted"""
5774 print (e )
@@ -71,6 +88,7 @@ def subcmd(args: Namespace) -> int:
7188 gen .emit_definition (args .filename , ast )
7289
7390 emit_header_definitions (ast , args .language , args .peer )
91+ emit_header_maxsize (ast , args .language , args .peer )
7492
7593 gen = XdrHeaderBottomGenerator (args .language , args .peer )
7694 gen .emit_definition (args .filename , ast )
0 commit comments