diff options
| author | Charles.Forsyth <devnull@localhost> | 2006-12-22 17:07:39 +0000 |
|---|---|---|
| committer | Charles.Forsyth <devnull@localhost> | 2006-12-22 17:07:39 +0000 |
| commit | 37da2899f40661e3e9631e497da8dc59b971cbd0 (patch) | |
| tree | cbc6d4680e347d906f5fa7fca73214418741df72 /limbo/fns.h | |
| parent | 54bc8ff236ac10b3eaa928fd6bcfc0cdb2ba46ae (diff) | |
20060303a
Diffstat (limited to 'limbo/fns.h')
| -rw-r--r-- | limbo/fns.h | 391 |
1 files changed, 391 insertions, 0 deletions
diff --git a/limbo/fns.h b/limbo/fns.h new file mode 100644 index 00000000..ddaa8a97 --- /dev/null +++ b/limbo/fns.h @@ -0,0 +1,391 @@ +int addfile(File*); +void addfnptrs(Decl*, int); +void addiface(Decl*, Decl*); +void addinclude(char*); +char *addrprint(char*, char*, int, Addr*); +Typelist *addtype(Type*, Typelist*); +Node *adtdecl(Decl *ids, Node *fields); +void adtdecled(Node *n); +void adtdefd(Type*); +Decl *adtmeths(Type*); +void adtstub(Decl*); +long align(long, int); +void *allocmem(ulong); +void altcheck(Node *an, Type *ret); +void altcom(Node*); +Inst *andand(Node*, int, Inst*); +Decl *appdecls(Decl*, Decl*); +int argcompat(Node*, Decl*, Node*); +void arraycom(Node*, Node*); +void arraydefault(Node*, Node*); +Type *arrowtype(Type*, Decl*); +void asmdesc(Desc*); +void asmentry(Decl*); +void asmexc(Except*); +void asminitializer(long, Node*); +void asminst(Inst*); +void asmldt(long, Decl*); +void asmmod(Decl*); +void asmpath(void); +void asmstring(long, Sym*); +void asmvar(long, Decl*); +int assignindices(Node*); +void bccom(Node*, Inst**); +Inst *bcom(Node*, int, Inst*); +void bindnames(Node*); +void bindtypes(Type *t); +Ok callcast(Node*, int, int); +void callcom(Src*, int, Node*, Node*); +Type* calltype(Type*, Node*, Type*); +double canontod(ulong v[2]); +void casecheck(Node *cn, Type *ret); +int casecmp(Type*, Node*, Node*); +void casecom(Node*); +Node *caselist(Node*, Node*); +void casesort(Type*, Label*, Label*, int, int); +Case *checklabels(Node *inits, Type *ctype, int nlab, char *title); +void checkrefs(Decl*); +Node *checkused(Node*); +int circlval(Node*, Node*); +void concheck(Node *n, int isglobal); +Node *condecl(Decl*, Node*); +void condecled(Node *n); +void constub(Decl*); +Type *copytypeids(Type*); +char *ctprint(char*, char*, Type*); +int ctypeconv(Fmt*); +Line curline(void); +Decl *curscope(void); +int cycarc(Type*, Type*); +void cycfield(Type*, Decl*); +void cycsizetype(Type*); +void cyctype(Type*); +int dasdecl(Node *n); +void declaserr(Node*); +int declasinfer(Node*, Type*); +int declconv(Fmt*); +Decl *declsort(Decl*); +void declstart(void); +void decltozero(Node *n); +void deldecl(Decl*); +int dequal(Decl*, Decl*, int); +long descmap(Decl*, uchar*, long); +void disaddr(int, Addr*); +void disbcon(long); +void discon(long); +void disdata(int, long); +void disdesc(Desc*); +void disentry(Decl*); +void disexc(Except*); +void disinst(Inst*); +void disldt(long, Decl*); +void dismod(Decl*); +void dispath(void); +void disvar(long, Decl*); +void disword(long); +int dotconv(Fmt*); +char *dotprint(char*, char*, Decl*, int); +Type *dottype(Type*, Decl*); +void dtocanon(double, ulong[2]); +Decl *dupdecl(Decl*); +Decl *dupdecls(Decl*); +Node *dupn(int, Src*, Node*); +Node *eacom(Node*, Node*, Node*); +Ok echeck(Node *n, int typeok, int isglobal, Node* par); +Node *ecom(Src*, Node*, Node*); +Node *efold(Node *n); +Node *elemsort(Node*); +void emit(Decl*); +Decl *encpolys(Decl*); +Sym *enter(char*, int); +Desc *enterdesc(uchar*, long, long); +Sym *enterstring(char*, int); +char *eprint(char*, char*, Node*); +char *eprintlist(char*, char*, Node*, char*); +void error(Line, char*, ...); +#pragma varargck argpos error 2 +int etconv(Fmt*); +Node *etolist(Node*); +void excheck(Node *n, int isglobal); +void exccheck(Node *cn, Type *ret); +void excom(Node*); +Node *exdecl(Decl*, Decl*); +void exdecled(Node *n); +Type *expandtype(Type*, Type*, Decl*, Tpair**); +Type *expandtypes(Type*, Decl*); +int expconv(Fmt*); +Type *exptotype(Node*); +void fatal(char*, ...); +#pragma varargck argpos fatal 1 +void fielddecled(Node *n); +Node *fielddecl(int store, Decl *ids); +int findlab(Type *ty, Node *v, Label *labs, int nlab); +int fixop(int, Type*, Type*, Type*, int*, int*); +Fline fline(int); +void fmtcheck(Node*, Node*, Node*); +void fncheck(Decl *d); +Decl *fnchk(Node *n); +void fncom(Decl*); +Node *fndecl(Node *n, Type *t, Node *body); +void fndecled(Node *n); +Decl* fnlookup(Sym*, Type*, Node**); +Node *fold(Node*); +void foldbranch(Inst*); +Node *foldc(Node*); +Node *foldcast(Node*, Node*); +Node *foldcasti(Node*, Node*); +Node *foldr(Node*); +Node *foldvc(Node*); +void gbind(Node *n); +int gcheck(Node*, Decl**, int); +void gdasdecl(Node *n); +void gdecl(Node *n); +Addr genaddr(Node*); +Inst *genbra(Src*, int, Node*, Node*); +Inst *genchan(Src*, Node*, Type*, Node*); +Desc *gendesc(Decl*, long, Decl*); +Inst *genfixcastop(Src*, int, Node*, Node*); +Inst *genmove(Src*, int, Type*, Node*, Node*); +Inst *genop(Src*, int, Node*, Node*, Node*); +Inst *genrawop(Src*, int, Node*, Node*, Node*); +void genstart(void); +long getpc(Inst*); +int gfltconv(Fmt*); +Decl *globalBconst(Node*); +Node *globalas(Node*, Node*, int); +Decl *globalbconst(Node*); +Decl *globalconst(Node*); +Decl *globalfconst(Node*); +Decl *globalsconst(Node*); +void gsort(Node*); +int hasasgns(Node*); +int hascall(Node*); +Node *hascomm(Node*); +int hasside(Node*, int); +long idindices(Decl*); +long idoffsets(Decl*, long, int); +Type *idtype(Type*); +void importcheck(Node *n, int isglobal); +void importchk(Node*); +Node *importdecl(Node *m, Decl *ids); +void importdecled(Node *n); +void includef(Sym*); +Node *indsascom(Src*, Node*, Node*); +int initable(Node*, Node*, int); +int inloop(void); +void installids(int store, Decl *ids); +int instconv(Fmt*); +Type *insttype(Type*, Decl*, Tpair**); +Type *internaltype(Type*); +int isimpmod(Sym*); +int islval(Node*); +int ispoly(Decl*); +int ispolyadt(Type*); +int istuple(Node*); +void joiniface(Type*, Type*); +void lexinit(void); +void lexstart(char*); +int lineconv(Fmt*); +int local(Decl*); +Decl *lookdot(Decl*, Sym*); +Decl *lookup(Sym*); +int mapconv(Fmt*); +int marklval(Node*); +int mathchk(Node*, int); +void mergepolydecs(Type*); +Type *mkadtcon(Type*); +Type *mkadtpickcon(Type*, Type*); +Type *mkarrowtype(Line*, Line*, Type*, Sym*); +Node *mkbin(int, Node*, Node*); +Node *mkconst(Src*, Long); +Decl *mkdecl(Src*, int, Type*); +Node *mkdeclname(Src*, Decl*); +Desc *mkdesc(long, Decl*); +Type *mkdottype(Line*, Line*, Type*, Sym*); +Type *mkexbasetype(Type*); +Type *mkextuptype(Type*); +Type *mkextype(Type*); +File *mkfile(char*, int, int, int, char*, int, int); +Decl *mkids(Src*, Sym*, Type*, Decl*); +Type *mkidtype(Src*, Sym*); +Type *mkiface(Decl*); +Inst *mkinst(void); +Type *mkinsttype(Src*, Type*, Typelist*); +Node *mkname(Src*, Sym*); +Node *mknil(Src*); +Node *mkn(int, Node*, Node*); +Node *mkrconst(Src*, Real); +Node *mksconst(Src*, Sym*); +Node *mkscope(Node *body); +Type *mktalt(Case*); +Desc *mktdesc(Type*); +Node *mktn(Type*); +Type *mktype(Line*, Line*, int, Type*, Decl*); +Node *mkunary(int, Node*); +Type *mkvarargs(Node*, Node*); +Teq *modclass(void); +void modcode(Decl*); +void modcom(Decl*); +void moddataref(void); +Node *moddecl(Decl *ids, Node *fields); +void moddecled(Node *n); +Decl *modglobals(Decl*, Decl*); +Decl *modimp(Dlist*, Decl*); +void modrefable(Type*); +void modresolve(void); +void modstub(Decl*); +void modtab(Decl*); +Decl *module(Decl*); +int mustzero(Decl *); +int mpatof(char*, double*); +Decl *namedot(Decl*, Sym*); +Decl *namesort(Decl*); +void narrowmods(void); +void nerror(Node*, char*, ...); +#pragma varargck argpos nerror 2 +int nested(void); +Inst *nextinst(void); +int nodeconv(Fmt*); +int nodes(Node*); +char *nprint(char*, char*, Node*, int); +void nwarn(Node*, char*, ...); +#pragma varargck argpos nwarn 2 +int occurs(Decl*, Node*); +int opconv(Fmt*); +void optabinit(void); +void optim(Inst*, Decl*); +Inst *oror(Node*, int, Inst*); +Decl *outerpolys(Node*); +Node *passfns(Src*, Decl*, Node*, Node*, Type*, Tpair*); +Node *passimplicit(Node*, Node*); +void patch(Inst*, Inst*); +void pickcheck(Node*, Type*); +int pickdecled(Node *n); +Decl *pickdefd(Type*, Decl*); +void pickdupcom(Src*, Node*, Node*); +Decl* polydecl(Decl*); +int polyequal(Decl*, Decl*); +void popblock(void); +Decl *popids(Decl*); +void popscopes(void); +Decl *popscope(void); +void printdecls(Decl*); +int pushblock(void); +void pushlabel(Node*); +void pushscope(Node *, int); +void raisescheck(Type*); +int raisescompat(Node*, Node*); +void reach(Inst*); +void *reallocmem(void*, ulong); +void recvacom(Src*, Node*, Node*); +void redecl(Decl *d); +void reftype(Type*); +void repushblock(int); +void repushids(Decl*); +void resizetype(Type*); +long resolvedesc(Decl*, long, Decl*); +Decl* resolveldts(Decl*, Decl**); +int resolvemod(Decl*); +long resolvepcs(Inst*); +Node *retalloc(Node*, Node*); +Decl *revids(Decl*); +Node *rewrite(Node *n); +Node *rewritecomm(Node*, Node*, Node*, Node*); +Inst *rewritedestreg(Inst*, int, int); +Inst *rewritesrcreg(Inst*, int, int, int); +void rmfnptrs(Decl*); +Node *rotater(Node*); +double rpow(double, int); +int sameaddr(Node*, Node*); +int sametree(Node*, Node*); +void sblfiles(void); +void sblfn(Decl**, int); +void sblinst(Inst*, long); +void sblmod(Decl*); +void sblty(Decl**, int); +void sblvar(Decl*); +double scale(Type*); +double scale2(Type*, Type*); +Node* scheck(Node*, Type*, int); +void scom(Node*); +char *secpy(char*, char*, char*); +char *seprint(char*, char*, char*, ...); +#pragma varargck argpos seprint 3 +void shareloc(Decl*); +int shiftchk(Node*); +ulong sign(Decl*); +Node *simplify(Node*); +Szal sizeids(Decl*, long); +void sizetype(Type*); +Node *slicelcom(Src*, Node*, Node*); +int specific(Type*); +int srcconv(Fmt*); +char* srcpath(char*, int); +int storeconv(Fmt*); +char *stprint(char*, char*, Type*); +Sym *stringcat(Sym*, Sym*); +char *stringpr(char*, char*, Sym*); +Long strtoi(char*, int); +int stypeconv(Fmt*); +Node *sumark(Node*); +int symcmp(Sym*, Sym*); +Node *tacquire(Node*); +Ok tagcast(Node*, Node*, Node*, Decl*, int, int); +Node *talloc(Node*, Type*, Node*); +int tcompat(Type*, Type*, int); +void tcycle(Type*); +Decl *tdecls(void); +long tdescmap(Type*, uchar*, long); +void teqclass(Type*); +int tequal(Type*, Type*); +void tfree(Node*); +void tfreelater(Node*); +void tfreenow(void); +void tinit(void); +int tmustzero(Type *); +Type *toptype(Src*, Type*); +Type *topvartype(Type *t, Decl *id, int tyok, int polyok); +Type* tparent(Type*, Type*); +char *tprint(char*, char*, Type*); +void translate(char*, char*, char*); +void trelease(Node*); +int tunify(Type*, Type*, Tpair**); +int tupaliased(Node*, Node*); +int tupsaliased(Node*, Node*); +void tupcom(Node*, Node*); +void tuplcom(Node*, Node*); +void tuplrcom(Node*, Node*); +Decl *tuplefields(Node*); +void typebuiltin(Decl*, Type*); +Decl *typecheck(int); +int typeconv(Fmt*); +Node *typedecl(Decl *ids, Type *t); +void typedecled(Node *n); +Decl *typeids(Decl*, Type*); +void typeinit(void); +void typestart(void); +Decl *undefed(Src *src, Sym *s); +Desc *usedesc(Desc*); +void usedty(Type*); +Type *usetype(Type*); +Type *validtype(Type*, Decl*); +int valistype(Node*); +Type *valtmap(Type*, Tpair*); +void varcheck(Node *n, int isglobal); +int varcom(Decl*); +Node *vardecl(Decl*, Type*); +void vardecled(Node *n); +Node *varinit(Decl*, Node*); +Decl *varlistdecl(Decl*, Node*); +Decl *vars(Decl*); +int vcom(Decl*); +Type *verifytypes(Type*, Decl*, Decl*); +void warn(Line, char*, ...); +#pragma varargck argpos warn 2 +void yyerror(char*, ...); +#pragma varargck argpos yyerror 1 +int yylex(void); +int yyparse(void); +void zcom(Node *, Node**); +void zcom0(Decl *, Node**); +void zcom1(Node *, Node**); |
