trans.h.2
上传用户:upcnvip
上传日期:2007-01-06
资源大小:474k
文件大小:27k
源码类别:

编译器/解释器

开发平台:

C/C++

  1.     'R', 'V', "QMARKBREAKPENALTY",     (anyptr) &qmarkbreakpenalty,       5000,
  2.     'R', 'V', "QMARKBREAKEXTRAPENALTY",(anyptr) &qmarkbreakextrapenalty,  3000,
  3.     'R', 'V', "PARENBREAKPENALTY",     (anyptr) &parenbreakpenalty,       2500,
  4.     'R', 'V', "PARENBREAKEXTRAPENALTY",(anyptr) &parenbreakextrapenalty,  1000,
  5.     'R', 'V', "WRONGSIDEPENALTY",      (anyptr) &wrongsidepenalty,        1000,
  6.     'R', 'V', "EARLYBREAKPENALTY",     (anyptr) &earlybreakpenalty,        100,
  7.     'R', 'V', "EXTRAINDENTPENALTY",    (anyptr) &extraindentpenalty,      3000,
  8.     'R', 'V', "BUMPINDENTPENALTY",     (anyptr) &bumpindentpenalty,       1000,
  9.     'R', 'V', "NOBUMPINDENTPENALTY",   (anyptr) &nobumpindentpenalty,     2500,
  10.     'R', 'V', "INDENTAMOUNTPENALTY",   (anyptr) &indentamountpenalty,       50,
  11.     'R', 'V', "SAMEINDENTPENALTY",     (anyptr) &sameindentpenalty,        500,
  12.     'R', 'V', "SHOWBADLIMIT",          (anyptr) &showbadlimit,            -120,
  13.     'L', 'R', "MAXLINEBREAKTRIES", (anyptr) &maxalts,      5000,
  14.     'G', 'V', "ALLORNONEBREAK",  (anyptr)  NULL,             FALLBREAK,
  15.     'G', 'V', "ONESPECIALARG",   (anyptr)  NULL,             FSPCARG1,
  16.     'G', 'V', "TWOSPECIALARGS",  (anyptr)  NULL,             FSPCARG2,
  17.     'G', 'V', "THREESPECIALARGS",(anyptr)  NULL,             FSPCARG3,
  18.     'B', 'V', "BREAKARITH",      (anyptr) &breakbeforearith,  BRK_RIGHT,
  19.     'B', 'V', "BREAKREL",        (anyptr) &breakbeforerel,    BRK_RIGHT,
  20.     'B', 'V', "BREAKLOG",        (anyptr) &breakbeforelog,    BRK_RIGHT,
  21.     'B', 'V', "BREAKDOT",        (anyptr) &breakbeforedot,    BRK_RIGHT,
  22.     'B', 'V', "BREAKASSIGN",     (anyptr) &breakbeforeassign, BRK_RIGHT,
  23.     'S', 'V', "FOR_ALLORNONE",   (anyptr) &for_allornone,     1,
  24. /* COMMENTS AND BLANK LINES */
  25.     'S', 'V', "EATCOMMENTS",     (anyptr) &eatcomments,       0,
  26.     'S', 'V', "SPITCOMMENTS",    (anyptr) &spitcomments,      0,
  27.     'S', 'V', "SPITORPHANCOMMENTS",(anyptr)&spitorphancomments, 0,
  28.     'S', 'V', "COMMENTAFTER",    (anyptr) &commentafter,     -1,
  29.     'S', 'V', "BLANKAFTER",      (anyptr) &blankafter,        1,
  30.     'A', 'V', "EATNOTES",        (anyptr) &eatnotes,          0,
  31. /* SPECIAL COMMENTS */
  32.     'C', 'V', "FIXEDCOMMENT",    (anyptr)  fixedcomment,     40,
  33.     'C', 'V', "PERMANENTCOMMENT",(anyptr)  permanentcomment, 40,
  34.     'C', 'V', "INTERFACECOMMENT",(anyptr)  interfacecomment, 40,
  35.     'C', 'V', "EMBEDCOMMENT",    (anyptr)  embedcomment,     40,
  36.     'C', 'V', "SKIPCOMMENT",     (anyptr)  skipcomment,      40,
  37.     'C', 'V', "NOSKIPCOMMENT",   (anyptr)  noskipcomment,    40,
  38.     'C', 'V', "SIGNEDCOMMENT",   (anyptr)  signedcomment,    40,
  39.     'C', 'V', "UNSIGNEDCOMMENT", (anyptr)  unsignedcomment,  40,
  40. /* STYLISTIC OPTIONS */
  41.     'I', 'V', "MAJORSPACING",    (anyptr) &majorspace,        2,
  42.     'I', 'V', "MINORSPACING",    (anyptr) &minorspace,        1,
  43.     'I', 'V', "FUNCSPACING",     (anyptr) &functionspace,     2,
  44.     'I', 'V', "MINFUNCSPACING",  (anyptr) &minfuncspace,      1,
  45.     'S', 'V', "EXTRAPARENS",     (anyptr) &extraparens,      -1,
  46.     'S', 'V', "BREAKADDPARENS",  (anyptr) &breakparens,      -1,
  47.     'S', 'V', "RETURNPARENS",    (anyptr) &returnparens,     -1,
  48.     'S', 'V', "SPACEEXPRS",      (anyptr) &spaceexprs,       -1,
  49.     'S', 'V', "IMPLICITZERO",    (anyptr) &implicitzero,     -1,
  50.     'S', 'V', "STARINDEX",       (anyptr) &starindex,        -1,
  51.     'S', 'V', "ADDINDEX",        (anyptr) &addindex,         -1,
  52.     'S', 'V', "STARARRAYS",      (anyptr) &stararrays,        1,
  53.     'S', 'V', "STARFUNCTIONS",   (anyptr) &starfunctions,    -1,
  54.     'S', 'V', "POSTINCREMENT",   (anyptr) &postincrement,     1,
  55.     'S', 'V', "MIXVARS",         (anyptr) &mixvars,          -1,
  56.     'S', 'V', "MIXTYPES",        (anyptr) &mixtypes,         -1,
  57.     'S', 'V', "MIXFIELDS",       (anyptr) &mixfields,        -1,
  58.     'S', 'V', "MIXINITS",        (anyptr) &mixinits,         -1,
  59.     'S', 'V', "MAINLOCALS",      (anyptr) &mainlocals,        1,
  60.     'S', 'V', "NULLCHAR",        (anyptr) &nullcharconst,     1,
  61.     'S', 'V', "HIGHCHARINT",     (anyptr) &highcharints,      1,
  62.     'I', 'V', "CASESPACING",     (anyptr) &casespacing,       1,
  63.     'D', 'V', "CASETABS",        (anyptr) &casetabs,       1000,
  64.     'I', 'V', "CASELIMIT",       (anyptr) &caselimit,         9,
  65.     'S', 'V', "USECOMMAS",       (anyptr) &usecommas,        -1,
  66.     'S', 'V', "USERETURNS",      (anyptr) &usereturns,        1,
  67.     'I', 'V', "RETURNLIMIT",     (anyptr) &returnlimit,       3,
  68.     'S', 'V', "USEBREAKS",       (anyptr) &usebreaks,         1,
  69.     'I', 'V', "BREAKLIMIT",      (anyptr) &breaklimit,        2,
  70.     'I', 'V', "CONTINUELIMIT",   (anyptr) &continuelimit,     5,
  71.     'S', 'V', "INFLOOPSTYLE",    (anyptr) &infloopstyle,      0,
  72. /* NAMING CONVENTIONS */
  73.     'C', 'V', "CODEFILENAME",    (anyptr)  codefnfmt,        40,
  74.     'C', 'V', "MODULEFILENAME",  (anyptr)  modulefnfmt,      40,
  75.     'C', 'V', "HEADERFILENAME",  (anyptr)  headerfnfmt,      40,
  76.     'C', 'V', "HEADERFILENAME2", (anyptr)  headerfnfmt2,     40,
  77.     'C', 'V', "LOGFILENAME",     (anyptr)  logfnfmt,         40,
  78.     'C', 'V', "INCLUDEFILENAME", (anyptr)  includefnfmt,     40,
  79.     'S', 'V', "SYMCASE",         (anyptr) &symcase,          -1,
  80.     'C', 'V', "SYMBOLFORMAT",    (anyptr)  symbolformat,     40,
  81.     'C', 'V', "CONSTFORMAT",     (anyptr)  constformat,      40,
  82.     'C', 'V', "MODULEFORMAT",    (anyptr)  moduleformat,     40,
  83.     'C', 'V', "FUNCTIONFORMAT",  (anyptr)  functionformat,   40,
  84.     'C', 'V', "VARFORMAT",       (anyptr)  varformat,        40,
  85.     'C', 'V', "FIELDFORMAT",     (anyptr)  fieldformat,      40,
  86.     'C', 'V', "TYPEFORMAT",      (anyptr)  typeformat,       40,
  87.     'C', 'V', "ENUMFORMAT",      (anyptr)  enumformat,       40,
  88.     'C', 'V', "RETURNVALUENAME", (anyptr)  name_RETV,        40,
  89.     'C', 'V', "UNITINITNAME",    (anyptr)  name_UNITINIT,    40,
  90.     'C', 'V', "HSYMBOLNAME",     (anyptr)  name_HSYMBOL,     40,
  91.     'C', 'V', "GSYMBOLNAME",     (anyptr)  name_GSYMBOL,     40,
  92.     'C', 'V', "STRINGMAXNAME",   (anyptr)  name_STRMAX,      40,
  93.     'C', 'V', "ARRAYMINNAME",    (anyptr)  name_ALOW,        40,
  94.     'C', 'V', "ARRAYMAXNAME",    (anyptr)  name_AHIGH,       40,
  95.     'C', 'V', "COPYPARNAME",     (anyptr)  name_COPYPAR,     40,
  96.     'C', 'V', "STATICLINKNAME",  (anyptr)  name_LINK,        40,
  97.     'C', 'V', "LOCALVARSSTRUCT", (anyptr)  name_LOC,         40,
  98.     'C', 'V', "LOCALVARSNAME",   (anyptr)  name_VARS,        40,
  99.     'C', 'V', "FWDSTRUCTNAME",   (anyptr)  name_STRUCT,      40,
  100.     'C', 'V', "ENUMLISTNAME",    (anyptr)  name_ENUM,        40,
  101.     'C', 'V', "UNIONNAME",       (anyptr)  name_UNION,       40,
  102.     'C', 'V', "UNIONPARTNAME",   (anyptr)  name_VARIANT,     40,
  103.     'C', 'V', "FAKESTRUCTNAME",  (anyptr)  name_FAKESTRUCT,  40,
  104.     'C', 'V', "LABELNAME",       (anyptr)  name_LABEL,       40,
  105.     'C', 'V', "LABELVARNAME",    (anyptr)  name_LABVAR,      40,
  106.     'C', 'V', "TEMPNAME",        (anyptr)  name_TEMP,        40,
  107.     'C', 'V', "DUMMYNAME",       (anyptr)  name_DUMMY,       40,
  108.     'C', 'V', "FORNAME",         (anyptr)  name_FOR,         40,
  109.     'C', 'V', "WITHNAME",        (anyptr)  name_WITH,        40,
  110.     'C', 'V', "PTRNAME",         (anyptr)  name_PTR,         40,
  111.     'C', 'V', "STRINGNAME",      (anyptr)  name_STRING,      40,
  112.     'C', 'V', "SETNAME",         (anyptr)  name_SET,         40,
  113.     'C', 'V', "FNVARNAME",       (anyptr)  name_FNVAR,       40,
  114.     'C', 'V', "FNSIZENAME",      (anyptr)  name_FNSIZE,      40,
  115.     'C', 'V', "ALTERNATENAME1",  (anyptr)  alternatename1,   40,
  116.     'C', 'V', "ALTERNATENAME2",  (anyptr)  alternatename2,   40,
  117.     'C', 'V', "ALTERNATENAME",   (anyptr)  alternatename,    40,
  118.     'C', 'V', "EXPORTSYMBOL",    (anyptr)  exportsymbol,     40,
  119.     'C', 'V', "EXPORT_SYMBOL",   (anyptr)  export_symbol,    40,
  120.     'C', 'V', "ALIAS",           (anyptr)  externalias,      40,
  121.     'X', 'V', "SYNONYM",         (anyptr)  NULL,              3,
  122.     'X', 'V', "NAMEOF",          (anyptr) &nameoflist,        1,
  123.     'G', 'V', "AVOIDNAME",       (anyptr)  NULL,             AVOIDNAME,
  124.     'G', 'V', "AVOIDGLOBALNAME", (anyptr)  NULL,             AVOIDGLOB,
  125.     'G', 'V', "WARNNAME",        (anyptr)  NULL,             WARNNAME,
  126.     'G', 'V', "NOSIDEEFFECTS",   (anyptr)  NULL,             NOSIDEEFF,
  127.     'G', 'V', "STRUCTFUNCTION",  (anyptr)  NULL,             STRUCTF,
  128.     'G', 'V', "STRLAPFUNCTION",  (anyptr)  NULL,             STRLAPF,
  129.     'F', 'V', "LEAVEALONE",      (anyptr)  NULL,             LEAVEALONE,
  130.     'G', 'V', "DETERMINISTIC",   (anyptr)  NULL,             DETERMF,
  131.     'G', 'V', "NEEDSTATIC",      (anyptr)  NULL,             NEEDSTATIC,
  132.     'S', 'V', "WARNNAMES",       (anyptr) &warnnames,         0,
  133.     'M', 'V', "VARMACRO",        (anyptr)  NULL,             MAC_VAR,
  134.     'M', 'V', "CONSTMACRO",      (anyptr)  NULL,             MAC_CONST,
  135.     'M', 'V', "FIELDMACRO",      (anyptr)  NULL,             MAC_FIELD,
  136.     'M', 'V', "FUNCMACRO",       (anyptr)  NULL,             MAC_FUNC,
  137.     'S', 'V', "WARNMACROS",      (anyptr) &warnmacros,        0,
  138. /* CODING OPTIONS */
  139.     'A', 'V', "INITIALCALLS",    (anyptr) &initialcalls,      0,
  140.     'S', 'V', "EXPANDINCLUDES",  (anyptr) &expandincludes,   -1,
  141.     'S', 'V', "COLLECTNEST",     (anyptr) &collectnest,       1,
  142.     'S', 'V', "SHORTCIRCUIT",    (anyptr) &shortcircuit,     -1,
  143.     'S', 'V', "SHORTOPT",        (anyptr) &shortopt,          1,
  144.     'S', 'V', "ELIMDEADCODE",    (anyptr) &elimdeadcode,      1,
  145.     'S', 'V', "FOLDCONSTANTS",   (anyptr) &foldconsts,       -1,
  146.     'S', 'V', "FOLDSTRCONSTANTS",(anyptr) &foldstrconsts,    -1,
  147.     'S', 'V', "USECONSTS",       (anyptr) &useconsts,        -1,
  148.     'S', 'V', "USEUNDEF",        (anyptr) &useundef,          1,
  149.     'L', 'V', "SKIPINDICES",     (anyptr) &skipindices,       0,
  150.     'S', 'V', "OFFSETFORLOOPS",  (anyptr) &offsetforloops,    1,
  151.     'S', 'V', "FOREVALORDER",    (anyptr) &forevalorder,      0,
  152.     'S', 'V', "STRINGLEADERS",   (anyptr) &stringleaders,     2,
  153.     'S', 'V', "STOREFILENAMES",  (anyptr) &storefilenames,   -1,
  154.     'S', 'V', "CHARFILETEXT",    (anyptr) &charfiletext,     -1,
  155.     'S', 'V', "SQUEEZESUBR",     (anyptr) &squeezesubr,       1,
  156.     'S', 'T', "USEENUM",         (anyptr) &useenum,          -1,
  157.     'S', 'V', "SQUEEZEENUM",     (anyptr) &enumbyte,         -1,
  158.     'S', 'V', "COMPENUMS",       (anyptr) &compenums,        -1,
  159.     'S', 'V', "PACKING",         (anyptr) &packing,           1,
  160.     'S', 'V', "PACKSIGNED",      (anyptr) &packsigned,        1,
  161.     'I', 'V', "STRINGCEILING",   (anyptr) &stringceiling,   255,
  162.     'I', 'V', "STRINGDEFAULT",   (anyptr) &stringdefault,   255,
  163.     'I', 'V', "STRINGTRUNCLIMIT",(anyptr) &stringtrunclimit, -1,
  164.     'I', 'V', "LONGSTRINGSIZE",  (anyptr) &longstringsize,   -1,
  165.     'S', 'V', "KEEPNULLS",       (anyptr) &keepnulls,         0,
  166.     'S', 'V', "HIGHCHARBITS",    (anyptr) &highcharbits,     -1,
  167.     'S', 'V', "ALWAYSCOPYVALUES",(anyptr) &alwayscopyvalues,  0,
  168.     'S', 'V', "STATICFUNCTIONS", (anyptr) &use_static,        1,
  169.     'S', 'V', "STATICVARIABLES", (anyptr) &var_static,        1,
  170.     'S', 'V', "VOIDARGS",        (anyptr) &void_args,        -1,
  171.     'S', 'V', "PROTOTYPES",      (anyptr) &prototypes,       -1,
  172.     'S', 'V', "FULLPROTOTYPING", (anyptr) &fullprototyping,  -1,
  173.     'S', 'V', "PROCPTRPROTOTYPES",(anyptr)&procptrprototypes, 1,
  174.     'S', 'V', "CASTARGS",        (anyptr) &castargs,         -1,
  175.     'S', 'V', "CASTLONGARGS",    (anyptr) &castlongargs,     -1,
  176.     'S', 'V', "PROMOTEARGS",     (anyptr) &promoteargs,      -1,
  177.     'S', 'V', "PROMOTEENUMS",    (anyptr) &promote_enums,    -1,
  178.     'S', 'V', "STATICLINKS",     (anyptr) &hasstaticlinks,   -1,
  179.     'S', 'V', "VARSTRINGS",      (anyptr) &varstrings,        0,
  180.     'S', 'V', "VARFILES",        (anyptr) &varfiles,          1,
  181.     'S', 'V', "ADDRSTDFILES",    (anyptr) &addrstdfiles,      0,
  182.     'S', 'V', "COPYSTRUCTFUNCS", (anyptr) &copystructfuncs,  -1,
  183.     'S', 'V', "ATAN2",           (anyptr) &atan2flag,         0,
  184.     'S', 'V', "BITWISEMOD",      (anyptr) &mod_po2,          -1,
  185.     'S', 'V', "BITWISEDIV",      (anyptr) &div_po2,          -1,
  186.     'S', 'V', "ASSUMEBITS",      (anyptr) &assumebits,        0,
  187.     'S', 'V', "ASSUMESIGNS",     (anyptr) &assumesigns,       1,
  188.     'S', 'V', "ALLOCZERONIL",    (anyptr) &alloczeronil,      0,
  189.     'S', 'V', "PRINTFONLY",      (anyptr) &printfonly,       -1,
  190.     'S', 'V', "MIXWRITELNS",     (anyptr) &mixwritelns,       1,
  191.     'S', 'V', "MESSAGESTDERR",   (anyptr) &messagestderr,     1,
  192.     'I', 'V', "INTEGERWIDTH",    (anyptr) &integerwidth,     -1,
  193.     'I', 'V', "REALWIDTH",       (anyptr) &realwidth,        12,
  194.     'S', 'V', "FORMATSTRINGS",   (anyptr) &formatstrings,     0,
  195.     'S', 'V', "WHILEFGETS",      (anyptr) &whilefgets,        1,
  196.     'S', 'V', "USEGETS",         (anyptr) &usegets,           1,
  197.     'S', 'V', "NEWLINESPACE",    (anyptr) &newlinespace,     -1,
  198.     'S', 'V', "BUILDREADS",      (anyptr) &buildreads,        1,
  199.     'S', 'V', "BUILDWRITES",     (anyptr) &buildwrites,       1,
  200.     'S', 'V', "BINARYMODE",      (anyptr) &binarymode,        1,
  201.     'S', 'V', "READWRITEOPEN",   (anyptr) &readwriteopen,    -1,
  202.     'C', 'V', "OPENMODE",        (anyptr)  openmode,         40,
  203.     'S', 'V', "LITERALFILES",    (anyptr) &literalfilesflag, -1,
  204.     'A', 'V', "LITERALFILE",     (anyptr) &literalfiles,      0,
  205.     'C', 'V', "FILENAMEFILTER",  (anyptr)  filenamefilter,   40,
  206.     'S', 'V', "FULLSTRWRITE",    (anyptr) &fullstrwrite,     -1,
  207.     'S', 'V', "FULLSTRREAD",     (anyptr) &fullstrread,       1,
  208.     'I', 'R', "SETBITS",         (anyptr) &setbits,          -1,
  209.     'I', 'V', "DEFAULTSETSIZE",  (anyptr) &defaultsetsize,   -1,
  210.     'S', 'V', "SMALLSETCONST",   (anyptr) &smallsetconst,    -2,
  211.     'S', 'V', "BIGSETCONST",     (anyptr) &bigsetconst,       1,
  212.     'S', 'V', "LELERANGE",       (anyptr) &lelerange,         0,
  213.     'S', 'V', "UNSIGNEDTRICK",   (anyptr) &unsignedtrick,     1,
  214.     'S', 'V', "USEISALPHA",      (anyptr) &useisalpha,        1,
  215.     'S', 'V', "USEISSPACE",      (anyptr) &useisspace,        0,
  216.     'S', 'V', "USESTRNCMP",  (anyptr) &usestrncmp,       1,
  217. /* TARGET LIBRARY */
  218.     'G', 'V', "WARNLIBRARY",     (anyptr)  NULL,             WARNLIBR,
  219.     'S', 'V', "QUOTEINCLUDES",   (anyptr) &quoteincludes,     1,
  220.     'X', 'V', "IMPORTFROM",      (anyptr) &importfrom,        1,
  221.     'A', 'V', "IMPORTDIR",       (anyptr) &importdirs,        0,
  222.     'A', 'V', "INCLUDEDIR",      (anyptr) &includedirs,       0,
  223.     'X', 'V', "INCLUDEFROM",     (anyptr) &includefrom,       1,
  224.     'A', 'V', "LIBRARYFILE",     (anyptr) &librfiles,         0,
  225.     'C', 'V', "HEADERNAME",      (anyptr)  p2c_h_name,       40,
  226.     'C', 'V', "PROCTYPENAME",    (anyptr)  name_PROCEDURE,   40,
  227.     'C', 'V', "UCHARNAME",       (anyptr)  name_UCHAR,       40,
  228.     'C', 'V', "SCHARNAME",       (anyptr)  name_SCHAR,       40,
  229.     'C', 'V', "BOOLEANNAME",     (anyptr)  name_BOOLEAN,     40,
  230.     'C', 'V', "TRUENAME",        (anyptr)  name_TRUE,        40,
  231.     'C', 'V', "FALSENAME",       (anyptr)  name_FALSE,       40,
  232.     'C', 'V', "NULLNAME",        (anyptr)  name_NULL,        40,
  233.     'C', 'V', "ESCAPECODENAME",  (anyptr)  name_ESCAPECODE,  40,
  234.     'C', 'V', "IORESULTNAME",    (anyptr)  name_IORESULT,    40,
  235.     'C', 'V', "ARGCNAME",        (anyptr)  name_ARGC,        40,
  236.     'C', 'V', "ARGVNAME",        (anyptr)  name_ARGV,        40,
  237.     'C', 'V', "MAINNAME",        (anyptr)  name_MAIN,        40,
  238.     'C', 'V', "ESCAPENAME",      (anyptr)  name_ESCAPE,      40,
  239.     'C', 'V', "ESCIONAME",       (anyptr)  name_ESCIO,       40,
  240.     'C', 'V', "CHECKIONAME",     (anyptr)  name_CHKIO,       40,
  241.     'C', 'V', "SETIONAME",       (anyptr)  name_SETIO,       40,
  242.     'C', 'V', "FILENOTFOUNDNAME",(anyptr)  filenotfoundname, 40,
  243.     'C', 'V', "FILENOTOPENNAME", (anyptr)  filenotopenname,  40,
  244.     'C', 'V', "FILEWRITEERRORNAME",(anyptr)filewriteerrorname,40,
  245.     'C', 'V', "BADINPUTFORMATNAME",(anyptr)badinputformatname,40,
  246.     'C', 'V', "ENDOFFILENAME",   (anyptr)  endoffilename,    40,
  247.     'C', 'V', "OUTMEMNAME",      (anyptr)  name_OUTMEM,      40,
  248.     'C', 'V', "CASECHECKNAME",   (anyptr)  name_CASECHECK,   40,
  249.     'C', 'V', "NILCHECKNAME",    (anyptr)  name_NILCHECK,    40,
  250.     'C', 'V', "SETBITSNAME",     (anyptr)  name_SETBITS,     40,
  251.     'S', 'V', "SPRINTFVALUE",    (anyptr) &sprintf_value,    -1,
  252.     'C', 'V', "SPRINTFNAME",     (anyptr)  sprintfname,      40,
  253.     'C', 'V', "MEMCPYNAME",      (anyptr)  memcpyname,       40,
  254.     'C', 'V', "ROUNDNAME",       (anyptr)  roundname,        40,
  255.     'C', 'V', "DIVNAME",  (anyptr)  divname,      40,
  256.     'C', 'V', "MODNAME",  (anyptr)  modname,      40,
  257.     'C', 'V', "REMNAME",  (anyptr)  remname,      40,
  258.     'C', 'V', "STRCICMPNAME",    (anyptr)  strcicmpname,     40,
  259.     'C', 'V', "STRSUBNAME",      (anyptr)  strsubname,       40,
  260.     'C', 'V', "STRPOSNAME",      (anyptr)  strposname,       40,
  261.     'S', 'V', "STRCPYLEFT",      (anyptr) &strcpyleft,        1,
  262.     'C', 'V', "STRDELETENAME",   (anyptr)  strdeletename,    40,
  263.     'C', 'V', "STRINSERTNAME",   (anyptr)  strinsertname,    40,
  264.     'C', 'V', "STRMOVENAME",     (anyptr)  strmovename,      40,
  265.     'C', 'V', "STRLTRIMNAME",    (anyptr)  strltrimname,     40,
  266.     'C', 'V', "STRRTRIMNAME",    (anyptr)  strrtrimname,     40,
  267.     'C', 'V', "STRRPTNAME",      (anyptr)  strrptname,       40,
  268.     'C', 'V', "STRPADNAME",      (anyptr)  strpadname,       40,
  269.     'C', 'V', "ABSNAME",         (anyptr)  absname,          40,
  270.     'C', 'V', "ODDNAME",         (anyptr)  oddname,          40,
  271.     'C', 'V', "EVENNAME",        (anyptr)  evenname,         40,
  272.     'C', 'V', "SWAPNAME",        (anyptr)  swapname,         40,
  273.     'C', 'V', "MALLOCNAME",      (anyptr)  mallocname,       40,
  274.     'C', 'V', "FREENAME",        (anyptr)  freename,         40,
  275.     'C', 'V', "FREERVALUENAME",  (anyptr)  freervaluename,   40,
  276.     'X', 'V', "SPECIALMALLOC",   (anyptr) &specialmallocs,    1,
  277.     'X', 'V', "SPECIALFREE",     (anyptr) &specialfrees,      1,
  278.     'X', 'V', "SPECIALSIZEOF",   (anyptr) &specialsizeofs,    1,
  279.     'C', 'V', "RANDREALNAME",    (anyptr)  randrealname,     40,
  280.     'C', 'V', "RANDINTNAME",     (anyptr)  randintname,      40,
  281.     'C', 'V', "RANDOMIZENAME",   (anyptr)  randomizename,    40,
  282.     'C', 'V', "SKIPSPACENAME",   (anyptr)  skipspacename,    40,
  283.     'C', 'V', "READLNNAME",      (anyptr)  readlnname,       40,
  284.     'C', 'V', "FREOPENNAME",     (anyptr)  freopenname,      40,
  285.     'C', 'V', "EOFNAME",         (anyptr)  eofname,          40,
  286.     'C', 'V', "EOLNNAME",        (anyptr)  eolnname,         40,
  287.     'C', 'V', "FILEPOSNAME",     (anyptr)  fileposname,      40,
  288.     'C', 'V', "MAXPOSNAME",      (anyptr)  maxposname,       40,
  289.     'C', 'V', "SETUNIONNAME",    (anyptr)  setunionname,     40,
  290.     'C', 'V', "SETINTNAME",      (anyptr)  setintname,       40,
  291.     'C', 'V', "SETDIFFNAME",     (anyptr)  setdiffname,      40,
  292.     'C', 'V', "SETXORNAME",      (anyptr)  setxorname,       40,
  293.     'C', 'V', "SETINNAME",       (anyptr)  setinname,        40,
  294.     'C', 'V', "SETADDNAME",      (anyptr)  setaddname,       40,
  295.     'C', 'V', "SETADDRANGENAME", (anyptr)  setaddrangename,  40,
  296.     'C', 'V', "SETREMNAME",      (anyptr)  setremname,       40,
  297.     'C', 'V', "SETEQUALNAME",    (anyptr)  setequalname,     40,
  298.     'C', 'V', "SUBSETNAME",      (anyptr)  subsetname,       40,
  299.     'C', 'V', "SETCOPYNAME",     (anyptr)  setcopyname,      40,
  300.     'C', 'V', "SETEXPANDNAME",   (anyptr)  setexpandname,    40,
  301.     'C', 'V', "SETPACKNAME",     (anyptr)  setpackname,      40,
  302.     'C', 'V', "SIGNEXTENDNAME",  (anyptr)  signextname,      40,
  303.     'C', 'V', "GETBITSNAME",     (anyptr)  getbitsname,      40,
  304.     'C', 'V', "CLRBITSNAME",     (anyptr)  clrbitsname,      40,
  305.     'C', 'V', "PUTBITSNAME",     (anyptr)  putbitsname,      40,
  306.     'C', 'V', "STOREBITSNAME",   (anyptr)  storebitsname,    40,
  307.     'C', 'V', "DECLBUFNAME",  (anyptr)  declbufname,      40,
  308.     'C', 'V', "DECLBUFNCNAME",  (anyptr)  declbufncname,    40,
  309.     'A', 'V', "BUFFEREDFILE",    (anyptr) &bufferedfiles,     0,
  310.     'A', 'V', "UNBUFFEREDFILE",  (anyptr) &unbufferedfiles,   0,
  311.     'C', 'V', "RESETBUFNAME",  (anyptr)  resetbufname,     40,
  312.     'C', 'V', "SETUPBUFNAME",  (anyptr)  setupbufname,     40,
  313.     'C', 'V', "GETFBUFNAME",     (anyptr)  getfbufname,      40,
  314.     'C', 'V', "CHARGETFBUFNAME", (anyptr)  chargetfbufname,  40,
  315.     'C', 'V', "ARRAYGETFBUFNAME",(anyptr)  arraygetfbufname, 40,
  316.     'C', 'V', "PUTFBUFNAME",     (anyptr)  putfbufname,      40,
  317.     'C', 'V', "CHARPUTFBUFNAME", (anyptr)  charputfbufname,  40,
  318.     'C', 'V', "ARRAYPUTFBUFNAME",(anyptr)  arrayputfbufname, 40,
  319.     'C', 'V', "GETNAME",         (anyptr)  getname,          40,
  320.     'C', 'V', "CHARGETNAME",     (anyptr)  chargetname,      40,
  321.     'C', 'V', "ARRAYGETNAME",    (anyptr)  arraygetname,     40,
  322.     'C', 'V', "PUTNAME",         (anyptr)  putname,          40,
  323.     'C', 'V', "CHARPUTNAME",     (anyptr)  charputname,      40,
  324.     'C', 'V', "ARRAYPUTNAME",    (anyptr)  arrayputname,     40,
  325. /* RANGE CHECKING */
  326.     'S', 'V', "CASECHECK",       (anyptr) &casecheck,         0,
  327.     'S', 'V', "ARRAYCHECK",      (anyptr) &arraycheck,        0,
  328.     'S', 'V', "RANGECHECK",      (anyptr) &rangecheck,        0,
  329.     'S', 'V', "NILCHECK",        (anyptr) &nilcheck,          0,
  330.     'S', 'V', "MALLOCCHECK",     (anyptr) &malloccheck,       0,
  331.     'S', 'V', "CHECKFILEOPEN",   (anyptr) &checkfileopen,     1,
  332.     'S', 'V', "CHECKFILEISOPEN", (anyptr) &checkfileisopen,   0,
  333.     'S', 'V', "CHECKFILEWRITE",  (anyptr) &checkfilewrite,    2,
  334.     'S', 'V', "CHECKREADFORMAT", (anyptr) &checkreadformat,   2,
  335.     'S', 'V', "CHECKFILEEOF",    (anyptr) &checkfileeof,      2,
  336.     'S', 'V', "CHECKSTDINEOF",   (anyptr) &checkstdineof,     2,
  337.     'S', 'V', "CHECKFILESEEK",   (anyptr) &checkfileseek,     2,
  338. }
  339. #endif /* define_parameters */
  340.     ;
  341. #undef extern
  342. #ifdef define_parameters
  343.   int numparams = sizeof(rctable) / sizeof(struct rcstruct);
  344.   Strlist *rcprevvalues[sizeof(rctable) / sizeof(struct rcstruct)];
  345. #else
  346.   extern int numparams;
  347.   extern Strlist *rcprevvalues[];
  348. #endif /* define_parameters */
  349. /* Global variables: */
  350. #ifdef define_globals
  351. # define extern
  352. #endif /* define_globals */
  353. extern char *charname, *ucharname, *scharname, *integername;
  354. extern long min_schar, max_schar, max_uchar;
  355. extern long min_sshort, max_sshort, max_ushort;
  356. extern char *alloctemp;
  357. extern short error_crash;
  358. extern int total_bytes, total_exprs, total_meanings, total_strings;
  359. extern int total_symbols, total_types, total_stmts, total_strlists;
  360. extern int total_literals, total_ctxstacks, total_tempvars, total_inprecs;
  361. extern int total_parens, total_ptrdescs, total_misc;
  362. extern int final_bytes, final_exprs, final_meanings, final_strings;
  363. extern int final_symbols, final_types, final_stmts, final_strlists;
  364. extern int final_literals, final_ctxstacks, final_tempvars, final_inprecs;
  365. extern int final_parens, final_ptrdescs, final_misc;
  366. extern char *infname, *outfname, *codefname, *hdrfname;
  367. extern char *requested_module;
  368. extern FILE *inf, *outf, *codef, *hdrf, *logf;
  369. extern short setup_complete, found_module;
  370. extern short regression, verbose, conserve_mem;
  371. extern int inf_lnum, inf_ltotal;
  372. extern int outindent, outputmode;
  373. extern int outf_lnum;
  374. extern short dontbreaklines;
  375. extern Token curtok;
  376. extern char curtokbuf[256], curtokcase[256];
  377. extern char *inbufptr;
  378. extern int inbufindent;
  379. extern long curtokint;
  380. extern Symbol *curtoksym;
  381. extern Meaning *curtokmeaning;
  382. extern Strlist *curcomments;
  383. extern Strlist **keepingstrlist;
  384. extern short ignore_directives, skipping_module;
  385. extern short C_lex;
  386. extern char sysprog_flag, partial_eval_flag, iocheck_flag;
  387. extern char range_flag, ovflcheck_flag, stackcheck_flag;
  388. extern short switch_strpos;
  389. extern int fixedflag;
  390. extern int numimports;
  391. extern Strlist *tempoptionlist;
  392. extern long curserial, serialcount;
  393. extern int notephase;
  394. extern Strlist *permimports;
  395. extern int permflag;
  396. #define SYMHASHSIZE 293
  397. extern Symbol *(symtab[SYMHASHSIZE]);
  398. extern short partialdump;
  399. #define MAXWITHS 100
  400. extern int withlevel;
  401. extern Type *withlist[MAXWITHS];
  402. extern Expr *withexprs[MAXWITHS];
  403. extern Token blockkind;
  404. extern Meaning *curctx, *curctxlast, *nullctx;
  405. extern int fixexpr_tryblock;
  406. extern short fixexpr_tryflag;
  407. extern Type *tp_integer, *tp_char, *tp_boolean, *tp_real, *tp_longreal;
  408. extern Type *tp_anyptr, *tp_jmp_buf, *tp_schar, *tp_uchar;
  409. extern Type *tp_int, *tp_sshort, *tp_ushort, *tp_abyte, *tp_sbyte, *tp_ubyte;
  410. extern Type *tp_void, *tp_str255, *tp_strptr, *tp_text, *tp_charptr;
  411. extern Type *tp_unsigned, *tp_uint, *tp_sint, *tp_smallset, *tp_proc;
  412. extern Meaning *mp_string, *mp_true, *mp_false;
  413. extern Meaning *mp_input, *mp_output, *mp_stderr;
  414. extern Meaning *mp_maxint, *mp_minint, *mp_escapecode, *mp_ioresult;
  415. extern Meaning *mp_uchar, *mp_schar, *mp_unsigned, *mp_uint;
  416. extern Meaning *mp_str_hp, *mp_str_turbo;
  417. extern Meaning *mp_val_modula, *mp_val_turbo;
  418. extern Meaning *mp_blockread_ucsd, *mp_blockread_turbo;
  419. extern Meaning *mp_blockwrite_ucsd, *mp_blockwrite_turbo;
  420. extern Meaning *mp_dec_dec, *mp_dec_turbo;
  421. extern Expr *ex_input, *ex_output;
  422. extern Strlist *attrlist;
  423. #ifndef define_globals
  424. # undef extern
  425. #endif
  426. /* Function declarations are created automatically by "makeproto" */
  427. #include "p2c.hdrs"
  428. #include "p2c.proto"
  429. /* Our library omits declarations for these functions! */
  430. int link           PP( (char *, char *) );
  431. int unlink         PP( (char *) );
  432. #define minspcthresh ((minspacingthresh >= 0) ? minspacingthresh : minspacing)
  433. #define delfreearg(ex, n) freeexpr((*(ex))->args[n]), deletearg(ex, n)
  434. #define delsimpfreearg(ex, n) freeexpr((*(ex))->args[n]), delsimparg(ex, n)
  435. #define swapexprs(a,b) do {register Expr *t=(a);(a)=(b);(b)=(t);} while (0)
  436. #define swapstmts(a,b) do {register Stmt *t=(a);(a)=(b);(b)=(t);} while (0)
  437. #define CHECKORDEXPR(ex,v) ((ex)->kind==EK_CONST ? (ex)->val.i - (v) : -2)
  438. #define FCheck(flag)  ((flag) == 1 || (!iocheck_flag && (flag)))
  439. #define checkeof(fex)  (isvar(fex, mp_input) ? FCheck(checkstdineof)  
  440.      : FCheck(checkfileeof))
  441. #ifdef TEST_MALLOC   /* Memory testing */
  442. #define ALLOC(N,TYPE,NAME) 
  443.     (TYPE *) test_malloc((unsigned)((N)*sizeof(TYPE)),  
  444.  &__CAT__(total_,NAME), &__CAT__(final_,NAME))
  445. #define ALLOCV(N,TYPE,NAME) 
  446.     (TYPE *) test_malloc((unsigned)(N),  
  447.  &__CAT__(total_,NAME), &__CAT__(final_,NAME))
  448. #define REALLOC(P,N,TYPE) 
  449.     (TYPE *) test_realloc((char *)(P), (unsigned)((N)*sizeof(TYPE)))
  450. #define FREE(P) test_free((char*)(P))
  451. #else  /* not TEST_MALLOC */
  452. /* If p2c always halts immediately with an out-of-memory error, try
  453.    recompiling all modules with BROKEN_OR defined. */
  454. #ifdef BROKEN_OR
  455. #define ALLOC(N,TYPE,NAME) 
  456.     ((alloctemp = malloc((unsigned)((N)*sizeof(TYPE)))), 
  457.      (alloctemp ? (TYPE *) alloctemp : (TYPE *) outmem()))
  458. #define ALLOCV(N,TYPE,NAME) 
  459.     ((alloctemp = malloc((unsigned)(N))), 
  460.      (alloctemp ? (TYPE *) alloctemp : (TYPE *) outmem()))
  461. #define REALLOC(P,N,TYPE) 
  462.     ((alloctemp = realloc((char*)(P), (unsigned)((N)*sizeof(TYPE)))), 
  463.      (alloctemp ? (TYPE *) alloctemp : (TYPE *) outmem()))
  464. #define FREE(P) free((char*)(P))
  465. #else  /* not BROKEN_OR */
  466. #define ALLOC(N,TYPE,NAME) 
  467.     ((alloctemp = malloc((unsigned)((N)*sizeof(TYPE)))) || outmem(), 
  468.      (TYPE *) alloctemp)
  469. #define ALLOCV(N,TYPE,NAME) 
  470.     ((alloctemp = malloc((unsigned)(N))) || outmem(), 
  471.      (TYPE *) alloctemp)
  472. #define REALLOC(P,N,TYPE) 
  473.     ((alloctemp = realloc((char*)(P), (unsigned)((N)*sizeof(TYPE)))) || outmem(), 
  474.      (TYPE *) alloctemp)
  475. #define FREE(P) free((char*)(P))
  476. #endif  /* BROKEN_OR */
  477. #endif  /* TEST_MALLOC */
  478. #define MIN(a,b) ((a) < (b) ? (a) : (b))
  479. #define MAX(a,b) ((a) > (b) ? (a) : (b))
  480. #ifdef toupper
  481. # undef toupper
  482. # undef tolower
  483. # define toupper(c)  my_toupper(c)
  484. # define tolower(c)  my_tolower(c)
  485. # define _toupper(c)  ((c)-'a'+'A')
  486. # define _tolower(c)  ((c)-'A'+'a')
  487. #endif
  488. /* End. */