]> pd.if.org Git - pccts/blob - antlr/proto.h
auto commit for import
[pccts] / antlr / proto.h
1 /*
2  * proto.h -- function prototypes
3  *
4  * $Id: proto.h,v 1.7 95/10/05 11:56:59 parrt Exp $
5  * $Revision: 1.7 $
6  *
7  * SOFTWARE RIGHTS
8  *
9  * We reserve no LEGAL rights to the Purdue Compiler Construction Tool
10  * Set (PCCTS) -- PCCTS is in the public domain.  An individual or
11  * company may do whatever they wish with source code distributed with
12  * PCCTS or the code generated by PCCTS, including the incorporation of
13  * PCCTS, or its output, into commerical software.
14  * 
15  * We encourage users to develop software with PCCTS.  However, we do ask
16  * that credit is given to us for developing PCCTS.  By "credit",
17  * we mean that if you incorporate our source code into one of your
18  * programs (commercial product, research project, or otherwise) that you
19  * acknowledge this fact somewhere in the documentation, research report,
20  * etc...  If you like PCCTS and have developed a nice tool with the
21  * output, please mention that you developed it using PCCTS.  In
22  * addition, we ask that this header remain intact in our source code.
23  * As long as these guidelines are kept, we expect to continue enhancing
24  * this system and expect to make other tools available as they are
25  * completed.
26  *
27  * ANTLR 1.33
28  * Terence Parr
29  * Parr Research Corporation
30  * with Purdue University and AHPCRC, University of Minnesota
31  * 1989-1995
32  */
33
34                            /* V a r i a b l e s */
35
36 extern int tp;
37 extern Junction *SynDiag;
38 extern char Version[];
39 extern char VersionDef[];
40 #ifdef __cplusplus
41 extern void (*fpPrint[])(...);
42 #else
43 extern void (*fpPrint[])();
44 #endif
45 #ifdef __cplusplus
46 extern struct _set (*fpReach[])(...);
47 #else
48 extern struct _set (*fpReach[])();
49 #endif
50 #ifdef __cplusplus
51 extern struct _tree *(*fpTraverse[])(...);
52 #else
53 extern struct _tree *(*fpTraverse[])();
54 #endif
55 #ifdef __cplusplus
56 extern void (**fpTrans)(...);
57 #else
58 extern void (**fpTrans)();
59 #endif
60 #ifdef __cplusplus
61 extern void (**fpJTrans)(...);
62 #else
63 extern void (**fpJTrans)();
64 #endif
65 #ifdef __cplusplus
66 extern void (*C_Trans[NumNodeTypes+1])(...);
67 #else
68 extern void (*C_Trans[])();
69 #endif
70 #ifdef __cplusplus
71 extern void (*C_JTrans[NumJuncTypes+1])(...);
72 #else
73 extern void (*C_JTrans[])();
74 #endif
75 extern int BlkLevel;
76 extern int CurFile;
77 extern char *CurRule;
78 extern Junction *CurRuleBlk;
79 extern RuleEntry *CurRuleNode;
80 extern ListNode *CurElementLabels;
81 extern char *FileStr[];
82 extern int NumFiles;
83 extern int EpToken;
84 extern int WildCardToken;
85 extern Entry    **Tname,
86                                 **Texpr,
87                                 **Rname,
88                                 **Fcache,
89                                 **Tcache,
90                                 **Elabel,
91                                 **Sname;
92 extern ListNode *ExprOrder;
93 extern ListNode **Cycles;
94 extern int TokenNum;
95 extern int LastTokenCounted;
96 extern ListNode *BeforeActions, *AfterActions, *LexActions;
97 extern ListNode *eclasses, *tclasses;
98 extern char     *HdrAction;
99 extern FILE     *ErrFile;
100 extern char *RemapFileName;
101 extern char *ErrFileName;
102 extern char *DlgFileName;
103 extern char *DefFileName;
104 extern char *ModeFileName;
105 extern int NumRules;
106 extern Junction **RulePtr;
107 extern int LL_k;
108 extern int CLL_k;
109 extern char *decodeJType[];
110 extern int PrintOut;
111 extern int PrintAnnotate;
112 extern int CodeGen;
113 extern int LexGen;
114 extern int esetnum;
115 extern int setnum;
116 extern int wordnum;
117 extern int GenAST;
118 extern int GenANSI;
119 extern int **FoStack;
120 extern int **FoTOS;
121 extern int GenExprSets;
122 extern FILE *DefFile;
123 extern int CannotContinue;
124 extern int GenCR;
125 extern int GenLineInfo;
126 extern int action_file, action_line;
127 extern int TraceGen;
128 extern int CurAmbigAlt1, CurAmbigAlt2, CurAmbigline, CurAmbigfile;
129 extern char *CurAmbigbtype;
130 extern int elevel;
131 extern int GenEClasseForRules;
132 extern FILE *input, *output;
133 extern char **TokenStr, **ExprStr;
134 extern int CurrentLexClass, NumLexClasses;
135 extern LClass lclass[];
136 extern char LexStartSymbol[];
137 extern char     *CurRetDef;
138 extern char     *CurParmDef;
139 extern int OutputLL_k;
140 extern int TreeResourceLimit;
141 extern int DemandLookahead;
142 extern char *RulePrefix;
143 extern int GenStdPccts;
144 extern char *stdpccts;
145 extern int ParseWithPredicates;
146 extern int ConstrainSearch;
147 extern int FoundGuessBlk;
148 extern int FoundException;
149 extern int WarningLevel;
150 extern int pLevel;
151 extern int pAlt1;
152 extern int pAlt2;
153 extern int AImode;
154 extern int HoistPredicateContext;
155 extern int GenCC;
156 extern char *ParserName;
157 extern char *StandardSymbols[];
158 extern char *ASTSymbols[];
159 extern set reserved_positions;
160 extern set all_tokens;
161 extern set imag_tokens;
162 extern set tokclasses;
163 extern ListNode *ForcedTokens;
164 extern int *TokenInd;
165 extern FILE *Parser_h, *Parser_c;
166 extern char CurrentClassName[];
167 extern int no_classes_found;
168 extern char Parser_h_Name[];
169 extern char Parser_c_Name[];
170 extern ListNode *class_before_actions, *class_after_actions;
171 extern char *UserTokenDefsFile;
172 extern int UserDefdTokens;
173 extern ListNode *MetaTokenNodes;
174 extern char *OutputDirectory;
175 extern int DontCopyTokens;
176 extern set AST_nodes_refd_in_actions;
177 extern ListNode *CurExGroups;
178 extern int CurBlockID;
179 extern int CurAltNum;
180 extern Junction *CurAltStart;
181 extern ExceptionGroup *DefaultExGroup;
182 extern int NumSignals;
183 extern int ContextGuardTRAV;
184
185
186
187 #ifdef __USE_PROTOS
188 extern void istackreset(void);
189 extern int istacksize(void);
190 extern void pushint(int);
191 extern int popint( void );
192 extern int istackempty( void );
193 extern int topint( void );
194 extern void NewSetWd( void );
195 extern void DumpSetWd( void );
196 extern void DumpSetWdForC( void );
197 extern void DumpSetWdForCC( void );
198 extern void NewSet( void );
199 extern void FillSet( set );
200 extern void ComputeErrorSets( void );
201 extern void ComputeTokSets( void );
202 extern void SubstErrorClass( set * );
203 extern int DefErrSet( set *, int, char * );
204 extern int DefErrSetForC( set *, int, char * );
205 extern int DefErrSetForCC( set *, int, char * );
206 extern void GenErrHdr( void );
207 extern void dumpExpr( FILE *, char * );
208 extern void addParm( Node *, char * );
209 extern Graph buildAction( char *, int, int, int );
210 extern Graph buildToken( char * );
211 extern Graph buildWildCard( char * );
212 extern Graph buildRuleRef( char * );
213 extern Graph Or( Graph, Graph );
214 extern Graph Cat( Graph, Graph );
215 extern Graph makeOpt( Graph, int );
216 extern Graph makeBlk( Graph, int );
217 extern Graph makeLoop( Graph, int );
218 extern Graph makePlus( Graph, int );
219 extern Graph emptyAlt( void );
220 extern TokNode * newTokNode( void );
221 extern RuleRefNode * newRNode( void );
222 extern Junction * newJunction( void );
223 extern ActionNode * newActionNode( void );
224 extern char * makelocks( void );
225 extern void preorder( Tree * );
226 extern Tree * tnode( int );
227 extern void _Tfree( Tree * );
228 extern Tree * tdup( Tree * );
229 extern int is_single_tuple( Tree * );
230 extern Tree * tappend( Tree *, Tree * );
231 extern void Tfree( Tree * );
232 extern Tree * tlink( Tree *, Tree *, int );
233 extern Tree * tshrink( Tree * );
234 extern Tree * tflatten( Tree * );
235 extern Tree * tJunc( Junction *, int, set * );
236 extern Tree * tRuleRef( RuleRefNode *, int, set * );
237 extern Tree * tToken( TokNode *, int, set * );
238 extern Tree * tAction( ActionNode *, int, set * );
239 extern int tmember( Tree *, Tree * );
240 extern int tmember_constrained( Tree *, Tree * );
241 extern Tree * tleft_factor( Tree * );
242 extern Tree * trm_perm( Tree *, Tree * );
243 extern void tcvt( set *, Tree * );
244 extern Tree * permute( int, int );
245 extern Tree * VerifyAmbig( Junction *, Junction *, unsigned **, set *, Tree **, Tree **, int * );
246 extern set rJunc( Junction *, int, set * );
247 extern set rRuleRef( RuleRefNode *, int, set * );
248 extern set rToken( TokNode *, int, set * );
249 extern set rAction( ActionNode *, int, set * );
250 extern void HandleAmbiguity( Junction *, Junction *, Junction *, int );
251 extern set First( Junction *, int, int, int * );
252 extern void freeBlkFsets( Junction * );
253 extern void genAction( ActionNode * );
254 extern void genRuleRef( RuleRefNode * );
255 extern void genToken( TokNode * );
256 extern void genOptBlk( Junction * );
257 extern void genLoopBlk( Junction *, Junction *, Junction *, int );
258 extern void genLoopBegin( Junction * );
259 extern void genPlusBlk( Junction * );
260 extern void genSubBlk( Junction * );
261 extern void genRule( Junction * );
262 extern void genJunction( Junction * );
263 extern void genEndBlk( Junction * );
264 extern void genEndRule( Junction * );
265 extern void genHdr( int );
266 extern void genHdr1( int );
267 extern void dumpAction( char *, FILE *, int, int, int, int );
268 extern Entry ** newHashTable( void );
269 extern Entry * hash_add( Entry **, char *, Entry * );
270 extern Entry * hash_get( Entry **, char * );
271 extern void hashStat( Entry ** );
272 extern char * mystrdup( char * );
273 extern void genLexDescr( void );
274 extern void dumpLexClasses( FILE * );
275 extern void genDefFile( void );
276 extern void DumpListOfParmNames( char *, FILE * );
277 extern int DumpNextNameInDef( char **, FILE * );
278 extern void DumpOldStyleParms( char *, FILE * );
279 extern void DumpType( char *, FILE * );
280 extern int strmember( char *, char * );
281 extern int HasComma( char * );
282 extern void DumpRetValStruct( FILE *, char *, int );
283 extern char * StripQuotes( char * );
284 extern int main( int, char *[] );
285 extern void readDescr( void );
286 extern FILE * NextFile( void );
287 extern char * outname( char * );
288 extern void fatalFL( char *, char *, int );
289 extern void fatal_intern( char *, char *, int );
290 extern void cleanUp( void );
291 extern char * eMsg3( char *, char *, char *, char * );
292 extern char * eMsgd( char *, int );
293 extern void s_fprT( FILE *, set );
294 extern char * TerminalString( int );
295 extern void lexclass( char * );
296 extern void lexmode( int );
297 extern int LexClassIndex( char * );
298 extern int hasAction( char * );
299 extern void setHasAction( char *, char * );
300 extern int addTname( char * );
301 extern int addTexpr( char * );
302 extern int Tnum( char * );
303 extern void Tklink( char *, char * );
304 extern Entry * newEntry( char *, int );
305 extern void list_add( ListNode **, void * );
306 extern void list_apply( ListNode *, void (*)(void *) );
307 extern char * Fkey( char *, int, int );
308 extern void FoPush( char *, int );
309 extern void FoPop( int );
310 extern void RegisterCycle( char *, int );
311 extern void ResolveFoCycles( int );
312 extern void pJunc( Junction * );
313 extern void pRuleRef( RuleRefNode * );
314 extern void pToken( TokNode * );
315 extern void pAction( ActionNode * );
316 extern void FoLink( Node * );
317 extern void addFoLink( Node *, char *, Junction * );
318 extern void GenCrossRef( Junction * );
319 extern void defErr( char *, long, long, long, long, long, long );
320 extern void genStdPCCTSIncludeFile(FILE *);
321 extern Predicate *find_predicates(Node *);
322 extern void GenRulePrototypes(FILE *, Junction *);
323 extern Junction *first_item_is_guess_block(Junction *);
324 extern Junction *analysis_point(Junction *);
325 extern Tree *make_tree_from_sets(set *, set *);
326 extern Tree *tdup_chain(Tree *);
327 extern Tree *tdif(Tree *, Predicate *, set *, set *);
328 extern set covered_set(Predicate *);
329 extern void AmbiguityDialog(Junction *, int, Junction *, Junction *, int *, int *);
330 extern void dumpAmbigMsg(set *, FILE *, int);
331 extern void GenRuleFuncRedefs(FILE *, Junction *);
332 extern void GenPredefinedSymbolRedefs(FILE *);
333 extern void GenASTSymbolRedefs(FILE *);
334 extern void GenRemapFile(void);
335 extern void GenSetRedefs(FILE *);
336 extern ForcedToken *newForcedToken(char *, int);
337 extern void RemapForcedTokens(void);
338 extern char *TokenOrExpr(int);
339 extern void setUpperRange(TokNode *, char *);
340 extern void GenParser_c_Hdr(void);
341 extern void GenParser_h_Hdr(void);
342 extern void GenRuleMemberDeclarationsForCC(FILE *, Junction *);
343 extern int addForcedTname( char *, int );
344 extern char *OutMetaName(char *);
345 extern void warnNoFL(char *err);
346 extern void warnFL(char *err,char *f,int l);
347 extern void warn(char *err);
348 extern void warnNoCR( char *err );
349 extern void errNoFL(char *err);
350 extern void errFL(char *err,char *f,int l);
351 extern void err(char *err);
352 extern void errNoCR( char *err );
353 extern Tree *tmake(Tree *root, ...);
354 extern void genPredTree( Predicate *p, Node *j, int );
355 extern UserAction *newUserAction(char *);
356 extern char *gate_symbol(char *name);
357 extern char *makeAltID(int blockid, int altnum);
358 extern void DumpRemainingTokSets();
359 extern void DumpANSIFunctionArgDef(FILE *f, Junction *q);
360 extern Predicate *computePredicateFromContextGuard(Graph);
361 extern Predicate *new_pred(void);
362 extern void chkGTFlag(void);
363 #else
364 extern void istackreset();
365 extern int istacksize();
366 extern void pushint();
367 extern int popint();
368 extern int istackempty();
369 extern int topint();
370 extern void NewSetWd();
371 extern void DumpSetWd();
372 extern void DumpSetWdForC();
373 extern void DumpSetWdForCC();
374 extern void NewSet();
375 extern void FillSet();
376 extern void ComputeErrorSets();
377 extern void ComputeTokSets();
378 extern void SubstErrorClass();
379 extern int DefErrSet();
380 extern int DefErrSetForC();
381 extern int DefErrSetForCC();
382 extern void GenErrHdr();
383 extern void dumpExpr();
384 extern void addParm();
385 extern Graph buildAction();
386 extern Graph buildToken();
387 extern Graph buildWildCard();
388 extern Graph buildRuleRef();
389 extern Graph Or();
390 extern Graph Cat();
391 extern Graph makeOpt();
392 extern Graph makeBlk();
393 extern Graph makeLoop();
394 extern Graph makePlus();
395 extern Graph emptyAlt();
396 extern TokNode * newTokNode();
397 extern RuleRefNode * newRNode();
398 extern Junction * newJunction();
399 extern ActionNode * newActionNode();
400 extern char * makelocks();
401 extern void preorder();
402 extern Tree * tnode();
403 extern void _Tfree();
404 extern Tree * tdup();
405 extern int is_single_tuple();
406 extern Tree * tappend();
407 extern void Tfree();
408 extern Tree * tlink();
409 extern Tree * tshrink();
410 extern Tree * tflatten();
411 extern Tree * tJunc();
412 extern Tree * tRuleRef();
413 extern Tree * tToken();
414 extern Tree * tAction();
415 extern int tmember();
416 extern int tmember_constrained();
417 extern Tree * tleft_factor();
418 extern Tree * trm_perm();
419 extern void tcvt();
420 extern Tree * permute();
421 extern Tree * VerifyAmbig();
422 extern set rJunc();
423 extern set rRuleRef();
424 extern set rToken();
425 extern set rAction();
426 extern void HandleAmbiguity();
427 extern set First();
428 extern void freeBlkFsets();
429 extern void genAction();
430 extern void genRuleRef();
431 extern void genToken();
432 extern void genOptBlk();
433 extern void genLoopBlk();
434 extern void genLoopBegin();
435 extern void genPlusBlk();
436 extern void genSubBlk();
437 extern void genRule();
438 extern void genJunction();
439 extern void genEndBlk();
440 extern void genEndRule();
441 extern void genHdr();
442 extern void genHdr1();
443 extern void dumpAction();
444 extern Entry ** newHashTable();
445 extern Entry * hash_add();
446 extern Entry * hash_get();
447 extern void hashStat();
448 extern char * mystrdup();
449 extern void genLexDescr();
450 extern void dumpLexClasses();
451 extern void genDefFile();
452 extern void DumpListOfParmNames();
453 extern int DumpNextNameInDef();
454 extern void DumpOldStyleParms();
455 extern void DumpType();
456 extern int strmember();
457 extern int HasComma();
458 extern void DumpRetValStruct();
459 extern char * StripQuotes();
460 extern int main();
461 extern void readDescr();
462 extern FILE * NextFile();
463 extern char * outname();
464 extern void fatalFL();
465 extern void fatal_intern();
466 extern void cleanUp();
467 extern char * eMsg3();
468 extern char * eMsgd();
469 extern void s_fprT();
470 extern char * TerminalString();
471 extern void lexclass();
472 extern void lexmode();
473 extern int LexClassIndex();
474 extern int hasAction();
475 extern void setHasAction();
476 extern int addTname();
477 extern int addTexpr();
478 extern int Tnum();
479 extern void Tklink();
480 extern Entry * newEntry();
481 extern void list_add();
482 extern void list_apply();
483 extern char * Fkey();
484 extern void FoPush();
485 extern void FoPop();
486 extern void RegisterCycle();
487 extern void ResolveFoCycles();
488 extern void pJunc();
489 extern void pRuleRef();
490 extern void pToken();
491 extern void pAction();
492 extern void FoLink();
493 extern void addFoLink();
494 extern void GenCrossRef();
495 extern void defErr();
496 extern void genStdPCCTSIncludeFile();
497 extern Predicate *find_predicates();
498 extern void GenRulePrototypes();
499 extern Junction *first_item_is_guess_block();
500 extern Junction *analysis_point();
501 extern Tree *make_tree_from_sets();
502 extern Tree *tdup_chain();
503 extern Tree *tdif();
504 extern set covered_set();
505 extern void AmbiguityDialog();
506 extern void dumpAmbigMsg();
507 extern void GenRuleFuncRedefs();
508 extern void GenPredefinedSymbolRedefs();
509 extern void GenASTSymbolRedefs();
510 extern void GenRemapFile();
511 extern void GenSetRedefs();
512 extern ForcedToken *newForcedToken();
513 extern void RemapForcedTokens();
514 extern char *TokenOrExpr();
515 extern void setUpperRange();
516 extern void GenParser_c_Hdr();
517 extern void GenParser_h_Hdr();
518 extern void GenRuleMemberDeclarationsForCC();
519 extern int addForcedTname();
520 extern char *OutMetaName();
521 extern void warnNoFL();
522 extern void warnFL();
523 extern void warn();
524 extern void warnNoCR();
525 extern void errNoFL();
526 extern void errFL();
527 extern void err();
528 extern void errNoCR();
529 extern Tree *tmake();
530 extern void genPredTree();
531 extern UserAction *newUserAction();
532 extern char *gate_symbol();
533 extern char *makeAltID();
534 extern void DumpRemainingTokSets();
535 extern void DumpANSIFunctionArgDef();
536 extern Predicate *computePredicateFromContextGuard();
537 extern Predicate *new_pred();
538 extern void chkGTFlag();
539 #endif
540
541 #ifdef __USE_PROTOS
542 #include <stdlib.h>
543 #endif