@@ -243,6 +243,7 @@ public void generate() throws IOException
243243 generateDisplay (sb , msgToken .name (), fields , groups , varData );
244244 sb .append (generateMessageLength (groups , varData , BASE_INDENT ));
245245 sb .append ("};\n " );
246+ generateLookupTableDefinitions (sb , className , fieldPrecedenceModel );
246247 sb .append (CppUtil .closingBraces (namespaces .length )).append ("#endif\n " );
247248 out .append (sb );
248249 }
@@ -2975,30 +2976,6 @@ private static CharSequence generateLookupTableDeclarations(final FieldPrecedenc
29752976
29762977 final StringBuilder sb = new StringBuilder ();
29772978
2978- generateLookupTableDefinitions (sb , fieldPrecedenceModel );
2979-
2980- sb .append (INDENT ).append ("static std::string codecStateName(CodecState state)\n " )
2981- .append (INDENT ).append ("{\n " )
2982- .append (TWO_INDENT ).append ("return STATE_NAME_LOOKUP[static_cast<int>(state)];\n " )
2983- .append (INDENT ).append ("}\n \n " );
2984-
2985- sb .append (INDENT ).append ("static std::string codecStateTransitions(CodecState state)\n " )
2986- .append (INDENT ).append ("{\n " )
2987- .append (TWO_INDENT ).append ("return STATE_TRANSITIONS_LOOKUP[static_cast<int>(state)];\n " )
2988- .append (INDENT ).append ("}\n \n " );
2989-
2990- return sb ;
2991- }
2992-
2993- private static void generateLookupTableDefinitions (
2994- final StringBuilder sb ,
2995- final FieldPrecedenceModel fieldPrecedenceModel )
2996- {
2997- if (null == fieldPrecedenceModel )
2998- {
2999- return ;
3000- }
3001-
30022979 sb .append (INDENT ).append ("static constexpr const char *STATE_NAME_LOOKUP[] =\n " )
30032980 .append (INDENT ).append ("{\n " );
30042981 fieldPrecedenceModel .forEachStateOrderedByStateNumber ((state ) ->
@@ -3031,6 +3008,37 @@ private static void generateLookupTableDefinitions(
30313008 sb .append ("\" ,\n " );
30323009 });
30333010 sb .append (INDENT ).append ("};\n \n " );
3011+
3012+ sb .append (INDENT ).append ("static std::string codecStateName(CodecState state)\n " )
3013+ .append (INDENT ).append ("{\n " )
3014+ .append (TWO_INDENT ).append ("return STATE_NAME_LOOKUP[static_cast<int>(state)];\n " )
3015+ .append (INDENT ).append ("}\n \n " );
3016+
3017+ sb .append (INDENT ).append ("static std::string codecStateTransitions(CodecState state)\n " )
3018+ .append (INDENT ).append ("{\n " )
3019+ .append (TWO_INDENT ).append ("return STATE_TRANSITIONS_LOOKUP[static_cast<int>(state)];\n " )
3020+ .append (INDENT ).append ("}\n \n " );
3021+
3022+ return sb ;
3023+ }
3024+
3025+ private static void generateLookupTableDefinitions (
3026+ final StringBuilder sb ,
3027+ final String className ,
3028+ final FieldPrecedenceModel fieldPrecedenceModel )
3029+ {
3030+ if (null == fieldPrecedenceModel )
3031+ {
3032+ return ;
3033+ }
3034+
3035+ sb
3036+ .append ("\n constexpr const char *" )
3037+ .append (className )
3038+ .append ("::STATE_NAME_LOOKUP[];\n " )
3039+ .append ("constexpr const char *" )
3040+ .append (className )
3041+ .append ("::STATE_TRANSITIONS_LOOKUP[];\n \n " );
30343042 }
30353043
30363044 private static CharSequence qualifiedStateCase (final FieldPrecedenceModel .State state )
0 commit comments