On 8 Dec 2007, at 20:20, Jack T Mudge III wrote:
[Please keep the cc to the Help-Bison list, as other may want to join
in.]
As for resolving shift/reduce conflicts, one can try looking in
the .output parser description file that Bison can generate, at the
conflicting states, and their parsing position "."s. Then apply token
precedences (%left etc) to the tokens immediately and after those
"."s.
It's worth a try. The only problem I see with using either left or
right
association is that this seems to change according to context, e.g.
** *some* *bold* text
where the two **s at the beginning don't have association, the
third and 5th *
would have right-association, and the 4th and 6th * would have
left-association. That's where I run into a problem. Depending
where the *
is, and whether a * has come before it, changes the meaning of the *.
One can push the context sensitivities into the actions. This way,
one can even handle language like C++. An alternate approach is to
use the GLR parser (see the manual).
As I said, i'll try the comp.comilers mailing list. I think you're
right in
that they may have a suggestion or two.
Look around for some similar languages, which helps avoiding
pitfalls, and may give ideas on grammar design.
I went ahead and purchased a copy of
the Dragon Book's second edition (just hasn't shipped yet....),
when that
arrives, I'll thumb through that before I try the mailing list. The
book may
answer my question :).
Also look into the FAQ of comp.compilers, which has more suggestions
- it is posted there monthly.
Hans Aberg
_______________________________________________
help-bison@gnu.org http://lists.gnu.org/mailman/listinfo/help-bison