/*
* This file was generated automatically by xsubpp version 1.9508 from the
* contents of Preprocessor.xs. Do not edit this file, edit Preprocessor.xs instead.
*
* ANY CHANGES MADE HERE WILL BE LOST!
*
*/
#line 1 "Preprocessor.xs"
#include "EXTERN.h"
#include "perl.h"
#include "XSUB.h"
#include "ppport.h"
static SV * startElementHandler = (SV*) NULL;
static SV * endElementHandler = (SV*) NULL;
static SV * characterDataHandler = (SV*) NULL;
static SV * processingInstructionHandler = (SV*) NULL;
static SV * commentHandler = (SV*) NULL;
static SV * startCdataHandler = (SV*) NULL;
static SV * endCdataHandler = (SV*) NULL;
static SV * xmlDeclHandler = (SV*) NULL;
void
call_StartElementHandlerCommon(tag, hasChild)
char * tag;
int hasChild;
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(tag, 0)));
XPUSHs(sv_2mortal(newSViv(hasChild)));
PUTBACK;
if(startElementHandler != (SV*) NULL)
call_sv(startElementHandler, G_DISCARD);
FREETMPS;
LEAVE;
}
void
call_StartElementHandlerIdentifier(tag, hasChild, identifier, replaceable)
char * tag;
int hasChild;
char * identifier;
char * replaceable;
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(tag, 0)));
XPUSHs(sv_2mortal(newSViv(hasChild)));
XPUSHs(sv_2mortal(newSVpv("identifier", 0)));
XPUSHs(sv_2mortal(newSVpv(identifier, 0)));
XPUSHs(sv_2mortal(newSVpv("replaceable", 0)));
XPUSHs(sv_2mortal(newSVpv(replaceable, 0)));
PUTBACK;
if(startElementHandler != (SV*) NULL)
call_sv(startElementHandler, G_DISCARD);
FREETMPS;
LEAVE;
}
void
call_StartElementHandlerMacro(tag, hasChild, identifier)
char * tag;
int hasChild;
char * identifier;
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(tag, 0)));
XPUSHs(sv_2mortal(newSViv(hasChild)));
XPUSHs(sv_2mortal(newSVpv("identifier", 0)));
XPUSHs(sv_2mortal(newSVpv(identifier, 0)));
PUTBACK;
if(startElementHandler != (SV*) NULL)
call_sv(startElementHandler, G_DISCARD);
FREETMPS;
LEAVE;
}
void
call_StartElementHandlerText(tag, hasChild, value)
char * tag;
int hasChild;
char * value;
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(tag, 0)));
XPUSHs(sv_2mortal(newSViv(hasChild)));
XPUSHs(sv_2mortal(newSVpv("value", 0)));
XPUSHs(sv_2mortal(newSVpv(value, 0)));
PUTBACK;
if(startElementHandler != (SV*) NULL)
call_sv(startElementHandler, G_DISCARD);
FREETMPS;
LEAVE;
}
void
call_StartElementHandlerFile(tag, hasChild, path, lines, guarded, guardId)
char * tag;
int hasChild;
char * path;
int lines;
int guarded;
char * guardId;
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(tag, 0)));
XPUSHs(sv_2mortal(newSViv(hasChild)));
XPUSHs(sv_2mortal(newSVpv("path", 0)));
XPUSHs(sv_2mortal(newSVpv(path, 0)));
XPUSHs(sv_2mortal(newSVpv("lines", 0)));
XPUSHs(sv_2mortal(newSViv(lines)));
XPUSHs(sv_2mortal(newSVpv("guarded", 0)));
if(guarded != 0) {
XPUSHs(sv_2mortal(newSVpv("yes", 0)));
if(guardId != NULL) {
XPUSHs(sv_2mortal(newSVpv("guardId", 0)));
XPUSHs(sv_2mortal(newSVpv(guardId, 0)));
}
} else {
XPUSHs(sv_2mortal(newSVpv("no", 0)));
}
PUTBACK;
if(startElementHandler != (SV*) NULL)
call_sv(startElementHandler, G_DISCARD);
FREETMPS;
LEAVE;
}
void
call_StartElementHandlerIncludePath(tag, hasChild, path, used)
char * tag;
int hasChild;
char * path;
int used;
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(tag, 0)));
XPUSHs(sv_2mortal(newSViv(hasChild)));
XPUSHs(sv_2mortal(newSVpv("path", 0)));
XPUSHs(sv_2mortal(newSVpv(path, 0)));
XPUSHs(sv_2mortal(newSVpv("used", 0)));
if(used != 0) {
XPUSHs(sv_2mortal(newSVpv("yes", 0)));
} else {
XPUSHs(sv_2mortal(newSVpv("no", 0)));
}
PUTBACK;
if(startElementHandler != (SV*) NULL)
call_sv(startElementHandler, G_DISCARD);
FREETMPS;
LEAVE;
}
void
call_EndElementHandler(tag)
char * tag;
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(tag, 0)));
PUTBACK;
if(endElementHandler != (SV*) NULL)
call_sv(endElementHandler, G_DISCARD);
FREETMPS;
LEAVE;
}
void
call_CharacterDataHandler(string)
char * string;
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(string, 0)));
PUTBACK;
if(characterDataHandler != (SV*) NULL)
call_sv(characterDataHandler, G_DISCARD);
FREETMPS;
LEAVE;
}
void
call_ProcessingInstructionHandler(target,data)
char * target;
char * data;
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(target, 0)));
XPUSHs(sv_2mortal(newSVpv(data, 0)));
PUTBACK;
if(processingInstructionHandler != (SV*) NULL)
call_sv(processingInstructionHandler, G_DISCARD);
FREETMPS;
LEAVE;
}
void
call_CommentHandler(string)
char * string;
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(string, 0)));
PUTBACK;
if(commentHandler != (SV*) NULL)
call_sv(commentHandler, G_DISCARD);
FREETMPS;
LEAVE;
}
void
call_StartCdataHandler()
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
PUTBACK;
if(startCdataHandler != (SV*) NULL)
call_sv(startCdataHandler, G_DISCARD|G_NOARGS);
FREETMPS;
LEAVE;
}
void
call_EndCdataHandler()
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
PUTBACK;
if(endCdataHandler != (SV*) NULL)
call_sv(endCdataHandler, G_DISCARD|G_NOARGS);
FREETMPS;
LEAVE;
}
void
call_XMLDeclHandler(version, encoding, standalone)
char * version;
char * encoding;
char * standalone;
{
dSP;
ENTER;
SAVETMPS;
PUSHMARK(SP);
XPUSHs(sv_2mortal(newSVpv(version, 0)));
XPUSHs(sv_2mortal(newSVpv(encoding, 0)));
XPUSHs(sv_2mortal(newSVpv(standalone, 0)));
PUTBACK;
if(xmlDeclHandler != (SV*) NULL)
call_sv(xmlDeclHandler, G_DISCARD);
FREETMPS;
LEAVE;
}
#line 342 "Preprocessor.c"
XS(XS_Rinchi__Fortran__Preprocessor_ProcessFileArg); /* prototype to pass -Wmissing-prototypes */
XS(XS_Rinchi__Fortran__Preprocessor_ProcessFileArg)
{
dXSARGS;
if (items != 2)
Perl_croak(aTHX_ "Usage: Rinchi::Fortran::Preprocessor::ProcessFileArg(path, args)");
{
const char * path = (const char *)SvPV_nolen(ST(0));
SV * args = ST(1);
#line 339 "Preprocessor.xs"
I32 argc = -1;
int n;
AV * av_args;
char * arg;
void malloc_argv(int);
void parse(const char *);
void add_argv(char *);
if (SvROK(args)) {
av_args = (AV *)SvRV(args);
if ((SvTYPE(SvRV(args)) == SVt_PVAV)) {
argc = av_len(av_args);
malloc_argv(argc+2);
}
}
#line 369 "Preprocessor.c"
#line 355 "Preprocessor.xs"
for (n = 0; n <= argc; n++) {
STRLEN l;
arg = SvPV(*av_fetch(av_args, n, 0), l);
add_argv(arg);
}
parse(path);
#line 377 "Preprocessor.c"
}
XSRETURN_EMPTY;
}
XS(XS_Rinchi__Fortran__Preprocessor_ProcessFile); /* prototype to pass -Wmissing-prototypes */
XS(XS_Rinchi__Fortran__Preprocessor_ProcessFile)
{
dXSARGS;
if (items != 1)
Perl_croak(aTHX_ "Usage: Rinchi::Fortran::Preprocessor::ProcessFile(path)");
{
const char * path = (const char *)SvPV_nolen(ST(0));
#line 367 "Preprocessor.xs"
{
void parse(const char *path);
parse(path);
}
#line 396 "Preprocessor.c"
}
XSRETURN_EMPTY;
}
XS(XS_Rinchi__Fortran__Preprocessor_SetStartElementHandler); /* prototype to pass -Wmissing-prototypes */
XS(XS_Rinchi__Fortran__Preprocessor_SetStartElementHandler)
{
dXSARGS;
if (items != 1)
Perl_croak(aTHX_ "Usage: Rinchi::Fortran::Preprocessor::SetStartElementHandler(name)");
{
SV * name = ST(0);
#line 376 "Preprocessor.xs"
/* Take a copy of the callback */
if (startElementHandler == (SV*)NULL) {
/* First time, so create a new SV */
startElementHandler = newSVsv(name);
} else {
/* Been here before, so overwrite */
SvSetSV(startElementHandler, name);
}
#line 419 "Preprocessor.c"
}
XSRETURN_EMPTY;
}
XS(XS_Rinchi__Fortran__Preprocessor_SetEndElementHandler); /* prototype to pass -Wmissing-prototypes */
XS(XS_Rinchi__Fortran__Preprocessor_SetEndElementHandler)
{
dXSARGS;
if (items != 1)
Perl_croak(aTHX_ "Usage: Rinchi::Fortran::Preprocessor::SetEndElementHandler(name)");
{
SV * name = ST(0);
#line 389 "Preprocessor.xs"
/* Take a copy of the callback */
if (endElementHandler == (SV*)NULL) {
/* First time, so create a new SV */
endElementHandler = newSVsv(name);
} else {
/* Been here before, so overwrite */
SvSetSV(endElementHandler, name);
}
#line 442 "Preprocessor.c"
}
XSRETURN_EMPTY;
}
XS(XS_Rinchi__Fortran__Preprocessor_SetCharacterDataHandler); /* prototype to pass -Wmissing-prototypes */
XS(XS_Rinchi__Fortran__Preprocessor_SetCharacterDataHandler)
{
dXSARGS;
if (items != 1)
Perl_croak(aTHX_ "Usage: Rinchi::Fortran::Preprocessor::SetCharacterDataHandler(name)");
{
SV * name = ST(0);
#line 402 "Preprocessor.xs"
/* Take a copy of the callback */
if (characterDataHandler == (SV*)NULL) {
/* First time, so create a new SV */
characterDataHandler = newSVsv(name);
} else {
/* Been here before, so overwrite */
SvSetSV(characterDataHandler, name);
}
#line 465 "Preprocessor.c"
}
XSRETURN_EMPTY;
}
XS(XS_Rinchi__Fortran__Preprocessor_SetProcessingInstructionHandler); /* prototype to pass -Wmissing-prototypes */
XS(XS_Rinchi__Fortran__Preprocessor_SetProcessingInstructionHandler)
{
dXSARGS;
if (items != 1)
Perl_croak(aTHX_ "Usage: Rinchi::Fortran::Preprocessor::SetProcessingInstructionHandler(name)");
{
SV * name = ST(0);
#line 416 "Preprocessor.xs"
/* Take a copy of the callback */
if (processingInstructionHandler == (SV*)NULL) {
/* First time, so create a new SV */
processingInstructionHandler = newSVsv(name);
} else {
/* Been here before, so overwrite */
SvSetSV(processingInstructionHandler, name);
}
#line 488 "Preprocessor.c"
}
XSRETURN_EMPTY;
}
XS(XS_Rinchi__Fortran__Preprocessor_SetCommentHandler); /* prototype to pass -Wmissing-prototypes */
XS(XS_Rinchi__Fortran__Preprocessor_SetCommentHandler)
{
dXSARGS;
if (items != 1)
Perl_croak(aTHX_ "Usage: Rinchi::Fortran::Preprocessor::SetCommentHandler(name)");
{
SV * name = ST(0);
#line 429 "Preprocessor.xs"
/* Take a copy of the callback */
if (commentHandler == (SV*)NULL) {
/* First time, so create a new SV */
commentHandler = newSVsv(name);
} else {
/* Been here before, so overwrite */
SvSetSV(commentHandler, name);
}
#line 511 "Preprocessor.c"
}
XSRETURN_EMPTY;
}
XS(XS_Rinchi__Fortran__Preprocessor_SetStartCdataHandler); /* prototype to pass -Wmissing-prototypes */
XS(XS_Rinchi__Fortran__Preprocessor_SetStartCdataHandler)
{
dXSARGS;
if (items != 1)
Perl_croak(aTHX_ "Usage: Rinchi::Fortran::Preprocessor::SetStartCdataHandler(name)");
{
SV * name = ST(0);
#line 442 "Preprocessor.xs"
/* Take a copy of the callback */
if (startCdataHandler == (SV*)NULL) {
/* First time, so create a new SV */
startCdataHandler = newSVsv(name);
} else {
/* Been here before, so overwrite */
SvSetSV(startCdataHandler, name);
}
#line 534 "Preprocessor.c"
}
XSRETURN_EMPTY;
}
XS(XS_Rinchi__Fortran__Preprocessor_SetEndCdataHandler); /* prototype to pass -Wmissing-prototypes */
XS(XS_Rinchi__Fortran__Preprocessor_SetEndCdataHandler)
{
dXSARGS;
if (items != 1)
Perl_croak(aTHX_ "Usage: Rinchi::Fortran::Preprocessor::SetEndCdataHandler(name)");
{
SV * name = ST(0);
#line 455 "Preprocessor.xs"
/* Take a copy of the callback */
if (endCdataHandler == (SV*)NULL) {
/* First time, so create a new SV */
endCdataHandler = newSVsv(name);
} else {
/* Been here before, so overwrite */
SvSetSV(endCdataHandler, name);
}
#line 557 "Preprocessor.c"
}
XSRETURN_EMPTY;
}
XS(XS_Rinchi__Fortran__Preprocessor_SetXMLDeclHandler); /* prototype to pass -Wmissing-prototypes */
XS(XS_Rinchi__Fortran__Preprocessor_SetXMLDeclHandler)
{
dXSARGS;
if (items != 1)
Perl_croak(aTHX_ "Usage: Rinchi::Fortran::Preprocessor::SetXMLDeclHandler(name)");
{
SV * name = ST(0);
#line 468 "Preprocessor.xs"
/* Take a copy of the callback */
if (xmlDeclHandler == (SV*)NULL) {
/* First time, so create a new SV */
xmlDeclHandler = newSVsv(name);
} else {
/* Been here before, so overwrite */
SvSetSV(xmlDeclHandler, name);
}
#line 580 "Preprocessor.c"
}
XSRETURN_EMPTY;
}
#ifdef __cplusplus
extern "C"
#endif
XS(boot_Rinchi__Fortran__Preprocessor); /* prototype to pass -Wmissing-prototypes */
XS(boot_Rinchi__Fortran__Preprocessor)
{
dXSARGS;
char* file = __FILE__;
XS_VERSION_BOOTCHECK ;
newXS("Rinchi::Fortran::Preprocessor::ProcessFileArg", XS_Rinchi__Fortran__Preprocessor_ProcessFileArg, file);
newXS("Rinchi::Fortran::Preprocessor::ProcessFile", XS_Rinchi__Fortran__Preprocessor_ProcessFile, file);
newXS("Rinchi::Fortran::Preprocessor::SetStartElementHandler", XS_Rinchi__Fortran__Preprocessor_SetStartElementHandler, file);
newXS("Rinchi::Fortran::Preprocessor::SetEndElementHandler", XS_Rinchi__Fortran__Preprocessor_SetEndElementHandler, file);
newXS("Rinchi::Fortran::Preprocessor::SetCharacterDataHandler", XS_Rinchi__Fortran__Preprocessor_SetCharacterDataHandler, file);
newXS("Rinchi::Fortran::Preprocessor::SetProcessingInstructionHandler", XS_Rinchi__Fortran__Preprocessor_SetProcessingInstructionHandler, file);
newXS("Rinchi::Fortran::Preprocessor::SetCommentHandler", XS_Rinchi__Fortran__Preprocessor_SetCommentHandler, file);
newXS("Rinchi::Fortran::Preprocessor::SetStartCdataHandler", XS_Rinchi__Fortran__Preprocessor_SetStartCdataHandler, file);
newXS("Rinchi::Fortran::Preprocessor::SetEndCdataHandler", XS_Rinchi__Fortran__Preprocessor_SetEndCdataHandler, file);
newXS("Rinchi::Fortran::Preprocessor::SetXMLDeclHandler", XS_Rinchi__Fortran__Preprocessor_SetXMLDeclHandler, file);
XSRETURN_YES;
}