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 + -
显示快捷键?