109 char *
tmp2=
l->m[a->pos].String();
126 if (a->next==
NULL)
break;
150 N->m[n].Copy(&L->
m[n]);
154 N->m[n].rtyp=L->
m[n].
rtyp;
160 N->m[n].rtyp=L->
m[n].
rtyp;
165 N->m[n].rtyp=L->
m[n].
rtyp;
167 N->m[n].data=(
void *)
b->blackbox_Copy(
b,L->
m[n].
data);
170 N->m[n].Copy(&L->
m[n]);
189 while( (
p!=
NULL) && ((
p->t!=
'=')||(
p->args!=1)) )
p=
p->next;
223 for(
i=
l->nr;
i>=0;
i--)
266 while((
p!=
NULL) &&( (
p->t!=op) || (
p->args!=1) ))
p=
p->next;
290 if (
l->Typ()==r->
Typ())
297 if (
l->Typ()!=r->
Typ())
303 Werror(
"custom type %s(%d) cannot be assigned to newstruct %s(%d)",
329 if (
l->Typ()==r->
Typ())
339 Werror(
"assign %s(%d) = %s(%d)",
384 WerrorS(
"ring of this member is not set and no basering found");
392 || (
al->m[
nm->pos].RingDependend()))
430 r->start =
nm->pos+1;
459 while((
p!=
NULL) && ( (
p->t!=op) || (
p->args!=2) ))
p=
p->next;
495 res->data=(
void *)a->blackbox_String(a,args->
Data());
505 while((
p!=
NULL) &&( (
p->t!=op) || (
p->args!=4) ))
p=
p->next;
544 l->m[
nm->pos].rtyp=
nm->typ;
568 Werror(
"can not assign %s(%d) to member of type %s(%d)",
573 Werror(
"can not assign %s to member of type %s",
rt1,
lt1);
613 l.data=(
void*)(
long)Ll;
620 rings[elem->pos]=
'\1';
636 f->m->Write(
f,&(
ll->m[
i]));
651 int Ll=(
int)(
long)
l->data;
655 for(
int i=0;
i<=Ll;
i++)
739 while ((*
p!=
'\0') && (*
p<=
' '))
p++;
746 Werror(
"unknown type `%s`",start);
759 while ((*
p!=
'\0') && (*
p<=
' '))
p++;
766 if ((*start==
'\0') ||(
isdigit(*start)))
768 WerrorS(
"illegal/empty name for element");
773 elem->next=
res->member;
779 while ((*
p!=
'\0') && (*
p<=
' '))
p++;
784 Werror(
"unknown character in newstruct:>>%s<<",
p);
817 Werror(
">>%s< not found",parent);
824 Werror(
">>%s< is not a user defined type",parent);
840 Print(
"id: %d\n",d->id);
844 Print(
">>%s<< at pos %d, type %d (%s)\n",elem->name,elem->pos,elem->typ,
Tok2Cmdname(elem->typ));
846 Print(
">>r_%s<< at pos %d, shadow ring\n",elem->name,elem->pos-1);
852 Print(
"op:%d(%s) with %d args -> %s\n",
p->t,
iiTwoOps(
p->t),
p->args,
p->p->procname);
895 Werror(
">>%s<< is not a kernel command",func);
911 if(args!=1) {
Warn(
"args must be 1 for %s in %s",func,
my_yylinebuf);args=1;}
int setBlackboxStuff(blackbox *bb, const char *n)
define a new type
BOOLEAN blackboxDefaultOp2(int, leftv, leftv, leftv)
default procedure blackboxDefaultOp2, to be called as "default:" branch
const char * getBlackboxName(const int t)
return the name to the type given by t (r/o)
blackbox * getBlackboxStuff(const int t)
return the structure to the type given by t
void blackbox_default_Print(blackbox *b, void *d)
default procedure blackbox_default_Print: print the string
int blackboxIsCmd(const char *n, int &tok)
used by scanner: returns ROOT_DECL for known types (and the type number in tok)
BOOLEAN blackboxDefaultOpM(int op, leftv res, leftv args)
default procedure blackboxDefaultOpM, to be called as "default:" branch
BOOLEAN blackboxDefaultOp1(int op, leftv l, leftv r)
default procedure blackboxDefaultOp1, to be called as "default:" branch
const CanonicalForm CFMap CFMap & N
Class used for (list of) interpreter objects.
void CleanUp(ring r=currRing)
INLINE_THIS void Init(int l=0)
const CanonicalForm int s
void WerrorS(const char *s)
VAR char my_yylinebuf[80]
int iiTestConvert(int inputType, int outputType)
const char * iiTwoOps(int t)
const char * Tok2Cmdname(int tok)
static int RingDependend(int t)
int IsCmd(const char *n, int &tok)
const struct sConvertTypes dConvertTypes[]
void * idrecDataInit(int t)
EXTERN_VAR omBin sleftv_bin
BOOLEAN iiMake_proc(idhdl pn, package pack, leftv args)
INST_VAR sleftv iiRETURNEXPR
int iiOpsTwoChar(const char *s)
BOOLEAN lRingDependend(lists L)
BOOLEAN newstruct_Op2(int op, leftv res, leftv a1, leftv a2)
BOOLEAN newstruct_Assign_user(int op, leftv l, leftv r)
BOOLEAN newstruct_deserialize(blackbox **, void **d, si_link f)
void newstruct_setup(const char *n, newstruct_desc d)
void lClean_newstruct(lists l)
newstruct_desc newstructChildFromString(const char *parent, const char *s)
void newstruct_destroy(blackbox *, void *d)
char * newstruct_String(blackbox *b, void *d)
static BOOLEAN newstruct_Assign_same(leftv l, leftv r)
static int NeedShadowRing(int t)
BOOLEAN newstruct_Op1(int op, leftv res, leftv arg)
BOOLEAN newstruct_Assign(leftv l, leftv r)
BOOLEAN newstruct_serialize(blackbox *b, void *d, si_link f)
void * newstruct_Copy(blackbox *, void *d)
newstruct_desc newstructFromString(const char *s)
void * newstruct_Init(blackbox *b)
BOOLEAN newstruct_OpM(int op, leftv res, leftv args)
int newstruct_desc_size()
void newstructShow(newstruct_desc d)
lists lCopy_newstruct(lists L)
static newstruct_desc scanNewstructFromString(const char *s, newstruct_desc res)
BOOLEAN newstruct_set_proc(const char *bbname, const char *func, int args, procinfov pr)
BOOLEAN newstruct_CheckAssign(blackbox *, leftv L, leftv R)
void newstruct_Print(blackbox *b, void *d)
#define omFreeSize(addr, size)
#define omFreeBin(addr, bin)
void rChangeCurrRing(ring r)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
void StringSetS(const char *st)
void StringAppendS(const char *st)
void Werror(const char *fmt,...)
static ring rIncRefCnt(ring r)
static void rDecRefCnt(ring r)