Public Member Functions | Data Fields
idrec Class Reference

#include <idrec.h>

Public Member Functions

 idrec ()
 
idhdl get (const char *s, int lev)
 
idhdl set (const char *s, int lev, int t, BOOLEAN init=TRUE)
 
char * String (BOOLEAN typed=FALSE)
 

Data Fields

idhdl next
 
const char * id
 
utypes data
 
attr attribute
 
BITSET flag
 
int typ
 
short lev
 
short ref
 
int id_i
 

Detailed Description

Definition at line 34 of file idrec.h.

Constructor & Destructor Documentation

idrec::idrec ( )
inline

Definition at line 49 of file idrec.h.

49 { memset(this,0,sizeof(*this)); }

Member Function Documentation

idhdl idrec::get ( const char *  s,
int  lev 
)

Definition at line 91 of file ipid.cc.

92 {
93  assume(s!=NULL);
94  assume((level>=0) && (level<=1000)); //not really, but if it isnt in that bounds..
95  idhdl h = this;
97  int l;
98  const char *id_;
99  int i=iiS2I(s);
100  int less4=(i < (1<<24));
101  while (h!=NULL)
102  {
103  omCheckAddr((ADDRESS)IDID(h));
104  l=IDLEV(h);
105  if ((l==0)||(l==level))
106  {
107  if (i==h->id_i)
108  {
109  id_=IDID(h);
110  if (less4 || (0 == strcmp(s+4,id_+4)))
111  {
112  if (l==level) return h;
113  found=h;
114  }
115  }
116  }
117  h = IDNEXT(h);
118  }
119  return found;
120 }
const CanonicalForm int s
Definition: facAbsFact.cc:55
int level(const CanonicalForm &f)
#define IDID(a)
Definition: ipid.h:121
#define IDNEXT(a)
Definition: ipid.h:117
int id_i
Definition: idrec.h:47
void * ADDRESS
Definition: auxiliary.h:161
Definition: idrec.h:34
bool found
Definition: facFactorize.cc:56
#define assume(x)
Definition: mod2.h:405
int iiS2I(const char *s)
Definition: ipid.cc:72
int i
Definition: cfEzgcd.cc:123
#define IDLEV(a)
Definition: ipid.h:120
#define NULL
Definition: omList.c:10
#define omCheckAddr(addr)
Definition: omAllocDecl.h:328
static Poly * h
Definition: janet.cc:978
int l
Definition: cfEzgcd.cc:94
idhdl idrec::set ( const char *  s,
int  lev,
int  t,
BOOLEAN  init = TRUE 
)

Definition at line 218 of file ipid.cc.

219 {
220  //printf("define %s, %x, level: %d, typ: %d\n", s,s,level,t);
222  IDID(h) = s;
223  IDTYP(h) = t;
224  IDLEV(h) = level;
225  IDNEXT(h) = this;
226  BOOLEAN at_start=(this==IDROOT);
227  h->id_i=iiS2I(s);
228  if (init)
229  {
230  if ((t==IDEAL_CMD)||(t==MODUL_CMD))
231  IDFLAG(h) = Sy_bit(FLAG_STD);
232  IDSTRING(h)=(char *)idrecDataInit(t);
233  // additional settings:--------------------------------------
234 #if 0
235  // this leads to a memory leak
236  if (t == QRING_CMD)
237  {
238  // IDRING(h)=rCopy(currRing);
239  /* QRING_CMD is ring dep => currRing !=NULL */
240  }
241 #endif
242  }
243  // --------------------------------------------------------
244  if (at_start)
245  IDNEXT(h) = IDROOT;
246  return h;
247 }
void * idrecDataInit(int t)
Definition: ipid.cc:132
const CanonicalForm int s
Definition: facAbsFact.cc:55
int level(const CanonicalForm &f)
#define IDID(a)
Definition: ipid.h:121
#define IDNEXT(a)
Definition: ipid.h:117
#define IDROOT
Definition: ipid.h:20
int id_i
Definition: idrec.h:47
#define Sy_bit(x)
Definition: options.h:30
Definition: idrec.h:34
#define IDTYP(a)
Definition: ipid.h:118
omBin idrec_bin
Definition: ipid.cc:52
int iiS2I(const char *s)
Definition: ipid.cc:72
#define IDSTRING(a)
Definition: ipid.h:135
#define IDLEV(a)
Definition: ipid.h:120
#define FLAG_STD
Definition: ipid.h:108
#define omAlloc0Bin(bin)
Definition: omAllocDecl.h:206
#define IDFLAG(a)
Definition: ipid.h:119
Definition: tok.h:126
static Poly * h
Definition: janet.cc:978
int BOOLEAN
Definition: auxiliary.h:131
char * idrec::String ( BOOLEAN  typed = FALSE)

Definition at line 249 of file ipid.cc.

250 {
251  sleftv tmp;
252  memset(&tmp,0,sizeof(sleftv));
253  tmp.rtyp=IDTYP(this);
254  tmp.data=IDDATA(this);
255  tmp.name=IDID(this);
256  return tmp.String(NULL, typed);
257 }
Class used for (list of) interpreter objects.
Definition: subexpr.h:83
#define IDID(a)
Definition: ipid.h:121
char * String(void *d=NULL, BOOLEAN typed=FALSE, int dim=1)
Called for conversion to string (used by string(..), write(..),..)
Definition: subexpr.cc:720
void * data
Definition: subexpr.h:89
#define IDTYP(a)
Definition: ipid.h:118
const char * name
Definition: subexpr.h:88
#define NULL
Definition: omList.c:10
int rtyp
Definition: subexpr.h:92
#define IDDATA(a)
Definition: ipid.h:125

Field Documentation

attr idrec::attribute

Definition at line 41 of file idrec.h.

utypes idrec::data

Definition at line 40 of file idrec.h.

BITSET idrec::flag

Definition at line 42 of file idrec.h.

const char* idrec::id

Definition at line 39 of file idrec.h.

int idrec::id_i

Definition at line 47 of file idrec.h.

short idrec::lev

Definition at line 45 of file idrec.h.

idhdl idrec::next

Definition at line 38 of file idrec.h.

short idrec::ref

Definition at line 46 of file idrec.h.

int idrec::typ

Definition at line 43 of file idrec.h.


The documentation for this class was generated from the following files: