]>
Commit | Line | Data |
---|---|---|
878ddf1f | 1 | /*\r |
2 | * proto.h -- function prototypes\r | |
3 | *\r | |
4 | * SOFTWARE RIGHTS\r | |
5 | *\r | |
6 | * We reserve no LEGAL rights to the Purdue Compiler Construction Tool\r | |
7 | * Set (PCCTS) -- PCCTS is in the public domain. An individual or\r | |
8 | * company may do whatever they wish with source code distributed with\r | |
9 | * PCCTS or the code generated by PCCTS, including the incorporation of\r | |
10 | * PCCTS, or its output, into commerical software.\r | |
11 | *\r | |
12 | * We encourage users to develop software with PCCTS. However, we do ask\r | |
13 | * that credit is given to us for developing PCCTS. By "credit",\r | |
14 | * we mean that if you incorporate our source code into one of your\r | |
15 | * programs (commercial product, research project, or otherwise) that you\r | |
16 | * acknowledge this fact somewhere in the documentation, research report,\r | |
17 | * etc... If you like PCCTS and have developed a nice tool with the\r | |
18 | * output, please mention that you developed it using PCCTS. In\r | |
19 | * addition, we ask that this header remain intact in our source code.\r | |
20 | * As long as these guidelines are kept, we expect to continue enhancing\r | |
21 | * this system and expect to make other tools available as they are\r | |
22 | * completed.\r | |
23 | *\r | |
24 | * ANTLR 1.33\r | |
25 | * Terence Parr\r | |
26 | * Parr Research Corporation\r | |
27 | * with Purdue University and AHPCRC, University of Minnesota\r | |
28 | * 1989-2001\r | |
29 | */\r | |
30 | \r | |
31 | /* V a r i a b l e s */\r | |
32 | \r | |
33 | extern int tp;\r | |
34 | extern Junction *SynDiag;\r | |
35 | extern char Version[];\r | |
36 | extern char VersionDef[];\r | |
37 | #ifdef __cplusplus\r | |
38 | extern void (*fpPrint[])(...);\r | |
39 | #else\r | |
40 | extern void (*fpPrint[])();\r | |
41 | #endif\r | |
42 | #ifdef __cplusplus\r | |
43 | extern struct _set (*fpReach[])(...);\r | |
44 | #else\r | |
45 | extern struct _set (*fpReach[])();\r | |
46 | #endif\r | |
47 | #ifdef __cplusplus\r | |
48 | extern struct _tree *(*fpTraverse[])(...);\r | |
49 | #else\r | |
50 | extern struct _tree *(*fpTraverse[])();\r | |
51 | #endif\r | |
52 | #ifdef __cplusplus\r | |
53 | extern void (**fpTrans)(...);\r | |
54 | #else\r | |
55 | extern void (**fpTrans)();\r | |
56 | #endif\r | |
57 | #ifdef __cplusplus\r | |
58 | extern void (**fpJTrans)(...);\r | |
59 | #else\r | |
60 | extern void (**fpJTrans)();\r | |
61 | #endif\r | |
62 | #ifdef __cplusplus\r | |
63 | extern void (*C_Trans[NumNodeTypes+1])(...);\r | |
64 | #else\r | |
65 | extern void (*C_Trans[])();\r | |
66 | #endif\r | |
67 | #ifdef __cplusplus\r | |
68 | extern void (*C_JTrans[NumJuncTypes+1])(...);\r | |
69 | #else\r | |
70 | extern void (*C_JTrans[])();\r | |
71 | #endif\r | |
72 | extern int BlkLevel;\r | |
73 | extern int CurFile;\r | |
74 | extern char *CurPredName;\r | |
75 | extern char *CurRule;\r | |
76 | extern int CurRuleDebug; /* MR13 */\r | |
77 | extern Junction *CurRuleBlk;\r | |
78 | extern RuleEntry *CurRuleNode;\r | |
79 | extern ListNode *CurElementLabels;\r | |
80 | extern ListNode *CurAstLabelsInActions; /* MR27 */\r | |
81 | extern ListNode *ContextGuardPredicateList; /* MR13 */\r | |
82 | extern ListNode *CurActionLabels;\r | |
83 | extern int numericActionLabel; /* MR10 << ... $1 ... >> or << ... $1 ... >>? */\r | |
84 | extern ListNode *NumericPredLabels; /* MR10 << ... $1 ... >>? ONLY */\r | |
85 | extern char *FileStr[];\r | |
86 | extern int NumFiles;\r | |
87 | extern int EpToken;\r | |
88 | extern int WildCardToken;\r | |
89 | extern Entry **Tname,\r | |
90 | **Texpr,\r | |
91 | **Rname,\r | |
92 | **Fcache,\r | |
93 | **Tcache,\r | |
94 | **Elabel,\r | |
95 | **Sname,\r | |
96 | **Pname; /* MR11 */\r | |
97 | extern ListNode *ExprOrder;\r | |
98 | extern ListNode **Cycles;\r | |
99 | extern int TokenNum;\r | |
100 | extern int LastTokenCounted;\r | |
101 | extern ListNode *BeforeActions, *AfterActions, *LexActions;\r | |
102 | \r | |
103 | /* MR1 */\r | |
104 | /* MR1 11-Apr-97 Provide mechanism for inserting code into DLG class */\r | |
105 | /* MR1 via #lexmember <<....>> & #lexprefix <<...>> */\r | |
106 | /* MR1 */\r | |
107 | \r | |
108 | extern ListNode *LexMemberActions; /* MR1 */\r | |
109 | extern ListNode *LexPrefixActions; /* MR1 */\r | |
110 | \r | |
111 | extern set *fset; /* for constrained search */ /* MR11 */\r | |
112 | extern int maxk; /* for constrained search */ /* MR11 */\r | |
113 | extern int Save_argc; /* MR10 */\r | |
114 | extern char **Save_argv; /* MR10 */\r | |
115 | extern ListNode *eclasses, *tclasses;\r | |
116 | extern char *HdrAction;\r | |
117 | extern char *FirstAction; /* MR11 */\r | |
118 | extern FILE *ErrFile;\r | |
119 | extern char *RemapFileName;\r | |
120 | extern char *ErrFileName;\r | |
121 | extern char *DlgFileName;\r | |
122 | extern char *DefFileName;\r | |
123 | extern char *ModeFileName;\r | |
124 | extern char *StdMsgName;\r | |
125 | extern int NumRules;\r | |
126 | extern Junction **RulePtr;\r | |
127 | extern int LL_k;\r | |
128 | extern int CLL_k;\r | |
129 | extern char *decodeJType[];\r | |
130 | extern int PrintOut;\r | |
131 | extern int PrintAnnotate;\r | |
132 | extern int CodeGen;\r | |
133 | extern int LexGen;\r | |
134 | extern int esetnum;\r | |
135 | extern int setnum;\r | |
136 | extern int wordnum;\r | |
137 | extern int GenAST;\r | |
138 | extern int GenANSI;\r | |
139 | extern int **FoStack;\r | |
140 | extern int **FoTOS;\r | |
141 | extern int GenExprSetsOpt;\r | |
142 | extern FILE *DefFile;\r | |
143 | extern int CannotContinue;\r | |
144 | extern int GenCR;\r | |
145 | extern int GenLineInfo;\r | |
146 | extern int GenLineInfoMS;\r | |
147 | extern int action_file, action_line;\r | |
148 | extern int TraceGen;\r | |
149 | extern int CurAmbigAlt1, CurAmbigAlt2, CurAmbigline, CurAmbigfile;\r | |
150 | extern char *CurAmbigbtype;\r | |
151 | extern int elevel;\r | |
152 | extern int GenEClasseForRules;\r | |
153 | extern FILE *input, *output;\r | |
154 | extern char **TokenStr, **ExprStr;\r | |
155 | extern int CurrentLexClass, NumLexClasses;\r | |
156 | extern LClass lclass[];\r | |
157 | extern char LexStartSymbol[];\r | |
158 | extern char *CurRetDef;\r | |
159 | extern char *CurParmDef;\r | |
160 | extern int OutputLL_k;\r | |
161 | extern int TreeResourceLimit;\r | |
162 | extern int DemandLookahead;\r | |
163 | extern char *RulePrefix;\r | |
164 | extern int GenStdPccts;\r | |
165 | extern char *stdpccts;\r | |
166 | extern int ParseWithPredicates;\r | |
167 | extern int ConstrainSearch;\r | |
168 | extern int PURIFY; /* MR23 */\r | |
169 | \r | |
170 | extern set MR_CompromisedRules; /* MR14 */\r | |
171 | extern int MR_AmbSourceSearch; /* MR11 */\r | |
172 | extern int MR_SuppressSearch; /* MR13 */\r | |
173 | extern int MR_AmbSourceSearchGroup; /* MR11 */\r | |
174 | extern int MR_AmbSourceSearchChoice; /* MR11 */\r | |
175 | extern int MR_AmbSourceSearchLimit; /* MR11 */\r | |
176 | extern int MR_usingPredNames; /* MR11 */\r | |
177 | extern int MR_ErrorSetComputationActive; /* MR14 */\r | |
178 | extern char *MR_AmbAidRule; /* MR11 */\r | |
179 | extern int MR_AmbAidLine; /* MR11 */\r | |
180 | extern int MR_AmbAidMultiple; /* MR11 */\r | |
181 | extern int MR_AmbAidDepth; /* MR11 */\r | |
182 | extern int MR_skipped_e3_report; /* MR11 */\r | |
183 | extern int MR_matched_AmbAidRule; /* MR11 */\r | |
184 | extern int MR_Inhibit_Tokens_h_Gen; /* MR13 */\r | |
185 | extern int NewAST; /* MR13 */\r | |
186 | extern int tmakeInParser; /* MR23 */\r | |
187 | extern int AlphaBetaTrace; /* MR14 */\r | |
188 | extern int MR_BlkErr; /* MR21 */\r | |
189 | extern int MR_AlphaBetaWarning; /* MR14 */\r | |
190 | extern int MR_AlphaBetaMessageCount; /* MR14 */\r | |
191 | extern int MR_MaintainBackTrace; /* MR14 */\r | |
192 | extern int MR_BadExprSets; /* MR13 */\r | |
193 | extern int FoundGuessBlk;\r | |
194 | extern int FoundException;\r | |
195 | extern int FoundAtOperator; /* MR6 */\r | |
196 | extern int FoundExceptionGroup; /* MR6 */\r | |
197 | extern int WarningLevel;\r | |
198 | extern int UseStdout; /* MR6 */\r | |
199 | extern int TabWidth; /* MR6 */\r | |
200 | extern int pLevel;\r | |
201 | extern int pAlt1;\r | |
202 | extern int pAlt2;\r | |
203 | extern int AImode;\r | |
204 | extern int HoistPredicateContext;\r | |
205 | extern int MRhoisting; /* MR9 */\r | |
206 | extern int MRhoistingk; /* MR13 */\r | |
207 | extern int MR_debugGenRule; /* MR11 */\r | |
208 | extern int GenCC;\r | |
209 | extern char *ParserName;\r | |
210 | extern char *StandardSymbols[];\r | |
211 | extern char *ASTSymbols[];\r | |
212 | extern set reserved_positions;\r | |
213 | extern set all_tokens;\r | |
214 | extern set imag_tokens;\r | |
215 | extern set tokclasses;\r | |
216 | extern ListNode *ForcedTokens;\r | |
217 | extern int *TokenInd;\r | |
218 | extern FILE *Parser_h, *Parser_c;\r | |
219 | extern char CurrentClassName[];\r | |
220 | extern int no_classes_found;\r | |
221 | extern char Parser_h_Name[];\r | |
222 | extern char Parser_c_Name[];\r | |
223 | extern char MRinfoFile_Name[]; /* MR10 */\r | |
224 | extern FILE *MRinfoFile; /* MR10 */\r | |
225 | extern int MRinfo; /* MR10 */\r | |
226 | extern int MRinfoSeq; /* MR10 */\r | |
227 | extern int InfoP; /* MR10 */\r | |
228 | extern int InfoT; /* MR10 */\r | |
229 | extern int InfoF; /* MR10 */\r | |
230 | extern int InfoM; /* MR10 */\r | |
231 | extern int InfoO; /* MR12 */\r | |
232 | extern int PotentialSuppression; /* MR10 */\r | |
233 | extern int PotentialDummy; /* MR10 */\r | |
234 | extern int TnodesInUse; /* MR10 */\r | |
235 | extern int TnodesPeak; /* MR10 */\r | |
236 | extern int TnodesReportThreshold; /* MR11 */\r | |
237 | extern int TnodesAllocated; /* MR10 */\r | |
238 | extern char *ClassDeclStuff; /* MR10 */\r | |
239 | extern char *BaseClassName; /* MR22 */\r | |
240 | extern ListNode *class_before_actions, *class_after_actions;\r | |
241 | extern char *UserTokenDefsFile;\r | |
242 | extern int UserDefdTokens;\r | |
243 | extern ListNode *MetaTokenNodes;\r | |
244 | extern char *OutputDirectory;\r | |
245 | extern int DontCopyTokens;\r | |
246 | extern int LTinTokenAction; /* MR23 */\r | |
247 | extern set AST_nodes_refd_in_actions;\r | |
248 | extern ListNode *CurExGroups;\r | |
249 | extern int CurBlockID;\r | |
250 | extern int CurAltNum;\r | |
251 | extern Junction *CurAltStart;\r | |
252 | extern Junction *OuterAltStart; /* chain exception groups MR7 */\r | |
253 | extern ExceptionGroup *DefaultExGroup;\r | |
254 | extern int NumSignals;\r | |
255 | extern int ContextGuardTRAV;\r | |
256 | extern Junction *MR_RuleBlkWithHalt; /* MR10 */\r | |
257 | extern PointerStack MR_BackTraceStack; /* MR10 */\r | |
258 | extern PointerStack MR_PredRuleRefStack; /* MR10 */\r | |
259 | extern PointerStack MR_RuleBlkWithHaltStack; /* MR10 */\r | |
260 | \r | |
261 | /* */\r | |
262 | /* MR1 10-Apr-97 MR1 Previously unable to put right shift operator */\r | |
263 | /* MR1 in DLG action */\r | |
264 | /* */\r | |
265 | extern int tokenActionActive; /* MR1 */\r | |
266 | \r | |
267 | extern char *PRED_OR_LIST; /* MR10 */\r | |
268 | extern char *PRED_AND_LIST; /* MR10 */\r | |
269 | \r | |
270 | #ifdef __VMS\r | |
271 | #define STRICMP strcasecmp /* MR21 */\r | |
272 | #else\r | |
273 | #define STRICMP stricmp /* MR21 */\r | |
274 | #endif\r | |
275 | \r | |
276 | /* MR26 */\r | |
277 | #ifdef PCCTS_USE_STDARG\r | |
278 | extern Tree *tmake(Tree *root, ...);\r | |
279 | #else\r | |
280 | extern Tree *tmake();\r | |
281 | #endif\r | |
282 | \r | |
283 | #ifdef __USE_PROTOS\r | |
284 | extern int STRICMP(const char*, const char*);\r | |
285 | extern void istackreset(void);\r | |
286 | extern int istacksize(void);\r | |
287 | extern void pushint(int);\r | |
288 | extern int popint( void );\r | |
289 | extern int istackempty( void );\r | |
290 | extern int topint( void );\r | |
291 | extern void NewSetWd( void );\r | |
292 | extern void DumpSetWd( void );\r | |
293 | extern void DumpSetWdForC( void );\r | |
294 | extern void DumpSetWdForCC( void );\r | |
295 | extern void NewSet( void );\r | |
296 | extern void FillSet( set );\r | |
297 | extern void ComputeErrorSets( void );\r | |
298 | extern void ComputeTokSets( void );\r | |
299 | extern void SubstErrorClass( set * );\r | |
300 | extern int DefErrSet( set *, int, char * );\r | |
301 | extern int DefErrSetForC( set *, int, char * );\r | |
302 | extern int DefErrSetForCC( set *, int, char * );\r | |
303 | extern int DefErrSet1(int, set *, int, char *); /* MR21 */\r | |
304 | extern int DefErrSetForC1(int, set *, int, char *, const char* ); /* MR21 */\r | |
305 | extern int DefErrSetForCC1(int, set *, int, char *, const char* ); /* MR21 */\r | |
306 | extern int DefErrSetWithSuffix(int, set *, int, char *, const char *); /* MR21 */\r | |
307 | extern void GenErrHdr( void );\r | |
308 | extern void dumpExpr( FILE *, char * );\r | |
309 | extern void addParm( Node *, char * );\r | |
310 | extern Graph buildAction( char *, int, int, int );\r | |
311 | extern Graph buildToken( char * );\r | |
312 | extern Graph buildWildCard( char * );\r | |
313 | extern Graph buildRuleRef( char * );\r | |
314 | extern Graph Or( Graph, Graph );\r | |
315 | extern Graph Cat( Graph, Graph );\r | |
316 | extern Graph makeOpt( Graph, int, char *);\r | |
317 | extern Graph makeBlk( Graph, int, char *);\r | |
318 | extern Graph makeLoop( Graph, int, char *);\r | |
319 | extern Graph makePlus( Graph, int, char *);\r | |
320 | extern Graph emptyAlt( void );\r | |
321 | extern Graph emptyAlt3( void );\r | |
322 | extern TokNode * newTokNode( void );\r | |
323 | extern RuleRefNode * newRNode( void );\r | |
324 | extern Junction * newJunction( void );\r | |
325 | extern ActionNode * newActionNode( void );\r | |
326 | extern char * makelocks( void );\r | |
327 | extern void preorder( Tree * );\r | |
328 | extern Tree * tnode( int );\r | |
329 | extern void _Tfree( Tree * );\r | |
330 | extern Tree * tdup( Tree * );\r | |
331 | extern int is_single_tuple( Tree * );\r | |
332 | extern Tree * tappend( Tree *, Tree * );\r | |
333 | extern void Tfree( Tree * );\r | |
334 | extern Tree * tlink( Tree *, Tree *, int );\r | |
335 | extern Tree * tshrink( Tree * );\r | |
336 | extern Tree * tflatten( Tree * );\r | |
337 | extern Tree * tJunc( Junction *, int, set * );\r | |
338 | extern Tree * tRuleRef( RuleRefNode *, int, set * );\r | |
339 | extern Tree * tToken( TokNode *, int, set * );\r | |
340 | extern Tree * tAction( ActionNode *, int, set * );\r | |
341 | extern int tmember( Tree *, Tree * );\r | |
342 | extern int tmember_constrained( Tree *, Tree * );\r | |
343 | extern Tree * tleft_factor( Tree * );\r | |
344 | extern Tree * trm_perm( Tree *, Tree * );\r | |
345 | extern void tcvt( set *, Tree * );\r | |
346 | extern Tree * permute( int, int );\r | |
347 | extern Tree * VerifyAmbig( Junction *, Junction *, unsigned **, set *, Tree **, Tree **, int * );\r | |
348 | extern set rJunc( Junction *, int, set * );\r | |
349 | extern set rRuleRef( RuleRefNode *, int, set * );\r | |
350 | extern set rToken( TokNode *, int, set * );\r | |
351 | extern set rAction( ActionNode *, int, set * );\r | |
352 | extern void HandleAmbiguity( Junction *, Junction *, Junction *, int );\r | |
353 | extern set First( Junction *, int, int, int * );\r | |
354 | extern void freeBlkFsets( Junction * );\r | |
355 | extern void genAction( ActionNode * );\r | |
356 | extern void genRuleRef( RuleRefNode * );\r | |
357 | extern void genToken( TokNode * );\r | |
358 | extern void genOptBlk( Junction * );\r | |
359 | extern void genLoopBlk( Junction *, Junction *, Junction *, int );\r | |
360 | extern void genLoopBegin( Junction * );\r | |
361 | extern void genPlusBlk( Junction * );\r | |
362 | extern void genSubBlk( Junction * );\r | |
363 | extern void genRule( Junction * );\r | |
364 | extern void genJunction( Junction * );\r | |
365 | extern void genEndBlk( Junction * );\r | |
366 | extern void genEndRule( Junction * );\r | |
367 | extern void genHdr( int );\r | |
368 | extern void genHdr1( int );\r | |
369 | extern void dumpAction( char *, FILE *, int, int, int, int );\r | |
370 | extern void dumpActionPlus(ActionNode*, char *, FILE *, int, int, int, int ); /* MR21 */\r | |
371 | extern Entry ** newHashTable( void );\r | |
372 | extern Entry * hash_add( Entry **, char *, Entry * );\r | |
373 | extern Entry * hash_get( Entry **, char * );\r | |
374 | extern void hashStat( Entry ** );\r | |
375 | extern char * mystrdup( char * );\r | |
376 | extern void genLexDescr( void );\r | |
377 | extern void dumpLexClasses( FILE * );\r | |
378 | extern void genDefFile( void );\r | |
379 | extern void DumpListOfParmNames( char *, FILE *, int ); /* MR5 janm 26-May-97 */\r | |
380 | extern int DumpNextNameInDef( char **, FILE * );\r | |
381 | extern void DumpOldStyleParms( char *, FILE * );\r | |
382 | extern void DumpType( char *, FILE * );\r | |
383 | extern int strmember( char *, char * );\r | |
384 | /* extern int HasComma( char * ); MR23 Replaced by hasMultipleOperands() */\r | |
385 | extern void DumpRetValStruct( FILE *, char *, int );\r | |
386 | extern char * StripQuotes( char * );\r | |
387 | extern int main( int, char *[] );\r | |
388 | extern void readDescr( void );\r | |
389 | extern FILE * NextFile( void );\r | |
390 | extern char * outnameX( char *, char *);\r | |
391 | extern char * outname( char * );\r | |
392 | extern void fatalFL( char *, char *, int );\r | |
393 | extern void fatal_intern( char *, char *, int );\r | |
394 | extern void cleanUp( void );\r | |
395 | extern char * eMsg3( char *, char *, char *, char * );\r | |
396 | extern char * eMsgd( char *, int );\r | |
397 | extern char * eMsgd2( char *, int, int );\r | |
398 | extern void s_fprT( FILE *, set );\r | |
399 | extern char * TerminalString( int );\r | |
400 | extern void lexclass( char * );\r | |
401 | extern void lexmode( int );\r | |
402 | extern int LexClassIndex( char * );\r | |
403 | extern int hasAction( char * );\r | |
404 | extern void setHasAction( char *, char * );\r | |
405 | extern int addTname( char * );\r | |
406 | extern int addTexpr( char * );\r | |
407 | extern int Tnum( char * );\r | |
408 | extern void Tklink( char *, char * );\r | |
409 | extern Entry * newEntry( char *, int );\r | |
410 | extern void list_add( ListNode **, void * );\r | |
411 | extern void list_free( ListNode **, int freeData ); /* MR10 */\r | |
412 | extern void list_apply( ListNode *, void (*)(void *) );\r | |
413 | extern int list_search_cstring (ListNode *, char *); /* MR27 */\r | |
414 | extern char * Fkey( char *, int, int );\r | |
415 | extern void FoPush( char *, int );\r | |
416 | extern void FoPop( int );\r | |
417 | extern void RegisterCycle( char *, int );\r | |
418 | extern void ResolveFoCycles( int );\r | |
419 | extern void pJunc( Junction * );\r | |
420 | extern void pRuleRef( RuleRefNode * );\r | |
421 | extern void pToken( TokNode * );\r | |
422 | extern void pAction( ActionNode * );\r | |
423 | extern void FoLink( Node * );\r | |
424 | extern void addFoLink( Node *, char *, Junction * );\r | |
425 | extern void GenCrossRef( Junction * );\r | |
426 | extern void defErr( char *, long, long, long, long, long, long );\r | |
427 | extern void genStdPCCTSIncludeFile(FILE *,char *); /* MR10 */\r | |
428 | extern char * pcctsBaseName(char *); /* MR32 */\r | |
429 | extern Predicate *find_predicates(Node *); /* MR10 */\r | |
430 | extern Predicate *MR_find_predicates_and_supp(Node *); /* MR13 */\r | |
431 | extern int predicateLookaheadDepth(ActionNode *); /* MR10 */\r | |
432 | extern void predicate_free(Predicate *); /* MR10 */\r | |
433 | extern Predicate * predicate_dup(Predicate *); /* MR10 */\r | |
434 | extern Predicate * predicate_dup_without_context(Predicate *); /* MR11 */\r | |
435 | extern void GenRulePrototypes(FILE *, Junction *);\r | |
436 | extern Junction *first_item_is_guess_block(Junction *);\r | |
437 | extern Junction *first_item_is_guess_block_extra(Junction * q); /* MR30 */\r | |
438 | extern Junction *analysis_point(Junction *);\r | |
439 | extern Tree *make_tree_from_sets(set *, set *);\r | |
440 | extern Tree *tdup_chain(Tree *);\r | |
441 | extern Tree *tdif(Tree *, Predicate *, set *, set *);\r | |
442 | extern set covered_set(Predicate *);\r | |
443 | extern void AmbiguityDialog(Junction *, int, Junction *, Junction *, int *, int *);\r | |
444 | extern void dumpAmbigMsg(set *, FILE *, int);\r | |
445 | extern void GenRuleFuncRedefs(FILE *, Junction *);\r | |
446 | extern void GenPredefinedSymbolRedefs(FILE *);\r | |
447 | extern void GenASTSymbolRedefs(FILE *);\r | |
448 | extern void GenRemapFile(void);\r | |
449 | extern void GenSetRedefs(FILE *);\r | |
450 | extern ForcedToken *newForcedToken(char *, int);\r | |
451 | extern void RemapForcedTokens(void);\r | |
452 | extern char *TokenOrExpr(int);\r | |
453 | extern void setUpperRange(TokNode *, char *);\r | |
454 | extern void GenParser_c_Hdr(void);\r | |
455 | extern void GenParser_h_Hdr(void);\r | |
456 | extern void GenRuleMemberDeclarationsForCC(FILE *, Junction *);\r | |
457 | extern int addForcedTname( char *, int );\r | |
458 | extern char *OutMetaName(char *);\r | |
459 | extern void OutFirstSetSymbol(Junction *q, char *); /* MR21 */\r | |
460 | extern void warnNoFL(char *err);\r | |
461 | extern void warnFL(char *err,char *f,int l);\r | |
462 | extern void warn(char *err);\r | |
463 | extern void warnNoCR( char *err );\r | |
464 | extern void errNoFL(char *err);\r | |
465 | extern void errFL(char *err,char *f,int l);\r | |
466 | extern void err(char *err);\r | |
467 | extern void errNoCR( char *err );\r | |
468 | extern void genPredTree( Predicate *p, Node *j, int ,int);\r | |
469 | extern UserAction *newUserAction(char *);\r | |
470 | extern char *gate_symbol(char *name);\r | |
471 | extern char *makeAltID(int blockid, int altnum);\r | |
472 | extern void DumpRemainingTokSets(void);\r | |
473 | extern void DumpANSIFunctionArgDef(FILE *f, Junction *q, int bInit); /* MR23 */\r | |
474 | extern void DumpFormals(FILE *, char *, int bInit); /* MR23 */\r | |
475 | extern char* hideDefaultArgs(const char* pdecl); /* MR22 VHS */\r | |
476 | extern Predicate *computePredFromContextGuard(Graph,int *msgDone); /* MR21 */\r | |
477 | extern void recomputeContextGuard(Predicate *); /* MR13 */\r | |
478 | extern Predicate *new_pred(void);\r | |
479 | extern void chkGTFlag(void);\r | |
480 | extern void leAdd(LabelEntry *); /* MR7 */\r | |
481 | extern void leFixup(void); /* MR7 */\r | |
482 | extern void egAdd(ExceptionGroup *); /* MR7 */\r | |
483 | extern void egFixup(void); /* MR7 */\r | |
484 | extern void altAdd(Junction *); /* MR7 */\r | |
485 | extern void altFixup(void); /* MR7 */\r | |
486 | extern Predicate * MR_find_in_aSubBlk(Junction *alt); /* MR10 */\r | |
487 | extern Predicate * MR_predFlatten(Predicate *p); /* MR10 */\r | |
488 | extern Predicate * MR_predSimplifyALL(Predicate *p); /* MR10 */\r | |
489 | extern Predicate * MR_predSimplifyALLX(Predicate *p,int skipPass3); /* MR10 */\r | |
490 | extern int MR_allPredLeaves(Predicate *p); /* MR10 */\r | |
491 | extern void MR_cleanup_pred_trees(Predicate *p); /* MR10 */\r | |
492 | extern int MR_predicate_context_completed(Predicate *p); /* MR10 */\r | |
493 | extern void MR_check_pred_too_long(Predicate *p,set completion); /* MR10 */\r | |
494 | extern Tree * MR_remove_epsilon_from_tree(Tree *t); /* MR10 */\r | |
495 | extern Tree * MR_computeTreeAND(Tree *l,Tree *r); /* MR10 */\r | |
496 | extern int MR_tree_equ(Tree *big, Tree *small); /* MR10 */\r | |
497 | extern set MR_First(int ck,Junction *j,set *incomplete); /* MR10 */\r | |
498 | extern set MR_compute_pred_set(Predicate *p); /* MR10 */\r | |
499 | extern Tree * MR_compute_pred_tree_context(Predicate *p); /* MR10 */\r | |
500 | extern int MR_pointerStackPush(PointerStack *,void *); /* MR10 */\r | |
501 | extern void * MR_pointerStackPop(PointerStack *); /* MR10 */\r | |
502 | extern void * MR_pointerStackTop(PointerStack *); /* MR10 */\r | |
503 | extern void MR_pointerStackReset(PointerStack *); /* MR10 */\r | |
504 | extern void MR_backTraceReport(void); /* MR10 */\r | |
505 | extern void MR_alphaBetaTraceReport(void); /* MR14 */\r | |
506 | extern void MR_dumpRuleSet(set); /* MR14 */\r | |
507 | extern void MR_predContextPresent(Predicate *p,int *,int *); /* MR10 */\r | |
508 | extern void MR_dumpPred(Predicate *p,int withContext); /* MR10 */\r | |
509 | extern void MR_dumpPred1(int,Predicate *p,int withContext); /* MR10 */\r | |
510 | extern void MR_xxxIndent(FILE *f,int depth); /* MR11 */\r | |
511 | extern void MR_outputIndent(int depth); /* MR11 */\r | |
512 | extern void MR_stderrIndent(int depth); /* MR11 */\r | |
513 | extern Junction * MR_ruleReferenced(RuleRefNode *rrn); /* MR10 */\r | |
514 | extern Junction * MR_nameToRuleBlk(char *); /* MR10 */\r | |
515 | extern void MR_releaseResourcesUsedInRule(Node *); /* MR10 */\r | |
516 | extern void MR_dumpTreeX(int depth,Tree *t,int across); /* MR10 */\r | |
517 | extern void MR_dumpTreeF(FILE *f,int depth,Tree *t,int across); /* MR10 */\r | |
518 | extern void DumpFcache(void); /* MR10 */\r | |
519 | extern void MR_dumpTokenSet(FILE *f,int depth,set s); /* MR10 */\r | |
520 | extern void MR_traceAmbSource(set *,Junction *,Junction *); /* MR11 */\r | |
521 | extern void MR_traceAmbSourceK(Tree *,Junction *a1,Junction *a2); /* MR11 */\r | |
522 | extern void MR_traceAmbSourceKclient(void); /* MR20 */\r | |
523 | extern Node *MR_advance(Node *); /* MR11 */\r | |
524 | extern int MR_offsetFromRule(Node *); /* MR11 */\r | |
525 | extern char *MR_ruleNamePlusOffset(Node *); /* MR11 */\r | |
526 | extern int MR_max_height_of_tree(Tree *); /* MR11 */\r | |
527 | extern int MR_all_leaves_same_height(Tree *,int); /* MR11 */\r | |
528 | extern void MR_projectTreeOntoSet(Tree *t,int k,set *); /* MR11 */\r | |
529 | extern Tree *MR_make_tree_from_set(set); /* MR11 */\r | |
530 | extern Predicate *MR_removeRedundantPredPass3(Predicate *); /* MR11 */\r | |
531 | extern void MR_pred_depth(Predicate *,int *); /* MR11 */\r | |
532 | extern int MR_comparePredicates(Predicate *,Predicate *); /* MR11 */\r | |
533 | extern Predicate * MR_unfold(Predicate *); /* MR11 */\r | |
534 | extern void MR_simplifyInverted(Predicate *,int); /* MR11 */\r | |
535 | extern int MR_secondPredicateUnreachable /* MR11 */\r | |
536 | (Predicate *first,Predicate *second); /* MR11 */\r | |
537 | extern void MR_clearPredEntry(Predicate *); /* MR11 */\r | |
538 | extern void MR_orphanRules(FILE *); /* MR12 */\r | |
539 | extern void MR_merge_contexts(Tree *); /* MR12 */\r | |
540 | extern int ci_strequ(char *,char *); /* MR12 */\r | |
541 | extern void MR_guardPred_plainSet(ActionNode *anode,Predicate *); /* MR12c */\r | |
542 | extern void MR_suppressSearchReport(void); /* MR12c */\r | |
543 | extern Predicate * MR_suppressK(Node *,Predicate *); /* MR13 */\r | |
544 | extern void MR_backTraceDumpItem(FILE *,int skip,Node *n); /* MR13 */\r | |
545 | extern void MR_backTraceDumpItemReset(void); /* MR13 */\r | |
546 | extern Junction * MR_junctionWithoutP2(Junction *); /* MR13 */\r | |
547 | extern void MR_setConstrainPointer(set *); /* MR18 */\r | |
548 | extern void BlockPreambleOption(Junction *q, char * pSymbol); /* MR23 */\r | |
549 | extern char* getInitializer(char *); /* MR23 */\r | |
550 | extern char *endFormal(char *pStart, /* MR23 */\r | |
551 | char **ppDataType, /* MR23 */\r | |
552 | char **ppSymbol, /* MR23 */\r | |
553 | char **ppEqualSign, /* MR23 */\r | |
554 | char **ppValue, /* MR23 */\r | |
555 | char **ppSeparator, /* MR23 */\r | |
556 | int *pNext); /* MR23 */\r | |
557 | extern char *strBetween(char *pStart, /* MR23 */\r | |
558 | char *pNext, /* MR23 */\r | |
559 | char *pStop); /* MR23 */\r | |
560 | extern int hasMultipleOperands(char *); /* MR23 */\r | |
561 | extern void DumpInitializers(FILE*, RuleEntry*, char*); /* MR23 */\r | |
562 | extern int isTermEntryTokClass(TermEntry *); /* MR23 */\r | |
563 | extern int isEmptyAlt(Node *, Node *); /* MR23 */\r | |
564 | #else\r | |
565 | extern int STRICMP();\r | |
566 | extern void istackreset();\r | |
567 | extern int istacksize();\r | |
568 | extern void pushint();\r | |
569 | extern int popint();\r | |
570 | extern int istackempty();\r | |
571 | extern int topint();\r | |
572 | extern void NewSetWd();\r | |
573 | extern void DumpSetWd();\r | |
574 | extern void DumpSetWdForC();\r | |
575 | extern void DumpSetWdForCC();\r | |
576 | extern void NewSet();\r | |
577 | extern void FillSet();\r | |
578 | extern void ComputeErrorSets();\r | |
579 | extern void ComputeTokSets();\r | |
580 | extern void SubstErrorClass();\r | |
581 | extern int DefErrSet();\r | |
582 | extern int DefErrSetForC();\r | |
583 | extern int DefErrSetForCC();\r | |
584 | extern int DefErrSet1();\r | |
585 | extern int DefErrSetForC1();\r | |
586 | extern int DefErrSetForCC1();\r | |
587 | extern int DefErrSetWithSuffix(); /* MR21 */\r | |
588 | extern void GenErrHdr();\r | |
589 | extern void dumpExpr();\r | |
590 | extern void addParm();\r | |
591 | extern Graph buildAction();\r | |
592 | extern Graph buildToken();\r | |
593 | extern Graph buildWildCard();\r | |
594 | extern Graph buildRuleRef();\r | |
595 | extern Graph Or();\r | |
596 | extern Graph Cat();\r | |
597 | extern Graph makeOpt();\r | |
598 | extern Graph makeBlk();\r | |
599 | extern Graph makeLoop();\r | |
600 | extern Graph makePlus();\r | |
601 | extern Graph emptyAlt();\r | |
602 | extern Graph emptyAlt3();\r | |
603 | extern TokNode * newTokNode();\r | |
604 | extern RuleRefNode * newRNode();\r | |
605 | extern Junction * newJunction();\r | |
606 | extern ActionNode * newActionNode();\r | |
607 | extern char * makelocks();\r | |
608 | extern void preorder();\r | |
609 | extern Tree * tnode();\r | |
610 | extern void _Tfree();\r | |
611 | extern Tree * tdup();\r | |
612 | extern int is_single_tuple();\r | |
613 | extern Tree * tappend();\r | |
614 | extern void Tfree();\r | |
615 | extern Tree * tlink();\r | |
616 | extern Tree * tshrink();\r | |
617 | extern Tree * tflatten();\r | |
618 | extern Tree * tJunc();\r | |
619 | extern Tree * tRuleRef();\r | |
620 | extern Tree * tToken();\r | |
621 | extern Tree * tAction();\r | |
622 | extern int tmember();\r | |
623 | extern int tmember_constrained();\r | |
624 | extern Tree * tleft_factor();\r | |
625 | extern Tree * trm_perm();\r | |
626 | extern void tcvt();\r | |
627 | extern Tree * permute();\r | |
628 | extern Tree * VerifyAmbig();\r | |
629 | extern set rJunc();\r | |
630 | extern set rRuleRef();\r | |
631 | extern set rToken();\r | |
632 | extern set rAction();\r | |
633 | extern void HandleAmbiguity();\r | |
634 | extern set First();\r | |
635 | extern void freeBlkFsets();\r | |
636 | extern void genAction();\r | |
637 | extern void genRuleRef();\r | |
638 | extern void genToken();\r | |
639 | extern void genOptBlk();\r | |
640 | extern void genLoopBlk();\r | |
641 | extern void genLoopBegin();\r | |
642 | extern void genPlusBlk();\r | |
643 | extern void genSubBlk();\r | |
644 | extern void genRule();\r | |
645 | extern void genJunction();\r | |
646 | extern void genEndBlk();\r | |
647 | extern void genEndRule();\r | |
648 | extern void genHdr();\r | |
649 | extern void genHdr1();\r | |
650 | extern void dumpAction();\r | |
651 | extern void dumpActionPlus(); /* MR21 */\r | |
652 | extern Entry ** newHashTable();\r | |
653 | extern Entry * hash_add();\r | |
654 | extern Entry * hash_get();\r | |
655 | extern void hashStat();\r | |
656 | extern char * mystrdup();\r | |
657 | extern void genLexDescr();\r | |
658 | extern void dumpLexClasses();\r | |
659 | extern void genDefFile();\r | |
660 | extern void DumpListOfParmNames(); /* MR5 janm 26-May-97 */\r | |
661 | extern int DumpNextNameInDef();\r | |
662 | extern void DumpOldStyleParms();\r | |
663 | extern void DumpType();\r | |
664 | extern int strmember();\r | |
665 | /* extern int HasComma(); MR23 Replaced by hasMultipleOperands() */\r | |
666 | extern void DumpRetValStruct();\r | |
667 | extern char * StripQuotes();\r | |
668 | extern int main();\r | |
669 | extern void readDescr();\r | |
670 | extern FILE * NextFile();\r | |
671 | extern char * outnameX();\r | |
672 | extern char * outname();\r | |
673 | extern void fatalFL();\r | |
674 | extern void fatal_intern();\r | |
675 | extern void cleanUp();\r | |
676 | extern char * eMsg3();\r | |
677 | extern char * eMsgd();\r | |
678 | extern char * eMsgd2();\r | |
679 | extern void s_fprT();\r | |
680 | extern char * TerminalString();\r | |
681 | extern void lexclass();\r | |
682 | extern void lexmode();\r | |
683 | extern int LexClassIndex();\r | |
684 | extern int hasAction();\r | |
685 | extern void setHasAction();\r | |
686 | extern int addTname();\r | |
687 | extern int addTexpr();\r | |
688 | extern int Tnum();\r | |
689 | extern void Tklink();\r | |
690 | extern Entry * newEntry();\r | |
691 | extern void list_add();\r | |
692 | extern void list_free(); /* MR10 */\r | |
693 | extern void list_apply();\r | |
694 | extern int list_search_cstring (); /* MR27 */\r | |
695 | extern char * Fkey();\r | |
696 | extern void FoPush();\r | |
697 | extern void FoPop();\r | |
698 | extern void RegisterCycle();\r | |
699 | extern void ResolveFoCycles();\r | |
700 | extern void pJunc();\r | |
701 | extern void pRuleRef();\r | |
702 | extern void pToken();\r | |
703 | extern void pAction();\r | |
704 | extern void FoLink();\r | |
705 | extern void addFoLink();\r | |
706 | extern void GenCrossRef();\r | |
707 | extern void defErr();\r | |
708 | extern void genStdPCCTSIncludeFile();\r | |
709 | extern char * pcctsBaseName(); /* MR32 */\r | |
710 | extern Predicate *find_predicates();\r | |
711 | extern Predicate *MR_find_predicates_and_supp(); /* MR13 */\r | |
712 | extern int predicateLookaheadDepth(); /* MR10 */\r | |
713 | extern void predicate_free(); /* MR10 */\r | |
714 | extern Predicate * predicate_dup(); /* MR10 */\r | |
715 | extern Predicate * predicate_dup_without_context(); /* MR11 */\r | |
716 | extern void GenRulePrototypes();\r | |
717 | extern Junction *first_item_is_guess_block();\r | |
718 | extern Junction *first_item_is_guess_block_extra(); /* MR30 */\r | |
719 | extern Junction *analysis_point();\r | |
720 | extern Tree *make_tree_from_sets();\r | |
721 | extern Tree *tdup_chain();\r | |
722 | extern Tree *tdif();\r | |
723 | extern set covered_set();\r | |
724 | extern void AmbiguityDialog();\r | |
725 | extern void dumpAmbigMsg();\r | |
726 | extern void GenRuleFuncRedefs();\r | |
727 | extern void GenPredefinedSymbolRedefs();\r | |
728 | extern void GenASTSymbolRedefs();\r | |
729 | extern void GenRemapFile();\r | |
730 | extern void GenSetRedefs();\r | |
731 | extern ForcedToken *newForcedToken();\r | |
732 | extern void RemapForcedTokens();\r | |
733 | extern char *TokenOrExpr();\r | |
734 | extern void setUpperRange();\r | |
735 | extern void GenParser_c_Hdr();\r | |
736 | extern void GenParser_h_Hdr();\r | |
737 | extern void GenRuleMemberDeclarationsForCC();\r | |
738 | extern int addForcedTname();\r | |
739 | extern char *OutMetaName();\r | |
740 | extern void OutFirstSetSymbol(); /* MR21 */\r | |
741 | extern void warnNoFL();\r | |
742 | extern void warnFL();\r | |
743 | extern void warn();\r | |
744 | extern void warnNoCR();\r | |
745 | extern void errNoFL();\r | |
746 | extern void errFL();\r | |
747 | extern void err();\r | |
748 | extern void errNoCR();\r | |
749 | extern void genPredTree();\r | |
750 | extern UserAction *newUserAction();\r | |
751 | extern char *gate_symbol();\r | |
752 | extern char *makeAltID();\r | |
753 | extern void DumpRemainingTokSets();\r | |
754 | extern void DumpANSIFunctionArgDef();\r | |
755 | extern void DumpFormals(); /* MR23 */\r | |
756 | extern char* hideDefaultArgs(); /* MR22 VHS */\r | |
757 | extern Predicate *computePredFromContextGuard();\r | |
758 | extern void recomputeContextGuard(); /* MR13 */\r | |
759 | extern Predicate *new_pred();\r | |
760 | extern void chkGTFlag();\r | |
761 | extern void leAdd(); /* MR7 */\r | |
762 | extern void leFixup(); /* MR7 */\r | |
763 | extern void egAdd(); /* MR7 */\r | |
764 | extern void egFixup(); /* MR7 */\r | |
765 | extern void altAdd(); /* MR7 */\r | |
766 | extern void altFixup(); /* MR7 */\r | |
767 | extern Predicate * MR_find_in_aSubBlk(); /* MR10 */\r | |
768 | extern Predicate * MR_predFlatten(); /* MR10 */\r | |
769 | extern Predicate * MR_predSimplifyALL(); /* MR10 */\r | |
770 | extern Predicate * MR_predSimplifyALLX(); /* MR10 */\r | |
771 | extern void MR_cleanup_pred_trees(); /* MR10 */\r | |
772 | extern int MR_allPredLeaves(); /* MR10 */\r | |
773 | extern int MR_predicate_context_completed(); /* MR10 */\r | |
774 | extern void MR_check_pred_too_long(); /* MR10 */\r | |
775 | extern Tree * MR_remove_epsilon_from_tree(); /* MR10 */\r | |
776 | extern Tree * MR_computeTreeAND(); /* MR10 */\r | |
777 | extern int MR_tree_equ(); /* MR10 */\r | |
778 | extern set MR_First(); /* MR10 */\r | |
779 | extern set MR_compute_pred_set(); /* MR10 */\r | |
780 | extern Tree * MR_compute_pred_tree_context(); /* MR10 */\r | |
781 | extern int MR_pointerStackPush(); /* MR10 */\r | |
782 | extern void * MR_pointerStackPop(); /* MR10 */\r | |
783 | extern void * MR_pointerStackTop(); /* MR10 */\r | |
784 | extern void MR_pointerStackReset(); /* MR10 */\r | |
785 | extern void MR_backTraceReport(); /* MR10 */\r | |
786 | extern void MR_alphaBetaTraceReport(); /* MR14 */\r | |
787 | extern void MR_dumpRuleSet(); /* MR14 */\r | |
788 | extern void MR_predContextPresent(); /* MR10 */\r | |
789 | extern void MR_dumpPred(); /* MR10 */\r | |
790 | extern void MR_dumpPred1(); /* MR10 */\r | |
791 | extern void MR_xxxIndent(); /* MR11 */\r | |
792 | extern void MR_stderrIndent(); /* MR11 */\r | |
793 | extern void MR_outputIndent(); /* MR11 */\r | |
794 | extern Junction * MR_ruleReferenced(); /* MR10 */\r | |
795 | extern void MR_releaseResourcesUsedInRule(); /* MR10 */\r | |
796 | extern void MR_dumpTreeX(); /* MR10 */\r | |
797 | extern void MR_dumpTreeF(); /* MR10 */\r | |
798 | extern void DumpFcache(); /* MR10 */\r | |
799 | extern void MR_dumpTokenSet(); /* MR10 */\r | |
800 | extern void MR_traceAmbSource(); /* MR11 */\r | |
801 | extern Node *MR_advance(); /* MR11 */\r | |
802 | extern int MR_offsetFromRule(); /* MR11 */\r | |
803 | extern char *MR_ruleNamePlusOffset(); /* MR11 */\r | |
804 | extern void MR_traceAmbSourceK(); /* MR11 */\r | |
805 | extern void MR_traceAmbSourceKclient(); /* [i_a] added */\r | |
806 | extern int MR_max_height_of_tree(); /* MR11 */\r | |
807 | extern int MR_all_leaves_same_height(); /* MR11 */\r | |
808 | extern void MR_projectTreeOntoSet(); /* MR11 */\r | |
809 | extern Tree *MR_make_tree_from_set(); /* MR11 */\r | |
810 | extern Predicate *MR_removeRedundantPredPass3(); /* MR11 */\r | |
811 | extern void MR_pred_depth(); /* MR11 */\r | |
812 | extern int MR_comparePredicates(); /* MR11 */\r | |
813 | extern Predicate * MR_unfold(); /* MR11 */\r | |
814 | extern void MR_simplifyInverted(); /* MR11 */\r | |
815 | extern int MR_secondPredicateUnreachable(); /* MR11 */\r | |
816 | extern Junction * MR_nameToRuleBlk(); /* MR10 */\r | |
817 | extern void MR_clearPredEntry(); /* MR11 */\r | |
818 | extern void MR_orphanRules(); /* MR12 */\r | |
819 | extern void MR_merge_contexts(); /* MR12 */\r | |
820 | extern int ci_strequ(); /* MR12 */\r | |
821 | extern void MR_guardPred_plainSet(); /* MR12c */\r | |
822 | extern void MR_suppressSearchReport(); /* MR12c */\r | |
823 | extern Predicate * MR_suppressK(); /* MR13 */\r | |
824 | extern void MR_backTraceDumpItem(); /* MR13 */\r | |
825 | extern void MR_backTraceDumpItemReset(); /* MR13 */\r | |
826 | extern Junction * MR_junctionWithoutP2(); /* MR13 */\r | |
827 | extern void MR_setConstrainPointer(); /* MR18 */\r | |
828 | extern void BlockPreambleOption(); /* MR23 */\r | |
829 | extern char* getInitializer(); /* MR23 */\r | |
830 | extern int hasMultipleOperands(); /* MR23 */\r | |
831 | extern char *endFormal(); /* MR23 */\r | |
832 | extern char *strBetween(); /* MR23 */\r | |
833 | extern void DumpInitializers(); /* MR23 */\r | |
834 | extern int isTermEntryTokClass(); /* MR23 */\r | |
835 | extern int isEmptyAlt();\r | |
836 | \r | |
837 | #endif\r | |
838 | \r | |
839 | #ifdef __USE_PROTOS\r | |
840 | #include <stdlib.h>\r | |
841 | #endif\r | |
842 | \r | |
843 | /* MR20 G. Hobbelt Create proper externs for dlg variables */\r | |
844 | \r | |
845 | extern set attribsRefdFromAction;\r | |
846 | extern int inAlt;\r | |
847 | extern int UsedOldStyleAttrib;\r | |
848 | extern int UsedNewStyleLabel;\r | |
849 | \r | |
850 | #define MAX_BLK_LEVEL 100 /* MR23 */\r | |
851 | extern int CurBlockID_array[MAX_BLK_LEVEL]; /* MR23 */\r | |
852 | extern int CurAltNum_array[MAX_BLK_LEVEL]; /* MR23 */\r |