home *** CD-ROM | disk | FTP | other *** search
/ The World of Computer Software / World_Of_Computer_Software-02-385-Vol-1of3.iso / p / pccts.zip / antlr / proto.h < prev    next >
C/C++ Source or Header  |  1992-12-08  |  10KB  |  285 lines

  1. /*
  2.  * proto.h -- function prototypes
  3.  *
  4.  * SOFTWARE RIGHTS
  5.  *
  6.  * We reserve no LEGAL rights to the Purdue Compiler Construction Tool
  7.  * Set (PCCTS) -- PCCTS is in the public domain.  An individual or
  8.  * company may do whatever they wish with source code distributed with
  9.  * PCCTS or the code generated by PCCTS, including the incorporation of
  10.  * PCCTS, or its output, into commerical software.
  11.  * 
  12.  * We encourage users to develop software with PCCTS.  However, we do ask
  13.  * that credit is given to us for developing PCCTS.  By "credit",
  14.  * we mean that if you incorporate our source code into one of your
  15.  * programs (commercial product, research project, or otherwise) that you
  16.  * acknowledge this fact somewhere in the documentation, research report,
  17.  * etc...  If you like PCCTS and have developed a nice tool with the
  18.  * output, please mention that you developed it using PCCTS.  In
  19.  * addition, we ask that this header remain intact in our source code.
  20.  * As long as these guidelines are kept, we expect to continue enhancing
  21.  * this system and expect to make other tools available as they are
  22.  * completed.
  23.  *
  24.  * ANTLR 1.06
  25.  * Terence Parr
  26.  * Purdue University
  27.  * 1989-1992
  28.  */
  29.  
  30. #ifdef __STDC__
  31. extern void istackreset(void);
  32. extern int istacksize(void);
  33. extern void pushint(int);
  34. extern int popint( void );
  35. extern int istackempty( void );
  36. extern int topint( void );
  37. extern void NewSetWd( void );
  38. extern void DumpSetWd( void );
  39. extern void NewSet( void );
  40. extern void FillSet( set );
  41. extern void ComputeErrorSets( void );
  42. extern void SubstErrorClass( set * );
  43. extern int DefErrSet( set * );
  44. extern void GenErrHdr( void );
  45. extern void dumpExpr( char * );
  46. extern void addParm( Node *, char * );
  47. extern Graph buildAction( char *, int, int, int );
  48. extern Graph buildToken( char * );
  49. extern Graph buildRuleRef( char * );
  50. extern Graph Or( Graph, Graph );
  51. extern Graph Cat( Graph, Graph );
  52. extern Graph makeOpt( Graph );
  53. extern Graph makeBlk( Graph );
  54. extern Graph makeLoop( Graph );
  55. extern Graph makePlus( Graph );
  56. extern Graph emptyAlt( void );
  57. extern TokNode * newTokNode( void );
  58. extern RuleRefNode * newRNode( void );
  59. extern Junction * newJunction( void );
  60. extern ActionNode * newActionNode( void );
  61. extern char * makelocks( void );
  62. extern void preorder( Tree * );
  63. extern Tree * tnode( int );
  64. extern void tfree( Tree * );
  65. extern Tree * tdup( Tree * );
  66. extern Tree * tappend( Tree *, Tree * );
  67. extern void Tfree( Tree * );
  68. extern Tree * tlink( Tree *, Tree *, int );
  69. extern Tree * tshrink( Tree * );
  70. extern Tree * tflatten( Tree * );
  71. extern Tree * tJunc( Junction *, int, set * );
  72. extern Tree * tRuleRef( RuleRefNode *, int, set * );
  73. extern Tree * tToken( TokNode *, int, set * );
  74. extern Tree * tAction( ActionNode *, int, set * );
  75. extern int tmember( Tree *, Tree * );
  76. extern Tree * tleft_factor( Tree * );
  77. extern Tree * trm_perm( Tree *, Tree * );
  78. extern void tcvt( set *, Tree * );
  79. extern Tree * permute( int );
  80. extern Tree * VerifyAmbig( Junction *, Junction *, unsigned **, set *, Tree **, Tree **, int * );
  81. extern set rJunc( Junction *, int, set * );
  82. extern set rRuleRef( RuleRefNode *, int, set * );
  83. extern set rToken( TokNode *, int, set * );
  84. extern set rAction( ActionNode *, int, set * );
  85. extern void HandleAmbiguity( Junction *, Junction *, int );
  86. extern set First( Junction *, int, int, int * );
  87. extern void freeBlkFsets( Junction * );
  88. extern void genAction( ActionNode * );
  89. extern void genRuleRef( RuleRefNode * );
  90. extern void genToken( TokNode * );
  91. extern void genOptBlk( Junction * );
  92. extern void genLoopBlk( Junction *, Junction *, int );
  93. extern void genLoopBegin( Junction * );
  94. extern void genPlusBlk( Junction * );
  95. extern void genSubBlk( Junction * );
  96. extern void genRule( Junction * );
  97. extern void genJunction( Junction * );
  98. extern void genEndBlk( Junction * );
  99. extern void genEndRule( Junction * );
  100. extern void genHdr( int );
  101. extern void genHdr1( int );
  102. extern void dumpAction( char *, FILE *, int, int, int, int );
  103. extern Entry ** newHashTable( void );
  104. extern Entry * hash_add( Entry **, char *, Entry * );
  105. extern Entry * hash_get( Entry **, char * );
  106. extern void hashStat( Entry ** );
  107. extern char * strdup( char * );
  108. extern void genLexDescr( void );
  109. extern int dumpLexClasses( FILE * );
  110. extern void genDefFile( void );
  111. extern void DumpListOfParmNames( char *, FILE * );
  112. extern int DumpNextNameInDef( char **, FILE * );
  113. extern void DumpOldStyleParms( char *, FILE * );
  114. extern void DumpType( char *, FILE * );
  115. extern int strmember( char *, char * );
  116. extern int HasComma( char * );
  117. extern void DumpRetValStruct( FILE *, char *, int );
  118. extern char * StripQuotes( char * );
  119. extern int main( int, char *[] );
  120. extern void readDescr( void );
  121. extern FILE * NextFile( void );
  122. extern char * outname( char * );
  123. extern void fatalFL( char *, char *, int );
  124. extern void cleanUp( void );
  125. extern char * eMsg3( char *, char *, char *, char * );
  126. extern char * eMsgd( char *, int );
  127. extern void s_fprT( FILE *, set );
  128. extern char * TerminalString( int );
  129. extern void lexclass( char * );
  130. extern void lexmode( int );
  131. extern int LexClassIndex( char * );
  132. extern int hasAction( char * );
  133. extern void setHasAction( char *, char * );
  134. extern int addTname( char * );
  135. extern int addTexpr( char * );
  136. extern int Tnum( char * );
  137. extern void Tlink( char *, char * );
  138. extern Entry * newEntry( char *, int );
  139. extern void list_add( ListNode **, void * );
  140. extern void list_apply( ListNode *, void (*)() );
  141. extern char * Fkey( char *, int, int );
  142. extern void FoPush( char *, int );
  143. extern void FoPop( int );
  144. extern void RegisterCycle( char *, int );
  145. extern void ResolveFoCycles( int );
  146. extern void pJunc( Junction * );
  147. extern void pRuleRef( RuleRefNode * );
  148. extern void pToken( TokNode * );
  149. extern void pAction( ActionNode * );
  150. extern void FoLink( Node * );
  151. extern int addFoLink( Node *, char *, Junction * );
  152. extern void GenCrossRef( Junction * );
  153. extern void defErr( char *, long, long, long, long, long, long );
  154. extern void genStdPCCTSIncludeFile(FILE *);
  155. extern Predicate find_predicates(Node *);
  156. extern void GenRulePrototypes(FILE *, Junction *);
  157. #else
  158. extern void istackreset();
  159. extern int istacksize();
  160. extern void pushint();
  161. extern int popint();
  162. extern int istackempty();
  163. extern int topint();
  164. extern void NewSetWd();
  165. extern void DumpSetWd();
  166. extern void NewSet();
  167. extern void FillSet();
  168. extern void ComputeErrorSets();
  169. extern void SubstErrorClass();
  170. extern int DefErrSet();
  171. extern void GenErrHdr();
  172. extern void dumpExpr();
  173. extern void addParm();
  174. extern Graph buildAction();
  175. extern Graph buildToken();
  176. extern Graph buildRuleRef();
  177. extern Graph Or();
  178. extern Graph Cat();
  179. extern Graph makeOpt();
  180. extern Graph makeBlk();
  181. extern Graph makeLoop();
  182. extern Graph makePlus();
  183. extern Graph emptyAlt();
  184. extern TokNode * newTokNode();
  185. extern RuleRefNode * newRNode();
  186. extern Junction * newJunction();
  187. extern ActionNode * newActionNode();
  188. extern char * makelocks();
  189. extern void preorder();
  190. extern Tree * tnode();
  191. extern void tfree();
  192. extern Tree * tdup();
  193. extern Tree * tappend();
  194. extern void Tfree();
  195. extern Tree * tlink();
  196. extern Tree * tshrink();
  197. extern Tree * tflatten();
  198. extern Tree * tJunc();
  199. extern Tree * tRuleRef();
  200. extern Tree * tToken();
  201. extern Tree * tAction();
  202. extern int tmember();
  203. extern Tree * tleft_factor();
  204. extern Tree * trm_perm();
  205. extern void tcvt();
  206. extern Tree * permute();
  207. extern Tree * VerifyAmbig();
  208. extern set rJunc();
  209. extern set rRuleRef();
  210. extern set rToken();
  211. extern set rAction();
  212. extern void HandleAmbiguity();
  213. extern set First();
  214. extern void freeBlkFsets();
  215. extern void genAction();
  216. extern void genRuleRef();
  217. extern void genToken();
  218. extern void genOptBlk();
  219. extern void genLoopBlk();
  220. extern void genLoopBegin();
  221. extern void genPlusBlk();
  222. extern void genSubBlk();
  223. extern void genRule();
  224. extern void genJunction();
  225. extern void genEndBlk();
  226. extern void genEndRule();
  227. extern void genHdr();
  228. extern void genHdr1();
  229. extern void dumpAction();
  230. extern Entry ** newHashTable();
  231. extern Entry * hash_add();
  232. extern Entry * hash_get();
  233. extern void hashStat();
  234. extern char * strdup();
  235. extern void genLexDescr();
  236. extern int dumpLexClasses();
  237. extern void genDefFile();
  238. extern void DumpListOfParmNames();
  239. extern int DumpNextNameInDef();
  240. extern void DumpOldStyleParms();
  241. extern void DumpType();
  242. extern int strmember();
  243. extern int HasComma();
  244. extern void DumpRetValStruct();
  245. extern char * StripQuotes();
  246. extern int main();
  247. extern void readDescr();
  248. extern FILE * NextFile();
  249. extern char * outname();
  250. extern void fatalFL();
  251. extern void cleanUp();
  252. extern char * eMsg3();
  253. extern char * eMsgd();
  254. extern void s_fprT();
  255. extern char * TerminalString();
  256. extern void lexclass();
  257. extern void lexmode();
  258. extern int LexClassIndex();
  259. extern int hasAction();
  260. extern void setHasAction();
  261. extern int addTname();
  262. extern int addTexpr();
  263. extern int Tnum();
  264. extern void Tlink();
  265. extern Entry * newEntry();
  266. extern void list_add();
  267. extern void list_apply();
  268. extern char * Fkey();
  269. extern void FoPush();
  270. extern void FoPop();
  271. extern void RegisterCycle();
  272. extern void ResolveFoCycles();
  273. extern void pJunc();
  274. extern void pRuleRef();
  275. extern void pToken();
  276. extern void pAction();
  277. extern void FoLink();
  278. extern int addFoLink();
  279. extern void GenCrossRef();
  280. extern void defErr();
  281. extern void genStdPCCTSIncludeFile();
  282. extern Predicate find_predicates();
  283. extern void GenRulePrototypes();
  284. #endif
  285.