Doxygen Source Code Documentation
init.c File Reference
#include "defs.h"#include "output.h"#include "iob.h"Go to the source code of this file.
Define Documentation
|
|
Definition at line 291 of file init.c. Referenced by fileinit(). |
Function Documentation
|
|
Definition at line 294 of file init.c. References ALLOCN, ckalloc(), dfltproc, dflttype, fmt_init(), hextoi, hextoi_tab, i, infile, lastiolabno, lastlabno, lastvarno, Letters, main_alias, maxctl, maxequiv, maxext, maxhash, maxstno, maxtoklen, mem_init(), nerr, nliterals, np_init(), out_init(), token, and tyint. Referenced by main().
00295 {
00296 register char *s;
00297 register int i, j;
00298
00299 lastiolabno = 100000;
00300 lastlabno = 0;
00301 lastvarno = 0;
00302 nliterals = 0;
00303 nerr = 0;
00304
00305 infile = stdin;
00306
00307 maxtoklen = 502;
00308 token = (char *)ckalloc(maxtoklen+2);
00309 memset(dflttype, tyreal, 26);
00310 memset(dflttype + 'i' - 'a', tyint, 6);
00311 memset(hextoi_tab, 16, sizeof(hextoi_tab));
00312 for(i = 0, s = "0123456789abcdef"; *s; i++, s++)
00313 hextoi(*s) = i;
00314 for(i = 10, s = "ABCDEF"; *s; i++, s++)
00315 hextoi(*s) = i;
00316 for(j = 0, s = "abcdefghijklmnopqrstuvwxyz"; i = *s++; j++)
00317 Letters[i] = Letters[i+'A'-'a'] = j;
00318
00319 ctls = ALLOCN(maxctl+1, Ctlframe);
00320 extsymtab = ALLOCN(maxext, Extsym);
00321 eqvclass = ALLOCN(maxequiv, Equivblock);
00322 hashtab = ALLOCN(maxhash, Hashentry);
00323 labeltab = ALLOCN(maxstno, Labelblock);
00324 litpool = ALLOCN(maxliterals, Literal);
00325 labarray = (struct Labelblock **)ckalloc(maxlablist*
00326 sizeof(struct Labelblock *));
00327 fmt_init();
00328 mem_init();
00329 np_init();
00330
00331 ctlstack = ctls++;
00332 lastctl = ctls + maxctl;
00333 nextext = extsymtab;
00334 lastext = extsymtab + maxext;
00335 lasthash = hashtab + maxhash;
00336 labtabend = labeltab + maxstno;
00337 highlabtab = labeltab;
00338 main_alias[0] = '\0';
00339 if (forcedouble)
00340 dfltproc[TYREAL] = dfltproc[TYDREAL];
00341
00342 /* Initialize the routines for providing C output */
00343
00344 out_init ();
00345 }
|
|
|
Definition at line 348 of file init.c. References Dimblock::baseoffset, Dimblock::basexpr, charptr, CLNAMELIST, Dimblock::dims, frchain(), free, frexpr(), i, Dimblock::ndim, Dimblock::nelt, p, and Hashentry::varp. Referenced by procinit().
00349 {
00350 register struct Hashentry *hp;
00351 register Namep p;
00352 register struct Dimblock *q;
00353 register int i;
00354
00355 for(hp = hashtab ; hp < lasthash ; ++hp)
00356 if(p = hp->varp)
00357 {
00358 frexpr(p->vleng);
00359 if(q = p->vdim)
00360 {
00361 for(i = 0 ; i < q->ndim ; ++i)
00362 {
00363 frexpr(q->dims[i].dimsize);
00364 frexpr(q->dims[i].dimexpr);
00365 }
00366 frexpr(q->nelt);
00367 frexpr(q->baseoffset);
00368 frexpr(q->basexpr);
00369 free( (charptr) q);
00370 }
00371 if(p->vclass == CLNAMELIST)
00372 frchain( &(p->varxptr.namelist) );
00373 free( (charptr) p);
00374 hp->varp = NULL;
00375 }
00376 }
|
|
|
Definition at line 379 of file init.c. References autonum, blklevel, charptr, chlgslot, chslot, CLUNKNOWN, cxslot, Chain::datap, dorange, ei_first, ei_last, ei_next, eqvstart, frchain(), free, frexchain(), frexpr(), hashclear(), headerdone, highregvar, i, inioctl, lastargslot, mem0_last, mem_first, mem_last, mem_next, multitype, nallargs, nallchargs, needkwd, nentry, nequiv, Chain::nextp, nintnames, NO, nregvar, NTYPES0, nwarn, OUTSIDE, parstate, procclass, procleng, procname, proctype, rtvlabel, saveall, setimpl(), Labelblock::stateno, STGBSS, substars, tyint, TYVOID, wh_first, wh_last, and wh_next. Referenced by endproc(), and main().
00380 {
00381 register struct Labelblock *lp;
00382 struct Chain *cp;
00383 int i;
00384 struct memblock;
00385 extern struct memblock *curmemblock, *firstmemblock;
00386 extern char *mem_first, *mem_next, *mem_last, *mem0_last;
00387
00388 curmemblock = firstmemblock;
00389 mem_next = mem_first;
00390 mem_last = mem0_last;
00391 ei_next = ei_first = ei_last = 0;
00392 wh_next = wh_first = wh_last = 0;
00393 iob_list = 0;
00394 for(i = 0; i < 9; i++)
00395 io_structs[i] = 0;
00396
00397 parstate = OUTSIDE;
00398 headerdone = NO;
00399 blklevel = 1;
00400 saveall = NO;
00401 substars = NO;
00402 nwarn = 0;
00403 thislabel = NULL;
00404 needkwd = 0;
00405
00406 proctype = TYUNKNOWN;
00407 procname = "MAIN_";
00408 procclass = CLUNKNOWN;
00409 nentry = 0;
00410 nallargs = nallchargs = 0;
00411 multitype = NO;
00412 retslot = NULL;
00413 for(i = 0; i < NTYPES0; i++) {
00414 frexpr((expptr)xretslot[i]);
00415 xretslot[i] = 0;
00416 }
00417 cxslot = -1;
00418 chslot = -1;
00419 chlgslot = -1;
00420 procleng = 0;
00421 blklevel = 1;
00422 lastargslot = 0;
00423
00424 for(lp = labeltab ; lp < labtabend ; ++lp)
00425 lp->stateno = 0;
00426
00427 hashclear();
00428
00429 /* Clear the list of newly generated identifiers from the previous
00430 function */
00431
00432 frexchain(&new_vars);
00433 frexchain(&used_builtins);
00434 frchain(&assigned_fmts);
00435 frchain(&allargs);
00436 frchain(&earlylabs);
00437
00438 nintnames = 0;
00439 highlabtab = labeltab;
00440
00441 ctlstack = ctls - 1;
00442 for(i = TYADDR; i < TYVOID; i++) {
00443 for(cp = templist[i]; cp ; cp = cp->nextp)
00444 free( (charptr) (cp->datap) );
00445 frchain(templist + i);
00446 autonum[i] = 0;
00447 }
00448 holdtemps = NULL;
00449 dorange = 0;
00450 nregvar = 0;
00451 highregvar = 0;
00452 entries = NULL;
00453 rpllist = NULL;
00454 inioctl = NO;
00455 eqvstart += nequiv;
00456 nequiv = 0;
00457 dcomplex_seen = 0;
00458
00459 for(i = 0 ; i<NTYPES0 ; ++i)
00460 rtvlabel[i] = 0;
00461
00462 if(undeftype)
00463 setimpl(TYUNKNOWN, (ftnint) 0, 'a', 'z');
00464 else
00465 {
00466 setimpl(tyreal, (ftnint) 0, 'a', 'z');
00467 setimpl(tyint, (ftnint) 0, 'i', 'n');
00468 }
00469 setimpl(-STGBSS, (ftnint) 0, 'a', 'z'); /* set class */
00470 }
|
|
||||||||||||||||||||
|
Definition at line 482 of file init.c. References err, i, implleng, implstg, impltype, lengtype(), and letter. Referenced by procinit(), and yyparse().
00484 {
00485 int i;
00486 char buff[100];
00487
00488 if(c1==0 || c2==0)
00489 return;
00490
00491 if(c1 > c2) {
00492 sprintf(buff, "characters out of order in implicit:%c-%c", c1, c2);
00493 err(buff);
00494 }
00495 else {
00496 c1 = letter(c1);
00497 c2 = letter(c2);
00498 if(type < 0)
00499 for(i = c1 ; i<=c2 ; ++i)
00500 implstg[i] = - type;
00501 else {
00502 type = lengtype(type, length);
00503 if(type == TYCHAR) {
00504 if (length < 0) {
00505 err("length (*) in implicit");
00506 length = 1;
00507 }
00508 }
00509 else if (type != TYLONG)
00510 length = 0;
00511 for(i = c1 ; i<=c2 ; ++i) {
00512 impltype[i] = type;
00513 implleng[i] = length;
00514 }
00515 }
00516 }
00517 }
|
Variable Documentation
|
|
|
|
|
|
|
|
Definition at line 227 of file init.c. Referenced by procinit(). |
|
|
Initial value: {"??TYUNKNOWN??", "a","i1","s","i",
"i8",
"r","d","q","z","L1","L2","L","ch",
"??TYSUBR??", "??TYERROR??","ci", "ici",
"o", "cl", "al", "ioin" }Definition at line 228 of file init.c. Referenced by autovar(). |
|
|
|
|
|
Definition at line 72 of file init.c. Referenced by procinit(). |
|
|
|
|
|
|
|
|
Initial value: {
"U_fp", "??bug??", "I1_fp",
"J_fp", "I_fp",
"Q_fp",
"R_fp", "D_fp", "C_fp", "Z_fp",
"L1_fp", "L2_fp", "L_fp", "H_fp", "S_fp"
} |
|
|
|
|
|
Definition at line 216 of file init.c. Referenced by procinit(). |
|
|
Definition at line 215 of file init.c. Referenced by procinit(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 214 of file init.c. Referenced by procinit(). |
|
|
|
|
|
|
|
|
Initial value: {
0, 0, "(integer1 (*)())0",
"(shortint (*)())0", "(integer (*)())0",
"(longint (*)())0",
"(real (*)())0",
"(doublereal (*)())0", "(complex (*)())0", "(doublecomplex (*)())0",
"(logical1 (*)())0", "(shortlogical (*)())0",
"(logical (*)())0", "(char (*)())0", "(int (*)())0"
} |
|
|
Initial value: { "(U_fp)0", "(??bug??)0", "(I1_fp)0",
"(J_fp)0", "(I_fp)0",
"(Q_fp)0",
"(R_fp)0", "(D_fp)0", "(C_fp)0", "(Z_fp)0",
"(L1_fp)0","(L2_fp)0",
"(L_fp)0", "(H_fp)0", "(S_fp)0"
}Definition at line 175 of file init.c. Referenced by main(). |
|
|
Initial value: {
0, 0, "(integer1 *)0",
"(shortint *)0", "(integer *)0",
"(longint *)0",
"(real *)0",
"(doublereal *)0", "(complex *)0", "(doublecomplex *)0",
"(logical1 *)0","(shortlogical *)0", "(logical *)0", "(char *)0"
}Definition at line 152 of file init.c. Referenced by putentries(). |
|
|
Definition at line 185 of file init.c. Referenced by fileinit(), main(), and putentries(). |
|
|
Definition at line 286 of file init.c. Referenced by fileinit(), impldcl(), mkfunct(), and stfcall(). |
|
|
|
|
|
|
|
|
Definition at line 269 of file init.c. Referenced by procinit(). |
|
|
|
|
|
Definition at line 288 of file init.c. Referenced by procinit(). |
|
|
Definition at line 288 of file init.c. Referenced by procinit(). |
|
|
Definition at line 288 of file init.c. Referenced by procinit(). |
|
|
|
|
|
|
|
|
Definition at line 278 of file init.c. Referenced by procinit(). |
|
|
|
|
|
|
|
|
|
|
|
Initial value: { "external", "??", "integer*1",
"integer*2", "integer",
"integer*8",
"real",
"double precision", "complex", "double complex",
"logical*1", "logical*2",
"logical", "character", "subroutine",
Bug,Bug,Bug,Bug,Bug,Bug,Bug,Bug,Bug, "ftnlen"
} |
|
|
|
|
|
Definition at line 71 of file init.c. Referenced by procinit(). |
|
|
Definition at line 287 of file init.c. Referenced by fileinit(). |
|
|
|
|
|
Definition at line 242 of file init.c. Referenced by procinit(). |
|
|
|
|
|
Definition at line 75 of file init.c. Referenced by setimpl(). |
|
|
Definition at line 76 of file init.c. Referenced by setimpl(). |
|
|
Definition at line 74 of file init.c. Referenced by setimpl(). |
|
|
Definition at line 48 of file init.c. Referenced by fileinit(). |
|
|
|
|
|
Definition at line 274 of file init.c. Referenced by procinit(). |
|
|
Initial value: { 0,0,0,0,0,0,0,
0,
1, 1, 0, 0, 0, 2}Definition at line 201 of file init.c. Referenced by putcall(), and save_argtypes(). |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Definition at line 226 of file init.c. Referenced by procinit(). |
|
|
|
|
|
|
|
|
|
|
|
Definition at line 223 of file init.c. Referenced by fileinit(). |
|
|
Definition at line 224 of file init.c. Referenced by fileinit(). |
|
|
Definition at line 225 of file init.c. Referenced by fileinit(). |
|
|
Definition at line 287 of file init.c. Referenced by fileinit(). |
|
|
|
|
|
|
|
|
Definition at line 44 of file init.c. Referenced by fileinit(). |
|
|
Definition at line 236 of file init.c. Referenced by fileinit(). |
|
|
|
|
|
Definition at line 250 of file init.c. Referenced by fileinit(). |
|
|
Definition at line 245 of file init.c. Referenced by fileinit(). |
|
|
Definition at line 253 of file init.c. Referenced by fileinit(). |
|
|
|
|
|
Definition at line 257 of file init.c. Referenced by fileinit(). |
|
|
Definition at line 58 of file init.c. Referenced by fileinit(). |
|
|
Definition at line 221 of file init.c. Referenced by procinit(). |
|
|
Definition at line 219 of file init.c. Referenced by procinit(). |
|
|
Definition at line 220 of file init.c. Referenced by procinit(). |
|
|
Definition at line 63 of file init.c. Referenced by procinit(). |
|
|
Definition at line 218 of file init.c. Referenced by procinit(). |
|
|
Definition at line 277 of file init.c. Referenced by procinit(). |
|
|
Definition at line 65 of file init.c. Referenced by fileinit(). |
|
|
Definition at line 34 of file init.c. Referenced by declare_new_addr(), memno2info(), and setbound(). |
|
|
|
|
|
Definition at line 279 of file init.c. Referenced by procinit(). |
|
|
|
|
|
Definition at line 284 of file init.c. Referenced by fileinit(). |
|
|
Definition at line 243 of file init.c. Referenced by procinit(). |
|
|
Definition at line 66 of file init.c. Referenced by procinit(). |
|
|
Definition at line 70 of file init.c. Referenced by procinit(). |
|
|
|
|
|
Definition at line 217 of file init.c. Referenced by procinit(). |
|
|
Definition at line 222 of file init.c. Referenced by procinit(). |
|
|
Definition at line 208 of file init.c. Referenced by procinit(). |
|
|
Definition at line 207 of file init.c. Referenced by procinit(). |
|
|
Initial value: {
"?", "??", "integer1", "shortint", "integer",
"longint",
"real", "doublereal",
"C_f", "Z_f", "logical1", "shortlogical", "logical", "H_f", "int"
} |
|
|
|
|
|
|
|
|
|
|
|
Definition at line 209 of file init.c. Referenced by procinit(). |
|
|
Definition at line 68 of file init.c. Referenced by procinit(). |
|
|
Definition at line 69 of file init.c. Referenced by procinit(). |
|
|
|
|
|
|
|
|
|
|
|
Definition at line 57 of file init.c. Referenced by fileinit(). |
|
|
|
|
|
|
|
|
Definition at line 78 of file init.c. Referenced by fileinit(), and procinit(). |
|
|
|
|
|
|
|
|
|
|
|
Initial value: { 0, 0, 3, 5, 7,
10,
8, 11, 9, 12, 1, 4, 6, 2 }Definition at line 126 of file init.c. Referenced by docommon(), and doequiv(). |
|
|
Initial value: |
|
|
Initial value: {
"<<unknown>>",
"address",
"integer1",
"shortint",
"integer",
"longint",
"real",
"doublereal",
"complex",
"doublecomplex",
"logical1",
"shortlogical",
"logical",
"char"
} |
|
|
Initial value: |
|
|
Definition at line 38 of file init.c. Referenced by builtin(). |
|
|
|
|
|
Definition at line 289 of file init.c. Referenced by procinit(). |
|
|
Definition at line 289 of file init.c. Referenced by procinit(). |
|
|
Definition at line 289 of file init.c. Referenced by procinit(). |
|
|
|