On Tue, Jan 04, 2011 at 10:28:05AM +0100, Ondřej Bílka wrote:
> It turned out that we need split break as combination of what i denote cut and stop
> When we encounter cut in or we skip subsequent branches so A cut B | C has semantics of A B | ~A C
> A branch can be marked by stop and we exit loop if and only if we successfuly took marked branch
>
> We can rewrite ordinary loop A* as (A | stop)
>
> This distinction does not make much sense for PEG but for my beast
>
> It is nondeterministic topdown parser where we choose lexicographicaly smallest derivation
> with respect to took choices (I introduced break to add or in loop to catch greedy matching)
> Condition to make it linear-time is that we limit recursion to left,rigth and inside expressions
> marked as nested. We assume that expression marked as nested is suffix-free. Semanticaly we want capture
> being enclosed by pair tags like for example nested('(' expression ')' )
>
> On Sun, Jan 02, 2011 at 11:57:17AM +0100, Roman Redziejowski wrote:
> > This seems to be another way of writing the "repeat-until" operation.
> >
> > Apparently, version 4.0 of APG (ABNF Parser Generator) by Lowell D.
> > Thomas
> > had this operation in the form *A!B, meaning "repeat matching A until B is
> > found."
> > It was removed in version 5.0 as being equivalent to *(!B A)B, which is
> > the same
> > as indicated by Francisco (for some reason APG writes star before
> > expressions).
> > See [1]
http://www.coasttocoastresearch.com/apg/docs/doc50, section
> > 3.2.3.5.
> >
> > My argument for introducing "repeat-until" would be a very concise
> > implementation
> > (at least in the style I use in my "Mouse"), much shorter than that of
> > *(!B A)B.
> > Have been considering syntax such as A**B, but cannot make up my mind.
> >
> > Happy New Year!
> > Roman
> >
> > On 2011-01-02 00:12, Francisco Mota wrote:
> >
> > It might be convenient sometimes, but I don't think it increases the
> > power of PEGs.
> > You can always rewrite an expression like "(E1 break | E2)*" as "(!E1
> > E2)* E1?"
> > I wonder if there are any grammars that can't be expressed without
> > break?
> > 2011/1/1 Ondřej Bílka <[2]
neleai <at> seznam.cz>
> >
> > Hello
> > as I started to LR/RR eliminator I noticed that break is handy
> >
> > It gave idea to introduce break statement to break iteration.
> > For example C strings could be parsed as
> > '"' ('"' break | '\"' | . )*
> > whad do you think about it
> > --
> >
> > SCSI's too wide.
> >
> > _______________________________________________
> > PEG mailing list
> > [3]
PEG <at> lists.csail.mit.edu
> > [4]
https://lists.csail.mit.edu/mailman/listinfo/peg
> >
> >
> > _______________________________________________
> > PEG mailing list
> > [5]
PEG <at> lists.csail.mit.edu
> > [6]
https://lists.csail.mit.edu/mailman/listinfo/peg
> >
> > References
> >
> > Visible links
> > 1.
http://www.coasttocoastresearch.com/apg/docs/doc50
> > 2. mailto:
neleai <at> seznam.cz
> > 3. mailto:
PEG <at> lists.csail.mit.edu
> > 4.
https://lists.csail.mit.edu/mailman/listinfo/peg
> > 5. mailto:
PEG <at> lists.csail.mit.edu
> > 6.
https://lists.csail.mit.edu/mailman/listinfo/peg
>
> > _______________________________________________
> > PEG mailing list
> >
PEG <at> lists.csail.mit.edu
> >
https://lists.csail.mit.edu/mailman/listinfo/peg
>
>
> --
>
> kernel panic: write-only-memory (/dev/wom0) capacity exceeded.
>
> _______________________________________________
> PEG mailing list
>
PEG <at> lists.csail.mit.edu
>
https://lists.csail.mit.edu/mailman/listinfo/peg