PerlMaple
view release on metacpan or search on metacpan
PerlMaple.xs view on Meta::CPAN
strncpy(errinfo, msg, sizeof(errinfo));
errinfo[sizeof(errinfo)-1] = '\0';
}
int maple_start() {
char err[2048];
MCallBackVectorDesc cb = {
textCallBack,
errorCallBack,
0, /* statusCallBack not used */
0, /* readLineCallBack not used */
0, /* redirectCallBack not used */
0, /* streamCallBack not used */
0, /* query interrupt */
0 /* callBackCallBack not used */
};
errinfo[0] = '\0';
warninfo[0] = '\0';
result[0] = '\0';
if( (kv=StartMaple(0,NULL,&cb,NULL,NULL,err)) == NULL )
return 0;
else
return 1;
}
void maple_eval(char* expr) {
error = 0;
EvalMapleStatement(kv,expr);
}
char* maple_error() {
return errinfo;
}
char* maple_warning() {
return warninfo;
}
char* maple_result() {
return result;
}
int maple_success() {
return !error;
}
MODULE = PerlMaple PACKAGE = PerlMaple
PROTOTYPES: DISABLE
int
maple_start ()
void
maple_eval (expr)
char * expr
PREINIT:
I32* temp;
PPCODE:
temp = PL_markstack_ptr++;
warninfo[0] = '\0';
result[0] = '\0';
maple_eval(expr);
if (PL_markstack_ptr != temp) {
/* truly void, because dXSARGS not invoked */
PL_markstack_ptr = temp;
XSRETURN_EMPTY; /* return empty stack */
}
/* must have used dXSARGS; list context implied */
return; /* assume stack size is correct */
char *
maple_error ()
char *
maple_warning ()
char *
maple_result ()
int
maple_success ()
( run in 2.829 seconds using v1.01-cache-2.11-cpan-5511b514fd6 )