(root)/
texinfo-7.1/
tp/
Texinfo/
XS/
parsetexi/
Parsetexi.c
       1  /*
       2   * This file was generated automatically by ExtUtils::ParseXS version 3.40 from the
       3   * contents of Parsetexi.xs. Do not edit this file, edit Parsetexi.xs instead.
       4   *
       5   *    ANY CHANGES MADE HERE WILL BE LOST!
       6   *
       7   */
       8  
       9  #line 1 "parsetexi/Parsetexi.xs"
      10  /* Copyright 2014-2023 Free Software Foundation, Inc.
      11  
      12     This program is free software: you can redistribute it and/or modify
      13     it under the terms of the GNU General Public License as published by
      14     the Free Software Foundation, either version 3 of the License, or
      15     (at your option) any later version.
      16  
      17     This program is distributed in the hope that it will be useful,
      18     but WITHOUT ANY WARRANTY; without even the implied warranty of
      19     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
      20     GNU General Public License for more details.
      21  
      22     You should have received a copy of the GNU General Public License
      23     along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
      24  
      25  #include <config.h>
      26  
      27  /* Avoid namespace conflicts. */
      28  #define context perl_context
      29  
      30  #define PERL_NO_GET_CONTEXT
      31  #include "EXTERN.h"
      32  #include "perl.h"
      33  #if defined _WIN32 && !defined __CYGWIN__
      34  # undef free
      35  #endif
      36  #include "XSUB.h"
      37  
      38  #undef context
      39  
      40  #include "ppport.h"
      41  
      42  #include "parser.h"
      43  #include "api.h"
      44  #include "indices.h"
      45  #include "input.h"
      46  
      47  #line 48 "parsetexi/Parsetexi.c"
      48  #ifndef PERL_UNUSED_VAR
      49  #  define PERL_UNUSED_VAR(var) if (0) var = var
      50  #endif
      51  
      52  #ifndef dVAR
      53  #  define dVAR		dNOOP
      54  #endif
      55  
      56  
      57  /* This stuff is not part of the API! You have been warned. */
      58  #ifndef PERL_VERSION_DECIMAL
      59  #  define PERL_VERSION_DECIMAL(r,v,s) (r*1000000 + v*1000 + s)
      60  #endif
      61  #ifndef PERL_DECIMAL_VERSION
      62  #  define PERL_DECIMAL_VERSION \
      63  	  PERL_VERSION_DECIMAL(PERL_REVISION,PERL_VERSION,PERL_SUBVERSION)
      64  #endif
      65  #ifndef PERL_VERSION_GE
      66  #  define PERL_VERSION_GE(r,v,s) \
      67  	  (PERL_DECIMAL_VERSION >= PERL_VERSION_DECIMAL(r,v,s))
      68  #endif
      69  #ifndef PERL_VERSION_LE
      70  #  define PERL_VERSION_LE(r,v,s) \
      71  	  (PERL_DECIMAL_VERSION <= PERL_VERSION_DECIMAL(r,v,s))
      72  #endif
      73  
      74  /* XS_INTERNAL is the explicit static-linkage variant of the default
      75   * XS macro.
      76   *
      77   * XS_EXTERNAL is the same as XS_INTERNAL except it does not include
      78   * "STATIC", ie. it exports XSUB symbols. You probably don't want that
      79   * for anything but the BOOT XSUB.
      80   *
      81   * See XSUB.h in core!
      82   */
      83  
      84  
      85  /* TODO: This might be compatible further back than 5.10.0. */
      86  #if PERL_VERSION_GE(5, 10, 0) && PERL_VERSION_LE(5, 15, 1)
      87  #  undef XS_EXTERNAL
      88  #  undef XS_INTERNAL
      89  #  if defined(__CYGWIN__) && defined(USE_DYNAMIC_LOADING)
      90  #    define XS_EXTERNAL(name) __declspec(dllexport) XSPROTO(name)
      91  #    define XS_INTERNAL(name) STATIC XSPROTO(name)
      92  #  endif
      93  #  if defined(__SYMBIAN32__)
      94  #    define XS_EXTERNAL(name) EXPORT_C XSPROTO(name)
      95  #    define XS_INTERNAL(name) EXPORT_C STATIC XSPROTO(name)
      96  #  endif
      97  #  ifndef XS_EXTERNAL
      98  #    if defined(HASATTRIBUTE_UNUSED) && !defined(__cplusplus)
      99  #      define XS_EXTERNAL(name) void name(pTHX_ CV* cv __attribute__unused__)
     100  #      define XS_INTERNAL(name) STATIC void name(pTHX_ CV* cv __attribute__unused__)
     101  #    else
     102  #      ifdef __cplusplus
     103  #        define XS_EXTERNAL(name) extern "C" XSPROTO(name)
     104  #        define XS_INTERNAL(name) static XSPROTO(name)
     105  #      else
     106  #        define XS_EXTERNAL(name) XSPROTO(name)
     107  #        define XS_INTERNAL(name) STATIC XSPROTO(name)
     108  #      endif
     109  #    endif
     110  #  endif
     111  #endif
     112  
     113  /* perl >= 5.10.0 && perl <= 5.15.1 */
     114  
     115  
     116  /* The XS_EXTERNAL macro is used for functions that must not be static
     117   * like the boot XSUB of a module. If perl didn't have an XS_EXTERNAL
     118   * macro defined, the best we can do is assume XS is the same.
     119   * Dito for XS_INTERNAL.
     120   */
     121  #ifndef XS_EXTERNAL
     122  #  define XS_EXTERNAL(name) XS(name)
     123  #endif
     124  #ifndef XS_INTERNAL
     125  #  define XS_INTERNAL(name) XS(name)
     126  #endif
     127  
     128  /* Now, finally, after all this mess, we want an ExtUtils::ParseXS
     129   * internal macro that we're free to redefine for varying linkage due
     130   * to the EXPORT_XSUB_SYMBOLS XS keyword. This is internal, use
     131   * XS_EXTERNAL(name) or XS_INTERNAL(name) in your code if you need to!
     132   */
     133  
     134  #undef XS_EUPXS
     135  #if defined(PERL_EUPXS_ALWAYS_EXPORT)
     136  #  define XS_EUPXS(name) XS_EXTERNAL(name)
     137  #else
     138     /* default to internal */
     139  #  define XS_EUPXS(name) XS_INTERNAL(name)
     140  #endif
     141  
     142  #ifndef PERL_ARGS_ASSERT_CROAK_XS_USAGE
     143  #define PERL_ARGS_ASSERT_CROAK_XS_USAGE assert(cv); assert(params)
     144  
     145  /* prototype to pass -Wmissing-prototypes */
     146  STATIC void
     147  S_croak_xs_usage(const CV *const cv, const char *const params);
     148  
     149  STATIC void
     150  S_croak_xs_usage(const CV *const cv, const char *const params)
     151  {
     152      const GV *const gv = CvGV(cv);
     153  
     154      PERL_ARGS_ASSERT_CROAK_XS_USAGE;
     155  
     156      if (gv) {
     157          const char *const gvname = GvNAME(gv);
     158          const HV *const stash = GvSTASH(gv);
     159          const char *const hvname = stash ? HvNAME(stash) : NULL;
     160  
     161          if (hvname)
     162  	    Perl_croak_nocontext("Usage: %s::%s(%s)", hvname, gvname, params);
     163          else
     164  	    Perl_croak_nocontext("Usage: %s(%s)", gvname, params);
     165      } else {
     166          /* Pants. I don't think that it should be possible to get here. */
     167  	Perl_croak_nocontext("Usage: CODE(0x%" UVxf ")(%s)", PTR2UV(cv), params);
     168      }
     169  }
     170  #undef  PERL_ARGS_ASSERT_CROAK_XS_USAGE
     171  
     172  #define croak_xs_usage        S_croak_xs_usage
     173  
     174  #endif
     175  
     176  /* NOTE: the prototype of newXSproto() is different in versions of perls,
     177   * so we define a portable version of newXSproto()
     178   */
     179  #ifdef newXS_flags
     180  #define newXSproto_portable(name, c_impl, file, proto) newXS_flags(name, c_impl, file, proto, 0)
     181  #else
     182  #define newXSproto_portable(name, c_impl, file, proto) (PL_Sv=(SV*)newXS(name, c_impl, file), sv_setpv(PL_Sv, proto), (CV*)PL_Sv)
     183  #endif /* !defined(newXS_flags) */
     184  
     185  #if PERL_VERSION_LE(5, 21, 5)
     186  #  define newXS_deffile(a,b) Perl_newXS(aTHX_ a,b,file)
     187  #else
     188  #  define newXS_deffile(a,b) Perl_newXS_deffile(aTHX_ a,b)
     189  #endif
     190  
     191  #line 192 "parsetexi/Parsetexi.c"
     192  
     193  XS_EUPXS(XS_Texinfo__Parser_init); /* prototype to pass -Wmissing-prototypes */
     194  XS_EUPXS(XS_Texinfo__Parser_init)
     195  {
     196      dVAR; dXSARGS;
     197      if (items != 2)
     198         croak_xs_usage(cv,  "texinfo_uninstalled, srcdir");
     199      {
     200  	int	texinfo_uninstalled = (int)SvIV(ST(0))
     201  ;
     202  	char *	srcdir = (char *)SvPVbyte_nolen(ST(1));
     203  	int	RETVAL;
     204  	dXSTARG;
     205  
     206  	RETVAL = init(texinfo_uninstalled, srcdir);
     207  	XSprePUSH; PUSHi((IV)RETVAL);
     208      }
     209      XSRETURN(1);
     210  }
     211  
     212  
     213  XS_EUPXS(XS_Texinfo__Parser_wipe_errors); /* prototype to pass -Wmissing-prototypes */
     214  XS_EUPXS(XS_Texinfo__Parser_wipe_errors)
     215  {
     216      dVAR; dXSARGS;
     217      if (items != 0)
     218         croak_xs_usage(cv,  "");
     219      {
     220  
     221  	wipe_errors();
     222      }
     223      XSRETURN_EMPTY;
     224  }
     225  
     226  
     227  XS_EUPXS(XS_Texinfo__Parser_parse_file); /* prototype to pass -Wmissing-prototypes */
     228  XS_EUPXS(XS_Texinfo__Parser_parse_file)
     229  {
     230      dVAR; dXSARGS;
     231      if (items != 1)
     232         croak_xs_usage(cv,  "filename");
     233      {
     234  	char *	filename = (char *)SvPVbyte_nolen(ST(0));
     235  	int	RETVAL;
     236  	dXSTARG;
     237  
     238  	RETVAL = parse_file(filename);
     239  	XSprePUSH; PUSHi((IV)RETVAL);
     240      }
     241      XSRETURN(1);
     242  }
     243  
     244  
     245  XS_EUPXS(XS_Texinfo__Parser_parse_piece); /* prototype to pass -Wmissing-prototypes */
     246  XS_EUPXS(XS_Texinfo__Parser_parse_piece)
     247  {
     248      dVAR; dXSARGS;
     249      if (items != 2)
     250         croak_xs_usage(cv,  "string, line_nr");
     251      {
     252  	char *	string = (char *)SvPVbyte_nolen(ST(0));
     253  	int	line_nr = (int)SvIV(ST(1))
     254  ;
     255  
     256  	parse_piece(string, line_nr);
     257      }
     258      XSRETURN_EMPTY;
     259  }
     260  
     261  
     262  XS_EUPXS(XS_Texinfo__Parser_parse_string); /* prototype to pass -Wmissing-prototypes */
     263  XS_EUPXS(XS_Texinfo__Parser_parse_string)
     264  {
     265      dVAR; dXSARGS;
     266      if (items != 2)
     267         croak_xs_usage(cv,  "string, line_nr");
     268      {
     269  	char *	string = (char *)SvPVbyte_nolen(ST(0));
     270  	int	line_nr = (int)SvIV(ST(1))
     271  ;
     272  
     273  	parse_string(string, line_nr);
     274      }
     275      XSRETURN_EMPTY;
     276  }
     277  
     278  
     279  XS_EUPXS(XS_Texinfo__Parser_parse_text); /* prototype to pass -Wmissing-prototypes */
     280  XS_EUPXS(XS_Texinfo__Parser_parse_text)
     281  {
     282      dVAR; dXSARGS;
     283      if (items != 2)
     284         croak_xs_usage(cv,  "string, line_nr");
     285      {
     286  	char *	string = (char *)SvPVbyte_nolen(ST(0));
     287  	int	line_nr = (int)SvIV(ST(1))
     288  ;
     289  
     290  	parse_text(string, line_nr);
     291      }
     292      XSRETURN_EMPTY;
     293  }
     294  
     295  
     296  XS_EUPXS(XS_Texinfo__Parser_store_value); /* prototype to pass -Wmissing-prototypes */
     297  XS_EUPXS(XS_Texinfo__Parser_store_value)
     298  {
     299      dVAR; dXSARGS;
     300      if (items != 2)
     301         croak_xs_usage(cv,  "name, value");
     302      {
     303  	char *	name = (char *)SvPVbyte_nolen(ST(0));
     304  	char *	value = (char *)SvPVbyte_nolen(ST(1));
     305  
     306  	store_value(name, value);
     307      }
     308      XSRETURN_EMPTY;
     309  }
     310  
     311  
     312  XS_EUPXS(XS_Texinfo__Parser_wipe_values); /* prototype to pass -Wmissing-prototypes */
     313  XS_EUPXS(XS_Texinfo__Parser_wipe_values)
     314  {
     315      dVAR; dXSARGS;
     316      if (items != 0)
     317         croak_xs_usage(cv,  "");
     318      {
     319  
     320  	wipe_values();
     321      }
     322      XSRETURN_EMPTY;
     323  }
     324  
     325  
     326  XS_EUPXS(XS_Texinfo__Parser_reset_context_stack); /* prototype to pass -Wmissing-prototypes */
     327  XS_EUPXS(XS_Texinfo__Parser_reset_context_stack)
     328  {
     329      dVAR; dXSARGS;
     330      if (items != 0)
     331         croak_xs_usage(cv,  "");
     332      {
     333  
     334  	reset_context_stack();
     335      }
     336      XSRETURN_EMPTY;
     337  }
     338  
     339  
     340  XS_EUPXS(XS_Texinfo__Parser_init_index_commands); /* prototype to pass -Wmissing-prototypes */
     341  XS_EUPXS(XS_Texinfo__Parser_init_index_commands)
     342  {
     343      dVAR; dXSARGS;
     344      if (items != 0)
     345         croak_xs_usage(cv,  "");
     346      {
     347  
     348  	init_index_commands();
     349      }
     350      XSRETURN_EMPTY;
     351  }
     352  
     353  
     354  XS_EUPXS(XS_Texinfo__Parser_add_include_directory); /* prototype to pass -Wmissing-prototypes */
     355  XS_EUPXS(XS_Texinfo__Parser_add_include_directory)
     356  {
     357      dVAR; dXSARGS;
     358      if (items != 1)
     359         croak_xs_usage(cv,  "filename");
     360      {
     361  	char *	filename = (char *)SvPVbyte_nolen(ST(0));
     362  
     363  	add_include_directory(filename);
     364      }
     365      XSRETURN_EMPTY;
     366  }
     367  
     368  
     369  XS_EUPXS(XS_Texinfo__Parser_build_texinfo_tree); /* prototype to pass -Wmissing-prototypes */
     370  XS_EUPXS(XS_Texinfo__Parser_build_texinfo_tree)
     371  {
     372      dVAR; dXSARGS;
     373      if (items != 0)
     374         croak_xs_usage(cv,  "");
     375      {
     376  	HV *	RETVAL;
     377  
     378  	RETVAL = build_texinfo_tree();
     379  	{
     380  	    SV * RETVALSV;
     381  	    RETVALSV = newRV((SV*)RETVAL);
     382  	    RETVALSV = sv_2mortal(RETVALSV);
     383  	    ST(0) = RETVALSV;
     384  	}
     385      }
     386      XSRETURN(1);
     387  }
     388  
     389  
     390  XS_EUPXS(XS_Texinfo__Parser_build_target_elements_list); /* prototype to pass -Wmissing-prototypes */
     391  XS_EUPXS(XS_Texinfo__Parser_build_target_elements_list)
     392  {
     393      dVAR; dXSARGS;
     394      if (items != 0)
     395         croak_xs_usage(cv,  "");
     396      {
     397  	AV *	RETVAL;
     398  
     399  	RETVAL = build_target_elements_list();
     400  	{
     401  	    SV * RETVALSV;
     402  	    RETVALSV = newRV((SV*)RETVAL);
     403  	    RETVALSV = sv_2mortal(RETVALSV);
     404  	    ST(0) = RETVALSV;
     405  	}
     406      }
     407      XSRETURN(1);
     408  }
     409  
     410  
     411  XS_EUPXS(XS_Texinfo__Parser_build_internal_xref_list); /* prototype to pass -Wmissing-prototypes */
     412  XS_EUPXS(XS_Texinfo__Parser_build_internal_xref_list)
     413  {
     414      dVAR; dXSARGS;
     415      if (items != 0)
     416         croak_xs_usage(cv,  "");
     417      {
     418  	AV *	RETVAL;
     419  
     420  	RETVAL = build_internal_xref_list();
     421  	{
     422  	    SV * RETVALSV;
     423  	    RETVALSV = newRV((SV*)RETVAL);
     424  	    RETVALSV = sv_2mortal(RETVALSV);
     425  	    ST(0) = RETVALSV;
     426  	}
     427      }
     428      XSRETURN(1);
     429  }
     430  
     431  
     432  XS_EUPXS(XS_Texinfo__Parser_build_float_list); /* prototype to pass -Wmissing-prototypes */
     433  XS_EUPXS(XS_Texinfo__Parser_build_float_list)
     434  {
     435      dVAR; dXSARGS;
     436      if (items != 0)
     437         croak_xs_usage(cv,  "");
     438      {
     439  	HV *	RETVAL;
     440  
     441  	RETVAL = build_float_list();
     442  	{
     443  	    SV * RETVALSV;
     444  	    RETVALSV = newRV((SV*)RETVAL);
     445  	    RETVALSV = sv_2mortal(RETVALSV);
     446  	    ST(0) = RETVALSV;
     447  	}
     448      }
     449      XSRETURN(1);
     450  }
     451  
     452  
     453  XS_EUPXS(XS_Texinfo__Parser_build_index_data); /* prototype to pass -Wmissing-prototypes */
     454  XS_EUPXS(XS_Texinfo__Parser_build_index_data)
     455  {
     456      dVAR; dXSARGS;
     457      if (items != 0)
     458         croak_xs_usage(cv,  "");
     459      {
     460  	HV *	RETVAL;
     461  
     462  	RETVAL = build_index_data();
     463  	{
     464  	    SV * RETVALSV;
     465  	    RETVALSV = newRV((SV*)RETVAL);
     466  	    RETVALSV = sv_2mortal(RETVALSV);
     467  	    ST(0) = RETVALSV;
     468  	}
     469      }
     470      XSRETURN(1);
     471  }
     472  
     473  
     474  XS_EUPXS(XS_Texinfo__Parser_build_global_info); /* prototype to pass -Wmissing-prototypes */
     475  XS_EUPXS(XS_Texinfo__Parser_build_global_info)
     476  {
     477      dVAR; dXSARGS;
     478      if (items != 0)
     479         croak_xs_usage(cv,  "");
     480      {
     481  	HV *	RETVAL;
     482  
     483  	RETVAL = build_global_info();
     484  	{
     485  	    SV * RETVALSV;
     486  	    RETVALSV = newRV((SV*)RETVAL);
     487  	    RETVALSV = sv_2mortal(RETVALSV);
     488  	    ST(0) = RETVALSV;
     489  	}
     490      }
     491      XSRETURN(1);
     492  }
     493  
     494  
     495  XS_EUPXS(XS_Texinfo__Parser_build_global_info2); /* prototype to pass -Wmissing-prototypes */
     496  XS_EUPXS(XS_Texinfo__Parser_build_global_info2)
     497  {
     498      dVAR; dXSARGS;
     499      if (items != 0)
     500         croak_xs_usage(cv,  "");
     501      {
     502  	HV *	RETVAL;
     503  
     504  	RETVAL = build_global_info2();
     505  	{
     506  	    SV * RETVALSV;
     507  	    RETVALSV = newRV((SV*)RETVAL);
     508  	    RETVALSV = sv_2mortal(RETVALSV);
     509  	    ST(0) = RETVALSV;
     510  	}
     511      }
     512      XSRETURN(1);
     513  }
     514  
     515  
     516  XS_EUPXS(XS_Texinfo__Parser_reset_parser); /* prototype to pass -Wmissing-prototypes */
     517  XS_EUPXS(XS_Texinfo__Parser_reset_parser)
     518  {
     519      dVAR; dXSARGS;
     520      if (items != 1)
     521         croak_xs_usage(cv,  "debug_output");
     522      {
     523  	int	debug_output = (int)SvIV(ST(0))
     524  ;
     525  
     526  	reset_parser(debug_output);
     527      }
     528      XSRETURN_EMPTY;
     529  }
     530  
     531  
     532  XS_EUPXS(XS_Texinfo__Parser_clear_expanded_formats); /* prototype to pass -Wmissing-prototypes */
     533  XS_EUPXS(XS_Texinfo__Parser_clear_expanded_formats)
     534  {
     535      dVAR; dXSARGS;
     536      if (items != 0)
     537         croak_xs_usage(cv,  "");
     538      {
     539  
     540  	clear_expanded_formats();
     541      }
     542      XSRETURN_EMPTY;
     543  }
     544  
     545  
     546  XS_EUPXS(XS_Texinfo__Parser_add_expanded_format); /* prototype to pass -Wmissing-prototypes */
     547  XS_EUPXS(XS_Texinfo__Parser_add_expanded_format)
     548  {
     549      dVAR; dXSARGS;
     550      if (items != 1)
     551         croak_xs_usage(cv,  "format");
     552      {
     553  	char *	format = (char *)SvPVbyte_nolen(ST(0));
     554  
     555  	add_expanded_format(format);
     556      }
     557      XSRETURN_EMPTY;
     558  }
     559  
     560  
     561  XS_EUPXS(XS_Texinfo__Parser_conf_set_show_menu); /* prototype to pass -Wmissing-prototypes */
     562  XS_EUPXS(XS_Texinfo__Parser_conf_set_show_menu)
     563  {
     564      dVAR; dXSARGS;
     565      if (items != 1)
     566         croak_xs_usage(cv,  "i");
     567      {
     568  	int	i = (int)SvIV(ST(0))
     569  ;
     570  
     571  	conf_set_show_menu(i);
     572      }
     573      XSRETURN_EMPTY;
     574  }
     575  
     576  
     577  XS_EUPXS(XS_Texinfo__Parser_conf_set_CPP_LINE_DIRECTIVES); /* prototype to pass -Wmissing-prototypes */
     578  XS_EUPXS(XS_Texinfo__Parser_conf_set_CPP_LINE_DIRECTIVES)
     579  {
     580      dVAR; dXSARGS;
     581      if (items != 1)
     582         croak_xs_usage(cv,  "i");
     583      {
     584  	int	i = (int)SvIV(ST(0))
     585  ;
     586  
     587  	conf_set_CPP_LINE_DIRECTIVES(i);
     588      }
     589      XSRETURN_EMPTY;
     590  }
     591  
     592  
     593  XS_EUPXS(XS_Texinfo__Parser_conf_set_IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME); /* prototype to pass -Wmissing-prototypes */
     594  XS_EUPXS(XS_Texinfo__Parser_conf_set_IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME)
     595  {
     596      dVAR; dXSARGS;
     597      if (items != 1)
     598         croak_xs_usage(cv,  "i");
     599      {
     600  	int	i = (int)SvIV(ST(0))
     601  ;
     602  
     603  	conf_set_IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME(i);
     604      }
     605      XSRETURN_EMPTY;
     606  }
     607  
     608  
     609  XS_EUPXS(XS_Texinfo__Parser_conf_set_MAX_MACRO_CALL_NESTING); /* prototype to pass -Wmissing-prototypes */
     610  XS_EUPXS(XS_Texinfo__Parser_conf_set_MAX_MACRO_CALL_NESTING)
     611  {
     612      dVAR; dXSARGS;
     613      if (items != 1)
     614         croak_xs_usage(cv,  "i");
     615      {
     616  	int	i = (int)SvIV(ST(0))
     617  ;
     618  
     619  	conf_set_MAX_MACRO_CALL_NESTING(i);
     620      }
     621      XSRETURN_EMPTY;
     622  }
     623  
     624  
     625  XS_EUPXS(XS_Texinfo__Parser_set_DOC_ENCODING_FOR_INPUT_FILE_NAME); /* prototype to pass -Wmissing-prototypes */
     626  XS_EUPXS(XS_Texinfo__Parser_set_DOC_ENCODING_FOR_INPUT_FILE_NAME)
     627  {
     628      dVAR; dXSARGS;
     629      if (items != 1)
     630         croak_xs_usage(cv,  "i");
     631      {
     632  	int	i = (int)SvIV(ST(0))
     633  ;
     634  
     635  	set_DOC_ENCODING_FOR_INPUT_FILE_NAME(i);
     636      }
     637      XSRETURN_EMPTY;
     638  }
     639  
     640  
     641  XS_EUPXS(XS_Texinfo__Parser_conf_set_input_file_name_encoding); /* prototype to pass -Wmissing-prototypes */
     642  XS_EUPXS(XS_Texinfo__Parser_conf_set_input_file_name_encoding)
     643  {
     644      dVAR; dXSARGS;
     645      if (items != 1)
     646         croak_xs_usage(cv,  "value");
     647      {
     648  	char *	value = (char *)SvPVbyte_nolen(ST(0));
     649  
     650  	conf_set_input_file_name_encoding(value);
     651      }
     652      XSRETURN_EMPTY;
     653  }
     654  
     655  
     656  XS_EUPXS(XS_Texinfo__Parser_conf_set_locale_encoding); /* prototype to pass -Wmissing-prototypes */
     657  XS_EUPXS(XS_Texinfo__Parser_conf_set_locale_encoding)
     658  {
     659      dVAR; dXSARGS;
     660      if (items != 1)
     661         croak_xs_usage(cv,  "value");
     662      {
     663  	char *	value = (char *)SvPVbyte_nolen(ST(0));
     664  
     665  	conf_set_locale_encoding(value);
     666      }
     667      XSRETURN_EMPTY;
     668  }
     669  
     670  
     671  XS_EUPXS(XS_Texinfo__Parser_conf_set_documentlanguage_override); /* prototype to pass -Wmissing-prototypes */
     672  XS_EUPXS(XS_Texinfo__Parser_conf_set_documentlanguage_override)
     673  {
     674      dVAR; dXSARGS;
     675      if (items != 1)
     676         croak_xs_usage(cv,  "value");
     677      {
     678  	char *	value = (char *)SvPVbyte_nolen(ST(0));
     679  
     680  	conf_set_documentlanguage_override(value);
     681      }
     682      XSRETURN_EMPTY;
     683  }
     684  
     685  
     686  XS_EUPXS(XS_Texinfo__Parser_set_debug); /* prototype to pass -Wmissing-prototypes */
     687  XS_EUPXS(XS_Texinfo__Parser_set_debug)
     688  {
     689      dVAR; dXSARGS;
     690      if (items != 1)
     691         croak_xs_usage(cv,  "i");
     692      {
     693  	int	i = (int)SvIV(ST(0))
     694  ;
     695  
     696  	set_debug(i);
     697      }
     698      XSRETURN_EMPTY;
     699  }
     700  
     701  
     702  XS_EUPXS(XS_Texinfo__Parser_set_accept_internalvalue); /* prototype to pass -Wmissing-prototypes */
     703  XS_EUPXS(XS_Texinfo__Parser_set_accept_internalvalue)
     704  {
     705      dVAR; dXSARGS;
     706      if (items != 0)
     707         croak_xs_usage(cv,  "");
     708      {
     709  
     710  	set_accept_internalvalue();
     711      }
     712      XSRETURN_EMPTY;
     713  }
     714  
     715  
     716  XS_EUPXS(XS_Texinfo__Parser_get_errors); /* prototype to pass -Wmissing-prototypes */
     717  XS_EUPXS(XS_Texinfo__Parser_get_errors)
     718  {
     719      dVAR; dXSARGS;
     720      if (items != 0)
     721         croak_xs_usage(cv,  "");
     722      {
     723  	AV *	RETVAL;
     724  
     725  	RETVAL = get_errors();
     726  	{
     727  	    SV * RETVALSV;
     728  	    RETVALSV = newRV((SV*)RETVAL);
     729  	    RETVALSV = sv_2mortal(RETVALSV);
     730  	    ST(0) = RETVALSV;
     731  	}
     732      }
     733      XSRETURN(1);
     734  }
     735  
     736  #ifdef __cplusplus
     737  extern "C"
     738  #endif
     739  XS_EXTERNAL(boot_Texinfo__Parser); /* prototype to pass -Wmissing-prototypes */
     740  XS_EXTERNAL(boot_Texinfo__Parser)
     741  {
     742  #if PERL_VERSION_LE(5, 21, 5)
     743      dVAR; dXSARGS;
     744  #else
     745      dVAR; dXSBOOTARGSXSAPIVERCHK;
     746  #endif
     747  #if (PERL_REVISION == 5 && PERL_VERSION < 9)
     748      char* file = __FILE__;
     749  #else
     750      const char* file = __FILE__;
     751  #endif
     752  
     753      PERL_UNUSED_VAR(file);
     754  
     755      PERL_UNUSED_VAR(cv); /* -W */
     756      PERL_UNUSED_VAR(items); /* -W */
     757  #if PERL_VERSION_LE(5, 21, 5)
     758      XS_VERSION_BOOTCHECK;
     759  #  ifdef XS_APIVERSION_BOOTCHECK
     760      XS_APIVERSION_BOOTCHECK;
     761  #  endif
     762  #endif
     763  
     764          (void)newXSproto_portable("Texinfo::Parser::init", XS_Texinfo__Parser_init, file, "$$");
     765          (void)newXSproto_portable("Texinfo::Parser::wipe_errors", XS_Texinfo__Parser_wipe_errors, file, "");
     766          (void)newXSproto_portable("Texinfo::Parser::parse_file", XS_Texinfo__Parser_parse_file, file, "$");
     767          (void)newXSproto_portable("Texinfo::Parser::parse_piece", XS_Texinfo__Parser_parse_piece, file, "$$");
     768          (void)newXSproto_portable("Texinfo::Parser::parse_string", XS_Texinfo__Parser_parse_string, file, "$$");
     769          (void)newXSproto_portable("Texinfo::Parser::parse_text", XS_Texinfo__Parser_parse_text, file, "$$");
     770          (void)newXSproto_portable("Texinfo::Parser::store_value", XS_Texinfo__Parser_store_value, file, "$$");
     771          (void)newXSproto_portable("Texinfo::Parser::wipe_values", XS_Texinfo__Parser_wipe_values, file, "");
     772          (void)newXSproto_portable("Texinfo::Parser::reset_context_stack", XS_Texinfo__Parser_reset_context_stack, file, "");
     773          (void)newXSproto_portable("Texinfo::Parser::init_index_commands", XS_Texinfo__Parser_init_index_commands, file, "");
     774          (void)newXSproto_portable("Texinfo::Parser::add_include_directory", XS_Texinfo__Parser_add_include_directory, file, "$");
     775          (void)newXSproto_portable("Texinfo::Parser::build_texinfo_tree", XS_Texinfo__Parser_build_texinfo_tree, file, "");
     776          (void)newXSproto_portable("Texinfo::Parser::build_target_elements_list", XS_Texinfo__Parser_build_target_elements_list, file, "");
     777          (void)newXSproto_portable("Texinfo::Parser::build_internal_xref_list", XS_Texinfo__Parser_build_internal_xref_list, file, "");
     778          (void)newXSproto_portable("Texinfo::Parser::build_float_list", XS_Texinfo__Parser_build_float_list, file, "");
     779          (void)newXSproto_portable("Texinfo::Parser::build_index_data", XS_Texinfo__Parser_build_index_data, file, "");
     780          (void)newXSproto_portable("Texinfo::Parser::build_global_info", XS_Texinfo__Parser_build_global_info, file, "");
     781          (void)newXSproto_portable("Texinfo::Parser::build_global_info2", XS_Texinfo__Parser_build_global_info2, file, "");
     782          (void)newXSproto_portable("Texinfo::Parser::reset_parser", XS_Texinfo__Parser_reset_parser, file, "$");
     783          (void)newXSproto_portable("Texinfo::Parser::clear_expanded_formats", XS_Texinfo__Parser_clear_expanded_formats, file, "");
     784          (void)newXSproto_portable("Texinfo::Parser::add_expanded_format", XS_Texinfo__Parser_add_expanded_format, file, "$");
     785          (void)newXSproto_portable("Texinfo::Parser::conf_set_show_menu", XS_Texinfo__Parser_conf_set_show_menu, file, "$");
     786          (void)newXSproto_portable("Texinfo::Parser::conf_set_CPP_LINE_DIRECTIVES", XS_Texinfo__Parser_conf_set_CPP_LINE_DIRECTIVES, file, "$");
     787          (void)newXSproto_portable("Texinfo::Parser::conf_set_IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME", XS_Texinfo__Parser_conf_set_IGNORE_SPACE_AFTER_BRACED_COMMAND_NAME, file, "$");
     788          (void)newXSproto_portable("Texinfo::Parser::conf_set_MAX_MACRO_CALL_NESTING", XS_Texinfo__Parser_conf_set_MAX_MACRO_CALL_NESTING, file, "$");
     789          (void)newXSproto_portable("Texinfo::Parser::set_DOC_ENCODING_FOR_INPUT_FILE_NAME", XS_Texinfo__Parser_set_DOC_ENCODING_FOR_INPUT_FILE_NAME, file, "$");
     790          (void)newXSproto_portable("Texinfo::Parser::conf_set_input_file_name_encoding", XS_Texinfo__Parser_conf_set_input_file_name_encoding, file, "$");
     791          (void)newXSproto_portable("Texinfo::Parser::conf_set_locale_encoding", XS_Texinfo__Parser_conf_set_locale_encoding, file, "$");
     792          (void)newXSproto_portable("Texinfo::Parser::conf_set_documentlanguage_override", XS_Texinfo__Parser_conf_set_documentlanguage_override, file, "$");
     793          (void)newXSproto_portable("Texinfo::Parser::set_debug", XS_Texinfo__Parser_set_debug, file, "$");
     794          (void)newXSproto_portable("Texinfo::Parser::set_accept_internalvalue", XS_Texinfo__Parser_set_accept_internalvalue, file, "");
     795          (void)newXSproto_portable("Texinfo::Parser::get_errors", XS_Texinfo__Parser_get_errors, file, "");
     796  #if PERL_VERSION_LE(5, 21, 5)
     797  #  if PERL_VERSION_GE(5, 9, 0)
     798      if (PL_unitcheckav)
     799          call_list(PL_scopestack_ix, PL_unitcheckav);
     800  #  endif
     801      XSRETURN_YES;
     802  #else
     803      Perl_xs_boot_epilog(aTHX_ ax);
     804  #endif
     805  }
     806