proto.h
来自「SRI international 发布的OAA框架软件」· C头文件 代码 · 共 853 行 · 第 1/3 页
H
853 行
/*
* proto.h -- function prototypes
*
* SOFTWARE RIGHTS
*
* We reserve no LEGAL rights to the Purdue Compiler Construction Tool
* Set (PCCTS) -- PCCTS is in the public domain. An individual or
* company may do whatever they wish with source code distributed with
* PCCTS or the code generated by PCCTS, including the incorporation of
* PCCTS, or its output, into commerical software.
*
* We encourage users to develop software with PCCTS. However, we do ask
* that credit is given to us for developing PCCTS. By "credit",
* we mean that if you incorporate our source code into one of your
* programs (commercial product, research project, or otherwise) that you
* acknowledge this fact somewhere in the documentation, research report,
* etc... If you like PCCTS and have developed a nice tool with the
* output, please mention that you developed it using PCCTS. In
* addition, we ask that this header remain intact in our source code.
* As long as these guidelines are kept, we expect to continue enhancing
* this system and expect to make other tools available as they are
* completed.
*
* ANTLR 1.33
* Terence Parr
* Parr Research Corporation
* with Purdue University and AHPCRC, University of Minnesota
* 1989-2001
*/
/* V a r i a b l e s */
extern int tp;
extern Junction *SynDiag;
extern char Version[];
extern char VersionDef[];
#ifdef __cplusplus
extern void (*fpPrint[])(...);
#else
extern void (*fpPrint[])();
#endif
#ifdef __cplusplus
extern struct _set (*fpReach[])(...);
#else
extern struct _set (*fpReach[])();
#endif
#ifdef __cplusplus
extern struct _tree *(*fpTraverse[])(...);
#else
extern struct _tree *(*fpTraverse[])();
#endif
#ifdef __cplusplus
extern void (**fpTrans)(...);
#else
extern void (**fpTrans)();
#endif
#ifdef __cplusplus
extern void (**fpJTrans)(...);
#else
extern void (**fpJTrans)();
#endif
#ifdef __cplusplus
extern void (*C_Trans[NumNodeTypes+1])(...);
#else
extern void (*C_Trans[])();
#endif
#ifdef __cplusplus
extern void (*C_JTrans[NumJuncTypes+1])(...);
#else
extern void (*C_JTrans[])();
#endif
extern int BlkLevel;
extern int CurFile;
extern char *CurPredName;
extern char *CurRule;
extern int CurRuleDebug; /* MR13 */
extern Junction *CurRuleBlk;
extern RuleEntry *CurRuleNode;
extern ListNode *CurElementLabels;
extern ListNode *CurAstLabelsInActions; /* MR27 */
extern ListNode *ContextGuardPredicateList; /* MR13 */
extern ListNode *CurActionLabels;
extern int numericActionLabel; /* MR10 << ... $1 ... >> or << ... $1 ... >>? */
extern ListNode *NumericPredLabels; /* MR10 << ... $1 ... >>? ONLY */
extern char *FileStr[];
extern int NumFiles;
extern int EpToken;
extern int WildCardToken;
extern Entry **Tname,
**Texpr,
**Rname,
**Fcache,
**Tcache,
**Elabel,
**Sname,
**Pname; /* MR11 */
extern ListNode *ExprOrder;
extern ListNode **Cycles;
extern int TokenNum;
extern int LastTokenCounted;
extern ListNode *BeforeActions, *AfterActions, *LexActions;
/* MR1 */
/* MR1 11-Apr-97 Provide mechanism for inserting code into DLG class */
/* MR1 via #lexmember <<....>> & #lexprefix <<...>> */
/* MR1 */
extern ListNode *LexMemberActions; /* MR1 */
extern ListNode *LexPrefixActions; /* MR1 */
extern set *fset; /* for constrained search */ /* MR11 */
extern int maxk; /* for constrained search */ /* MR11 */
extern int Save_argc; /* MR10 */
extern char **Save_argv; /* MR10 */
extern ListNode *eclasses, *tclasses;
extern char *HdrAction;
extern char *FirstAction; /* MR11 */
extern FILE *ErrFile;
extern char *RemapFileName;
extern char *ErrFileName;
extern char *DlgFileName;
extern char *DefFileName;
extern char *ModeFileName;
extern char *StdMsgName;
extern int NumRules;
extern Junction **RulePtr;
extern int LL_k;
extern int CLL_k;
extern char *decodeJType[];
extern int PrintOut;
extern int PrintAnnotate;
extern int CodeGen;
extern int LexGen;
extern int esetnum;
extern int setnum;
extern int wordnum;
extern int GenAST;
extern int GenANSI;
extern int **FoStack;
extern int **FoTOS;
extern int GenExprSetsOpt;
extern FILE *DefFile;
extern int CannotContinue;
extern int GenCR;
extern int GenLineInfo;
extern int GenLineInfoMS;
extern int action_file, action_line;
extern int TraceGen;
extern int CurAmbigAlt1, CurAmbigAlt2, CurAmbigline, CurAmbigfile;
extern char *CurAmbigbtype;
extern int elevel;
extern int GenEClasseForRules;
extern FILE *input, *output;
extern char **TokenStr, **ExprStr;
extern int CurrentLexClass, NumLexClasses;
extern LClass lclass[];
extern char LexStartSymbol[];
extern char *CurRetDef;
extern char *CurParmDef;
extern int OutputLL_k;
extern int TreeResourceLimit;
extern int DemandLookahead;
extern char *RulePrefix;
extern int GenStdPccts;
extern char *stdpccts;
extern int ParseWithPredicates;
extern int ConstrainSearch;
extern int PURIFY; /* MR23 */
extern set MR_CompromisedRules; /* MR14 */
extern int MR_AmbSourceSearch; /* MR11 */
extern int MR_SuppressSearch; /* MR13 */
extern int MR_AmbSourceSearchGroup; /* MR11 */
extern int MR_AmbSourceSearchChoice; /* MR11 */
extern int MR_AmbSourceSearchLimit; /* MR11 */
extern int MR_usingPredNames; /* MR11 */
extern int MR_ErrorSetComputationActive; /* MR14 */
extern char *MR_AmbAidRule; /* MR11 */
extern int MR_AmbAidLine; /* MR11 */
extern int MR_AmbAidMultiple; /* MR11 */
extern int MR_AmbAidDepth; /* MR11 */
extern int MR_skipped_e3_report; /* MR11 */
extern int MR_matched_AmbAidRule; /* MR11 */
extern int MR_Inhibit_Tokens_h_Gen; /* MR13 */
extern int NewAST; /* MR13 */
extern int tmakeInParser; /* MR23 */
extern int AlphaBetaTrace; /* MR14 */
extern int MR_BlkErr; /* MR21 */
extern int MR_AlphaBetaWarning; /* MR14 */
extern int MR_AlphaBetaMessageCount; /* MR14 */
extern int MR_MaintainBackTrace; /* MR14 */
extern int MR_BadExprSets; /* MR13 */
extern int FoundGuessBlk;
extern int FoundException;
extern int FoundAtOperator; /* MR6 */
extern int FoundExceptionGroup; /* MR6 */
extern int WarningLevel;
extern int UseStdout; /* MR6 */
extern int TabWidth; /* MR6 */
extern int pLevel;
extern int pAlt1;
extern int pAlt2;
extern int AImode;
extern int HoistPredicateContext;
extern int MRhoisting; /* MR9 */
extern int MRhoistingk; /* MR13 */
extern int MR_debugGenRule; /* MR11 */
extern int GenCC;
extern char *ParserName;
extern char *StandardSymbols[];
extern char *ASTSymbols[];
extern set reserved_positions;
extern set all_tokens;
extern set imag_tokens;
extern set tokclasses;
extern ListNode *ForcedTokens;
extern int *TokenInd;
extern FILE *Parser_h, *Parser_c;
extern char CurrentClassName[];
extern int no_classes_found;
extern char Parser_h_Name[];
extern char Parser_c_Name[];
extern char MRinfoFile_Name[]; /* MR10 */
extern FILE *MRinfoFile; /* MR10 */
extern int MRinfo; /* MR10 */
extern int MRinfoSeq; /* MR10 */
extern int InfoP; /* MR10 */
extern int InfoT; /* MR10 */
extern int InfoF; /* MR10 */
extern int InfoM; /* MR10 */
extern int InfoO; /* MR12 */
extern int PotentialSuppression; /* MR10 */
extern int PotentialDummy; /* MR10 */
extern int TnodesInUse; /* MR10 */
extern int TnodesPeak; /* MR10 */
extern int TnodesReportThreshold; /* MR11 */
extern int TnodesAllocated; /* MR10 */
extern char *ClassDeclStuff; /* MR10 */
extern char *BaseClassName; /* MR22 */
extern ListNode *class_before_actions, *class_after_actions;
extern char *UserTokenDefsFile;
extern int UserDefdTokens;
extern ListNode *MetaTokenNodes;
extern char *OutputDirectory;
extern int DontCopyTokens;
extern int LTinTokenAction; /* MR23 */
extern set AST_nodes_refd_in_actions;
extern ListNode *CurExGroups;
extern int CurBlockID;
extern int CurAltNum;
extern Junction *CurAltStart;
extern Junction *OuterAltStart; /* chain exception groups MR7 */
extern ExceptionGroup *DefaultExGroup;
extern int NumSignals;
extern int ContextGuardTRAV;
extern Junction *MR_RuleBlkWithHalt; /* MR10 */
extern PointerStack MR_BackTraceStack; /* MR10 */
extern PointerStack MR_PredRuleRefStack; /* MR10 */
extern PointerStack MR_RuleBlkWithHaltStack; /* MR10 */
/* */
/* MR1 10-Apr-97 MR1 Previously unable to put right shift operator */
/* MR1 in DLG action */
/* */
extern int tokenActionActive; /* MR1 */
extern char *PRED_OR_LIST; /* MR10 */
extern char *PRED_AND_LIST; /* MR10 */
#ifdef __VMS
#define STRICMP strcasecmp /* MR21 */
#else
#define STRICMP stricmp /* MR21 */
#endif
/* MR26 */
#ifdef PCCTS_USE_STDARG
extern Tree *tmake(Tree *root, ...);
#else
extern Tree *tmake();
#endif
#ifdef __USE_PROTOS
extern int STRICMP(const char*, const char*);
extern void istackreset(void);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?