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