@@ -25,47 +25,56 @@ public function __construct()
2525 'skip ' => '\s+ ' ,
2626 'parenthesis_ ' => '< ' ,
2727 '_parenthesis ' => '> ' ,
28+ 'empty_string ' => '""| \'\'' ,
29+ 'number ' => '(\+|\-)?(0|[1-9]\d*)(\.\d+)? ' ,
30+ 'null ' => 'null ' ,
2831 'comma ' => ', ' ,
2932 'name ' => '(?:[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* \\\)*[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]* ' ,
3033 'quote_:quoted_string ' => '" ' ,
3134 'apostrophe_:apostrophed_string ' => '\'' ,
3235 ],
3336 'quoted_string ' => [
34- 'quoted_string ' => '(?: [^"]|"") + ' ,
37+ 'quoted_string ' => '[^"]+ ' ,
3538 '_quote:default ' => '" ' ,
3639 ],
3740 'apostrophed_string ' => [
38- 'apostrophed_string ' => '(?: [^ \']| \'\' ) + ' ,
41+ 'apostrophed_string ' => '[^ \']+ ' ,
3942 '_apostrophe:default ' => '\'' ,
4043 ],
4144 ],
4245 [
4346 'type ' => new Choice ('type ' , ['simple_type ' , 'compound_type ' ], null ),
4447 1 => new Token (1 , 'name ' , null , -1 , true ),
4548 2 => new Concatenation (2 , [1 ], '#simple_type ' ),
46- 3 => new Token (3 , 'quote_ ' , null , -1 , false ),
47- 4 => new Token (4 , 'quoted_string ' , null , -1 , true ),
48- 5 => new Token (5 , '_quote ' , null , -1 , false ),
49- 6 => new Concatenation (6 , [3 , 4 , 5 ], '#simple_type ' ),
50- 7 => new Token (7 , 'apostrophe_ ' , null , -1 , false ),
51- 8 => new Token (8 , 'apostrophed_string ' , null , -1 , true ),
52- 9 => new Token (9 , '_apostrophe ' , null , -1 , false ),
53- 10 => new Concatenation (10 , [7 , 8 , 9 ], '#simple_type ' ),
54- 'simple_type ' => new Choice ('simple_type ' , [2 , 6 , 10 ], null ),
55- 12 => new Token (12 , 'name ' , null , -1 , true ),
56- 13 => new Token (13 , 'parenthesis_ ' , null , -1 , false ),
57- 14 => new Token (14 , 'comma ' , null , -1 , false ),
58- 15 => new Concatenation (15 , [14 , 'type ' ], '#compound_type ' ),
59- 16 => new Repetition (16 , 0 , -1 , 15 , null ),
60- 17 => new Token (17 , '_parenthesis ' , null , -1 , false ),
61- 'compound_type ' => new Concatenation ('compound_type ' , [12 , 13 , 'type ' , 16 , 17 ], null ),
49+ 3 => new Token (3 , 'number ' , null , -1 , true ),
50+ 4 => new Concatenation (4 , [3 ], '#simple_type ' ),
51+ 5 => new Token (5 , 'null ' , null , -1 , true ),
52+ 6 => new Concatenation (6 , [5 ], '#simple_type ' ),
53+ 7 => new Token (7 , 'empty_string ' , null , -1 , true ),
54+ 8 => new Concatenation (8 , [7 ], '#simple_type ' ),
55+ 9 => new Token (9 , 'quote_ ' , null , -1 , false ),
56+ 10 => new Token (10 , 'quoted_string ' , null , -1 , true ),
57+ 11 => new Token (11 , '_quote ' , null , -1 , false ),
58+ 12 => new Concatenation (12 , [9 , 10 , 11 ], '#simple_type ' ),
59+ 13 => new Token (13 , 'apostrophe_ ' , null , -1 , false ),
60+ 14 => new Token (14 , 'apostrophed_string ' , null , -1 , true ),
61+ 15 => new Token (15 , '_apostrophe ' , null , -1 , false ),
62+ 16 => new Concatenation (16 , [13 , 14 , 15 ], '#simple_type ' ),
63+ 'simple_type ' => new Choice ('simple_type ' , [2 , 4 , 6 , 8 , 12 , 16 ], null ),
64+ 18 => new Token (18 , 'name ' , null , -1 , true ),
65+ 19 => new Token (19 , 'parenthesis_ ' , null , -1 , false ),
66+ 20 => new Token (20 , 'comma ' , null , -1 , false ),
67+ 21 => new Concatenation (21 , [20 , 'type ' ], '#compound_type ' ),
68+ 22 => new Repetition (22 , 0 , -1 , 21 , null ),
69+ 23 => new Token (23 , '_parenthesis ' , null , -1 , false ),
70+ 'compound_type ' => new Concatenation ('compound_type ' , [18 , 19 , 'type ' , 22 , 23 ], null ),
6271 ],
6372 []
6473 );
6574
6675 $ this ->getRule ('type ' )->setPPRepresentation (' simple_type() | compound_type() ' );
6776 $ this ->getRule ('simple_type ' )->setDefaultId ('#simple_type ' );
68- $ this ->getRule ('simple_type ' )->setPPRepresentation (' <name> | ::quote_:: <quoted_string> ::_quote:: | ::apostrophe_:: <apostrophed_string> ::_apostrophe:: ' );
77+ $ this ->getRule ('simple_type ' )->setPPRepresentation (' <name> | <number> | <null> | <empty_string> | ::quote_:: <quoted_string> ::_quote:: | ::apostrophe_:: <apostrophed_string> ::_apostrophe:: ' );
6978 $ this ->getRule ('compound_type ' )->setDefaultId ('#compound_type ' );
7079 $ this ->getRule ('compound_type ' )->setPPRepresentation (' <name> ::parenthesis_:: type() ( ::comma:: type() )* ::_parenthesis:: ' );
7180 }
0 commit comments