l i n u x - u s e r s - g r o u p - o f - d a v i s
L U G O D
 
Next Meeting:
December 2: Social gathering
Next Installfest:
TBD
Latest News:
Nov. 18: Club officer elections
Page last updated:
2001 Dec 30 17:14

The following is an archive of a post made to our 'vox-tech mailing list' by one of its subscribers.

Report this post as spam:

(Enter your email address)
Re: [vox-tech] how to get yacc/bison to say "i'm confused"
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [vox-tech] how to get yacc/bison to say "i'm confused"



begin Takashi Ishihara <tishihara@ucdavis.edu> 
> > i have a rule like:
> > 
> > 	(snip)
> > 	WORD    { ParseError($1); }
> > 	;
> 
> then WORD is now a part of the grammer, which you don't want.

actually, it didn't hurt because my grammar is pretty strict.  input is
either (very loosely, this *isn't* bison code):

statement: keywords
	| anything

keywords: keyword
	| keywords keyword

anything: letter TOKEN letter
	| WORD TOKEN WORD

so if input were just WORD, it doesn't hurt anything, and it does catch
really stupid things like "alsdjasdfalsdf".

but you're absolutely right, that's not even a close approximation of
how i should be handling errors.  it just took me a few hours to figure
that out.   :)

> Try:
> 0. make sure the grammer is correct, and get rid of shift/reduce
>    or red/red conflicts (by adding pref, etc).

done.  i think using states would help me here, but i still need to read
about them.  frankly, the program is so close to being done, i'd rather
not start implementing new features that are just bound to confuse me.
i'd rather travel a mile downward taking small steps rather than jumping
off a cliff.  :)

> 1. use yyerror()

took me a few hours to figure this out, but done.  :)

> 2. build a parse tree first (just parse, no evaluation).
>    After the completion of the build, evaluate it. 
> 
> If you have a time, read the dragon book by aho.
 
i think i'd rather jump off that cliff.  ;)    seriously, this book
won't help me here.  i'm out to write a program, not master the topic of
abstract grammar.   it would be like reading the derivation of the
cardan formula when all i really want to do is solve a cubic equation.
sure i'd master alot of really good theory, but it's not clear that i'd
know how to "get the answer".

pete


-- 
PGP Fingerprint: B9F1 6CF3 47C4 7CD8 D33E  70A9 A3B9 1945 67EA 951D
PGP Public Key:  finger p@dirac.org
_______________________________________________
vox-tech mailing list
vox-tech@lists.lugod.org
http://lists.lugod.org/mailman/listinfo/vox-tech


LinkedIn
LUGOD Group on LinkedIn
Sign up for LUGOD event announcements
Your email address:
facebook
LUGOD Group on Facebook
'Like' LUGOD on Facebook:

Hosting provided by:
Sunset Systems
Sunset Systems offers preconfigured Linux systems, remote system administration and custom software development.

LUGOD: Linux Users' Group of Davis
PO Box 2082, Davis, CA 95617
Contact Us

LUGOD is a 501(c)7 non-profit organization
based in Davis, California
and serving the Sacramento area.
"Linux" is a trademark of Linus Torvalds.

Sponsored in part by:
O'Reilly and Associates
For numerous book donations.