Changeset 1024 in webkit for trunk/JavaScriptCore/kjs/nodes.h
- Timestamp:
- Apr 15, 2002, 4:43:21 PM (23 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/JavaScriptCore/kjs/nodes.h
r798 r1024 20 20 * Boston, MA 02111-1307, USA. 21 21 * 22 * $Id$23 22 */ 24 23 … … 39 38 class SourceElementsNode; 40 39 class ProgramNode; 40 class SourceStream; 41 41 42 42 enum Operator { OpEqual, … … 76 76 virtual ~Node(); 77 77 virtual Value evaluate(ExecState *exec) = 0; 78 UString toString() const; 79 virtual void streamTo(SourceStream &s) const = 0; 78 80 virtual void processVarDecls(ExecState */*exec*/) {} 79 81 int lineNo() const { return line; } … … 134 136 NullNode() {} 135 137 Value evaluate(ExecState *exec); 138 virtual void streamTo(SourceStream &s) const; 136 139 }; 137 140 … … 140 143 BooleanNode(bool v) : value(v) {} 141 144 Value evaluate(ExecState *exec); 145 virtual void streamTo(SourceStream &s) const; 142 146 private: 143 147 bool value; … … 148 152 NumberNode(double v) : value(v) { } 149 153 Value evaluate(ExecState *exec); 154 virtual void streamTo(SourceStream &s) const; 150 155 private: 151 156 double value; … … 156 161 StringNode(const UString *v) { value = *v; } 157 162 Value evaluate(ExecState *exec); 163 virtual void streamTo(SourceStream &s) const; 158 164 private: 159 165 UString value; … … 165 171 : pattern(p), flags(f) { } 166 172 Value evaluate(ExecState *exec); 173 virtual void streamTo(SourceStream &s) const; 167 174 private: 168 175 UString pattern, flags; … … 173 180 ThisNode() {} 174 181 Value evaluate(ExecState *exec); 182 virtual void streamTo(SourceStream &s) const; 175 183 }; 176 184 … … 179 187 ResolveNode(const UString *s) : ident(*s) { } 180 188 Value evaluate(ExecState *exec); 189 virtual void streamTo(SourceStream &s) const; 181 190 private: 182 191 UString ident; … … 190 199 virtual ~GroupNode(); 191 200 Value evaluate(ExecState *exec); 201 virtual void streamTo(SourceStream &s) const { group->streamTo(s); } 192 202 private: 193 203 Node *group; … … 201 211 virtual ~ElisionNode(); 202 212 Value evaluate(ExecState *exec); 213 virtual void streamTo(SourceStream &s) const; 203 214 private: 204 215 ElisionNode *elision; … … 207 218 class ElementNode : public Node { 208 219 public: 209 ElementNode(ElisionNode *e, Node *n) : list(0 l), elision(e), node(n) { }220 ElementNode(ElisionNode *e, Node *n) : list(0L), elision(e), node(n) { } 210 221 ElementNode(ElementNode *l, ElisionNode *e, Node *n) 211 222 : list(l), elision(e), node(n) { } … … 214 225 virtual ~ElementNode(); 215 226 Value evaluate(ExecState *exec); 227 virtual void streamTo(SourceStream &s) const; 216 228 private: 217 229 ElementNode *list; … … 231 243 virtual ~ArrayNode(); 232 244 Value evaluate(ExecState *exec); 245 virtual void streamTo(SourceStream &s) const; 233 246 private: 234 247 ElementNode *element; … … 244 257 virtual ~ObjectLiteralNode(); 245 258 Value evaluate(ExecState *exec); 259 virtual void streamTo(SourceStream &s) const; 246 260 private: 247 261 Node *list; … … 256 270 virtual ~PropertyValueNode(); 257 271 Value evaluate(ExecState *exec); 272 virtual void streamTo(SourceStream &s) const; 258 273 private: 259 274 Node *name, *assign, *list; … … 265 280 PropertyNode(const UString *s) : str(*s) { } 266 281 Value evaluate(ExecState *exec); 282 virtual void streamTo(SourceStream &s) const; 267 283 private: 268 284 double numeric; … … 277 293 virtual ~AccessorNode1(); 278 294 Value evaluate(ExecState *exec); 295 virtual void streamTo(SourceStream &s) const; 279 296 private: 280 297 Node *expr1; … … 289 306 virtual ~AccessorNode2(); 290 307 Value evaluate(ExecState *exec); 308 virtual void streamTo(SourceStream &s) const; 291 309 private: 292 310 Node *expr; … … 303 321 Value evaluate(ExecState *exec); 304 322 List evaluateList(ExecState *exec); 323 virtual void streamTo(SourceStream &s) const; 305 324 private: 306 325 ArgumentListNode *list; … … 316 335 Value evaluate(ExecState *exec); 317 336 List evaluateList(ExecState *exec); 337 virtual void streamTo(SourceStream &s) const; 318 338 private: 319 339 ArgumentListNode *list; … … 328 348 virtual ~NewExprNode(); 329 349 Value evaluate(ExecState *exec); 350 virtual void streamTo(SourceStream &s) const; 330 351 private: 331 352 Node *expr; … … 340 361 virtual ~FunctionCallNode(); 341 362 Value evaluate(ExecState *exec); 363 virtual void streamTo(SourceStream &s) const; 342 364 private: 343 365 Node *expr; … … 352 374 virtual ~PostfixNode(); 353 375 Value evaluate(ExecState *exec); 376 virtual void streamTo(SourceStream &s) const; 354 377 private: 355 378 Node *expr; … … 364 387 virtual ~DeleteNode(); 365 388 Value evaluate(ExecState *exec); 389 virtual void streamTo(SourceStream &s) const; 366 390 private: 367 391 Node *expr; … … 375 399 virtual ~VoidNode(); 376 400 Value evaluate(ExecState *exec); 401 virtual void streamTo(SourceStream &s) const; 377 402 private: 378 403 Node *expr; … … 386 411 virtual ~TypeOfNode(); 387 412 Value evaluate(ExecState *exec); 413 virtual void streamTo(SourceStream &s) const; 388 414 private: 389 415 Node *expr; … … 397 423 virtual ~PrefixNode(); 398 424 Value evaluate(ExecState *exec); 425 virtual void streamTo(SourceStream &s) const; 399 426 private: 400 427 Operator oper; … … 409 436 virtual ~UnaryPlusNode(); 410 437 Value evaluate(ExecState *exec); 438 virtual void streamTo(SourceStream &s) const; 411 439 private: 412 440 Node *expr; … … 420 448 virtual ~NegateNode(); 421 449 Value evaluate(ExecState *exec); 450 virtual void streamTo(SourceStream &s) const; 422 451 private: 423 452 Node *expr; … … 431 460 virtual ~BitwiseNotNode(); 432 461 Value evaluate(ExecState *exec); 462 virtual void streamTo(SourceStream &s) const; 433 463 private: 434 464 Node *expr; … … 442 472 virtual ~LogicalNotNode(); 443 473 Value evaluate(ExecState *exec); 474 virtual void streamTo(SourceStream &s) const; 444 475 private: 445 476 Node *expr; … … 453 484 virtual ~MultNode(); 454 485 Value evaluate(ExecState *exec); 486 virtual void streamTo(SourceStream &s) const; 455 487 private: 456 488 Node *term1, *term2; … … 465 497 virtual ~AddNode(); 466 498 Value evaluate(ExecState *exec); 499 virtual void streamTo(SourceStream &s) const; 467 500 private: 468 501 Node *term1, *term2; … … 478 511 virtual ~ShiftNode(); 479 512 Value evaluate(ExecState *exec); 513 virtual void streamTo(SourceStream &s) const; 480 514 private: 481 515 Node *term1, *term2; … … 491 525 virtual ~RelationalNode(); 492 526 Value evaluate(ExecState *exec); 527 virtual void streamTo(SourceStream &s) const; 493 528 private: 494 529 Node *expr1, *expr2; … … 504 539 virtual ~EqualNode(); 505 540 Value evaluate(ExecState *exec); 541 virtual void streamTo(SourceStream &s) const; 506 542 private: 507 543 Node *expr1, *expr2; … … 517 553 virtual ~BitOperNode(); 518 554 Value evaluate(ExecState *exec); 555 virtual void streamTo(SourceStream &s) const; 519 556 private: 520 557 Node *expr1, *expr2; … … 522 559 }; 523 560 524 /** expr1 && expr2, expr1 || expr2 */ 561 /** 562 * expr1 && expr2, expr1 || expr2 563 */ 525 564 class BinaryLogicalNode : public Node { 526 565 public: … … 531 570 virtual ~BinaryLogicalNode(); 532 571 Value evaluate(ExecState *exec); 572 virtual void streamTo(SourceStream &s) const; 533 573 private: 534 574 Node *expr1, *expr2; … … 536 576 }; 537 577 538 /** The ternary operator, "logical ? expr1 : expr2" */ 578 /** 579 * The ternary operator, "logical ? expr1 : expr2" 580 */ 539 581 class ConditionalNode : public Node { 540 582 public: … … 545 587 virtual ~ConditionalNode(); 546 588 Value evaluate(ExecState *exec); 589 virtual void streamTo(SourceStream &s) const; 547 590 private: 548 591 Node *logical, *expr1, *expr2; … … 556 599 virtual ~AssignNode(); 557 600 Value evaluate(ExecState *exec); 601 virtual void streamTo(SourceStream &s) const; 558 602 private: 559 603 Node *left; … … 569 613 virtual ~CommaNode(); 570 614 Value evaluate(ExecState *exec); 615 virtual void streamTo(SourceStream &s) const; 571 616 private: 572 617 Node *expr1, *expr2; … … 582 627 virtual Completion execute(ExecState *exec); 583 628 virtual void processVarDecls(ExecState *exec); 629 virtual void streamTo(SourceStream &s) const; 584 630 private: 585 631 StatementNode *statement; … … 594 640 virtual ~AssignExprNode(); 595 641 Value evaluate(ExecState *exec); 642 virtual void streamTo(SourceStream &s) const; 596 643 private: 597 644 Node *expr; … … 606 653 Value evaluate(ExecState *exec); 607 654 virtual void processVarDecls(ExecState *exec); 655 virtual void streamTo(SourceStream &s) const; 608 656 private: 609 657 UString ident; … … 620 668 Value evaluate(ExecState *exec); 621 669 virtual void processVarDecls(ExecState *exec); 670 virtual void streamTo(SourceStream &s) const; 622 671 private: 623 672 Node *list; … … 633 682 virtual Completion execute(ExecState *exec); 634 683 virtual void processVarDecls(ExecState *exec); 684 virtual void streamTo(SourceStream &s) const; 635 685 private: 636 686 VarDeclListNode *list; … … 645 695 virtual Completion execute(ExecState *exec); 646 696 virtual void processVarDecls(ExecState *exec); 697 virtual void streamTo(SourceStream &s) const; 647 698 private: 648 699 SourceElementsNode *source; … … 653 704 EmptyStatementNode() { } // debug 654 705 virtual Completion execute(ExecState *exec); 706 virtual void streamTo(SourceStream &s) const; 655 707 }; 656 708 … … 662 714 virtual ~ExprStatementNode(); 663 715 virtual Completion execute(ExecState *exec); 716 virtual void streamTo(SourceStream &s) const; 664 717 private: 665 718 Node *expr; … … 675 728 virtual Completion execute(ExecState *exec); 676 729 virtual void processVarDecls(ExecState *exec); 730 virtual void streamTo(SourceStream &s) const; 677 731 private: 678 732 Node *expr; … … 688 742 virtual Completion execute(ExecState *exec); 689 743 virtual void processVarDecls(ExecState *exec); 744 virtual void streamTo(SourceStream &s) const; 690 745 private: 691 746 StatementNode *statement; … … 701 756 virtual Completion execute(ExecState *exec); 702 757 virtual void processVarDecls(ExecState *exec); 758 virtual void streamTo(SourceStream &s) const; 703 759 private: 704 760 Node *expr; … … 715 771 virtual Completion execute(ExecState *exec); 716 772 virtual void processVarDecls(ExecState *exec); 773 virtual void streamTo(SourceStream &s) const; 717 774 private: 718 775 Node *expr1, *expr2, *expr3; … … 729 786 virtual Completion execute(ExecState *exec); 730 787 virtual void processVarDecls(ExecState *exec); 788 virtual void streamTo(SourceStream &s) const; 731 789 private: 732 790 UString ident; … … 742 800 ContinueNode(const UString *i) : ident(*i) { } 743 801 virtual Completion execute(ExecState *exec); 802 virtual void streamTo(SourceStream &s) const; 744 803 private: 745 804 UString ident; … … 751 810 BreakNode(const UString *i) : ident(*i) { } 752 811 virtual Completion execute(ExecState *exec); 812 virtual void streamTo(SourceStream &s) const; 753 813 private: 754 814 UString ident; … … 762 822 virtual ~ReturnNode(); 763 823 virtual Completion execute(ExecState *exec); 824 virtual void streamTo(SourceStream &s) const; 764 825 private: 765 826 Node *value; … … 774 835 virtual Completion execute(ExecState *exec); 775 836 virtual void processVarDecls(ExecState *exec); 837 virtual void streamTo(SourceStream &s) const; 776 838 private: 777 839 Node *expr; … … 788 850 Completion evalStatements(ExecState *exec); 789 851 virtual void processVarDecls(ExecState *exec); 852 virtual void streamTo(SourceStream &s) const; 790 853 private: 791 854 Node *expr; … … 804 867 ClauseListNode *next() const { return nx; } 805 868 virtual void processVarDecls(ExecState *exec); 869 virtual void streamTo(SourceStream &s) const; 806 870 private: 807 871 CaseClauseNode *cl; … … 819 883 Completion evalBlock(ExecState *exec, const Value& input); 820 884 virtual void processVarDecls(ExecState *exec); 885 virtual void streamTo(SourceStream &s) const; 821 886 private: 822 887 ClauseListNode *list1; … … 833 898 virtual Completion execute(ExecState *exec); 834 899 virtual void processVarDecls(ExecState *exec); 900 virtual void streamTo(SourceStream &s) const; 835 901 private: 836 902 Node *expr; … … 846 912 virtual Completion execute(ExecState *exec); 847 913 virtual void processVarDecls(ExecState *exec); 914 virtual void streamTo(SourceStream &s) const; 848 915 private: 849 916 UString label; … … 858 925 virtual ~ThrowNode(); 859 926 virtual Completion execute(ExecState *exec); 927 virtual void streamTo(SourceStream &s) const; 860 928 private: 861 929 Node *expr; … … 871 939 Completion execute(ExecState *exec, const Value &arg); 872 940 virtual void processVarDecls(ExecState *exec); 941 virtual void streamTo(SourceStream &s) const; 873 942 private: 874 943 UString ident; … … 884 953 virtual Completion execute(ExecState *exec); 885 954 virtual void processVarDecls(ExecState *exec); 955 virtual void streamTo(SourceStream &s) const; 886 956 private: 887 957 StatementNode *block; … … 897 967 virtual Completion execute(ExecState *exec); 898 968 virtual void processVarDecls(ExecState *exec); 969 virtual void streamTo(SourceStream &s) const; 899 970 private: 900 971 StatementNode *block; … … 913 984 UString ident() { return id; } 914 985 ParameterNode *nextParam() { return next; } 986 virtual void streamTo(SourceStream &s) const; 915 987 private: 916 988 UString id; … … 928 1000 virtual void processFuncDecl(ExecState *exec); 929 1001 virtual void processVarDecls(ExecState *exec); 1002 void streamTo(SourceStream &s) const; 930 1003 protected: 931 1004 SourceElementsNode *source; … … 942 1015 { /* empty */ return Completion(); } 943 1016 void processFuncDecl(ExecState *exec); 1017 virtual void streamTo(SourceStream &s) const; 944 1018 private: 945 1019 UString ident; … … 956 1030 virtual ~FuncExprNode(); 957 1031 Value evaluate(ExecState *exec); 1032 virtual void streamTo(SourceStream &s) const; 958 1033 private: 959 1034 ParameterNode *param; … … 963 1038 class SourceElementNode : public StatementNode { 964 1039 public: 965 SourceElementNode(StatementNode *s) { statement = s; function = 0L;}966 SourceElementNode(FuncDeclNode *f) { function = f; statement = 0L;}1040 SourceElementNode(StatementNode *s) : statement(s), function(0L) { } 1041 SourceElementNode(FuncDeclNode *f) : statement(0L), function(f) { } 967 1042 virtual void ref(); 968 1043 virtual bool deref(); … … 971 1046 virtual void processFuncDecl(ExecState *exec); 972 1047 virtual void processVarDecls(ExecState *exec); 1048 virtual void streamTo(SourceStream &s) const; 973 1049 private: 974 1050 StatementNode *statement; … … 988 1064 virtual void processFuncDecl(ExecState *exec); 989 1065 virtual void processVarDecls(ExecState *exec); 1066 virtual void streamTo(SourceStream &s) const; 990 1067 private: 991 1068 SourceElementNode *element; // 'this' element
Note:
See TracChangeset
for help on using the changeset viewer.