📄 trans.h
字号:
* sp->exp1 => EK_NAME for the label number or name. * * SK_LABEL: C statement label. * sp->exp1 => EK_NAME for the label number of name. * * SK_HEADER: Function/module header. * sp->exp1 => EK_VAR pointing to MK_FUNCTION or MK_MODULE. * (This always comes first in a context's statement list.) * * SK_BODY: Body of function/module. * sp->stm1 => SK_HEADER that begins the body. * (This exists only during fixblock.) * */enum stmtkind { SK_ASSIGN, SK_RETURN, SK_CASE, SK_CASELABEL, SK_IF, SK_FOR, SK_REPEAT, SK_WHILE, SK_BREAK, SK_CONTINUE, SK_TRY, SK_GOTO, SK_LABEL, SK_HEADER, SK_CASECHECK, SK_BODY, SK_LAST} ;#ifdef DEFDUMPSchar *stmtkindnames[(int)SK_LAST] = { "SK_ASSIGN", "SK_RETURN", "SK_CASE", "SK_CASELABEL", "SK_IF", "SK_FOR", "SK_REPEAT", "SK_WHILE", "SK_BREAK", "SK_CONTINUE", "SK_TRY", "SK_GOTO", "SK_LABEL", "SK_HEADER", "SK_CASECHECK", "SK_BODY"} ;#endif /*DEFDUMPS*/typedef struct S_stmt { enum stmtkind kind; struct S_stmt *next, *stm1, *stm2; struct S_expr *exp1, *exp2, *exp3; long serial, trueprops, falseprops; unsigned quietelim:1, doinit:1;} Stmt;/* Flags for out_declarator(): */#define ODECL_CHARSTAR 0x1#define ODECL_FREEARRAY 0x2#define ODECL_FUNCTION 0x4#define ODECL_HEADER 0x8#define ODECL_FORWARD 0x10#define ODECL_DECL 0x20#define ODECL_NOPRES 0x40#define ODECL_REF 0x80#define ODECL_SPACE 0x100#define ODECL_SPMRG 0x200#define ODECL_ARRAYPTRS 0x400/* Flags for declarevar(): */#define VDECL_HEADER 0x1#define VDECL_BODY 0x2#define VDECL_TRAILER 0x4#define VDECL_ALL (VDECL_HEADER|VDECL_BODY|VDECL_TRAILER)#define VDECL_VARSTRUCT 0x8/* Flags for fixexpr(): */#define ENV_EXPR 0 /* return value needed */#define ENV_STMT 1 /* return value ignored */#define ENV_BOOL 2 /* boolean return value needed */#define ENV_LVALUE 3 /* used as an lvalue *//* Flags for dataflow(): */#define PROP_INVALID (-1)#define PROP_ZERO 0 /* variable is known to be zero *//* Flags for defmacro(): */#define MAC_VAR 0 /* VarMacro */#define MAC_CONST 1 /* ConstMacro */#define MAC_FIELD 2 /* FieldMacro */#define MAC_FUNC 3 /* FuncMacro */#define FMACRECname "<rec>"/* Kinds of comment lines: */#define CMT_SHIFT 24#define CMT_MASK ((1L<<CMT_SHIFT)-1)#define CMT_KMASK ((1<<(32-CMT_SHIFT))-1)#define CMT_DONE 0 /* comment that has already been printed */#define CMT_PRE 1 /* comment line preceding subject */#define CMT_POST 2 /* comment line following subject */#define CMT_TRAIL 4 /* comment at end of line of code */#define CMT_ONBEGIN 6 /* comment on "begin" of procedure */#define CMT_ONEND 7 /* comment on "end" of procedure */#define CMT_ONELSE 8 /* comment on "else" keyword */#define CMT_PREELSE 9 /* comment preceding "else" keyword */#define CMT_NOT 256 /* negation of above, for searches */#ifdef define_globalschar *CMT_NAMES[] = { "DONE", "PRE", "POST", "3", "TRAIL", "5", "BEGIN", "END", "ELSE", "PREELSE" };#elseextern char *CMT_NAMES[];#endif#define getcommentkind(cmt) (((cmt)->value >> CMT_SHIFT) & CMT_KMASK)/* Kinds of operator line-breaking: */#define BRK_LEFT 0x1#define BRK_RIGHT 0x2#define BRK_LPREF 0x4#define BRK_RPREF 0x8#define BRK_ALLNONE 0x10#define BRK_HANG 0x20/* Translation parameters: */#ifdef define_parameters# define extern#endif /* define_parameters */extern enum { UNIX_ANY, UNIX_BSD, UNIX_SYSV} which_unix;extern enum { LANG_HP, LANG_UCSD, LANG_TURBO, LANG_OREGON, LANG_VAX, LANG_MODULA, LANG_MPW, LANG_BERK, LANG_TIP, LANG_APOLLO} which_lang;extern short debug, tokentrace, quietmode, cmtdebug, flowdebug, copysource;extern int nobanner, showprogress, maxerrors;extern short hpux_lang, integer16, doublereals, pascalenumsize;extern short needsignedbyte, unsignedchar, importall;extern short nestedcomments, pascalsignif, pascalcasesens;extern short dollar_idents, ignorenonalpha, modula2;extern short lowpreclogicals, commonextern;extern short ansiC, cplus, signedchars, signedfield, signedshift;extern short hassignedchar, voidstar, symcase, ucconsts, csignif;extern short copystructs, usevextern, implementationmodules;extern short turboobjects, useAnyptrMacros, usePPMacros;extern short slashslash, sprintf_value, tagstructs;extern char codefnfmt[40], modulefnfmt[40], logfnfmt[40];extern char headerfnfmt[40], headerfnfmt2[40], includefnfmt[40];extern char selfincludefmt[40], includeoutfnfmt[40];extern char constformat[40], moduleformat[40], functionformat[40];extern char varformat[40], fieldformat[40], typeformat[40];extern char enumformat[40], symbolformat[40];extern char p2c_h_name[40], exportsymbol[40], export_symbol[40];extern char externalias[40];extern char memcpyname[40], sprintfname[40];extern char roundname[40], divname[40], modname[40], remname[40];extern char strposname[40], strcicmpname[40];extern char strsubname[40], strdeletename[40], strinsertname[40];extern char strmovename[40], strpadname[40];extern char OFSname[40], SEGname[40];extern char strltrimname[40], strrtrimname[40], strrptname[40];extern char absname[40], oddname[40], evenname[40], swapname[40];extern char mallocname[40], freename[40], freervaluename[40];extern char randrealname[40], randintname[40], randomizename[40];extern char skipspacename[40], readlnname[40], freopenname[40];extern char skipnlspacename[40];extern char eofname[40], eolnname[40], fileposname[40], maxposname[40];extern char setunionname[40], setintname[40], setdiffname[40];extern char setinname[40], setaddname[40], setaddrangename[40];extern char setremname[40], floatscanfcode[40];extern char setequalname[40], subsetname[40], setxorname[40];extern char setcopyname[40], setexpandname[40], setpackname[40];extern char getbitsname[40], clrbitsname[40], putbitsname[40];extern char declbufname[40], declbufncname[40];extern char resetbufname[40], setupbufname[40];extern char getfbufname[40], chargetfbufname[40], arraygetfbufname[40];extern char putfbufname[40], charputfbufname[40], arrayputfbufname[40];extern char getname[40], chargetname[40], arraygetname[40];extern char putname[40], charputname[40], arrayputname[40];extern char eofbufname[40], fileposbufname[40];extern char storebitsname[40], signextname[40];extern char filenotfoundname[40], filenotopenname[40];extern char filewriteerrorname[40], badinputformatname[40], endoffilename[40];extern short strcpyleft;extern char language[40], target[40], maintype[40];extern int sizeof_char, sizeof_short, sizeof_integer, sizeof_pointer, sizeof_double, sizeof_float, sizeof_enum, sizeof_int, sizeof_long;extern short size_t_long;extern int setbits, defaultsetsize, seek_base, integerwidth, realwidth;extern short quoteincludes, expandincludes, collectnest;extern int phystabsize, intabsize, linewidth, maxlinewidth;extern int majorspace, minorspace, declspace, functionspace, minfuncspace;extern int casespacing, caselimit;extern int returnlimit, breaklimit, continuelimit;extern short nullstmtline, shortcircuit, shortopt, usecommas, elseif;extern short usereturns, usebreaks, infloopstyle, reusefieldnames;extern short bracesalways, braceline, bracecombine, braceelse, braceelseline;extern short newlinefunctions;extern short eatcomments, spitcomments, spitorphancomments;extern short commentafter, blankafter;extern int tabsize, blockindent, bodyindent, argindent;extern int switchindent, caseindent, labelindent;extern int openbraceindent, closebraceindent;extern int funcopenindent, funccloseindent;extern int structindent, structinitindent, extrainitindent;extern int constindent, commentindent, bracecommentindent, commentoverindent;extern int declcommentindent;extern int minspacing, minspacingthresh;extern int extraindent, bumpindent;extern double overwidepenalty, overwideextrapenalty;extern double commabreakpenalty, commabreakextrapenalty;extern double assignbreakpenalty, assignbreakextrapenalty;extern double specialargbreakpenalty;extern double opbreakpenalty, opbreakextrapenalty, exhyphenpenalty;extern double logbreakpenalty, logbreakextrapenalty;extern double relbreakpenalty, relbreakextrapenalty;extern double morebreakpenalty, morebreakextrapenalty;extern double parenbreakpenalty, parenbreakextrapenalty;extern double qmarkbreakpenalty, qmarkbreakextrapenalty;extern double wrongsidepenalty, earlybreakpenalty, extraindentpenalty;extern double bumpindentpenalty, nobumpindentpenalty;extern double indentamountpenalty, sameindentpenalty;extern double showbadlimit;extern long maxalts;extern short breakbeforearith, breakbeforerel, breakbeforelog;extern short breakbeforedot, breakbeforeassign;extern short for_allornone;extern short extraparens, breakparens, returnparens;extern short variablearrays, initpacstrings, stararrays;extern short spaceexprs, spacefuncs, spacecommas, implicitzero, starindex;extern int casetabs;extern short starfunctions, mixfields, newdelete, alloczeronil, postincrement;extern short mixvars, mixtypes, mixinits, nullcharconst, castnull, addindex;extern short spacestars, highcharints, highcharbits, hasstaticlinks;extern short mainlocals, storefilenames, addrstdfiles, readwriteopen;extern short anonymousunions, callcasts;extern short charfiletext, messagestderr, literalfilesflag, structfilesflag;extern short printfonly, mixwritelns, usegets, newlinespace, binarymode;extern char openmode[40], filenamefilter[40];extern short atan2flag, div_po2, mod_po2, assumebits, assumesigns;extern short fullstrwrite, fullstrread, whilefgets, buildreads, buildwrites;extern short foldconsts, foldstrconsts, charconsts, useconsts, useundef;extern short elimdeadcode, analyzeflow, offsetforloops, forevalorder;extern short smallsetconst, bigsetconst, lelerange, unsignedtrick;extern short useisalpha, useisspace, usestrncmp;extern short casecheck, arraycheck, rangecheck, nilcheck, malloccheck;extern short checkfileopen, checkfileisopen, checkfilewrite;extern short checkreadformat, checkfileeof, checkstdineof, checkfileseek;extern short squeezesubr, useenum, enumbyte, packing, packsigned, keepnulls;extern short compenums, formatstrings, alwayscopyvalues;extern short use_static, var_static, void_args, prototypes, fullprototyping;extern short procptrprototypes, promote_enums;extern short preservetypes, preservepointers, preservestrings;extern short castargs, castlongargs, promoteargs, fixpromotedargs;extern short varstrings, varfiles, userefs, useinits, copystructfuncs;extern long skipindices;extern short stringleaders;extern int stringceiling, stringdefault, stringtrunclimit, longstringsize;extern short warnnames, warnmacros;extern Strlist *importfrom, *importdirs, *includedirs, *includefrom;extern Strlist *librfiles, *bufferedfiles, *unbufferedfiles, *shellvars;extern Strlist *externwords, *cexternwords;extern Strlist *varmacros, *constmacros, *fieldmacros;extern Strlist *funcmacros, *funcmacroargs, *nameoflist;extern Strlist *specialmallocs, *specialfrees, *specialsizeofs;extern Strlist *initialcalls, *eatnotes, *literalfiles, *structfiles;extern Strlist *replacebefore, *replaceafter;extern char fixedcomment[40], permanentcomment[40], interfacecomment[40];extern char embedcomment[40], skipcomment[40], noskipcomment[40];extern char signedcomment[40], unsignedcomment[40], tagcomment[40];extern char name_RETV[40], name_STRMAX[40], name_LINK[40];extern char name_COPYPAR[40], name_TEMP[40], name_DUMMY[40];extern char name_LOC[40], name_VARS[40], name_STRUCT[40];extern char name_FAKESTRUCT[40], name_AHIGH[40], name_ALOW[40];extern char name_UNION[40], name_VARIANT[40], name_LABEL[40], name_LABVAR[40];extern char name_WITH[40], name_FOR[40], name_ENUM[40];extern char name_PTR[40], name_STRING[40], name_SET[40];extern char name_PROCEDURE[40], name_MAIN[40], name_UNITINIT[40];extern char name_HSYMBOL[40], name_GSYMBOL[40];extern char name_SETBITS[40], name_UCHAR[40], name_SCHAR[40];extern char name_BOOLEAN[40], name_TRUE[40], name_FALSE[40], name_NULL[40];extern char name_ESCAPECODE[40], name_IORESULT[40];extern char name_ARGC[40], name_ARGV[40];extern char name_ESCAPE[40], name_ESCIO[40], name_CHKIO[40], name_SETIO[40];extern char name_ESCIO2[40];extern char name_OUTMEM[40], name_CASECHECK[40], name_NILCHECK[40];extern char name_FNSIZE[40], name_FNVAR[40];extern char alternatename1[40], alternatename2[40], alternatename[40];#ifndef define_parametersextern#endifstruct rcstruct { char kind; char chgmode; char *name; anyptr ptr; long def;} rctable[]#ifdef define_parameters = { 'S', 'R', "DEBUG", (anyptr) &debug, 0,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -