3 ## PEG syntax in PEG as in the original report
11 Definition <- Identifier LEFTARROW Expression
13 Expression <- Sequence (SLASH Sequence)*
17 Prefix <- (AND / NOT)? Suffix
19 Suffix <- Primary (QUESTION / STAR / PLUS)?
23 / OPEN Expression CLOSE
29 Identifier <- IdentStart IdentCont* Spacing
30 IdentStart <- [a-zA-Z_]
31 IdentCont <- IdentStart / [0-9]
33 ['] (!['] Char)* ['] Spacing
34 / ["] (!["] Char)* ["] Spacing
36 '[' (!']' Range)* ']' Spacing
37 Range <- Char '-' Char / Char
39 '\\' [nrt'"\[\]\\] #' ...un-confuse emacs highlighting
40 / '\\' [0-2][0-7][0-7]
45 LEFTARROW <- '<-' Spacing
49 QUESTION <- '?' Spacing
55 Spacing <- (Space / Comment)*
56 Comment <- '#' (!EndOfLine .)* EndOfLine
57 Space <- ' ' / '\t' / EndOfLine
58 EndOfLine <- '\r\n' / '\n' / '\r'