00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #include "sysdep.h"
00025
00026 #include "ftypes.h"
00027 #include "defines.h"
00028 #include "machdefs.h"
00029
00030 #define MAXDIM 20
00031 #define MAXINCLUDES 10
00032 #define MAXLITERALS 200
00033
00034 #define MAXCTL 20
00035 #define MAXHASH 401
00036 #define MAXSTNO 801
00037 #define MAXEXT 200
00038 #define MAXEQUIV 150
00039 #define MAXLABLIST 258
00040
00041 #define MAXCONTIN 99
00042
00043
00044
00045 typedef union Expression *expptr, *tagptr;
00046 typedef struct Chain *chainp;
00047 typedef struct Addrblock *Addrp;
00048 typedef struct Constblock *Constp;
00049 typedef struct Exprblock *Exprp;
00050 typedef struct Nameblock *Namep;
00051
00052 extern FILEP infile;
00053 extern FILEP diagfile;
00054 extern FILEP textfile;
00055 extern FILEP asmfile;
00056 extern FILEP c_file;
00057
00058 extern FILEP pass1_file;
00059
00060 extern FILEP expr_file;
00061 extern FILEP initfile;
00062 extern FILEP blkdfile;
00063
00064 extern int current_ftn_file;
00065 extern int maxcontin;
00066
00067 extern char *blkdfname, *initfname, *sortfname;
00068 extern long headoffset;
00069
00070
00071
00072
00073
00074
00075 extern char main_alias[];
00076 extern char *token;
00077 extern int maxtoklen, toklen;
00078 extern long err_lineno, lineno;
00079 extern char *infname;
00080 extern int needkwd;
00081 extern struct Labelblock *thislabel;
00082
00083
00084
00085
00086 extern int maxctl;
00087 extern int maxequiv;
00088 extern int maxstno;
00089 extern int maxhash;
00090 extern int maxext;
00091
00092 extern flag nowarnflag;
00093 extern flag ftn66flag;
00094
00095
00096
00097 extern flag no66flag;
00098
00099 extern flag noextflag;
00100
00101
00102
00103 extern flag zflag;
00104 extern flag shiftcase;
00105 extern flag undeftype;
00106 extern flag shortsubs;
00107 extern flag onetripflag;
00108 extern flag checksubs;
00109 extern flag debugflag;
00110 extern int nerr;
00111 extern int nwarn;
00112
00113 extern int parstate;
00114 extern flag headerdone;
00115
00116 extern int blklevel;
00117 extern flag saveall;
00118 extern flag substars;
00119
00120 extern int impltype[ ];
00121 extern ftnint implleng[ ];
00122 extern int implstg[ ];
00123
00124 extern int tycomplex, tyint, tyioint, tyreal;
00125 extern int tylog, tylogical;
00126
00127
00128 extern int type_choice[];
00129 extern char *typename[];
00130
00131 extern int typesize[];
00132
00133 extern int typealign[];
00134 extern int proctype;
00135 extern char * procname;
00136 extern int rtvlabel[ ];
00137 extern Addrp retslot;
00138 extern Addrp xretslot[];
00139 extern int cxslot;
00140 extern int chslot;
00141 extern int chlgslot;
00142 extern int procclass;
00143
00144 extern ftnint procleng;
00145
00146
00147 extern int nentry;
00148
00149 extern flag multitype;
00150
00151 extern int blklevel;
00152 extern long lastiolabno;
00153 extern long lastlabno;
00154 extern int lastvarno;
00155 extern int lastargslot;
00156
00157 extern int argloc;
00158 extern int autonum[];
00159
00160 extern int retlabel;
00161 extern int ret0label;
00162 extern int dorange;
00163
00164 extern int regnum[ ];
00165
00166 extern Namep regnamep[ ];
00167 extern int maxregvar;
00168 extern int highregvar;
00169
00170 extern int nregvar;
00171
00172 extern chainp templist[];
00173 extern int maxdim;
00174 extern chainp earlylabs;
00175 extern chainp holdtemps;
00176 extern struct Entrypoint *entries;
00177 extern struct Rplblock *rpllist;
00178 extern struct Chain *curdtp;
00179 extern ftnint curdtelt;
00180 extern chainp allargs;
00181 extern int nallargs;
00182 extern int nallchargs;
00183 extern flag toomanyinit;
00184
00185
00186 extern flag inioctl;
00187 extern int iostmt;
00188 extern Addrp ioblkp;
00189 extern int nioctl;
00190 extern int nequiv;
00191 extern int eqvstart;
00192
00193 extern int nintnames;
00194
00195
00196
00197 struct Chain
00198 {
00199 chainp nextp;
00200 char * datap;
00201 };
00202
00203 extern chainp chains;
00204
00205
00206
00207
00208
00209 struct Headblock
00210 {
00211 field tag;
00212 field vtype;
00213 field vclass;
00214 field vstg;
00215 expptr vleng;
00216
00217
00218 } ;
00219
00220
00221
00222 struct Ctlframe
00223 {
00224 unsigned ctltype:8;
00225 unsigned dostepsign:8;
00226 unsigned dowhile:1;
00227 int ctlabels[4];
00228 int dolabel;
00229 Namep donamep;
00230 expptr doinit;
00231 expptr domax;
00232
00233 expptr dostep;
00234 Namep loopname;
00235 };
00236 #define endlabel ctlabels[0]
00237 #define elselabel ctlabels[1]
00238 #define dobodylabel ctlabels[1]
00239 #define doposlabel ctlabels[2]
00240 #define doneglabel ctlabels[3]
00241 extern struct Ctlframe *ctls;
00242
00243
00244 extern struct Ctlframe *ctlstack;
00245
00246 extern struct Ctlframe *lastctl;
00247
00248
00249 typedef struct {
00250 int type;
00251 chainp cp;
00252 } Atype;
00253
00254 typedef struct {
00255 int defined, dnargs, nargs, changes;
00256 Atype atypes[1];
00257 } Argtypes;
00258
00259
00260
00261 struct Extsym
00262 {
00263 char *fextname;
00264 char *cextname;
00265 field extstg;
00266
00267 unsigned extype:4;
00268 unsigned used_here:1;
00269
00270
00271 unsigned exused:1;
00272
00273
00274 unsigned exproto:1;
00275 unsigned extinit:1;
00276
00277 unsigned extseen:1;
00278 chainp extp;
00279
00280
00281 chainp allextp;
00282
00283 int curno;
00284
00285
00286 int maxno;
00287 ftnint extleng;
00288 ftnint maxleng;
00289 Argtypes *arginfo;
00290 };
00291 typedef struct Extsym Extsym;
00292
00293 extern Extsym *extsymtab;
00294 extern Extsym *nextext;
00295 extern Extsym *lastext;
00296 extern int complex_seen, dcomplex_seen;
00297
00298
00299
00300 struct Labelblock
00301 {
00302 int labelno;
00303 unsigned blklevel:8;
00304
00305 unsigned labused:1;
00306 unsigned fmtlabused:1;
00307 unsigned labinacc:1;
00308
00309 unsigned labdefined:1;
00310 unsigned labtype:2;
00311 ftnint stateno;
00312 char *fmtstring;
00313 };
00314
00315 extern struct Labelblock *labeltab;
00316
00317 extern struct Labelblock *labtabend;
00318 extern struct Labelblock *highlabtab;
00319
00320
00321
00322 struct Entrypoint
00323 {
00324 struct Entrypoint *entnextp;
00325 Extsym *entryname;
00326 chainp arglist;
00327 int typelabel;
00328
00329
00330 Namep enamep;
00331 };
00332
00333
00334
00335
00336
00337
00338
00339 struct Primblock
00340 {
00341 field tag;
00342 field vtype;
00343 unsigned parenused:1;
00344 Namep namep;
00345 struct Listblock *argsp;
00346 expptr fcharp;
00347
00348 expptr lcharp;
00349
00350 };
00351
00352
00353 struct Hashentry
00354 {
00355 int hashval;
00356 Namep varp;
00357 };
00358 extern struct Hashentry *hashtab;
00359 extern struct Hashentry *lasthash;
00360
00361 struct Intrpacked
00362 {
00363 unsigned f1:4;
00364 unsigned f2:4;
00365 unsigned f3:7;
00366 unsigned f4:1;
00367 };
00368
00369 struct Nameblock
00370 {
00371 field tag;
00372 field vtype;
00373 field vclass;
00374 field vstg;
00375 expptr vleng;
00376 char *fvarname;
00377 char *cvarname;
00378 chainp vlastdim;
00379
00380
00381
00382 unsigned vprocclass:3;
00383
00384 unsigned vdovar:1;
00385
00386 unsigned vdcldone:1;
00387
00388
00389 unsigned vadjdim:1;
00390
00391 unsigned vsave:1;
00392 unsigned vimpldovar:1;
00393
00394
00395 unsigned vis_assigned:1;
00396
00397
00398 unsigned vimplstg:1;
00399
00400
00401
00402 unsigned vcommequiv:1;
00403 unsigned vfmt_asg:1;
00404 unsigned vpassed:1;
00405 unsigned vknownarg:1;
00406 unsigned visused:1;
00407
00408 unsigned vnamelist:1;
00409 unsigned vimpltype:1;
00410
00411
00412
00413
00414
00415 unsigned vtypewarned:1;
00416
00417 unsigned vinftype:1;
00418
00419
00420 unsigned vinfproc:1;
00421 unsigned vcalled:1;
00422 unsigned vdimfinish:1;
00423 unsigned vrefused:1;
00424 unsigned vsubscrused:1;
00425 unsigned veqvadjust:1;
00426
00427
00428
00429
00430
00431
00432 union {
00433 int varno;
00434
00435
00436
00437
00438
00439
00440 struct Intrpacked intrdesc;
00441 } vardesc;
00442 struct Dimblock *vdim;
00443 ftnint voffset;
00444
00445
00446
00447
00448
00449 union {
00450 chainp namelist;
00451
00452 chainp vstfdesc;
00453 chainp assigned_values;
00454
00455
00456 } varxptr;
00457 int argno;
00458 Argtypes *arginfo;
00459 };
00460
00461
00462
00463
00464 struct Paramblock
00465 {
00466 field tag;
00467 field vtype;
00468 field vclass;
00469 field vstg;
00470 expptr vleng;
00471 char *fvarname;
00472 char *cvarname;
00473 expptr paramval;
00474 } ;
00475
00476
00477
00478
00479 struct Exprblock
00480 {
00481 field tag;
00482 field vtype;
00483 field vclass;
00484 field vstg;
00485 expptr vleng;
00486
00487 unsigned opcode;
00488 expptr leftp;
00489 expptr rightp;
00490 int typefixed;
00491 };
00492
00493
00494 union Constant
00495 {
00496 struct {
00497 char *ccp0;
00498 ftnint blanks;
00499 } ccp1;
00500 ftnint ci;
00501 double cd[2];
00502 char *cds[2];
00503 };
00504 #define ccp ccp1.ccp0
00505
00506 struct Constblock
00507 {
00508 field tag;
00509 field vtype;
00510 field vclass;
00511 field vstg;
00512 expptr vleng;
00513 union Constant Const;
00514 };
00515
00516
00517 struct Listblock
00518 {
00519 field tag;
00520 field vtype;
00521 chainp listp;
00522 };
00523
00524
00525
00526
00527
00528
00529
00530
00531
00532
00533 struct Addrblock
00534 {
00535 field tag;
00536 field vtype;
00537 field vclass;
00538 field vstg;
00539 expptr vleng;
00540
00541
00542
00543 union {
00544 Namep name;
00545 char ident[IDENT_LEN + 1];
00546 char *Charp;
00547 union Constant Const;
00548 struct {
00549 double dfill[2];
00550 field vstg1;
00551 } kludge;
00552
00553 } user;
00554 long memno;
00555
00556
00557 expptr memoffset;
00558 unsigned istemp:1;
00559
00560 unsigned isarray:1;
00561
00562 unsigned ntempelt:10;
00563
00564 unsigned dbl_builtin:1;
00565 unsigned charleng:1;
00566 unsigned cmplx_sub:1;
00567 unsigned skip_offset:1;
00568 unsigned parenused:1;
00569 ftnint varleng;
00570
00571
00572 int uname_tag;
00573
00574 char *Field;
00575 };
00576
00577
00578
00579
00580
00581 struct Errorblock
00582 {
00583 field tag;
00584 field vtype;
00585 };
00586
00587
00588
00589
00590
00591
00592
00593 struct Impldoblock
00594 {
00595 field tag;
00596 unsigned isactive:1;
00597 unsigned isbusy:1;
00598 Namep varnp;
00599 Constp varvp;
00600 chainp impdospec;
00601 expptr implb;
00602 expptr impub;
00603 expptr impstep;
00604 ftnint impdiff;
00605 ftnint implim;
00606 struct Chain *datalist;
00607 };
00608
00609
00610
00611
00612
00613 union Expression
00614 {
00615 field tag;
00616 struct Addrblock addrblock;
00617 struct Constblock constblock;
00618 struct Errorblock errorblock;
00619 struct Exprblock exprblock;
00620 struct Headblock headblock;
00621 struct Impldoblock impldoblock;
00622 struct Listblock listblock;
00623 struct Nameblock nameblock;
00624 struct Paramblock paramblock;
00625 struct Primblock primblock;
00626 } ;
00627
00628
00629
00630 struct Dimblock
00631 {
00632 int ndim;
00633 expptr nelt;
00634 expptr baseoffset;
00635
00636 expptr basexpr;
00637
00638
00639
00640
00641 struct
00642 {
00643 expptr dimsize;
00644
00645 expptr dimexpr;
00646
00647
00648 } dims[1];
00649
00650 };
00651
00652
00653
00654
00655
00656
00657
00658
00659
00660
00661
00662
00663
00664 struct Rplblock
00665 {
00666 struct Rplblock *rplnextp;
00667 Namep rplnp;
00668 expptr rplvp;
00669 expptr rplxp;
00670
00671 int rpltag;
00672 };
00673
00674
00675
00676
00677
00678 struct Equivblock
00679 {
00680 struct Eqvchain *equivs;
00681
00682 flag eqvinit;
00683 long eqvtop;
00684 long eqvbottom;
00685 int eqvtype;
00686 } ;
00687 #define eqvleng eqvtop
00688
00689 extern struct Equivblock *eqvclass;
00690
00691
00692 struct Eqvchain
00693 {
00694 struct Eqvchain *eqvnextp;
00695 union
00696 {
00697 struct Primblock *eqvlhs;
00698 Namep eqvname;
00699 } eqvitem;
00700 long eqvoffset;
00701 } ;
00702
00703
00704
00705
00706
00707
00708
00709
00710
00711
00712
00713
00714
00715 struct Literal
00716 {
00717 short littype;
00718 short lituse;
00719 long litnum;
00720
00721 union {
00722 ftnint litival;
00723 double litdval[2];
00724 ftnint litival2[2];
00725 } litval;
00726 char *cds[2];
00727 };
00728
00729 extern struct Literal *litpool;
00730 extern int maxliterals, nliterals;
00731 extern char Letters[];
00732 #define letter(x) Letters[x]
00733
00734 struct Dims { expptr lb, ub; };
00735
00736 extern int forcedouble;
00737 extern int doin_setbound;
00738 extern int Ansi;
00739 extern char hextoi_tab[];
00740 #define hextoi(x) hextoi_tab[(x) & 0xff]
00741 extern char *casttypes[], *ftn_types[], *protorettypes[], *usedcasts[];
00742 extern int Castargs, infertypes;
00743 extern FILE *protofile;
00744 extern char binread[], binwrite[], textread[], textwrite[];
00745 extern char *ei_first, *ei_last, *ei_next;
00746 extern char *wh_first, *wh_last, *wh_next;
00747 extern char *halign, *outbuf, *outbtail;
00748 extern flag keepsubs;
00749 #ifdef TYQUAD
00750 extern flag use_tyquad;
00751 #endif
00752 extern int n_keywords;
00753 extern char *c_keywords[];
00754
00755 #ifdef KR_headers
00756 #define Argdcl(x) ()
00757 #define Void
00758 #else
00759 #define Argdcl(x) x
00760 #define Void void
00761 #endif
00762
00763 char* Alloc Argdcl((int));
00764 char* Argtype Argdcl((int, char*));
00765 void Fatal Argdcl((char*));
00766 struct Impldoblock* mkiodo Argdcl((chainp, chainp));
00767 tagptr Inline Argdcl((int, int, chainp));
00768 struct Labelblock* execlab Argdcl((long));
00769 struct Labelblock* mklabel Argdcl((long));
00770 struct Listblock* mklist Argdcl((chainp));
00771 void Un_link_all Argdcl((int));
00772 void add_extern_to_list Argdcl((Addrp, chainp*));
00773 int addressable Argdcl((tagptr));
00774 tagptr addrof Argdcl((tagptr));
00775 char* addunder Argdcl((char*));
00776 Addrp autovar Argdcl((int, int, tagptr, char*));
00777 void backup Argdcl((char*, char*));
00778 void bad_atypes Argdcl((Argtypes*, char*, int, int, int, char*, char*));
00779 int badchleng Argdcl((tagptr));
00780 void badop Argdcl((char*, int));
00781 void badstg Argdcl((char*, int));
00782 void badtag Argdcl((char*, int));
00783 void badthing Argdcl((char*, char*, int));
00784 void badtype Argdcl((char*, int));
00785 Addrp builtin Argdcl((int, char*, int));
00786 char* c_name Argdcl((char*, int));
00787 tagptr call0 Argdcl((int, char*));
00788 tagptr call1 Argdcl((int, char*, tagptr));
00789 tagptr call2 Argdcl((int, char*, tagptr, tagptr));
00790 tagptr call3 Argdcl((int, char*, tagptr, tagptr, tagptr));
00791 tagptr call4 Argdcl((int, char*, tagptr, tagptr, tagptr, tagptr));
00792 tagptr callk Argdcl((int, char*, chainp));
00793 void cast_args Argdcl((int, chainp));
00794 char* cds Argdcl((char*, char*));
00795 void changedtype Argdcl((Namep));
00796 ptr ckalloc Argdcl((int));
00797 int cktype Argdcl((int, int, int));
00798 void clf Argdcl((FILEP*, char*, int));
00799 int cmpstr Argdcl((char*, char*, long, long));
00800 char* c_type_decl Argdcl((int, int));
00801 Extsym* comblock Argdcl((char*));
00802 char* comm_union_name Argdcl((int));
00803 void consconv Argdcl((int, Constp, Constp));
00804 void consnegop Argdcl((Constp));
00805 int conssgn Argdcl((tagptr));
00806 char* convic Argdcl((long));
00807 void copy_data Argdcl((chainp));
00808 char* copyn Argdcl((int, char*));
00809 char* copys Argdcl((char*));
00810 tagptr cpblock Argdcl((int, char*));
00811 tagptr cpexpr Argdcl((tagptr));
00812 void cpn Argdcl((int, char*, char*));
00813 char* cpstring Argdcl((char*));
00814 void dataline Argdcl((char*, long, int));
00815 char* dataname Argdcl((int, long));
00816 void dataval Argdcl((tagptr, tagptr));
00817 void dclerr Argdcl((char*, Namep));
00818 void def_commons Argdcl((FILEP));
00819 void def_start Argdcl((FILEP, char*, char*, char*));
00820 void deregister Argdcl((Namep));
00821 void do_uninit_equivs Argdcl((FILEP, ptr));
00822 void doequiv(Void);
00823 int dofork(Void);
00824 void doinclude Argdcl((char*));
00825 void doio Argdcl((chainp));
00826 void done Argdcl((int));
00827 void donmlist(Void);
00828 int dsort Argdcl((char*, char*));
00829 char* dtos Argdcl((double));
00830 void elif_out Argdcl((FILEP, tagptr));
00831 void end_else_out Argdcl((FILEP));
00832 void enddcl(Void);
00833 void enddo Argdcl((int));
00834 void endio(Void);
00835 void endioctl(Void);
00836 void endproc(Void);
00837 void entrypt Argdcl((int, int, long, Extsym*, chainp));
00838 int eqn Argdcl((int, char*, char*));
00839 char* equiv_name Argdcl((int, char*));
00840 void err Argdcl((char*));
00841 void err66 Argdcl((char*));
00842 void errext Argdcl((char*));
00843 void erri Argdcl((char*, int));
00844 void errl Argdcl((char*, long));
00845 tagptr errnode(Void);
00846 void errstr Argdcl((char*, char*));
00847 void exarif Argdcl((tagptr, struct Labelblock*, struct Labelblock*, struct Labelblock*));
00848 void exasgoto Argdcl((Namep));
00849 void exassign Argdcl((Namep, struct Labelblock*));
00850 void excall Argdcl((Namep, struct Listblock*, int, struct Labelblock**));
00851 void exdo Argdcl((int, Namep, chainp));
00852 void execerr Argdcl((char*, char*));
00853 void exelif Argdcl((tagptr));
00854 void exelse(Void);
00855 void exenddo Argdcl((Namep));
00856 void exendif(Void);
00857 void exequals Argdcl((struct Primblock*, tagptr));
00858 void exgoto Argdcl((struct Labelblock*));
00859 void exif Argdcl((tagptr));
00860 void exreturn Argdcl((tagptr));
00861 void exstop Argdcl((int, tagptr));
00862 void extern_out Argdcl((FILEP, Extsym*));
00863 void fatali Argdcl((char*, int));
00864 void fatalstr Argdcl((char*, char*));
00865 void ffilecopy Argdcl((FILEP, FILEP));
00866 void fileinit(Void);
00867 int fixargs Argdcl((int, struct Listblock*));
00868 tagptr fixexpr Argdcl((Exprp));
00869 tagptr fixtype Argdcl((tagptr));
00870 char* flconst Argdcl((char*, char*));
00871 void flline(Void);
00872 void fmt_init(Void);
00873 void fmtname Argdcl((Namep, Addrp));
00874 int fmtstmt Argdcl((struct Labelblock*));
00875 tagptr fold Argdcl((tagptr));
00876 void frchain Argdcl((chainp*));
00877 void frdata Argdcl((chainp));
00878 void freetemps(Void);
00879 void freqchain Argdcl((struct Equivblock*));
00880 void frexchain Argdcl((chainp*));
00881 void frexpr Argdcl((tagptr));
00882 void frrpl(Void);
00883 void frtemp Argdcl((Addrp));
00884 char* gmem Argdcl((int, int));
00885 void hashclear(Void);
00886 chainp hookup Argdcl((chainp, chainp));
00887 expptr imagpart Argdcl((Addrp));
00888 void impldcl Argdcl((Namep));
00889 int in_vector Argdcl((char*, char**, int));
00890 void incomm Argdcl((Extsym*, Namep));
00891 void inferdcl Argdcl((Namep, int));
00892 int inilex Argdcl((char*));
00893 void initkey(Void);
00894 int inregister Argdcl((Namep));
00895 long int commlen Argdcl((chainp));
00896 long int convci Argdcl((int, char*));
00897 long int iarrlen Argdcl((Namep));
00898 long int lencat Argdcl((expptr));
00899 long int lmax Argdcl((long, long));
00900 long int lmin Argdcl((long, long));
00901 long int wr_char_len Argdcl((FILEP, struct Dimblock*, int, int));
00902 Addrp intraddr Argdcl((Namep));
00903 tagptr intrcall Argdcl((Namep, struct Listblock*, int));
00904 int intrfunct Argdcl((char*));
00905 void ioclause Argdcl((int, expptr));
00906 int iocname(Void);
00907 int is_negatable Argdcl((Constp));
00908 int isaddr Argdcl((tagptr));
00909 int isnegative_const Argdcl((Constp));
00910 int isstatic Argdcl((tagptr));
00911 chainp length_comp Argdcl((struct Entrypoint*, int));
00912 int lengtype Argdcl((int, long));
00913 char* lexline Argdcl((ptr));
00914 void list_arg_types Argdcl((FILEP, struct Entrypoint*, chainp, int, char*));
00915 void list_decls Argdcl((FILEP));
00916 void list_init_data Argdcl((FILE **, char *, FILE *));
00917 void listargs Argdcl((FILEP, struct Entrypoint*, int, chainp));
00918 char* lit_name Argdcl((struct Literal*));
00919 int log_2 Argdcl((long));
00920 char* lower_string Argdcl((char*, char*));
00921 int main Argdcl((int, char**));
00922 expptr make_int_expr Argdcl((expptr));
00923 void make_param Argdcl((struct Paramblock*, tagptr));
00924 void many Argdcl((char*, char, int));
00925 void margin_printf Argdcl((FILEP, char*, ...));
00926 int maxtype Argdcl((int, int));
00927 char* mem Argdcl((int, int));
00928 void mem_init(Void);
00929 char* memname Argdcl((int, long));
00930 Addrp memversion Argdcl((Namep));
00931 tagptr mkaddcon Argdcl((long));
00932 Addrp mkaddr Argdcl((Namep));
00933 Addrp mkarg Argdcl((int, int));
00934 tagptr mkbitcon Argdcl((int, int, char*));
00935 chainp mkchain Argdcl((char*, chainp));
00936 Constp mkconst Argdcl((int));
00937 tagptr mkconv Argdcl((int, tagptr));
00938 tagptr mkcxcon Argdcl((tagptr, tagptr));
00939 tagptr mkexpr Argdcl((int, tagptr, tagptr));
00940 Extsym* mkext Argdcl((char*, char*));
00941 Extsym* mkext1 Argdcl((char*, char*));
00942 Addrp mkfield Argdcl((Addrp, char*, int));
00943 tagptr mkfunct Argdcl((tagptr));
00944 tagptr mkintcon Argdcl((long));
00945 tagptr mklhs Argdcl((struct Primblock*, int));
00946 tagptr mklogcon Argdcl((int));
00947 Namep mkname Argdcl((char*));
00948 Addrp mkplace Argdcl((Namep));
00949 tagptr mkprim Argdcl((Namep, struct Listblock*, chainp));
00950 tagptr mkrealcon Argdcl((int, char*));
00951 Addrp mkscalar Argdcl((Namep));
00952 void mkstfunct Argdcl((struct Primblock*, tagptr));
00953 tagptr mkstrcon Argdcl((int, char*));
00954 Addrp mktmp Argdcl((int, tagptr));
00955 Addrp mktmp0 Argdcl((int, tagptr));
00956 Addrp mktmpn Argdcl((int, int, tagptr));
00957 void namelist Argdcl((Namep));
00958 int ncat Argdcl((expptr));
00959 void negate_const Argdcl((Constp));
00960 void new_endif(Void);
00961 Extsym* newentry Argdcl((Namep, int));
00962 long newlabel(Void);
00963 void newproc(Void);
00964 Addrp nextdata Argdcl((long*));
00965 void nice_printf Argdcl((FILEP, char*, ...));
00966 void not_both Argdcl((char*));
00967 void np_init(Void);
00968 int oneof_stg Argdcl((Namep, int, int));
00969 int op_assign Argdcl((int));
00970 tagptr opconv Argdcl((tagptr, int));
00971 FILEP opf Argdcl((char*, char*));
00972 void out_addr Argdcl((FILEP, Addrp));
00973 void out_asgoto Argdcl((FILEP, tagptr));
00974 void out_call Argdcl((FILEP, int, int, tagptr, tagptr, tagptr));
00975 void out_const Argdcl((FILEP, Constp));
00976 void out_else Argdcl((FILEP));
00977 void out_for Argdcl((FILEP, tagptr, tagptr, tagptr));
00978 void out_init(Void);
00979 void outbuf_adjust(Void);
00980 void p1_label Argdcl((long));
00981 void prcona Argdcl((FILEP, long));
00982 void prconi Argdcl((FILEP, long));
00983 void prconr Argdcl((FILEP, Constp, int));
00984 void procinit(Void);
00985 void procode Argdcl((FILEP));
00986 void prolog Argdcl((FILEP, chainp));
00987 void protowrite Argdcl((FILEP, int, char*, struct Entrypoint*, chainp));
00988 expptr prune_left_conv Argdcl((expptr));
00989 int put_one_arg Argdcl((int, char*, char**, char*, char*));
00990 expptr putassign Argdcl((expptr, expptr));
00991 Addrp putchop Argdcl((tagptr));
00992 void putcmgo Argdcl((tagptr, int, struct Labelblock**));
00993 Addrp putconst Argdcl((Constp));
00994 tagptr putcxop Argdcl((tagptr));
00995 void puteq Argdcl((expptr, expptr));
00996 void putexpr Argdcl((expptr));
00997 void puthead Argdcl((char*, int));
00998 void putif Argdcl((tagptr, int));
00999 void putout Argdcl((tagptr));
01000 expptr putsteq Argdcl((Addrp, Addrp));
01001 void putwhile Argdcl((tagptr));
01002 tagptr putx Argdcl((tagptr));
01003 void r8fix(Void);
01004 int rdlong Argdcl((FILEP, long*));
01005 int rdname Argdcl((FILEP, ptr, char*));
01006 void read_Pfiles Argdcl((char**));
01007 Addrp realpart Argdcl((Addrp));
01008 chainp revchain Argdcl((chainp));
01009 int same_expr Argdcl((tagptr, tagptr));
01010 int same_ident Argdcl((tagptr, tagptr));
01011 void save_argtypes Argdcl((chainp, Argtypes**, Argtypes**, int, char*, int, int, int, int));
01012 void saveargtypes Argdcl((Exprp));
01013 void set_externs(Void);
01014 void set_tmp_names(Void);
01015 void setbound Argdcl((Namep, int, struct Dims*));
01016 void setdata Argdcl((Addrp, Constp, long));
01017 void setext Argdcl((Namep));
01018 void setfmt Argdcl((struct Labelblock*));
01019 void setimpl Argdcl((int, long, int, int));
01020 void setintr Argdcl((Namep));
01021 void settype Argdcl((Namep, int, long));
01022 void sigcatch Argdcl((int));
01023 void sserr Argdcl((Namep));
01024 void start_formatting(Void);
01025 void startioctl(Void);
01026 void startproc Argdcl((Extsym*, int));
01027 void startrw(Void);
01028 char* string_num Argdcl((char*, long));
01029 int struct_eq Argdcl((chainp, chainp));
01030 tagptr subcheck Argdcl((Namep, tagptr));
01031 tagptr suboffset Argdcl((struct Primblock*));
01032 int type_fixup Argdcl((Argtypes*, Atype*, int));
01033 void unamstring Argdcl((Addrp, char*));
01034 void unclassifiable(Void);
01035 void vardcl Argdcl((Namep));
01036 void warn Argdcl((char*));
01037 void warn1 Argdcl((char*, char*));
01038 void warni Argdcl((char*, int));
01039 void wr_abbrevs Argdcl((FILEP, int, chainp));
01040 char* wr_ardecls Argdcl((FILE*, struct Dimblock*, long));
01041 void wr_array_init Argdcl((FILEP, int, chainp));
01042 void wr_common_decls Argdcl((FILEP));
01043 void wr_equiv_init Argdcl((FILEP, int, chainp*, int));
01044 void wr_globals Argdcl((FILEP));
01045 void wr_nv_ident_help Argdcl((FILEP, Addrp));
01046 void wr_struct Argdcl((FILEP, chainp));
01047 void wronginf Argdcl((Namep));
01048 void yyerror Argdcl((char*));
01049 int yylex(Void);
01050 int yyparse(Void);
01051
01052 #ifdef USE_DTOA
01053 #define atof(x) strtod(x,0)
01054 void g_fmt Argdcl((char*, double));
01055 #endif