Hello,
I have made a complete analysis of and made extensive changes to the
XWiki grammar file to make the grammar strictly LL(1). Please have a
look here:
http://code.google.com/p/wikimodel/issues/detail?id=169
Below is a summary of things that I find surprising in the XWiki
grammar, and we should consider changing:
Unexpected: Parameters at the beginning of line terminates a block or a
paragraph, even if they are inline to the line.
Expected: Only empty lines or appropriate end-tokens may terminate a
block or a paragraph. Alternatively, the parameters may
terminate a block or paragraph if they are indeed block
parameters.
Unexpected: No empty lines event is generated if there are exactly two
new lines before something that is not a paragraph.
Expected: Empty lines event should always be generated on
sequences of two or more new lines characters.
Unexpected: Header tokens can be arbitrarily long sequences of equal
signs. If there are more than six, header level 6 is
chosen. The optional end token does not need to match
the start token.
Expected: Sequences of more than 6 equal signs should be special
characters. Mismatching end tokens should be special
characters.
Unexpected: If there are block parameters before an empty line, an
empty paragraph is generated and the parameters are
applied to these.
Expected: Block parameters should be applied to the following
header, table, paragraph etc.
Best regards,
Andreas Jonsson