@@ -6,10 +6,12 @@ part of xml;
6
6
abstract class XmlGrammarDefinition extends GrammarDefinition {
7
7
8
8
// name patterns
9
- static const NAME_START_CHARS = ':A-Z_a-z\u 00C0-\u 00D6\u 00D8-\u 00F6\u 00F8-\u 02FF'
9
+ static const NAME_START_CHARS =
10
+ ':A-Z_a-z\u 00C0-\u 00D6\u 00D8-\u 00F6\u 00F8-\u 02FF'
10
11
'\u 0370-\u 037D\u 037F-\u 1FFF\u 200C-\u 200D\u 2070-\u 218F\u 2C00-\u 2FEF\u 3001\u D7FF'
11
12
'\u F900-\u FDCF\u FDF0-\u FFFD' ;
12
- static const NAME_CHARS = '-.0-9\u 00B7\u 0300-\u 036F\u 203F-\u 2040$NAME_START_CHARS ' ;
13
+ static const NAME_CHARS =
14
+ '-.0-9\u 00B7\u 0300-\u 036F\u 203F-\u 2040$NAME_START_CHARS ' ;
13
15
static const CHAR_DATA = '^<' ;
14
16
15
17
// basic tokens
@@ -52,19 +54,15 @@ abstract class XmlGrammarDefinition extends GrammarDefinition {
52
54
.seq (ref (space).optional ())
53
55
.seq (ref (attributeValue))
54
56
.map ((each) => createAttribute (each[0 ], each[4 ]));
55
- attributeValue () => ref (attributeValueDouble)
56
- .or (ref (attributeValueSingle))
57
- .pick (1 );
57
+ attributeValue () =>
58
+ ref (attributeValueDouble).or (ref (attributeValueSingle)).pick (1 );
58
59
attributeValueDouble () => char (DOUBLE_QUOTE )
59
60
.seq (new _XmlCharacterDataParser (DOUBLE_QUOTE , 0 ))
60
61
.seq (char (DOUBLE_QUOTE ));
61
62
attributeValueSingle () => char (SINGLE_QUOTE )
62
63
.seq (new _XmlCharacterDataParser (SINGLE_QUOTE , 0 ))
63
64
.seq (char (SINGLE_QUOTE ));
64
- attributes () => ref (space)
65
- .seq (ref (attribute))
66
- .pick (1 )
67
- .star ();
65
+ attributes () => ref (space).seq (ref (attribute)).pick (1 ).star ();
68
66
comment () => string (OPEN_COMMENT )
69
67
.seq (any ().starLazy (string (CLOSE_COMMENT )).flatten ())
70
68
.seq (string (CLOSE_COMMENT ))
@@ -82,65 +80,64 @@ abstract class XmlGrammarDefinition extends GrammarDefinition {
82
80
doctype () => string (OPEN_DOCTYPE )
83
81
.seq (ref (space))
84
82
.seq (ref (nameToken)
85
- .or (ref (attributeValue))
86
- .or (any ().starLazy (char (OPEN_DOCTYPE_BLOCK ))
87
- .seq (char (OPEN_DOCTYPE_BLOCK ))
88
- .seq (any ().starLazy (char (CLOSE_DOCTYPE_BLOCK )))
89
- .seq (char (CLOSE_DOCTYPE_BLOCK )))
90
- .separatedBy (ref (space))
91
- .flatten ())
83
+ .or (ref (attributeValue))
84
+ .or (any ()
85
+ .starLazy (char (OPEN_DOCTYPE_BLOCK ))
86
+ .seq (char (OPEN_DOCTYPE_BLOCK ))
87
+ .seq (any ().starLazy (char (CLOSE_DOCTYPE_BLOCK )))
88
+ .seq (char (CLOSE_DOCTYPE_BLOCK )))
89
+ .separatedBy (ref (space))
90
+ .flatten ())
92
91
.seq (ref (space).optional ())
93
92
.seq (char (CLOSE_DOCTYPE ))
94
93
.map ((each) => createDoctype (each[2 ]));
95
- document () => ref (processing).optional ()
94
+ document () => ref (processing)
95
+ .optional ()
96
96
.seq (ref (misc))
97
97
.seq (ref (doctype).optional ())
98
98
.seq (ref (misc))
99
99
.seq (ref (element))
100
100
.seq (ref (misc))
101
- .map ((each) => createDocument ([each[0 ], each[2 ], each[4 ]].where ((each) => each != null )));
101
+ .map ((each) => createDocument (
102
+ [each[0 ], each[2 ], each[4 ]].where ((each) => each != null )));
102
103
element () => char (OPEN_ELEMENT )
103
104
.seq (ref (qualified))
104
105
.seq (ref (attributes))
105
106
.seq (ref (space).optional ())
106
- .seq (string (CLOSE_END_ELEMENT )
107
- .or (char (CLOSE_ELEMENT )
107
+ .seq (string (CLOSE_END_ELEMENT ).or (char (CLOSE_ELEMENT )
108
108
.seq (ref (content))
109
109
.seq (string (OPEN_END_ELEMENT ))
110
110
.seq (ref (qualified))
111
111
.seq (ref (space).optional ())
112
112
.seq (char (CLOSE_ELEMENT ))))
113
113
.map ((list) {
114
- if (list[4 ] == CLOSE_END_ELEMENT ) {
115
- return createElement (list[1 ], list[2 ], []);
116
- } else {
117
- if (list[1 ] == list[4 ][3 ]) {
118
- return createElement (list[1 ], list[2 ], list[4 ][1 ]);
119
- } else {
120
- throw new ArgumentError ('Expected </${list [1 ]}>, but found </${list [4 ][3 ]}>' );
121
- }
122
- }
123
- });
114
+ if (list[4 ] == CLOSE_END_ELEMENT ) {
115
+ return createElement (list[1 ], list[2 ], []);
116
+ } else {
117
+ if (list[1 ] == list[4 ][3 ]) {
118
+ return createElement (list[1 ], list[2 ], list[4 ][1 ]);
119
+ } else {
120
+ throw new ArgumentError (
121
+ 'Expected </${list [1 ]}>, but found </${list [4 ][3 ]}>' );
122
+ }
123
+ }
124
+ });
124
125
processing () => string (OPEN_PROCESSING )
125
126
.seq (ref (nameToken))
126
127
.seq (ref (space)
127
- .seq (any ().starLazy (string (CLOSE_PROCESSING )).flatten ())
128
- .pick (1 ).optional ('' ))
128
+ .seq (any ().starLazy (string (CLOSE_PROCESSING )).flatten ())
129
+ .pick (1 )
130
+ .optional ('' ))
129
131
.seq (string (CLOSE_PROCESSING ))
130
132
.map ((each) => createProcessing (each[1 ], each[2 ]));
131
133
qualified () => ref (nameToken).map (createQualified);
132
134
133
- characterData () => new _XmlCharacterDataParser (OPEN_ELEMENT , 1 ).map (createText);
134
- misc () => ref (space)
135
- .or (ref (comment))
136
- .or (ref (processing))
137
- .star ();
135
+ characterData () =>
136
+ new _XmlCharacterDataParser (OPEN_ELEMENT , 1 ).map (createText);
137
+ misc () => ref (space).or (ref (comment)).or (ref (processing)).star ();
138
138
space () => whitespace ().plus ();
139
139
140
- nameToken () => ref (nameStartChar)
141
- .seq (ref (nameChar).star ())
142
- .flatten ();
140
+ nameToken () => ref (nameStartChar).seq (ref (nameChar).star ()).flatten ();
143
141
nameStartChar () => pattern (NAME_START_CHARS , 'Expected name' );
144
142
nameChar () => pattern (NAME_CHARS );
145
-
146
143
}
0 commit comments