[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: (probably very naive) question regarding production grammar
Donald,
> Their grammar allows for [] and {} sections in productions (see
> http://cui.unige.ch/db-research/Enseignemen),
> which sablecc does not (at least not the {} sections). I didn't
Sablecc does support these productions. Optional terms have a ? after
them, 0-or-more have a *, and 1-or-more have a +. (Same as for tokens)
See http://sablecc.org/thesis/thesis.html#PAGE46
> think it
> would be hard to rewrite them as recursive rules, but I apparently
> musthave done something wrong because sablecc will not process the
> grammarincluded below. It does not like the first rule in this
> production:
> logical_factor =
> {compare} exp_simple compare exp_simple |
> {condition} lparen condition rparen;
>
The parser cannot distinguish between either exp_simple... which one
would getExpSimple() refer to? They need names:
logical_factor =
{compare} [left]:exp_simple compare [right]:exp_simple |
{condition} lparen condition rparen;
Now you could use getLeft() and getRight().
Roger