Markdown Extra Spec: Parsing Section
Michel Fortin
michel.fortin at michelf.com
Thu May 15 23:58:56 EDT 2008
Le 2008-05-13 à 10:02, John MacFarlane a écrit :
> No, PEG can't do this. But there is a different approach that works
> (described in my earlier email).
You're right, and I'm quite familiar with this approach for parsing
nested blocks as it is what Markdown.pl and PHP Markdown do. I may
switch back to that solution if problems arise with the current
approach or if it proves to be more useful.
By not choosing a grammar early, I'm less constrained about what I can
do in the spec, and I think that's desirable at this early stage.
> By the way: if I understand it correctly, your description of "Code
> block" would parse the following as two code blocks, not one code
> block
> containing a blank line:
>
> some code
>
> more code
>
> (Note: there is no tab on the middle line.) I don't think that's the
> desired behavior.
Indeed. Fixed, but please read the new thread about the subject.
> Here's the markdown-peg version (and remember, this is "runnable"):
>
> verbatim <- newRule $
> many1 (doesNotMatch blankline ->> indentedLine) <++>
> (many (many1 (optional indent ->> blankline) <++>
> many1 (doesNotMatch blankline ->> indentedLine)) ## concat)
> <<-
> many blankline ## Verbatim . concat
And I was under the impression that you had given me a nearly complete
cheatsheet of the PEG grammar in that previous email. What does $, -
>>, <++>, and ## mean?
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/
More information about the Markdown-Discuss
mailing list