@@ -243,7 +243,6 @@ 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 );
247246 sb .append (CppUtil .closingBraces (namespaces .length )).append ("#endif\n " );
248247 out .append (sb );
249248 }
@@ -2975,12 +2974,8 @@ private static CharSequence generateLookupTableDeclarations(final FieldPrecedenc
29752974 }
29762975
29772976 final StringBuilder sb = new StringBuilder ();
2978- sb .append (INDENT ).append ("static const std::string STATE_NAME_LOOKUP[" )
2979- .append (fieldPrecedenceModel .stateCount ())
2980- .append ("];\n " );
2981- sb .append (INDENT ).append ("static const std::string STATE_TRANSITIONS_LOOKUP[" )
2982- .append (fieldPrecedenceModel .stateCount ())
2983- .append ("];\n \n " );
2977+
2978+ generateLookupTableDefinitions (sb , fieldPrecedenceModel );
29842979
29852980 sb .append (INDENT ).append ("static std::string codecStateName(CodecState state)\n " )
29862981 .append (INDENT ).append ("{\n " )
@@ -2997,27 +2992,24 @@ private static CharSequence generateLookupTableDeclarations(final FieldPrecedenc
29972992
29982993 private static void generateLookupTableDefinitions (
29992994 final StringBuilder sb ,
3000- final String className ,
30012995 final FieldPrecedenceModel fieldPrecedenceModel )
30022996 {
30032997 if (null == fieldPrecedenceModel )
30042998 {
30052999 return ;
30063000 }
30073001
3008- sb .append ("\n " ).append ("const std::string " ).append (className ).append ("::STATE_NAME_LOOKUP[" )
3009- .append (fieldPrecedenceModel .stateCount ()).append ("] =\n " )
3010- .append ("{\n " );
3002+ sb .append (INDENT ).append ("static constexpr const char *STATE_NAME_LOOKUP[] =\n " )
3003+ .append (INDENT ).append ("{\n " );
30113004 fieldPrecedenceModel .forEachStateOrderedByStateNumber ((state ) ->
3012- sb .append (INDENT ).append ("\" " ).append (state .name ()).append ("\" ,\n " ));
3013- sb .append ("};\n \n " );
3005+ sb .append (INDENT ).append (INDENT ). append ( "\" " ).append (state .name ()).append ("\" ,\n " ));
3006+ sb .append (INDENT ). append ( "};\n \n " );
30143007
3015- sb .append ("const std::string " ).append (className ).append ("::STATE_TRANSITIONS_LOOKUP[" )
3016- .append (fieldPrecedenceModel .stateCount ()).append ("] =\n " )
3017- .append ("{\n " );
3008+ sb .append (INDENT ).append ("static constexpr const char *STATE_TRANSITIONS_LOOKUP[] =\n " )
3009+ .append (INDENT ).append ("{\n " );
30183010 fieldPrecedenceModel .forEachStateOrderedByStateNumber ((state ) ->
30193011 {
3020- sb .append (INDENT ).append ("\" " );
3012+ sb .append (INDENT ).append (INDENT ). append ( "\" " );
30213013 final MutableBoolean isFirst = new MutableBoolean (true );
30223014 final Set <String > transitionDescriptions = new HashSet <>();
30233015 fieldPrecedenceModel .forEachTransitionFrom (state , (transitionGroup ) ->
@@ -3038,7 +3030,7 @@ private static void generateLookupTableDefinitions(
30383030 });
30393031 sb .append ("\" ,\n " );
30403032 });
3041- sb .append ("};\n \n " );
3033+ sb .append (INDENT ). append ( "};\n \n " );
30423034 }
30433035
30443036 private static CharSequence qualifiedStateCase (final FieldPrecedenceModel .State state )
0 commit comments