start: 39 parser tokens: 26 3 Comment = '#.*' 27 4 WhiteSpace = '[ \r\t\n]+' 31 5 Prolog = '.*%%' 32 6 Id = '[a-zA-Z_][-a-zA-Z_0-9.$]*' 33 7 String = '\'([^\'\\\r\n]|\\.)*\'' 34 8 Number = '[1-9][0-9]*' 35 9 Epilog = '%%.*' literals: 40 10 ';' 41 11 '<' 41 12 ':' 41 13 ',' 41 14 '>' 41 15 '?' 42 16 '=' 44 17 '|' 48 18 '+' 49 19 '*' 50 20 '/' 55 21 '(' 55 22 ')' 56 23 '[' 56 24 ']' 57 25 '{' 57 26 '}' 59 27 '..' 40 rule: 40 Sequence 40 Repeat 0..1 40 type 32 6 Id = '[a-zA-Z_][-a-zA-Z_0-9.$]*' 40 Xor 40 pattern 40 rhs 40 10 ';' 39 parser: 39 Sequence 31 5 Prolog = '.*%%' 39 Repeat 1.. 39 rule 35 9 Epilog = '%%.*' 41 type: 41 Sequence 41 11 '<' 41 Xor 41 Sequence 32 6 Id = '[a-zA-Z_][-a-zA-Z_0-9.$]*' 41 Repeat 0..1 41 Sequence 41 12 ':' 41 Delimit 1.. 41 13 ',' 32 6 Id = '[a-zA-Z_][-a-zA-Z_0-9.$]*' 41 14 '>' 41 Repeat 0..1 41 15 '?' 41 14 '>' 42 pattern: 42 Sequence 42 16 '=' 33 7 String = '\'([^\'\\\r\n]|\\.)*\'' 43 rhs: 43 Sequence 41 12 ':' 43 xor 44 xor: 44 Delimit 1.. 44 17 '|' 44 sequence 45 sequence: 45 Repeat 1.. 45 term 54 term: 54 Sequence 54 item 54 Repeat 0..1 54 range 46 literal: 33 7 String = '\'([^\'\\\r\n]|\\.)*\'' 47 optional: 41 15 '?' 50 list: 50 Sequence 50 20 '/' 50 item 48 some: 48 Sequence 48 18 '+' 48 Repeat 0..1 48 list 49 many: 49 Sequence 49 19 '*' 49 Repeat 0..1 49 list 55 item: 55 Xor 32 6 Id = '[a-zA-Z_][-a-zA-Z_0-9.$]*' 55 literal 55 Sequence 55 21 '(' 55 xor 55 22 ')' 55 or 55 and 58 range: 58 Xor 58 range1 58 range2 58 optional 58 some 58 many 56 or: 56 Sequence 56 23 '[' 56 Delimit 2.. 41 13 ',' 56 xor 56 24 ']' 56 Repeat 0..1 56 list 57 and: 57 Sequence 57 25 '{' 57 Delimit 2.. 41 13 ',' 57 xor 57 26 '}' 57 Repeat 0..1 57 list 59 range1: 59 Sequence 34 8 Number = '[1-9][0-9]*' 59 Repeat 0..1 59 Xor 59 Sequence 59 27 '..' 59 Repeat 0..1 34 8 Number = '[1-9][0-9]*' 59 Repeat 0..1 59 list 59 list 60 range2: 60 Sequence 59 27 '..' 60 Repeat 0..1 60 Sequence 60 Repeat 0..1 34 8 Number = '[1-9][0-9]*' 60 Repeat 0..1 60 list