rev |
line source |
pascal@14340
|
1 --- Source/WebCore/css/CSSGrammar.y
|
pascal@14340
|
2 +++ Source/WebCore/css/CSSGrammar.y
|
pascal@14340
|
3 @@ -53,14 +53,13 @@
|
pascal@14340
|
4 #define YYMAXDEPTH 10000
|
pascal@14340
|
5 #define YYDEBUG 0
|
pascal@14340
|
6
|
pascal@14340
|
7 -// FIXME: Replace with %parse-param { CSSParser* parser } once we can depend on bison 2.x
|
pascal@14340
|
8 -#define YYPARSE_PARAM parser
|
pascal@14340
|
9 -#define YYLEX_PARAM parser
|
pascal@14340
|
10 -
|
pascal@14340
|
11 %}
|
pascal@14340
|
12
|
pascal@14340
|
13 %pure_parser
|
pascal@14340
|
14
|
pascal@14340
|
15 +%parse-param { CSSParser* parser }
|
pascal@14340
|
16 +%lex-param { CSSParser* parser }
|
pascal@14340
|
17 +
|
pascal@14340
|
18 %union {
|
pascal@14340
|
19 bool boolean;
|
pascal@14340
|
20 char character;
|
pascal@14340
|
21 @@ -88,7 +87,7 @@
|
pascal@14340
|
22
|
pascal@14340
|
23 %{
|
pascal@14340
|
24
|
pascal@14340
|
25 -static inline int cssyyerror(const char*)
|
pascal@14340
|
26 +static inline int cssyyerror(void*, const char*)
|
pascal@14340
|
27 {
|
pascal@14340
|
28 return 1;
|
pascal@14340
|
29 }
|
pascal@14340
|
30 --- Source/WebCore/css/CSSParser.cpp
|
pascal@14340
|
31 +++ Source/WebCore/css/CSSParser.cpp
|
pascal@14340
|
32 @@ -96,7 +96,7 @@
|
pascal@14340
|
33 extern int cssyydebug;
|
pascal@14340
|
34 #endif
|
pascal@14340
|
35
|
pascal@14340
|
36 -extern int cssyyparse(void* parser);
|
pascal@14340
|
37 +extern int cssyyparse(WebCore::CSSParser*);
|
pascal@14340
|
38
|
pascal@14340
|
39 using namespace std;
|
pascal@14340
|
40 using namespace WTF;
|
pascal@14340
|
41 --- Source/WebCore/xml/XPathGrammar.y
|
pascal@14340
|
42 +++ Source/WebCore/xml/XPathGrammar.y
|
pascal@14340
|
43 @@ -34,6 +34,7 @@
|
pascal@14340
|
44 #include "XPathParser.h"
|
pascal@14340
|
45 #include "XPathPath.h"
|
pascal@14340
|
46 #include "XPathPredicate.h"
|
pascal@14340
|
47 +#include "XPathStep.h"
|
pascal@14340
|
48 #include "XPathVariableReference.h"
|
pascal@14340
|
49 #include <wtf/FastMalloc.h>
|
pascal@14340
|
50
|
pascal@14340
|
51 @@ -44,8 +45,6 @@
|
pascal@14340
|
52 #define YYLTYPE_IS_TRIVIAL 1
|
pascal@14340
|
53 #define YYDEBUG 0
|
pascal@14340
|
54 #define YYMAXDEPTH 10000
|
pascal@14340
|
55 -#define YYPARSE_PARAM parserParameter
|
pascal@14340
|
56 -#define PARSER static_cast<Parser*>(parserParameter)
|
pascal@14340
|
57
|
pascal@14340
|
58 using namespace WebCore;
|
pascal@14340
|
59 using namespace XPath;
|
pascal@14340
|
60 @@ -53,6 +52,7 @@
|
pascal@14340
|
61 %}
|
pascal@14340
|
62
|
pascal@14340
|
63 %pure_parser
|
pascal@14340
|
64 +%parse-param { WebCore::XPath::Parser* parser }
|
pascal@14340
|
65
|
pascal@14340
|
66 %union
|
pascal@14340
|
67 {
|
pascal@14340
|
68 @@ -71,7 +71,7 @@
|
pascal@14340
|
69 %{
|
pascal@14340
|
70
|
pascal@14340
|
71 static int xpathyylex(YYSTYPE* yylval) { return Parser::current()->lex(yylval); }
|
pascal@14340
|
72 -static void xpathyyerror(const char*) { }
|
pascal@14340
|
73 +static void xpathyyerror(void*, const char*) { }
|
pascal@14340
|
74
|
pascal@14340
|
75 %}
|
pascal@14340
|
76
|
pascal@14340
|
77 @@ -118,7 +118,7 @@
|
pascal@14340
|
78 Expr:
|
pascal@14340
|
79 OrExpr
|
pascal@14340
|
80 {
|
pascal@14340
|
81 - PARSER->m_topExpr = $1;
|
pascal@14340
|
82 + parser->m_topExpr = $1;
|
pascal@14340
|
83 }
|
pascal@14340
|
84 ;
|
pascal@14340
|
85
|
pascal@14340
|
86 @@ -138,7 +138,7 @@
|
pascal@14340
|
87 '/'
|
pascal@14340
|
88 {
|
pascal@14340
|
89 $$ = new LocationPath;
|
pascal@14340
|
90 - PARSER->registerParseNode($$);
|
pascal@14340
|
91 + parser->registerParseNode($$);
|
pascal@14340
|
92 }
|
pascal@14340
|
93 |
|
pascal@14340
|
94 '/' RelativeLocationPath
|
pascal@14340
|
95 @@ -150,7 +150,7 @@
|
pascal@14340
|
96 {
|
pascal@14340
|
97 $$ = $2;
|
pascal@14340
|
98 $$->insertFirstStep($1);
|
pascal@14340
|
99 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
100 + parser->unregisterParseNode($1);
|
pascal@14340
|
101 }
|
pascal@14340
|
102 ;
|
pascal@14340
|
103
|
pascal@14340
|
104 @@ -159,22 +159,22 @@
|
pascal@14340
|
105 {
|
pascal@14340
|
106 $$ = new LocationPath;
|
pascal@14340
|
107 $$->appendStep($1);
|
pascal@14340
|
108 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
109 - PARSER->registerParseNode($$);
|
pascal@14340
|
110 + parser->unregisterParseNode($1);
|
pascal@14340
|
111 + parser->registerParseNode($$);
|
pascal@14340
|
112 }
|
pascal@14340
|
113 |
|
pascal@14340
|
114 RelativeLocationPath '/' Step
|
pascal@14340
|
115 {
|
pascal@14340
|
116 $$->appendStep($3);
|
pascal@14340
|
117 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
118 + parser->unregisterParseNode($3);
|
pascal@14340
|
119 }
|
pascal@14340
|
120 |
|
pascal@14340
|
121 RelativeLocationPath DescendantOrSelf Step
|
pascal@14340
|
122 {
|
pascal@14340
|
123 $$->appendStep($2);
|
pascal@14340
|
124 $$->appendStep($3);
|
pascal@14340
|
125 - PARSER->unregisterParseNode($2);
|
pascal@14340
|
126 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
127 + parser->unregisterParseNode($2);
|
pascal@14340
|
128 + parser->unregisterParseNode($3);
|
pascal@14340
|
129 }
|
pascal@14340
|
130 ;
|
pascal@14340
|
131
|
pascal@14340
|
132 @@ -183,58 +183,58 @@
|
pascal@14340
|
133 {
|
pascal@14340
|
134 if ($2) {
|
pascal@14340
|
135 $$ = new Step(Step::ChildAxis, *$1, *$2);
|
pascal@14340
|
136 - PARSER->deletePredicateVector($2);
|
pascal@14340
|
137 + parser->deletePredicateVector($2);
|
pascal@14340
|
138 } else
|
pascal@14340
|
139 $$ = new Step(Step::ChildAxis, *$1);
|
pascal@14340
|
140 - PARSER->deleteNodeTest($1);
|
pascal@14340
|
141 - PARSER->registerParseNode($$);
|
pascal@14340
|
142 + parser->deleteNodeTest($1);
|
pascal@14340
|
143 + parser->registerParseNode($$);
|
pascal@14340
|
144 }
|
pascal@14340
|
145 |
|
pascal@14340
|
146 NAMETEST OptionalPredicateList
|
pascal@14340
|
147 {
|
pascal@14340
|
148 String localName;
|
pascal@14340
|
149 String namespaceURI;
|
pascal@14340
|
150 - if (!PARSER->expandQName(*$1, localName, namespaceURI)) {
|
pascal@14340
|
151 - PARSER->m_gotNamespaceError = true;
|
pascal@14340
|
152 + if (!parser->expandQName(*$1, localName, namespaceURI)) {
|
pascal@14340
|
153 + parser->m_gotNamespaceError = true;
|
pascal@14340
|
154 YYABORT;
|
pascal@14340
|
155 }
|
pascal@14340
|
156
|
pascal@14340
|
157 if ($2) {
|
pascal@14340
|
158 $$ = new Step(Step::ChildAxis, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI), *$2);
|
pascal@14340
|
159 - PARSER->deletePredicateVector($2);
|
pascal@14340
|
160 + parser->deletePredicateVector($2);
|
pascal@14340
|
161 } else
|
pascal@14340
|
162 $$ = new Step(Step::ChildAxis, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI));
|
pascal@14340
|
163 - PARSER->deleteString($1);
|
pascal@14340
|
164 - PARSER->registerParseNode($$);
|
pascal@14340
|
165 + parser->deleteString($1);
|
pascal@14340
|
166 + parser->registerParseNode($$);
|
pascal@14340
|
167 }
|
pascal@14340
|
168 |
|
pascal@14340
|
169 AxisSpecifier NodeTest OptionalPredicateList
|
pascal@14340
|
170 {
|
pascal@14340
|
171 if ($3) {
|
pascal@14340
|
172 $$ = new Step($1, *$2, *$3);
|
pascal@14340
|
173 - PARSER->deletePredicateVector($3);
|
pascal@14340
|
174 + parser->deletePredicateVector($3);
|
pascal@14340
|
175 } else
|
pascal@14340
|
176 $$ = new Step($1, *$2);
|
pascal@14340
|
177 - PARSER->deleteNodeTest($2);
|
pascal@14340
|
178 - PARSER->registerParseNode($$);
|
pascal@14340
|
179 + parser->deleteNodeTest($2);
|
pascal@14340
|
180 + parser->registerParseNode($$);
|
pascal@14340
|
181 }
|
pascal@14340
|
182 |
|
pascal@14340
|
183 AxisSpecifier NAMETEST OptionalPredicateList
|
pascal@14340
|
184 {
|
pascal@14340
|
185 String localName;
|
pascal@14340
|
186 String namespaceURI;
|
pascal@14340
|
187 - if (!PARSER->expandQName(*$2, localName, namespaceURI)) {
|
pascal@14340
|
188 - PARSER->m_gotNamespaceError = true;
|
pascal@14340
|
189 + if (!parser->expandQName(*$2, localName, namespaceURI)) {
|
pascal@14340
|
190 + parser->m_gotNamespaceError = true;
|
pascal@14340
|
191 YYABORT;
|
pascal@14340
|
192 }
|
pascal@14340
|
193
|
pascal@14340
|
194 if ($3) {
|
pascal@14340
|
195 $$ = new Step($1, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI), *$3);
|
pascal@14340
|
196 - PARSER->deletePredicateVector($3);
|
pascal@14340
|
197 + parser->deletePredicateVector($3);
|
pascal@14340
|
198 } else
|
pascal@14340
|
199 $$ = new Step($1, Step::NodeTest(Step::NodeTest::NameTest, localName, namespaceURI));
|
pascal@14340
|
200 - PARSER->deleteString($2);
|
pascal@14340
|
201 - PARSER->registerParseNode($$);
|
pascal@14340
|
202 + parser->deleteString($2);
|
pascal@14340
|
203 + parser->registerParseNode($$);
|
pascal@14340
|
204 }
|
pascal@14340
|
205 |
|
pascal@14340
|
206 AbbreviatedStep
|
pascal@14340
|
207 @@ -259,23 +259,23 @@
|
pascal@14340
|
208 else if (*$1 == "comment")
|
pascal@14340
|
209 $$ = new Step::NodeTest(Step::NodeTest::CommentNodeTest);
|
pascal@14340
|
210
|
pascal@14340
|
211 - PARSER->deleteString($1);
|
pascal@14340
|
212 - PARSER->registerNodeTest($$);
|
pascal@14340
|
213 + parser->deleteString($1);
|
pascal@14340
|
214 + parser->registerNodeTest($$);
|
pascal@14340
|
215 }
|
pascal@14340
|
216 |
|
pascal@14340
|
217 PI '(' ')'
|
pascal@14340
|
218 {
|
pascal@14340
|
219 $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest);
|
pascal@14340
|
220 - PARSER->deleteString($1);
|
pascal@14340
|
221 - PARSER->registerNodeTest($$);
|
pascal@14340
|
222 + parser->deleteString($1);
|
pascal@14340
|
223 + parser->registerNodeTest($$);
|
pascal@14340
|
224 }
|
pascal@14340
|
225 |
|
pascal@14340
|
226 PI '(' LITERAL ')'
|
pascal@14340
|
227 {
|
pascal@14340
|
228 $$ = new Step::NodeTest(Step::NodeTest::ProcessingInstructionNodeTest, $3->stripWhiteSpace());
|
pascal@14340
|
229 - PARSER->deleteString($1);
|
pascal@14340
|
230 - PARSER->deleteString($3);
|
pascal@14340
|
231 - PARSER->registerNodeTest($$);
|
pascal@14340
|
232 + parser->deleteString($1);
|
pascal@14340
|
233 + parser->deleteString($3);
|
pascal@14340
|
234 + parser->registerNodeTest($$);
|
pascal@14340
|
235 }
|
pascal@14340
|
236 ;
|
pascal@14340
|
237
|
pascal@14340
|
238 @@ -293,14 +293,14 @@
|
pascal@14340
|
239 {
|
pascal@14340
|
240 $$ = new Vector<Predicate*>;
|
pascal@14340
|
241 $$->append(new Predicate($1));
|
pascal@14340
|
242 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
243 - PARSER->registerPredicateVector($$);
|
pascal@14340
|
244 + parser->unregisterParseNode($1);
|
pascal@14340
|
245 + parser->registerPredicateVector($$);
|
pascal@14340
|
246 }
|
pascal@14340
|
247 |
|
pascal@14340
|
248 PredicateList Predicate
|
pascal@14340
|
249 {
|
pascal@14340
|
250 $$->append(new Predicate($2));
|
pascal@14340
|
251 - PARSER->unregisterParseNode($2);
|
pascal@14340
|
252 + parser->unregisterParseNode($2);
|
pascal@14340
|
253 }
|
pascal@14340
|
254 ;
|
pascal@14340
|
255
|
pascal@14340
|
256 @@ -315,7 +315,7 @@
|
pascal@14340
|
257 SLASHSLASH
|
pascal@14340
|
258 {
|
pascal@14340
|
259 $$ = new Step(Step::DescendantOrSelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
|
pascal@14340
|
260 - PARSER->registerParseNode($$);
|
pascal@14340
|
261 + parser->registerParseNode($$);
|
pascal@14340
|
262 }
|
pascal@14340
|
263 ;
|
pascal@14340
|
264
|
pascal@14340
|
265 @@ -323,13 +323,13 @@
|
pascal@14340
|
266 '.'
|
pascal@14340
|
267 {
|
pascal@14340
|
268 $$ = new Step(Step::SelfAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
|
pascal@14340
|
269 - PARSER->registerParseNode($$);
|
pascal@14340
|
270 + parser->registerParseNode($$);
|
pascal@14340
|
271 }
|
pascal@14340
|
272 |
|
pascal@14340
|
273 DOTDOT
|
pascal@14340
|
274 {
|
pascal@14340
|
275 $$ = new Step(Step::ParentAxis, Step::NodeTest(Step::NodeTest::AnyNodeTest));
|
pascal@14340
|
276 - PARSER->registerParseNode($$);
|
pascal@14340
|
277 + parser->registerParseNode($$);
|
pascal@14340
|
278 }
|
pascal@14340
|
279 ;
|
pascal@14340
|
280
|
pascal@14340
|
281 @@ -337,8 +337,8 @@
|
pascal@14340
|
282 VARIABLEREFERENCE
|
pascal@14340
|
283 {
|
pascal@14340
|
284 $$ = new VariableReference(*$1);
|
pascal@14340
|
285 - PARSER->deleteString($1);
|
pascal@14340
|
286 - PARSER->registerParseNode($$);
|
pascal@14340
|
287 + parser->deleteString($1);
|
pascal@14340
|
288 + parser->registerParseNode($$);
|
pascal@14340
|
289 }
|
pascal@14340
|
290 |
|
pascal@14340
|
291 '(' Expr ')'
|
pascal@14340
|
292 @@ -349,15 +349,15 @@
|
pascal@14340
|
293 LITERAL
|
pascal@14340
|
294 {
|
pascal@14340
|
295 $$ = new StringExpression(*$1);
|
pascal@14340
|
296 - PARSER->deleteString($1);
|
pascal@14340
|
297 - PARSER->registerParseNode($$);
|
pascal@14340
|
298 + parser->deleteString($1);
|
pascal@14340
|
299 + parser->registerParseNode($$);
|
pascal@14340
|
300 }
|
pascal@14340
|
301 |
|
pascal@14340
|
302 NUMBER
|
pascal@14340
|
303 {
|
pascal@14340
|
304 $$ = new Number($1->toDouble());
|
pascal@14340
|
305 - PARSER->deleteString($1);
|
pascal@14340
|
306 - PARSER->registerParseNode($$);
|
pascal@14340
|
307 + parser->deleteString($1);
|
pascal@14340
|
308 + parser->registerParseNode($$);
|
pascal@14340
|
309 }
|
pascal@14340
|
310 |
|
pascal@14340
|
311 FunctionCall
|
pascal@14340
|
312 @@ -369,8 +369,8 @@
|
pascal@14340
|
313 $$ = createFunction(*$1);
|
pascal@14340
|
314 if (!$$)
|
pascal@14340
|
315 YYABORT;
|
pascal@14340
|
316 - PARSER->deleteString($1);
|
pascal@14340
|
317 - PARSER->registerParseNode($$);
|
pascal@14340
|
318 + parser->deleteString($1);
|
pascal@14340
|
319 + parser->registerParseNode($$);
|
pascal@14340
|
320 }
|
pascal@14340
|
321 |
|
pascal@14340
|
322 FUNCTIONNAME '(' ArgumentList ')'
|
pascal@14340
|
323 @@ -378,9 +378,9 @@
|
pascal@14340
|
324 $$ = createFunction(*$1, *$3);
|
pascal@14340
|
325 if (!$$)
|
pascal@14340
|
326 YYABORT;
|
pascal@14340
|
327 - PARSER->deleteString($1);
|
pascal@14340
|
328 - PARSER->deleteExpressionVector($3);
|
pascal@14340
|
329 - PARSER->registerParseNode($$);
|
pascal@14340
|
330 + parser->deleteString($1);
|
pascal@14340
|
331 + parser->deleteExpressionVector($3);
|
pascal@14340
|
332 + parser->registerParseNode($$);
|
pascal@14340
|
333 }
|
pascal@14340
|
334 ;
|
pascal@14340
|
335
|
pascal@14340
|
336 @@ -389,14 +389,14 @@
|
pascal@14340
|
337 {
|
pascal@14340
|
338 $$ = new Vector<Expression*>;
|
pascal@14340
|
339 $$->append($1);
|
pascal@14340
|
340 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
341 - PARSER->registerExpressionVector($$);
|
pascal@14340
|
342 + parser->unregisterParseNode($1);
|
pascal@14340
|
343 + parser->registerExpressionVector($$);
|
pascal@14340
|
344 }
|
pascal@14340
|
345 |
|
pascal@14340
|
346 ArgumentList ',' Argument
|
pascal@14340
|
347 {
|
pascal@14340
|
348 $$->append($3);
|
pascal@14340
|
349 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
350 + parser->unregisterParseNode($3);
|
pascal@14340
|
351 }
|
pascal@14340
|
352 ;
|
pascal@14340
|
353
|
pascal@14340
|
354 @@ -412,9 +412,9 @@
|
pascal@14340
|
355 $$ = new Union;
|
pascal@14340
|
356 $$->addSubExpression($1);
|
pascal@14340
|
357 $$->addSubExpression($3);
|
pascal@14340
|
358 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
359 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
360 - PARSER->registerParseNode($$);
|
pascal@14340
|
361 + parser->unregisterParseNode($1);
|
pascal@14340
|
362 + parser->unregisterParseNode($3);
|
pascal@14340
|
363 + parser->registerParseNode($$);
|
pascal@14340
|
364 }
|
pascal@14340
|
365 ;
|
pascal@14340
|
366
|
pascal@14340
|
367 @@ -430,9 +430,9 @@
|
pascal@14340
|
368 {
|
pascal@14340
|
369 $3->setAbsolute(true);
|
pascal@14340
|
370 $$ = new Path(static_cast<Filter*>($1), $3);
|
pascal@14340
|
371 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
372 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
373 - PARSER->registerParseNode($$);
|
pascal@14340
|
374 + parser->unregisterParseNode($1);
|
pascal@14340
|
375 + parser->unregisterParseNode($3);
|
pascal@14340
|
376 + parser->registerParseNode($$);
|
pascal@14340
|
377 }
|
pascal@14340
|
378 |
|
pascal@14340
|
379 FilterExpr DescendantOrSelf RelativeLocationPath
|
pascal@14340
|
380 @@ -440,10 +440,10 @@
|
pascal@14340
|
381 $3->insertFirstStep($2);
|
pascal@14340
|
382 $3->setAbsolute(true);
|
pascal@14340
|
383 $$ = new Path(static_cast<Filter*>($1), $3);
|
pascal@14340
|
384 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
385 - PARSER->unregisterParseNode($2);
|
pascal@14340
|
386 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
387 - PARSER->registerParseNode($$);
|
pascal@14340
|
388 + parser->unregisterParseNode($1);
|
pascal@14340
|
389 + parser->unregisterParseNode($2);
|
pascal@14340
|
390 + parser->unregisterParseNode($3);
|
pascal@14340
|
391 + parser->registerParseNode($$);
|
pascal@14340
|
392 }
|
pascal@14340
|
393 ;
|
pascal@14340
|
394
|
pascal@14340
|
395 @@ -453,9 +453,9 @@
|
pascal@14340
|
396 PrimaryExpr PredicateList
|
pascal@14340
|
397 {
|
pascal@14340
|
398 $$ = new Filter($1, *$2);
|
pascal@14340
|
399 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
400 - PARSER->deletePredicateVector($2);
|
pascal@14340
|
401 - PARSER->registerParseNode($$);
|
pascal@14340
|
402 + parser->unregisterParseNode($1);
|
pascal@14340
|
403 + parser->deletePredicateVector($2);
|
pascal@14340
|
404 + parser->registerParseNode($$);
|
pascal@14340
|
405 }
|
pascal@14340
|
406 ;
|
pascal@14340
|
407
|
pascal@14340
|
408 @@ -465,9 +465,9 @@
|
pascal@14340
|
409 OrExpr OR AndExpr
|
pascal@14340
|
410 {
|
pascal@14340
|
411 $$ = new LogicalOp(LogicalOp::OP_Or, $1, $3);
|
pascal@14340
|
412 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
413 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
414 - PARSER->registerParseNode($$);
|
pascal@14340
|
415 + parser->unregisterParseNode($1);
|
pascal@14340
|
416 + parser->unregisterParseNode($3);
|
pascal@14340
|
417 + parser->registerParseNode($$);
|
pascal@14340
|
418 }
|
pascal@14340
|
419 ;
|
pascal@14340
|
420
|
pascal@14340
|
421 @@ -477,9 +477,9 @@
|
pascal@14340
|
422 AndExpr AND EqualityExpr
|
pascal@14340
|
423 {
|
pascal@14340
|
424 $$ = new LogicalOp(LogicalOp::OP_And, $1, $3);
|
pascal@14340
|
425 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
426 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
427 - PARSER->registerParseNode($$);
|
pascal@14340
|
428 + parser->unregisterParseNode($1);
|
pascal@14340
|
429 + parser->unregisterParseNode($3);
|
pascal@14340
|
430 + parser->registerParseNode($$);
|
pascal@14340
|
431 }
|
pascal@14340
|
432 ;
|
pascal@14340
|
433
|
pascal@14340
|
434 @@ -489,9 +489,9 @@
|
pascal@14340
|
435 EqualityExpr EQOP RelationalExpr
|
pascal@14340
|
436 {
|
pascal@14340
|
437 $$ = new EqTestOp($2, $1, $3);
|
pascal@14340
|
438 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
439 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
440 - PARSER->registerParseNode($$);
|
pascal@14340
|
441 + parser->unregisterParseNode($1);
|
pascal@14340
|
442 + parser->unregisterParseNode($3);
|
pascal@14340
|
443 + parser->registerParseNode($$);
|
pascal@14340
|
444 }
|
pascal@14340
|
445 ;
|
pascal@14340
|
446
|
pascal@14340
|
447 @@ -501,9 +501,9 @@
|
pascal@14340
|
448 RelationalExpr RELOP AdditiveExpr
|
pascal@14340
|
449 {
|
pascal@14340
|
450 $$ = new EqTestOp($2, $1, $3);
|
pascal@14340
|
451 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
452 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
453 - PARSER->registerParseNode($$);
|
pascal@14340
|
454 + parser->unregisterParseNode($1);
|
pascal@14340
|
455 + parser->unregisterParseNode($3);
|
pascal@14340
|
456 + parser->registerParseNode($$);
|
pascal@14340
|
457 }
|
pascal@14340
|
458 ;
|
pascal@14340
|
459
|
pascal@14340
|
460 @@ -513,17 +513,17 @@
|
pascal@14340
|
461 AdditiveExpr PLUS MultiplicativeExpr
|
pascal@14340
|
462 {
|
pascal@14340
|
463 $$ = new NumericOp(NumericOp::OP_Add, $1, $3);
|
pascal@14340
|
464 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
465 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
466 - PARSER->registerParseNode($$);
|
pascal@14340
|
467 + parser->unregisterParseNode($1);
|
pascal@14340
|
468 + parser->unregisterParseNode($3);
|
pascal@14340
|
469 + parser->registerParseNode($$);
|
pascal@14340
|
470 }
|
pascal@14340
|
471 |
|
pascal@14340
|
472 AdditiveExpr MINUS MultiplicativeExpr
|
pascal@14340
|
473 {
|
pascal@14340
|
474 $$ = new NumericOp(NumericOp::OP_Sub, $1, $3);
|
pascal@14340
|
475 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
476 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
477 - PARSER->registerParseNode($$);
|
pascal@14340
|
478 + parser->unregisterParseNode($1);
|
pascal@14340
|
479 + parser->unregisterParseNode($3);
|
pascal@14340
|
480 + parser->registerParseNode($$);
|
pascal@14340
|
481 }
|
pascal@14340
|
482 ;
|
pascal@14340
|
483
|
pascal@14340
|
484 @@ -533,9 +533,9 @@
|
pascal@14340
|
485 MultiplicativeExpr MULOP UnaryExpr
|
pascal@14340
|
486 {
|
pascal@14340
|
487 $$ = new NumericOp($2, $1, $3);
|
pascal@14340
|
488 - PARSER->unregisterParseNode($1);
|
pascal@14340
|
489 - PARSER->unregisterParseNode($3);
|
pascal@14340
|
490 - PARSER->registerParseNode($$);
|
pascal@14340
|
491 + parser->unregisterParseNode($1);
|
pascal@14340
|
492 + parser->unregisterParseNode($3);
|
pascal@14340
|
493 + parser->registerParseNode($$);
|
pascal@14340
|
494 }
|
pascal@14340
|
495 ;
|
pascal@14340
|
496
|
pascal@14340
|
497 @@ -546,8 +546,8 @@
|
pascal@14340
|
498 {
|
pascal@14340
|
499 $$ = new Negative;
|
pascal@14340
|
500 $$->addSubExpression($2);
|
pascal@14340
|
501 - PARSER->unregisterParseNode($2);
|
pascal@14340
|
502 - PARSER->registerParseNode($$);
|
pascal@14340
|
503 + parser->unregisterParseNode($2);
|
pascal@14340
|
504 + parser->registerParseNode($$);
|
pascal@14340
|
505 }
|
pascal@14340
|
506 ;
|
pascal@14340
|
507
|
pascal@14340
|
508 --- Source/WebCore/xml/XPathParser.cpp
|
pascal@14340
|
509 +++ Source/WebCore/xml/XPathParser.cpp.NEW
|
pascal@14340
|
510 @@ -32,20 +32,17 @@
|
pascal@14340
|
511 #include "XPathEvaluator.h"
|
pascal@14340
|
512 #include "XPathException.h"
|
pascal@14340
|
513 #include "XPathNSResolver.h"
|
pascal@14340
|
514 +#include "XPathPath.h"
|
pascal@14340
|
515 #include "XPathStep.h"
|
pascal@14340
|
516 #include <wtf/StdLibExtras.h>
|
pascal@14340
|
517 #include <wtf/text/StringHash.h>
|
pascal@14340
|
518
|
pascal@14340
|
519 -int xpathyyparse(void*);
|
pascal@14340
|
520 -
|
pascal@14340
|
521 +using namespace WebCore;
|
pascal@14340
|
522 using namespace WTF;
|
pascal@14340
|
523 using namespace Unicode;
|
pascal@14340
|
524 +using namespace XPath;
|
pascal@14340
|
525
|
pascal@14340
|
526 -namespace WebCore {
|
pascal@14340
|
527 -namespace XPath {
|
pascal@14340
|
528 -
|
pascal@14340
|
529 -class LocationPath;
|
pascal@14340
|
530 -
|
pascal@14340
|
531 +extern int xpathyyparse(WebCore::XPath::Parser*);
|
pascal@14340
|
532 #include "XPathGrammar.h"
|
pascal@14340
|
533
|
pascal@14340
|
534 Parser* Parser::currentParser = 0;
|
pascal@14340
|
535 @@ -630,5 +627,3 @@
|
pascal@14340
|
536 delete t;
|
pascal@14340
|
537 }
|
pascal@14340
|
538
|
pascal@14340
|
539 -}
|
pascal@14340
|
540 -}
|