⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trans.h

📁 把pascal程序转成C语言程序 把pascal程序转成C语言程序
💻 H
📖 第 1 页 / 共 5 页
字号:
 *    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 + -