[net.unix-wizards] yacc state space

covey@uiucdcs.CS.UIUC.EDU (04/06/86)

/* ---------- "yacc state space" ---------- */

	Hello out there.  I'm trying to use yacc to produce a parser
for a language which has about 130 terminals, 90 non-terminals, and 
about 450 rules.  I know this is considered to be a "huge" grammar
by yacc. 

	My problem is that up until just a couple of hours ago,
yacc would work on it.  I had several shift/reduce, reduce/reduce
conflicts, and rule not reduced errors which I am in the process of
trying to correct.  I figured out why I was getting most of the rule
not reduced errors and after I edited the grammar to correct the problem
Yacc would no longer work on it.  It would give me a fatal error saying
that state space was exceeded and just die.

	Has anyone else out there encountered this problem.  If so, were
you able to get around it and how?  Any information and/or suggestions
would be greatly appreciated.  I have even tried to up the memsize
allocated in yacc to some extremely large number and it still doesn't
work.  I suspect that state space exceeded is just a symptom of a 
larger problem but I'm at a loss as to what and how to correct the
problem.

	Please send replies via e-mail to one of the following
address.  Thanks for your help.

				Nancy Covey

covey@uiuc.ARPA		(via ARPAnet)
covey@uiuc.csnet	(via CSNET)
ihnp4!uiucdcs!covey or
pur-ee!uiucdcs!covey	(via USENET)

/* End of text from uiucdcs:net.unix */

tupper@wanginst.UUCP (John Tupper) (04/11/86)

>Yacc would no longer work on it.  It would give me a fatal error saying
>that state space was exceeded and just die.

Look at the sources to yacc. There is a file called "dextern". Inside
are several #define constants defining the number of states and rules and
countless other things that yacc can handle. If you change these and re-make
yacc, it should be able to handle any grammer (if you make them big enough).
-- 
John Tupper                              tupper@wanginst        (Csnet)
Wang Institute of Graduate Studies       wanginst!tupper        (UUCP)
Tyng Road, Tyngsboro, MA 01879           (617) 649-9731