Le Sat, 23 Jun 2012 11:03:47 -0700,
Peter Goodman <[email protected]> a écrit :
> Two quick questions:
> - Is there a possible priority inversion because of the separate ordering
> into the categories of non-recursive, directly recursive, or mutually
> recursive?
The ordering within each category is still the original ordering
but the inter-category ordering is mandatory
-non-recursive
-mutually recursive
-directly recursive
Let's say this is a *feature* which defines the semantic :-)
> - How does this behave with both left and right recursion in the same rule?
Not a problem since the right recursion *must* be preceded
by something different, this means the whole left recursive
production will be exhausted before the right recursion is tried.
You cannot have just expr := expr expr
What would that be supposed to mean?
Though you *can* have expr := expr + expr
If you want to know more download the source just to read an
example grammar which is in the 'demo.ml' file and looks like that:
A left associative function composition, F ° G ° H
"composition", [
"leftrecurs", "" , [NT "composition"; NT "osp"; T"°"; NT "osp"; NT"expr"; S
composf];
"initial", "", [NT"expr"];
];
A right associative conditional, cond -> then; else
"conditional", [
"condition", "", [NT"exprsure"; NT "osp"; T"->"; NT "osp"; NT"exprsure";
T";"; NT "osp"; NT "elseclause"; S condition ];
];
"elseclause", [
"more", "", [NT "conditional"];
"last", "", [NT"exprsure"; NT "osp"; ];
];
_______________________________________________
PEG mailing list
[email protected]
https://lists.csail.mit.edu/mailman/listinfo/peg