Related articles |
---|
WANTED: stylistic advice/guidelines for YACC and LEX timd@Starbase.NeoSoft.COM (1996-01-27) |
Re: WANTED: stylistic advice/guidelines for YACC and LEX scooter@mccabe.com (Scott Stanchfield) (1996-01-29) |
Re: WANTED: stylistic advice/guidelines for YACC and LEX rmonroe@hever.demon.co.uk (Robert F. Monroe) (1996-01-31) |
Re: WANTED: stylistic advice/guidelines for YACC and LEX rmonroe@hever.demon.co.uk (Robert F. Monroe) (1996-02-02) |
Re: WANTED: stylistic advice/guidelines for YACC and LEX Robert@hever.demon.co.uk (Robert F. Monroe) (1996-02-04) |
Re: WANTED: stylistic advice/guidelines for YACC and LEX rmonroe@hever.demon.co.uk (Robert F. Monroe) (1996-02-09) |
Re: WANTED: stylistic advice/guidelines for YACC and LEX ltribble@msmail4.hac.com (Tribble, Louis) (1996-02-09) |
From: | timd@Starbase.NeoSoft.COM (TimD) |
Newsgroups: | comp.compilers |
Date: | 27 Jan 1996 01:08:06 -0500 |
Organization: | NeoSoft, Inc. +1 713 968 5800 |
Keywords: | lex, yacc, question |
Okay, so I know how to write specifications in LEX and YACC. I've
done it it in C and Ada and even C++ (sort of). I would like to
hear about some of the following from others:
1 - YACC/LEX programming style suggestions
2 - common tricks in YACC and LEX
3 - difficulties in using C YACC/LEX with C++
EG:
(1) For example, when I write a spec with an action, I try to
put the action code in a subroutine. Compare:
A : B C D
{
type_a *v_a;
v_a = new_type_a();
v_a->b = $1->get_b();
v_a->c = $1->get_c();
v_a->d = $1->get_d();
$$ = v_a;
}
with
A : B C D
{
$$ = make_a_from_b_c_d($1,$2,$3);
}
To me, the benefits of doing this are:
1) the yacc spec is shorter (more modular) and easier to read.
2) when stepping through the code in a debugger, it is easier
to tell where you are.
Well, just looking for opinions and ideas...
-t
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.