Related articles |
---|
Semantic actions in Yacc ? frazerw@dseg.ti.com (1995-03-02) |
Re: Semantic actions in Yacc ? c1veeru@WATSON.IBM.COM (Virendra K. Mehta) (1995-03-03) |
Re: Semantic actions in Yacc ? parrt@parr-research.com (Terence John Parr) (1995-03-04) |
Re: Semantic actions in Yacc ? C.A.Elliott@dcs.warwick.ac.uk (1995-03-06) |
Re: Semantic actions in Yacc ? clark@quarry.zk3.dec.com (1995-03-06) |
Re: Semantic actions in Yacc ? caibmnfx@ibmmail.com (Parag V. Tijare) (1995-03-08) |
Newsgroups: | comp.compilers |
From: | "Parag V. Tijare" <caibmnfx@ibmmail.com> |
Keywords: | yacc |
Organization: | Compilers Central |
References: | 95-03-032 |
Date: | Wed, 8 Mar 1995 20:42:57 GMT |
Virendra Mehta wrote
:Basically, actions are just like any other non-terminals in yacc.
: ...
: This is compounded by the fact that no two actions are considered same even
:if they are empty.
This reminds me of situations when exactly same actions are needed at two
different places in the grammar. However, Yacc by itself cannot make out
that the actions are same, and this can cause conflicts. So simple way out
when it is known that the action required is same is to introduce additional
non-terminals with right hand side of the production empty and associate
the required action with the empty production of the new non-terminal.
eg. something like
A : 'a' { action1 } 'c' X Y;
B : 'a' { action1 } 'c' P Q;
will cause conflict
but
A : 'a' M 'c' X Y;
B : 'a' M 'c' P Q;
M : { action1 };
will not.
At least some of the conflicts can be avoided this way.
Parag IBMMAIL: caibmnfx@ibmmail.com
Internet: ptijare@vnet.ibm.com or parag@genius.tisl.soft.net
Phone: Off:(416) 448-4126 Tie Line: 778-4126 Res:(416) 287-9486
--
Return to the
comp.compilers page.
Search the
comp.compilers archives again.