@@ -922,7 +922,12 @@ m4_ifdef( [[<M4_YY_BISON_LLOC>]],
922
922
923
923
m4_ifdef ( [[M4_YY_CHARSET ]], [[
924
924
char * yycharset_r ; /** current charset name */
925
+ ]])
926
+
927
+ m4_ifdef ( [[M4_YY_CXX ]],,[[
928
+ m4_ifdef ( [[M4_YY_CHARSET ]],[[
925
929
yycharset_handler_t yycharset_handler_r ; /** charset handle function */
930
+ ]])
926
931
]])
927
932
928
933
}; /* end struct yyguts_t */
@@ -1049,19 +1054,20 @@ m4_ifdef( [[M4_YY_REENTRANT]],[[
1049
1054
m4_ifdef ( [[M4_YY_CHARSET ]],[[
1050
1055
m4_ifdef ( [[M4_YY_NO_GET_CHARSET ]],,[[
1051
1056
char * yyget_charset M4_YY_PARAMS ( M4_YY_PROTO_ONLY_ARG );
1057
+ %if - c - only
1052
1058
yycharset_handler_t yyget_charset_handler M4_YY_PARAMS ( M4_YY_PROTO_ONLY_ARG );
1059
+ %endif
1053
1060
]])
1054
1061
]])
1055
1062
]])
1056
1063
1057
1064
m4_ifdef ( [[M4_YY_REENTRANT ]],[[
1058
- /* YY_REENTRANT */
1059
1065
m4_ifdef ( [[M4_YY_CHARSET ]], [[
1060
- /* YY_CHARSET */
1061
1066
m4_ifdef ( [[M4_YY_NO_SET_CHARSET ]],,[[
1062
- /* !YY_NO_SET_CHARSET */
1063
1067
void yyset_charset M4_YY_PARAMS ( char * charset M4_YY_PROTO_LAST_ARG );
1068
+ %if - c - only
1064
1069
void yyset_charset_handler M4_YY_PARAMS ( yycharset_handler_t charset_handler M4_YY_PROTO_LAST_ARG );
1070
+ %endif
1065
1071
]])
1066
1072
]])
1067
1073
]])
@@ -1689,26 +1695,47 @@ m4_ifdef( [[M4_YY_CHARSET]],[[
1689
1695
/* yycharset_convert - convert incoming data from arbitrary
1690
1696
* charset into internal representation
1691
1697
*/
1698
+ %if - c - only
1692
1699
static size_t yycharset_convert YYFARGS5 (
1693
1700
char * , source , size_t , source_bytes ,
1694
1701
YY_CHAR * , target , size_t , target_length ,
1695
1702
size_t * , converted_bytes ) {
1703
+ %endif
1704
+ %if - c ++ - only
1705
+ size_t yyFlexLexer ::yycharset_convert (
1706
+ char * source , size_t source_bytes ,
1707
+ YY_CHAR * target , size_t target_length ,
1708
+ size_t * converted_bytes ) {
1709
+ %endif
1696
1710
M4_YY_DECL_GUTS_VAR ();
1697
1711
if (strcmp (yycharset , "M4_YY_CHARSET_SOURCE" )== 0 ) {
1698
1712
if (target_length < source_bytes )
1699
1713
YY_FATAL_ERROR ("Too small buffer" );
1700
1714
strncpy ((char * )target , source , source_bytes );
1701
1715
* converted_bytes = source_bytes ;
1702
1716
return source_bytes ;
1703
- } else if (yycharset_handler )
1717
+ }
1718
+ %if - c - only
1719
+ else if (yycharset_handler )
1720
+ %endif
1704
1721
return yycharset_handler (yycharset , source , source_bytes ,
1705
1722
target , target_length , converted_bytes M4_YY_CALL_LAST_ARG );
1706
- else {
1707
- char msg [256 ];
1708
- snprintf (msg , sizeof (msg ),
1709
- "Unsupported character encoding: %s" , yycharset );
1710
- YY_FATAL_ERROR (msg );
1711
- }
1723
+
1724
+ /* Code below just outputs an error message saying that selected encoding
1725
+ * is not supported. In C scanner it is an end part of yycharset_convert,
1726
+ * while in C++ scanner it is a default implementation of yycharset_handler */
1727
+ %if - c ++ - only
1728
+ }
1729
+
1730
+ size_t yyFlexLexer ::yycharset_handler (char * charset ,
1731
+ char * source , size_t source_bytes ,
1732
+ YY_CHAR * target , size_t target_length ,
1733
+ size_t * converted_bytes ) {
1734
+ %endif
1735
+ char msg [256 ];
1736
+ snprintf (msg , sizeof (msg ),
1737
+ "Unsupported character encoding : %s ", yycharset );
1738
+ YY_FATAL_ERROR (msg );
1712
1739
return 0 ;
1713
1740
}
1714
1741
]])
@@ -2719,33 +2746,55 @@ int yyget_column YYFARGS0(void)
2719
2746
}
2720
2747
]])
2721
2748
]])
2749
+ %endif
2722
2750
2723
- m4_ifdef ( [[M4_YY_REENTRANT ]],[[
2724
- m4_ifdef ( [[M4_YY_CHARSET ]], [[
2725
- m4_ifdef ( [[M4_YY_NO_GET_CHARSET ]],,[[
2726
- /** Get the currently set charset name
2751
+ m4_ifdef ([[M4_YY_CHARSET ]],[[
2752
+ m4_ifdef ([[M4_YY_REENTRANT ]],[[
2753
+
2754
+ m4_ifdef ([[M4_YY_NO_GET_CHARSET ]],,[[
2755
+ m4_define ([[M4_YY_GET_CHARSET ]],[[
2756
+ char * yyget_charset YYFARGS0 (void )
2757
+ ]])
2758
+ ]])
2759
+
2760
+ m4_ifdef ([[M4_YY_NO_GET_CHARSET_HANDLER ]],,[[
2761
+ m4_define ([[M4_YY_GET_CHARSET_HANDLER ]],[[
2762
+ yycharset_handler_t yyget_charset_handler YYFARGS0 (void )
2763
+ ]])
2764
+ ]])
2765
+ ]])
2766
+
2767
+ m4_ifdef ([[M4_YY_CXX ]], [[
2768
+ m4_define ( [[M4_YY_GET_CHARSET ]], [[
2769
+ char * FlexLexer ::get_charset ()
2770
+ ]])
2771
+ ]])
2772
+ ]])
2773
+
2774
+ m4_ifdef ( [[M4_YY_GET_CHARSET ]], [[
2775
+ /** Get the current charset name
2727
2776
* M4_YY_DOC_PARAM
2777
+ * @return charset name
2728
2778
*/
2729
- char * yyget_charset YYFARGS0 ( void )
2779
+ M4_YY_GET_CHARSET
2730
2780
{
2731
2781
M4_YY_DECL_GUTS_VAR ();
2732
2782
return yycharset ;
2733
2783
}
2734
2784
]])
2735
2785
2736
- m4_ifdef ( [[M4_YY_NO_GET_CHARSET_HANDLER ]], ,[[
2786
+ m4_ifdef ( [[M4_YY_GET_CHARSET_HANDLER ]] ,[[
2737
2787
/** Get the currently set charset handler
2738
2788
* M4_YY_DOC_PARAM
2739
2789
*/
2740
- yycharset_handler_t yyget_charset_handler YYFARGS0 ( void )
2790
+ M4_YY_GET_CHARSET_HANDLER
2741
2791
{
2742
2792
M4_YY_DECL_GUTS_VAR ();
2743
2793
return yycharset_handler ;
2744
2794
}
2745
2795
]])
2746
- ]])
2747
- ]])
2748
2796
2797
+ %if - c - only
2749
2798
m4_ifdef ( [[M4_YY_NO_GET_IN ]],,
2750
2799
[[
2751
2800
/** Get the input stream.
@@ -2851,22 +2900,44 @@ void yyset_column YYFARGS1( int , column_no)
2851
2900
}
2852
2901
]])
2853
2902
]])
2903
+ %endif
2854
2904
2855
- m4_ifdef ( [[M4_YY_REENTRANT ]],[[
2856
- m4_ifdef ( [[M4_YY_CHARSET ]], [[
2857
- m4_ifdef ( [[M4_YY_NO_SET_CHARSET ]],,[[
2905
+ m4_ifdef ([[M4_YY_CHARSET ]], [[
2906
+ m4_ifdef ([[M4_YY_REENTRANT ]],[[
2907
+
2908
+ m4_ifdef ([[M4_YY_NO_SET_CHARSET ]],,[[
2909
+ m4_define ([[M4_YY_SET_CHARSET ]], [[
2910
+ void yyset_charset YYFARGS1 (char * , charset )
2911
+ ]])
2912
+ ]])
2913
+
2914
+ m4_ifdef ([[M4_YY_NO_SET_CHARSET_HANDLER ]],,[[
2915
+ m4_define ([[M4_YY_SET_CHARSET_HANDLER ]],[[
2916
+ void yyset_charset_handler YYFARGS1 (yycharset_handler_t , charset_handler )
2917
+ ]])
2918
+ ]])
2919
+ ]])
2920
+
2921
+ m4_ifdef ( [[M4_YY_CXX ]],[[
2922
+ m4_define ( [[M4_YY_SET_CHARSET ]], [[
2923
+ void FlexLexer ::set_charset (char * charset )
2924
+ ]])
2925
+ ]])
2926
+ ]])
2927
+
2928
+ m4_ifdef ( [[M4_YY_SET_CHARSET ]],[[
2858
2929
/** Set the current charset name
2859
2930
* @param charset charset name
2860
2931
* M4_YY_DOC_PARAM
2861
2932
*/
2862
- void yyset_charset YYFARGS1 ( char * , charset )
2933
+ M4_YY_SET_CHARSET
2863
2934
{
2864
2935
M4_YY_DECL_GUTS_VAR ();
2865
2936
yycharset = strdup (charset );
2866
2937
}
2867
2938
]])
2868
2939
2869
- m4_ifdef ( [[M4_YY_NO_SET_CHARSET_HANDLER ]], ,[[
2940
+ m4_ifdef ( [[M4_YY_SET_CHARSET_HANDLER ]] ,[[
2870
2941
/** Set the current charset handler
2871
2942
* @param charset_handler handler function
2872
2943
* M4_YY_DOC_PARAM
@@ -2877,10 +2948,8 @@ void yyset_charset_handler YYFARGS1( yycharset_handler_t, charset_handler)
2877
2948
yycharset_handler = charset_handler ;
2878
2949
}
2879
2950
]])
2880
- ]])
2881
- ]])
2882
-
2883
2951
2952
+ %if - c - only
2884
2953
m4_ifdef ( [[M4_YY_NO_SET_IN ]],,
2885
2954
[[
2886
2955
/** Set the input stream. This does not discard the current
0 commit comments