Annotation of 42BSD/usr.bin/efl/bigdefs, revision 1.1.1.1

1.1       root        1: #include "stdio.h"
                      2: 
                      3: #define HASHEDTABLE 1
                      4: 
                      5: 
                      6: #define NFTNTYPES 5
                      7: #define NEFLTYPES 12
                      8: 
                      9: #define MEMSIZE 12000
                     10: 
                     11: #define MAXSTNO 200
                     12: #define MAXINCLUDEDEPTH 10
                     13: #define MAXBLOCKDEPTH 30
                     14: #define MAXINDIFS 100
                     15: #define MAXFTNAMES 200
                     16: #define MAXEFLNAMES 401
                     17: 
                     18: #define EXECPOOL 20
                     19: #define EXPRPOOL 40
                     20: 
                     21: #define NAMESPERLINE 6
                     22: 
                     23: #define LINESPACES 66
                     24: #define INDENTSPACES 3
                     25: 
                     26: extern int yylineno;
                     27: extern int dumpic;
                     28: extern int memdump;
                     29: extern int dbgflag;
                     30: extern int nowarnflag;
                     31: extern int nocommentflag;
                     32: extern int verbose;
                     33: extern int dumpcore;
                     34: #define TEST if(dbgflag)
                     35: #define efgetc (efmacp?*efmacp++:getc(yyin))
                     36: extern char msg[];
                     37: 
                     38: #define UNIX 1
                     39: #define GCOS 2
                     40: #define GCOSBCD 3
                     41: 
                     42: #define FIELDMAX 32768.
                     43: 
                     44: typedef *ptr;
                     45: #define ALLOC(x) intalloc(sizeof(struct x))
                     46: 
                     47: extern FILE *diagfile;
                     48: extern FILE *codefile;
                     49: extern FILE *yyin;
                     50: extern FILE *fileptrs[];
                     51: extern char *filenames[];
                     52: extern int  filelines[];
                     53: extern int filedepth;
                     54: extern char *efmacp;
                     55: extern int filemacs[];
                     56: extern int pushchars[];
                     57: 
                     58: extern struct fileblock *iifilep;
                     59: 
                     60: extern int mem[];
                     61: extern unsigned int nmemused;
                     62: extern long int totfreed;
                     63: extern long int totalloc;
                     64: 
                     65: extern int nhid[];
                     66: extern int ndecl[];
                     67: 
                     68: extern int indifs[];
                     69: extern int nxtindif;
                     70: extern int afterif;
                     71: 
                     72: extern neflnames;
                     73: 
                     74: extern int nftnch;
                     75: extern int nftncont;
                     76: 
                     77: extern char ftnames[MAXFTNAMES][7];
                     78: extern int nftnames;
                     79: extern int nftnm0;
                     80: extern int impltype[];
                     81: extern int ftnmask[];
                     82: 
                     83: extern double fieldmax;
                     84: extern int ftnefl[];
                     85: extern int eflftn[];
                     86: 
                     87: extern ptr thisexec;
                     88: extern ptr thisctl;
                     89: extern int pushlex;
                     90: extern int igeol;
                     91: extern int ateof;
                     92: extern int eofneed;
                     93: extern int forcerr;
                     94: extern int comneed;
                     95: extern int optneed;
                     96: extern int defneed;
                     97: extern int lettneed;
                     98: 
                     99: extern int prevbg;
                    100: 
                    101: extern ptr hidlist;
                    102: extern ptr commonlist;
                    103: extern ptr tempvarlist;
                    104: extern ptr temptypelist;
                    105: extern ptr gonelist;
                    106: extern int blklevel;
                    107: extern int ctllevel;
                    108: extern int dclsect;
                    109: extern int instruct;
                    110: extern int inbound;
                    111: extern int inproc;
                    112: 
                    113: extern int ncases;
                    114: extern ptr comments;
                    115: extern ptr prevcomments;
                    116: extern ptr genequivs;
                    117: extern ptr arrays;
                    118: extern ptr generlist;
                    119: extern ptr knownlist;
                    120: 
                    121: extern int graal;
                    122: extern ptr thisproc;
                    123: extern ptr thisargs;
                    124: 
                    125: extern int langopt;
                    126: extern int dotsopt;
                    127: extern int dbgopt;
                    128: extern int dbglevel;
                    129: 
                    130: extern int stnos[];
                    131: extern int nxtstno;
                    132: extern int constno;
                    133: extern int labno;
                    134: extern int nerrs;
                    135: extern int nbad;
                    136: extern int nwarns;
                    137: 
                    138: struct headbits
                    139:        {
                    140:        int tag:8;
                    141:        int subtype:8;
                    142:        int blklevel:8;
                    143:        };
                    144: 
                    145: extern struct fileblock
                    146:        {
                    147:        FILE *fileptr;
                    148:        char filename[20];
                    149:        };
                    150: 
                    151: extern struct fileblock *ibfile;
                    152: extern struct fileblock *icfile;
                    153: extern struct fileblock *idfile;
                    154: extern struct fileblock *iefile;
                    155: 
                    156: extern struct chain
                    157:        {
                    158:        ptr nextp;
                    159:        ptr datap;
                    160:        } ;
                    161: 
                    162: typedef struct chain *chainp;
                    163: 
                    164: extern struct comentry
                    165:        {
                    166:        struct headbits header;
                    167:        char comname[7];
                    168:        long int comleng;
                    169:        int cominit:2;
                    170:        chainp comchain;
                    171:        } ;
                    172: 
                    173: extern struct stentry
                    174:        {
                    175:        struct headbits header;
                    176:        char *namep;
                    177:        ptr varp;
                    178:        int hashval;
                    179:        };
                    180: 
                    181: extern struct stentry *hashtab[];
                    182: extern struct stentry **hashend;
                    183: 
                    184: extern struct typeblock
                    185:        {
                    186:        struct headbits header;
                    187:        ptr sthead;
                    188:        ptr strdesc;
                    189:        int stralign;
                    190:        int strsize;
                    191:        int basetypes;
                    192:        } ;
                    193: 
                    194: extern struct keyblock
                    195:        {
                    196:        struct headbits header;
                    197:        ptr sthead;
                    198:        } ;
                    199: 
                    200: 
                    201: extern struct varblock
                    202:        {
                    203:        struct headbits header;
                    204:        ptr sthead;
                    205:        ptr vinit;
                    206:                int vadjdim:1;
                    207:                int vdcldone:1;
                    208:                int vdclstart:1;
                    209:                int vnamedone:1;
                    210:                int vprec:1;
                    211:                int vext:1;
                    212:                int vproc:2;
                    213:                int needpar:1;
                    214:                int vtype:4;
                    215:                int vclass:3;
                    216:        ptr vtypep;
                    217:        ptr vdim;
                    218:        ptr vsubs;
                    219:        ptr voffset;
                    220:        int vextbase;
                    221:        int vbase[NFTNTYPES];
                    222:        } ;
                    223: 
                    224: extern struct atblock
                    225:        {
                    226:        int atprec;
                    227:        int attype;
                    228:        int atext;
                    229:        int atclass;
                    230:        ptr attypep;
                    231:        ptr atcommon;
                    232:        ptr atdim;
                    233:        } ;
                    234: 
                    235: extern struct dimblock
                    236:        {
                    237:        ptr nextp;
                    238:        ptr lowerb;
                    239:        ptr upperb;
                    240:        } ;
                    241: 
                    242: extern struct exprblock        /* must be same size as varblock */
                    243:        {
                    244:        struct headbits header;
                    245:        ptr leftp;
                    246:        ptr rightp;
                    247:                int vadjdim:1;
                    248:                int vdcldone:1;
                    249:                int vdclstart:1;
                    250:                int vnamedone:1;
                    251:                int vprec:1;
                    252:                int vext:1;
                    253:                int vproc:2;
                    254:                int needpar:1;
                    255:                int vtype:4;
                    256:                int vclass:3;
                    257:        ptr vtypep;
                    258:        ptr vdim;
                    259:        ptr vsubs;
                    260:        ptr voffset;
                    261:        int vextbase;
                    262:        int vbase[NFTNTYPES];
                    263:        } ;
                    264: 
                    265: 
                    266: typedef union { struct varblock ; struct exprblock; } *nodep;
                    267: 
                    268: extern struct execblock
                    269:        {
                    270:        struct headbits header;
                    271:        ptr temps;
                    272:        int labelno;
                    273:                int uniffable:1;
                    274:                int brnchend:1;
                    275:                int labeled:1;
                    276:                int copylab:1;
                    277:                int labdefined:1;
                    278:                int labused:1;
                    279:                int labinacc:1;
                    280:        ptr execdesc;
                    281:        ptr prevexec;
                    282:        int nxtlabno;
                    283:        int nftnst;
                    284:        } ;
                    285: 
                    286: 
                    287: extern struct ctlblock /* must be same size as execblock */
                    288:        {
                    289:        struct headbits header;
                    290:        ptr loopvar;
                    291:        ptr loopctl;
                    292:        ptr prevctl;
                    293:        int nextlab;
                    294:        int breaklab;
                    295:        int xlab;
                    296:        int indifn;
                    297:        } ;
                    298: 
                    299: extern struct caseblock
                    300:        {
                    301:        struct headbits header;
                    302:        ptr nextcase;
                    303:        int labelno;
                    304:                int uniffable:1;
                    305:                int brnchend:1;
                    306:                int labeled:1;
                    307:                int copylab:1;
                    308:                int labdefined:1;
                    309:                int labused:1;
                    310:                int labinacc:1;
                    311:        ptr casexpr;
                    312:        } ;
                    313: 
                    314: extern struct labelblock
                    315:        {
                    316:        struct headbits header;
                    317:        ptr sthead;
                    318:        int labelno;
                    319:                int uniffable:1;
                    320:                int brnchend:1;
                    321:                int labeled:1;
                    322:                int copylab:1;
                    323:                int labdefined:1;
                    324:                int labused:1;
                    325:                int labinacc:1;
                    326:        } ;
                    327: 
                    328: extern struct defblock
                    329:        {
                    330:        struct headbits header;
                    331:        ptr sthead;
                    332:        char *valp;
                    333:        } ;
                    334: 
                    335: extern struct doblock
                    336:        {
                    337:        struct headbits header;
                    338:        ptr dovar;
                    339:        ptr dopar[3];
                    340:        } ;
                    341: 
                    342: extern struct fieldspec
                    343:        {
                    344:        struct headbits header;
                    345:        int flbound;
                    346:        int frange;
                    347:        int frshift;
                    348:        int fanymore;
                    349:        } ;
                    350: 
                    351: 
                    352: extern struct genblock
                    353:        {
                    354:        struct headbits header;
                    355:        ptr nextgenf;
                    356:        char *genname;
                    357:        char *genfname[NEFLTYPES];
                    358:        int genftype[NEFLTYPES];
                    359:        } ;
                    360: 
                    361: 
                    362: extern struct knownname
                    363:        {
                    364:        struct headbits header;
                    365:        ptr nextfunct;
                    366:        char *funcname;
                    367:        int functype;
                    368:        } ;
                    369: 
                    370: extern struct iostblock
                    371:        {
                    372:        struct headbits header;
                    373:        ptr leftp;      /* padding */
                    374:        ptr right;      /* padding */
                    375:                int vadjdim:1;
                    376:                int vdcldone:1;
                    377:                int vdclstart:1;
                    378:                int vnamedone:1;
                    379:                int vprec:1;
                    380:                int vext:1;
                    381:                int vproc:2;
                    382:                int needpar:1;
                    383:                int vtype:4;
                    384:                int vclass:3;
                    385:        int iokwd;
                    386:        ptr iounit;
                    387:        ptr iolist;
                    388:        int iojunk[7];  /* padding */
                    389:        } ;
                    390: 
                    391: extern struct ioitem
                    392:        {
                    393:        struct headbits header;
                    394:        ptr ioexpr;
                    395:        char *iofmt;
                    396:        } ;
                    397: 
                    398: 
                    399: extern struct tailoring
                    400:        {
                    401:        int ftnsys;
                    402:        int errmode;
                    403:        int charcomp;
                    404:        int ftnin;
                    405:        int ftnout;
                    406:        int ftncontnu;
                    407:        char *procheader;
                    408:        int ftnchwd;
                    409:        int ftnsize[NFTNTYPES];
                    410:        int ftnalign[NFTNTYPES];
                    411:        char *dfltfmt[NEFLTYPES];
                    412:        int hollincall;
                    413:        int deltastno;
                    414:        int dclintrinsics;
                    415:        }  tailor;
                    416: 
                    417: /*Block tags */
                    418: 
                    419: #define TAROP 1
                    420: #define TASGNOP 2
                    421: #define TLOGOP 3
                    422: #define TRELOP 4
                    423: #define TCALL 5
                    424: #define TREPOP 6
                    425: #define TLIST 7
                    426: #define TCONST 8
                    427: #define TNAME 9
                    428: #define TERROR 10
                    429: #define TCOMMON 11
                    430: #define TSTRUCT 12
                    431: #define TSTFUNCT 13
                    432: #define TEXEC 14
                    433: #define TTEMP 15
                    434: #define TDEFINE 16
                    435: #define TKEYWORD 17
                    436: #define TLABEL 18
                    437: #define TCASE 19
                    438: #define TNOTOP 20
                    439: #define TNEGOP 21
                    440: #define TDOBLOCK 22
                    441: #define TCONTROL 23
                    442: #define TKNOWNFUNCT 24
                    443: #define TFIELD 25
                    444: #define TGENERIC 26
                    445: #define TIOSTAT 27
                    446: 
                    447: /* Operator subtypes */
                    448: 
                    449: #define OPPLUS 1
                    450: #define OPMINUS 2
                    451: #define OPSTAR 3
                    452: #define OPSLASH 4
                    453: #define OPPOWER 5
                    454: 
                    455: #define OPNOT 6
                    456: #define OPAND 7
                    457: #define OP2AND 8
                    458: #define OP2OR 9
                    459: #define OPOR 10
                    460: 
                    461: #define OPEQ 11
                    462: #define OPLT 12
                    463: #define OPGT 13
                    464: #define OPLE 14
                    465: #define OPGE 15
                    466: #define OPNE 16
                    467: 
                    468: #define OPLPAR 17
                    469: #define OPRPAR 18
                    470: #define OPEQUALS 19
                    471: #define OPCOMMA 20
                    472: 
                    473: #define OPASGN 0
                    474: #define OPREL 0
                    475: 
                    476: 
                    477: /* Simplification types */
                    478: 
                    479: #define LVAL 1
                    480: #define RVAL 2
                    481: #define SUBVAL 3
                    482: #define IFVAL 4
                    483: 
                    484: 
                    485: /* Parser return values */
                    486: 
                    487: #define PARSERR 1
                    488: #define PARSEOF 2
                    489: #define PARSOPT 3
                    490: #define PARSDCL 4
                    491: #define PARSDEF 5
                    492: #define PARSPROC 6
                    493: 
                    494: 
                    495: /* Symbol table types */
                    496: 
                    497: #define TYUNDEFINED 0
                    498: #define TYINT 1
                    499: #define TYREAL 2
                    500: #define TYLREAL 3
                    501: #define TYLOG 4
                    502: #define TYCOMPLEX 5
                    503: #define TYCHAR 6
                    504: #define TYSTRUCT 7
                    505: #define TYLABEL 8
                    506: #define TYSUBR 9
                    507: #define TYFIELD 10
                    508: #define TYHOLLERITH 11
                    509: 
                    510: 
                    511: 
                    512: /* Fortran types */
                    513: 
                    514: #define FTNINT 0
                    515: #define FTNREAL 1
                    516: #define FTNLOG 2
                    517: #define FTNCOMPLEX 3
                    518: #define FTNDOUBLE 4
                    519: #define FTNCHAR 5
                    520: 
                    521: 
                    522: 
                    523: /* symbol table classes */
                    524: 
                    525: #define CLUNDEFINED 0
                    526: #define CLARG 1
                    527: #define CLVALUE 2
                    528: #define CLSTAT 3
                    529: #define CLAUTO 4
                    530: #define CLCOMMON 5
                    531: #define CLMOS 6
                    532: #define CLEXT 7
                    533: 
                    534: 
                    535: /* values of vproc */
                    536: 
                    537: #define PROCUNKNOWN 0
                    538: #define PROCNO 1
                    539: #define PROCYES 2
                    540: #define PROCINTRINSIC 3
                    541: 
                    542: 
                    543: 
                    544: /* ctlblock subtypes */
                    545: 
                    546: #define STNULL 1
                    547: #define STIF 2
                    548: #define STIFELSE 3
                    549: #define STREPEAT 4
                    550: #define STWHILE 5
                    551: #define STFOR 6
                    552: #define STDO 7
                    553: #define STSWITCH 8
                    554: #define STRETURN 9
                    555: #define STGOTO 10
                    556: #define STCALL 11
                    557: #define STPROC 12
                    558: 
                    559: 
                    560: 
                    561: /* intermediate code definitions */
                    562: 
                    563: #define ICEOF 0
                    564: #define ICBEGIN 1
                    565: #define ICKEYWORD 2
                    566: #define ICOP 3
                    567: #define ICNAME 4
                    568: #define ICCONST 5
                    569: #define ICLABEL 6
                    570: #define ICMARK 7
                    571: #define ICINDENT 8
                    572: #define ICCOMMENT 9
                    573: #define ICINDPTR 10
                    574: #define ICBLANK 11
                    575: 
                    576: #define FCONTINUE 2
                    577: #define FCALL 3
                    578: #define FDO 4
                    579: #define FIF1 5
                    580: #define FIF2 6
                    581: #define FGOTO 7
                    582: #define FRETURN 8
                    583: #define FREAD 9
                    584: #define FWRITE 10
                    585: #define FFORMAT 11
                    586: #define FSTOP 12
                    587: #define FDATA 13
                    588: #define FEQUIVALENCE 14

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.