12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /* Copyright (c) 1991 by the Vrije Universiteit, Amsterdam, the Netherlands.
- * For full copyright and restrictions on use see the file COPYING in the top
- * level of the LLgen tree.
- */
- /*
- * L L G E N
- *
- * An Extended LL(1) Parser Generator
- *
- * Author : Ceriel J.H. Jacobs
- */
- /*
- * $Id$
- * Miscellanious constants and
- * some variables that are visible in more than one file
- */
- # define LTEXTSZ 256 /* Size of longest token */
- /*
- * options for the identifier search routine
- */
- # define ENTERING 1
- # define BOTH 2
- /*
- * Now for some declarations
- */
- extern char ltext[]; /* input buffer */
- extern int nnonterms; /* number of nonterminals */
- extern int ntokens; /* number of terminals */
- extern int nterms; /* number of terms */
- extern int nalts; /* number of alternatives */
- extern p_start start; /* will contain startsymbols */
- #ifdef NON_CORRECTING
- extern int nsubstarts; /* number of subparserstarts */
- extern p_set start_firsts; /* Will contain the union of first sets of
- startsymbols when -n -s option is on */
- #endif
- extern int linecount; /* line number */
- extern int assval; /* to create difference between literals
- * and other terminals
- */
- extern p_nont nonterms; /* the nonterminal array */
- extern p_nont maxnt; /* is filled up until here */
- extern p_token tokens; /* the token array */
- extern p_token maxt; /* is filled up until here */
- extern int norder, torder;
- /* order of nonterminals in the grammar,
- * important because actions are copied to
- * a temporary file in the order in which they
- * were read
- */
- extern string e_noopen; /* Error message string used often */
- extern int verbose; /* Level of verbosity */
- extern int wflag; /* warnings? */
- extern string lexical; /* name of lexical analyser */
- extern string prefix; /* prefix of externals */
- extern string onerror; /* name of user error handler */
- extern int ntneeded; /* ntneeded = 1 if nonterminals are included
- * in the sets.
- */
- extern int ntprint; /* ntprint = 1 if they must be printed too in
- * the LL.output file (-x option)
- */
- # ifndef NDEBUG
- extern int debug;
- # endif /* not NDEBUG */
- extern p_file files,pfile; /* pointers to file structure.
- * "files" points to the start of the
- * list */
- extern p_file maxfiles;
- extern string LLgenid; /* LLgen identification string */
- extern t_token lextoken; /* the current token */
- extern int nerrors;
- extern string rec_file, incl_file;
- #ifdef NON_CORRECTING
- extern string nc_rec_file, nc_incl_file;
- #endif
- extern int low_percentage, high_percentage;
- extern int min_cases_for_jmptable;
- extern int jmptable_option;
- extern int ansi_c;
- #ifdef NON_CORRECTING
- extern int non_corr;
- extern int subpars_sim;
- extern p_gram illegal_gram;
- #endif
- extern int strip_grammar;
- extern int in_production;
|