| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright 2005 Frerich Raabe <raabe@kde.org> | 2 * Copyright 2005 Frerich Raabe <raabe@kde.org> |
| 3 * Copyright (C) 2006 Apple Inc. All rights reserved. | 3 * Copyright (C) 2006 Apple Inc. All rights reserved. |
| 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> | 4 * Copyright (C) 2007 Alexey Proskuryakov <ap@webkit.org> |
| 5 * | 5 * |
| 6 * Redistribution and use in source and binary forms, with or without | 6 * Redistribution and use in source and binary forms, with or without |
| 7 * modification, are permitted provided that the following conditions | 7 * modification, are permitted provided that the following conditions |
| 8 * are met: | 8 * are met: |
| 9 * | 9 * |
| 10 * 1. Redistributions of source code must retain the above copyright | 10 * 1. Redistributions of source code must retain the above copyright |
| (...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 56 | 56 |
| 57 %union | 57 %union |
| 58 { | 58 { |
| 59 Step::Axis axis; | 59 Step::Axis axis; |
| 60 Step::NodeTest* nodeTest; | 60 Step::NodeTest* nodeTest; |
| 61 NumericOp::Opcode numop; | 61 NumericOp::Opcode numop; |
| 62 EqTestOp::Opcode eqop; | 62 EqTestOp::Opcode eqop; |
| 63 String* str; | 63 String* str; |
| 64 Expression* expr; | 64 Expression* expr; |
| 65 Vector<Predicate*>* predList; | 65 Vector<Predicate*>* predList; |
| 66 Vector<Expression*>* argList; | 66 Vector<OwnPtr<Expression> >* argList; |
| 67 Step* step; | 67 Step* step; |
| 68 LocationPath* locationPath; | 68 LocationPath* locationPath; |
| 69 } | 69 } |
| 70 | 70 |
| 71 %{ | 71 %{ |
| 72 | 72 |
| 73 static int xpathyylex(YYSTYPE* yylval) { return Parser::current()->lex(yylval);
} | 73 static int xpathyylex(YYSTYPE* yylval) { return Parser::current()->lex(yylval);
} |
| 74 static void xpathyyerror(void*, const char*) { } | 74 static void xpathyyerror(void*, const char*) { } |
| 75 | 75 |
| 76 %} | 76 %} |
| (...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 285 $$ = 0; | 285 $$ = 0; |
| 286 } | 286 } |
| 287 | | 287 | |
| 288 PredicateList | 288 PredicateList |
| 289 ; | 289 ; |
| 290 | 290 |
| 291 PredicateList: | 291 PredicateList: |
| 292 Predicate | 292 Predicate |
| 293 { | 293 { |
| 294 $$ = new Vector<Predicate*>; | 294 $$ = new Vector<Predicate*>; |
| 295 $$->append(new Predicate($1)); | 295 $$->append(new Predicate(adoptPtr($1))); |
| 296 parser->unregisterParseNode($1); | 296 parser->unregisterParseNode($1); |
| 297 parser->registerPredicateVector($$); | 297 parser->registerPredicateVector($$); |
| 298 } | 298 } |
| 299 | | 299 | |
| 300 PredicateList Predicate | 300 PredicateList Predicate |
| 301 { | 301 { |
| 302 $$->append(new Predicate($2)); | 302 $$->append(new Predicate(adoptPtr($2))); |
| 303 parser->unregisterParseNode($2); | 303 parser->unregisterParseNode($2); |
| 304 } | 304 } |
| 305 ; | 305 ; |
| 306 | 306 |
| 307 Predicate: | 307 Predicate: |
| 308 '[' Expr ']' | 308 '[' Expr ']' |
| 309 { | 309 { |
| 310 $$ = $2; | 310 $$ = $2; |
| 311 } | 311 } |
| 312 ; | 312 ; |
| (...skipping 67 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 380 YYABORT; | 380 YYABORT; |
| 381 parser->deleteString($1); | 381 parser->deleteString($1); |
| 382 parser->deleteExpressionVector($3); | 382 parser->deleteExpressionVector($3); |
| 383 parser->registerParseNode($$); | 383 parser->registerParseNode($$); |
| 384 } | 384 } |
| 385 ; | 385 ; |
| 386 | 386 |
| 387 ArgumentList: | 387 ArgumentList: |
| 388 Argument | 388 Argument |
| 389 { | 389 { |
| 390 $$ = new Vector<Expression*>; | 390 $$ = new Vector<OwnPtr<Expression> >; |
| 391 $$->append($1); | 391 $$->append(adoptPtr($1)); |
| 392 parser->unregisterParseNode($1); | 392 parser->unregisterParseNode($1); |
| 393 parser->registerExpressionVector($$); | 393 parser->registerExpressionVector($$); |
| 394 } | 394 } |
| 395 | | 395 | |
| 396 ArgumentList ',' Argument | 396 ArgumentList ',' Argument |
| 397 { | 397 { |
| 398 $$->append($3); | 398 $$->append(adoptPtr($3)); |
| 399 parser->unregisterParseNode($3); | 399 parser->unregisterParseNode($3); |
| 400 } | 400 } |
| 401 ; | 401 ; |
| 402 | 402 |
| 403 Argument: | 403 Argument: |
| 404 Expr | 404 Expr |
| 405 ; | 405 ; |
| 406 | 406 |
| 407 UnionExpr: | 407 UnionExpr: |
| 408 PathExpr | 408 PathExpr |
| 409 | | 409 | |
| 410 UnionExpr '|' PathExpr | 410 UnionExpr '|' PathExpr |
| 411 { | 411 { |
| 412 $$ = new Union; | 412 $$ = new Union; |
| 413 $$->addSubExpression($1); | 413 $$->addSubExpression(adoptPtr($1)); |
| 414 $$->addSubExpression($3); | 414 $$->addSubExpression(adoptPtr($3)); |
| 415 parser->unregisterParseNode($1); | 415 parser->unregisterParseNode($1); |
| 416 parser->unregisterParseNode($3); | 416 parser->unregisterParseNode($3); |
| 417 parser->registerParseNode($$); | 417 parser->registerParseNode($$); |
| 418 } | 418 } |
| 419 ; | 419 ; |
| 420 | 420 |
| 421 PathExpr: | 421 PathExpr: |
| 422 LocationPath | 422 LocationPath |
| 423 { | 423 { |
| 424 $$ = $1; | 424 $$ = $1; |
| (...skipping 20 matching lines...) Expand all Loading... |
| 445 parser->unregisterParseNode($3); | 445 parser->unregisterParseNode($3); |
| 446 parser->registerParseNode($$); | 446 parser->registerParseNode($$); |
| 447 } | 447 } |
| 448 ; | 448 ; |
| 449 | 449 |
| 450 FilterExpr: | 450 FilterExpr: |
| 451 PrimaryExpr | 451 PrimaryExpr |
| 452 | | 452 | |
| 453 PrimaryExpr PredicateList | 453 PrimaryExpr PredicateList |
| 454 { | 454 { |
| 455 $$ = new Filter($1, *$2); | 455 $$ = new Filter(adoptPtr($1), *$2); |
| 456 parser->unregisterParseNode($1); | 456 parser->unregisterParseNode($1); |
| 457 parser->deletePredicateVector($2); | 457 parser->deletePredicateVector($2); |
| 458 parser->registerParseNode($$); | 458 parser->registerParseNode($$); |
| 459 } | 459 } |
| 460 ; | 460 ; |
| 461 | 461 |
| 462 OrExpr: | 462 OrExpr: |
| 463 AndExpr | 463 AndExpr |
| 464 | | 464 | |
| 465 OrExpr OR AndExpr | 465 OrExpr OR AndExpr |
| 466 { | 466 { |
| 467 $$ = new LogicalOp(LogicalOp::OP_Or, $1, $3); | 467 $$ = new LogicalOp(LogicalOp::OP_Or, adoptPtr($1), adoptPtr($3)); |
| 468 parser->unregisterParseNode($1); | 468 parser->unregisterParseNode($1); |
| 469 parser->unregisterParseNode($3); | 469 parser->unregisterParseNode($3); |
| 470 parser->registerParseNode($$); | 470 parser->registerParseNode($$); |
| 471 } | 471 } |
| 472 ; | 472 ; |
| 473 | 473 |
| 474 AndExpr: | 474 AndExpr: |
| 475 EqualityExpr | 475 EqualityExpr |
| 476 | | 476 | |
| 477 AndExpr AND EqualityExpr | 477 AndExpr AND EqualityExpr |
| 478 { | 478 { |
| 479 $$ = new LogicalOp(LogicalOp::OP_And, $1, $3); | 479 $$ = new LogicalOp(LogicalOp::OP_And, adoptPtr($1), adoptPtr($3)); |
| 480 parser->unregisterParseNode($1); | 480 parser->unregisterParseNode($1); |
| 481 parser->unregisterParseNode($3); | 481 parser->unregisterParseNode($3); |
| 482 parser->registerParseNode($$); | 482 parser->registerParseNode($$); |
| 483 } | 483 } |
| 484 ; | 484 ; |
| 485 | 485 |
| 486 EqualityExpr: | 486 EqualityExpr: |
| 487 RelationalExpr | 487 RelationalExpr |
| 488 | | 488 | |
| 489 EqualityExpr EQOP RelationalExpr | 489 EqualityExpr EQOP RelationalExpr |
| 490 { | 490 { |
| 491 $$ = new EqTestOp($2, $1, $3); | 491 $$ = new EqTestOp($2, adoptPtr($1), adoptPtr($3)); |
| 492 parser->unregisterParseNode($1); | 492 parser->unregisterParseNode($1); |
| 493 parser->unregisterParseNode($3); | 493 parser->unregisterParseNode($3); |
| 494 parser->registerParseNode($$); | 494 parser->registerParseNode($$); |
| 495 } | 495 } |
| 496 ; | 496 ; |
| 497 | 497 |
| 498 RelationalExpr: | 498 RelationalExpr: |
| 499 AdditiveExpr | 499 AdditiveExpr |
| 500 | | 500 | |
| 501 RelationalExpr RELOP AdditiveExpr | 501 RelationalExpr RELOP AdditiveExpr |
| 502 { | 502 { |
| 503 $$ = new EqTestOp($2, $1, $3); | 503 $$ = new EqTestOp($2, adoptPtr($1), adoptPtr($3)); |
| 504 parser->unregisterParseNode($1); | 504 parser->unregisterParseNode($1); |
| 505 parser->unregisterParseNode($3); | 505 parser->unregisterParseNode($3); |
| 506 parser->registerParseNode($$); | 506 parser->registerParseNode($$); |
| 507 } | 507 } |
| 508 ; | 508 ; |
| 509 | 509 |
| 510 AdditiveExpr: | 510 AdditiveExpr: |
| 511 MultiplicativeExpr | 511 MultiplicativeExpr |
| 512 | | 512 | |
| 513 AdditiveExpr PLUS MultiplicativeExpr | 513 AdditiveExpr PLUS MultiplicativeExpr |
| 514 { | 514 { |
| 515 $$ = new NumericOp(NumericOp::OP_Add, $1, $3); | 515 $$ = new NumericOp(NumericOp::OP_Add, adoptPtr($1), adoptPtr($3)); |
| 516 parser->unregisterParseNode($1); | 516 parser->unregisterParseNode($1); |
| 517 parser->unregisterParseNode($3); | 517 parser->unregisterParseNode($3); |
| 518 parser->registerParseNode($$); | 518 parser->registerParseNode($$); |
| 519 } | 519 } |
| 520 | | 520 | |
| 521 AdditiveExpr MINUS MultiplicativeExpr | 521 AdditiveExpr MINUS MultiplicativeExpr |
| 522 { | 522 { |
| 523 $$ = new NumericOp(NumericOp::OP_Sub, $1, $3); | 523 $$ = new NumericOp(NumericOp::OP_Sub, adoptPtr($1), adoptPtr($3)); |
| 524 parser->unregisterParseNode($1); | 524 parser->unregisterParseNode($1); |
| 525 parser->unregisterParseNode($3); | 525 parser->unregisterParseNode($3); |
| 526 parser->registerParseNode($$); | 526 parser->registerParseNode($$); |
| 527 } | 527 } |
| 528 ; | 528 ; |
| 529 | 529 |
| 530 MultiplicativeExpr: | 530 MultiplicativeExpr: |
| 531 UnaryExpr | 531 UnaryExpr |
| 532 | | 532 | |
| 533 MultiplicativeExpr MULOP UnaryExpr | 533 MultiplicativeExpr MULOP UnaryExpr |
| 534 { | 534 { |
| 535 $$ = new NumericOp($2, $1, $3); | 535 $$ = new NumericOp($2, adoptPtr($1), adoptPtr($3)); |
| 536 parser->unregisterParseNode($1); | 536 parser->unregisterParseNode($1); |
| 537 parser->unregisterParseNode($3); | 537 parser->unregisterParseNode($3); |
| 538 parser->registerParseNode($$); | 538 parser->registerParseNode($$); |
| 539 } | 539 } |
| 540 ; | 540 ; |
| 541 | 541 |
| 542 UnaryExpr: | 542 UnaryExpr: |
| 543 UnionExpr | 543 UnionExpr |
| 544 | | 544 | |
| 545 MINUS UnaryExpr | 545 MINUS UnaryExpr |
| 546 { | 546 { |
| 547 $$ = new Negative; | 547 $$ = new Negative; |
| 548 $$->addSubExpression($2); | 548 $$->addSubExpression(adoptPtr($2)); |
| 549 parser->unregisterParseNode($2); | 549 parser->unregisterParseNode($2); |
| 550 parser->registerParseNode($$); | 550 parser->registerParseNode($$); |
| 551 } | 551 } |
| 552 ; | 552 ; |
| 553 | 553 |
| 554 %% | 554 %% |
| OLD | NEW |