1 2 // 3 // gSWF.h 4 // 5 // This file is generated by codegen/header.xsl 6 // DO NOT MODIFY 7 // 8 9 10 #ifndef SWF_H 11 #define SWF_H 12 13 #include <cinttypes> 14 #include <cstdint> 15 #include <SWFReader.h> 16 #include <SWFTag.h> 17 #include <SWFAction.h> 18 #include <SWFFilter.h> 19 #include <SWFTrait.h> 20 #include <SWFList.h> 21 #include <SWFShapeItem.h> 22 #include <SWFGlyphList.h> 23 #include <SWFIdItems.h> 24 #include <SWFOpCode.h> 25 26 namespace SWF { 27 28 struct Context { 29 public: 30 Context(); 31 32 int swfVersion; 33 bool transientPropsToXML; 34 bool debugTrace; 35 bool exportAssets; 36 bool quiet; 37 38 bool isLast; 39 char tagVersion; 40 bool alpha; 41 bool many_shapes; 42 43 bool convertEncoding; 44 const char *swf_encoding; 45 46 std::int32_t fillBits; 47 std::int32_t lineBits; 48 std::uint8_t glyphBits; 49 std::uint8_t advanceBits; 50 bool wideGlyphOffsets; 51 bool wideMap; 52 std::uint16_t glyphCount; 53 54 }; 55 56 57 class Rectangle : public Item { 58 public: 59 Rectangle(); 60 virtual ~Rectangle(); 61 62 virtual bool parse( Reader *r, int end, Context *ctx ); 63 virtual void dump( int indent, Context *ctx ); 64 virtual size_t calcSize( Context *ctx, int start_at ); 65 virtual void write( Writer *w, Context *ctx ); 66 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 67 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 68 69 static Rectangle* get( Reader *r, int end, Context *ctx ); 70 static Rectangle* getByName( const char *name ); 71 72 std::int32_t getbits(); 73 void setbits( std::int32_t ); 74 std::int32_t getleft(); 75 void setleft( std::int32_t ); 76 std::int32_t getright(); 77 void setright( std::int32_t ); 78 std::int32_t gettop(); 79 void settop( std::int32_t ); 80 std::int32_t getbottom(); 81 void setbottom( std::int32_t ); 82 83 84 protected: 85 std::int32_t bits; // integer 86 std::int32_t left; // integer 87 std::int32_t right; // integer 88 std::int32_t top; // integer 89 std::int32_t bottom; // integer 90 91 }; 92 93 class Color : public Item { 94 public: 95 Color(); 96 virtual ~Color(); 97 98 virtual bool parse( Reader *r, int end, Context *ctx ); 99 virtual void dump( int indent, Context *ctx ); 100 virtual size_t calcSize( Context *ctx, int start_at ); 101 virtual void write( Writer *w, Context *ctx ); 102 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 103 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 104 105 static Color* get( Reader *r, int end, Context *ctx ); 106 static Color* getByName( const char *name ); 107 108 std::uint8_t getred(); 109 void setred( std::uint8_t ); 110 std::uint8_t getgreen(); 111 void setgreen( std::uint8_t ); 112 std::uint8_t getblue(); 113 void setblue( std::uint8_t ); 114 std::uint8_t getalpha(); 115 void setalpha( std::uint8_t ); 116 117 118 protected: 119 std::uint8_t red; // byte 120 std::uint8_t green; // byte 121 std::uint8_t blue; // byte 122 std::uint8_t alpha; // byte 123 124 }; 125 126 class String : public Item { 127 public: 128 String(); 129 virtual ~String(); 130 131 virtual bool parse( Reader *r, int end, Context *ctx ); 132 virtual void dump( int indent, Context *ctx ); 133 virtual size_t calcSize( Context *ctx, int start_at ); 134 virtual void write( Writer *w, Context *ctx ); 135 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 136 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 137 138 static String* get( Reader *r, int end, Context *ctx ); 139 static String* getByName( const char *name ); 140 141 char * getvalue(); 142 void setvalue( char * ); 143 144 145 protected: 146 char * value; // string 147 148 }; 149 150 class String2 : public Item { 151 public: 152 String2(); 153 virtual ~String2(); 154 155 virtual bool parse( Reader *r, int end, Context *ctx ); 156 virtual void dump( int indent, Context *ctx ); 157 virtual size_t calcSize( Context *ctx, int start_at ); 158 virtual void write( Writer *w, Context *ctx ); 159 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 160 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 161 162 static String2* get( Reader *r, int end, Context *ctx ); 163 static String2* getByName( const char *name ); 164 165 char * getvalue(); 166 void setvalue( char * ); 167 168 169 protected: 170 char * value; // string 171 172 }; 173 174 class Transform : public Item { 175 public: 176 Transform(); 177 virtual ~Transform(); 178 179 virtual bool parse( Reader *r, int end, Context *ctx ); 180 virtual void dump( int indent, Context *ctx ); 181 virtual size_t calcSize( Context *ctx, int start_at ); 182 virtual void write( Writer *w, Context *ctx ); 183 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 184 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 185 186 static Transform* get( Reader *r, int end, Context *ctx ); 187 static Transform* getByName( const char *name ); 188 189 bool getscaled(); 190 void setscaled( bool ); 191 std::int32_t getbitsScale(); 192 void setbitsScale( std::int32_t ); 193 float getscaleX(); 194 void setscaleX( float ); 195 float getscaleY(); 196 void setscaleY( float ); 197 bool getskewed(); 198 void setskewed( bool ); 199 std::int32_t getbitsSkew(); 200 void setbitsSkew( std::int32_t ); 201 float getskewX(); 202 void setskewX( float ); 203 float getskewY(); 204 void setskewY( float ); 205 std::int32_t getbitsTranslate(); 206 void setbitsTranslate( std::int32_t ); 207 std::int32_t gettransX(); 208 void settransX( std::int32_t ); 209 std::int32_t gettransY(); 210 void settransY( std::int32_t ); 211 212 213 protected: 214 bool scaled; // bit 215 std::int32_t bitsScale; // integer 216 float scaleX; // fixedpoint 217 float scaleY; // fixedpoint 218 bool skewed; // bit 219 std::int32_t bitsSkew; // integer 220 float skewX; // fixedpoint 221 float skewY; // fixedpoint 222 std::int32_t bitsTranslate; // integer 223 std::int32_t transX; // integer 224 std::int32_t transY; // integer 225 226 }; 227 228 class ColorTransform2 : public Item { 229 public: 230 ColorTransform2(); 231 virtual ~ColorTransform2(); 232 233 virtual bool parse( Reader *r, int end, Context *ctx ); 234 virtual void dump( int indent, Context *ctx ); 235 virtual size_t calcSize( Context *ctx, int start_at ); 236 virtual void write( Writer *w, Context *ctx ); 237 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 238 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 239 240 static ColorTransform2* get( Reader *r, int end, Context *ctx ); 241 static ColorTransform2* getByName( const char *name ); 242 243 bool gethasOffset(); 244 void sethasOffset( bool ); 245 bool gethasFactor(); 246 void sethasFactor( bool ); 247 std::int32_t getbits(); 248 void setbits( std::int32_t ); 249 std::int32_t getfactorRed(); 250 void setfactorRed( std::int32_t ); 251 std::int32_t getfactorGreen(); 252 void setfactorGreen( std::int32_t ); 253 std::int32_t getfactorBlue(); 254 void setfactorBlue( std::int32_t ); 255 std::int32_t getfactorAlpha(); 256 void setfactorAlpha( std::int32_t ); 257 std::int32_t getoffsetRed(); 258 void setoffsetRed( std::int32_t ); 259 std::int32_t getoffsetGreen(); 260 void setoffsetGreen( std::int32_t ); 261 std::int32_t getoffsetBlue(); 262 void setoffsetBlue( std::int32_t ); 263 std::int32_t getoffsetAlpha(); 264 void setoffsetAlpha( std::int32_t ); 265 266 267 protected: 268 bool hasOffset; // bit 269 bool hasFactor; // bit 270 std::int32_t bits; // integer 271 std::int32_t factorRed; // integer 272 std::int32_t factorGreen; // integer 273 std::int32_t factorBlue; // integer 274 std::int32_t factorAlpha; // integer 275 std::int32_t offsetRed; // integer 276 std::int32_t offsetGreen; // integer 277 std::int32_t offsetBlue; // integer 278 std::int32_t offsetAlpha; // integer 279 280 }; 281 282 class Header : public Item { 283 public: 284 Header(); 285 virtual ~Header(); 286 287 virtual bool parse( Reader *r, int end, Context *ctx ); 288 virtual void dump( int indent, Context *ctx ); 289 virtual size_t calcSize( Context *ctx, int start_at ); 290 virtual void write( Writer *w, Context *ctx ); 291 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 292 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 293 294 static Header* get( Reader *r, int end, Context *ctx ); 295 static Header* getByName( const char *name ); 296 297 Rectangle *getsize(); 298 std::int32_t getframerate(); 299 void setframerate( std::int32_t ); 300 std::uint16_t getframes(); 301 void setframes( std::uint16_t ); 302 List<Tag> *gettags(); 303 304 305 protected: 306 Rectangle size; // object 307 std::int32_t framerate; // integer 308 std::uint16_t frames; // word 309 List<Tag> tags; // list 310 311 }; 312 313 class LineStyle : public Item { 314 public: 315 LineStyle(); 316 virtual ~LineStyle(); 317 318 virtual bool parse( Reader *r, int end, Context *ctx ); 319 virtual void dump( int indent, Context *ctx ); 320 virtual size_t calcSize( Context *ctx, int start_at ); 321 virtual void write( Writer *w, Context *ctx ); 322 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 323 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 324 325 static LineStyle* get( Reader *r, int end, Context *ctx ); 326 static LineStyle* getByName( const char *name ); 327 328 std::uint16_t getwidth(); 329 void setwidth( std::uint16_t ); 330 Color *getcolor(); 331 std::int32_t getstartCapStyle(); 332 void setstartCapStyle( std::int32_t ); 333 std::int32_t getjointStyle(); 334 void setjointStyle( std::int32_t ); 335 bool gethasFill(); 336 void sethasFill( bool ); 337 bool getnoHScale(); 338 void setnoHScale( bool ); 339 bool getnoVScale(); 340 void setnoVScale( bool ); 341 bool getpixelHinting(); 342 void setpixelHinting( bool ); 343 std::int32_t getreserved(); 344 void setreserved( std::int32_t ); 345 bool getnoClose(); 346 void setnoClose( bool ); 347 std::int32_t getendCapStyle(); 348 void setendCapStyle( std::int32_t ); 349 float getmiterLimitFactor(); 350 void setmiterLimitFactor( float ); 351 List<Style> *getfillStyles(); 352 Color *getfillColor(); 353 354 355 protected: 356 std::uint16_t width; // word 357 Color color; // object 358 std::int32_t startCapStyle; // integer 359 std::int32_t jointStyle; // integer 360 bool hasFill; // bit 361 bool noHScale; // bit 362 bool noVScale; // bit 363 bool pixelHinting; // bit 364 std::int32_t reserved; // integer 365 bool noClose; // bit 366 std::int32_t endCapStyle; // integer 367 float miterLimitFactor; // fixedpoint2 368 List<Style> fillStyles; // list 369 Color fillColor; // object 370 371 }; 372 373 class StyleList : public Item { 374 public: 375 StyleList(); 376 virtual ~StyleList(); 377 378 virtual bool parse( Reader *r, int end, Context *ctx ); 379 virtual void dump( int indent, Context *ctx ); 380 virtual size_t calcSize( Context *ctx, int start_at ); 381 virtual void write( Writer *w, Context *ctx ); 382 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 383 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 384 385 static StyleList* get( Reader *r, int end, Context *ctx ); 386 static StyleList* getByName( const char *name ); 387 388 std::uint16_t getn_fillStyles(); 389 void setn_fillStyles( std::uint16_t ); 390 List<Style> *getfillStyles(); 391 std::uint16_t getn_lineStyles(); 392 void setn_lineStyles( std::uint16_t ); 393 List<LineStyle> *getlineStyles(); 394 std::int32_t getfillBits(); 395 void setfillBits( std::int32_t ); 396 std::int32_t getlineBits(); 397 void setlineBits( std::int32_t ); 398 399 400 protected: 401 std::uint16_t n_fillStyles; // byteOrWord 402 List<Style> fillStyles; // list 403 std::uint16_t n_lineStyles; // byteOrWord 404 List<LineStyle> lineStyles; // list 405 std::int32_t fillBits; // integer 406 std::int32_t lineBits; // integer 407 408 }; 409 410 class ShapeSetup : public ShapeItem { 411 public: 412 ShapeSetup(); 413 virtual ~ShapeSetup(); 414 415 virtual bool parse( Reader *r, int end, Context *ctx ); 416 virtual void dump( int indent, Context *ctx ); 417 virtual size_t calcSize( Context *ctx, int start_at ); 418 virtual void write( Writer *w, Context *ctx ); 419 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 420 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 421 422 static ShapeSetup* get( Reader *r, int end, Context *ctx ); 423 static ShapeSetup* getByName( const char *name ); 424 425 bool gethasNewStyles(); 426 void sethasNewStyles( bool ); 427 bool gethasLineStyle(); 428 void sethasLineStyle( bool ); 429 bool gethasFillStyle1(); 430 void sethasFillStyle1( bool ); 431 bool gethasFillStyle0(); 432 void sethasFillStyle0( bool ); 433 bool gethasMoveTo(); 434 void sethasMoveTo( bool ); 435 std::int32_t getxybits(); 436 void setxybits( std::int32_t ); 437 std::int32_t getx(); 438 void setx( std::int32_t ); 439 std::int32_t gety(); 440 void sety( std::int32_t ); 441 std::int32_t getfillStyle0(); 442 void setfillStyle0( std::int32_t ); 443 std::int32_t getfillStyle1(); 444 void setfillStyle1( std::int32_t ); 445 std::int32_t getlineStyle(); 446 void setlineStyle( std::int32_t ); 447 StyleList *getstyles(); 448 449 450 protected: 451 bool hasNewStyles; // bit 452 bool hasLineStyle; // bit 453 bool hasFillStyle1; // bit 454 bool hasFillStyle0; // bit 455 bool hasMoveTo; // bit 456 std::int32_t xybits; // integer 457 std::int32_t x; // integer 458 std::int32_t y; // integer 459 std::int32_t fillStyle0; // integer 460 std::int32_t fillStyle1; // integer 461 std::int32_t lineStyle; // integer 462 StyleList styles; // object 463 464 }; 465 466 class CurveTo : public ShapeItem { 467 public: 468 CurveTo(); 469 virtual ~CurveTo(); 470 471 virtual bool parse( Reader *r, int end, Context *ctx ); 472 virtual void dump( int indent, Context *ctx ); 473 virtual size_t calcSize( Context *ctx, int start_at ); 474 virtual void write( Writer *w, Context *ctx ); 475 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 476 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 477 478 static CurveTo* get( Reader *r, int end, Context *ctx ); 479 static CurveTo* getByName( const char *name ); 480 481 std::int32_t getbits(); 482 void setbits( std::int32_t ); 483 std::int32_t getx1(); 484 void setx1( std::int32_t ); 485 std::int32_t gety1(); 486 void sety1( std::int32_t ); 487 std::int32_t getx2(); 488 void setx2( std::int32_t ); 489 std::int32_t gety2(); 490 void sety2( std::int32_t ); 491 492 493 protected: 494 std::int32_t bits; // integer 495 std::int32_t x1; // integer 496 std::int32_t y1; // integer 497 std::int32_t x2; // integer 498 std::int32_t y2; // integer 499 500 }; 501 502 class Shape : public Item { 503 public: 504 Shape(); 505 virtual ~Shape(); 506 507 virtual bool parse( Reader *r, int end, Context *ctx ); 508 virtual void dump( int indent, Context *ctx ); 509 virtual size_t calcSize( Context *ctx, int start_at ); 510 virtual void write( Writer *w, Context *ctx ); 511 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 512 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 513 514 static Shape* get( Reader *r, int end, Context *ctx ); 515 static Shape* getByName( const char *name ); 516 517 List<ShapeItem> *getedges(); 518 519 520 protected: 521 List<ShapeItem> edges; // list 522 523 }; 524 525 class GlyphShape : public Item { 526 public: 527 GlyphShape(); 528 virtual ~GlyphShape(); 529 530 virtual bool parse( Reader *r, int end, Context *ctx ); 531 virtual void dump( int indent, Context *ctx ); 532 virtual size_t calcSize( Context *ctx, int start_at ); 533 virtual void write( Writer *w, Context *ctx ); 534 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 535 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 536 537 static GlyphShape* get( Reader *r, int end, Context *ctx ); 538 static GlyphShape* getByName( const char *name ); 539 540 std::int32_t getfillBits(); 541 void setfillBits( std::int32_t ); 542 std::int32_t getlineBits(); 543 void setlineBits( std::int32_t ); 544 List<ShapeItem> *getedges(); 545 546 547 protected: 548 std::int32_t fillBits; // integer 549 std::int32_t lineBits; // integer 550 List<ShapeItem> edges; // list 551 552 }; 553 554 class GradientItem : public Item { 555 public: 556 GradientItem(); 557 virtual ~GradientItem(); 558 559 virtual bool parse( Reader *r, int end, Context *ctx ); 560 virtual void dump( int indent, Context *ctx ); 561 virtual size_t calcSize( Context *ctx, int start_at ); 562 virtual void write( Writer *w, Context *ctx ); 563 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 564 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 565 566 static GradientItem* get( Reader *r, int end, Context *ctx ); 567 static GradientItem* getByName( const char *name ); 568 569 std::uint8_t getposition(); 570 void setposition( std::uint8_t ); 571 Color *getcolor(); 572 573 574 protected: 575 std::uint8_t position; // byte 576 Color color; // object 577 578 }; 579 580 class Symbol : public Item { 581 public: 582 Symbol(); 583 virtual ~Symbol(); 584 585 virtual bool parse( Reader *r, int end, Context *ctx ); 586 virtual void dump( int indent, Context *ctx ); 587 virtual size_t calcSize( Context *ctx, int start_at ); 588 virtual void write( Writer *w, Context *ctx ); 589 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 590 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 591 592 static Symbol* get( Reader *r, int end, Context *ctx ); 593 static Symbol* getByName( const char *name ); 594 595 std::uint16_t getobjectID(); 596 void setobjectID( std::uint16_t ); 597 char * getname(); 598 void setname( char * ); 599 600 601 protected: 602 std::uint16_t objectID; // word 603 char * name; // string 604 605 }; 606 607 class Frame : public Item { 608 public: 609 Frame(); 610 virtual ~Frame(); 611 612 virtual bool parse( Reader *r, int end, Context *ctx ); 613 virtual void dump( int indent, Context *ctx ); 614 virtual size_t calcSize( Context *ctx, int start_at ); 615 virtual void write( Writer *w, Context *ctx ); 616 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 617 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 618 619 static Frame* get( Reader *r, int end, Context *ctx ); 620 static Frame* getByName( const char *name ); 621 622 std::uint32_t getnumber(); 623 void setnumber( std::uint32_t ); 624 char * getlabel(); 625 void setlabel( char * ); 626 627 628 protected: 629 std::uint32_t number; // encodedu32 630 char * label; // string 631 632 }; 633 634 class Scene : public Item { 635 public: 636 Scene(); 637 virtual ~Scene(); 638 639 virtual bool parse( Reader *r, int end, Context *ctx ); 640 virtual void dump( int indent, Context *ctx ); 641 virtual size_t calcSize( Context *ctx, int start_at ); 642 virtual void write( Writer *w, Context *ctx ); 643 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 644 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 645 646 static Scene* get( Reader *r, int end, Context *ctx ); 647 static Scene* getByName( const char *name ); 648 649 std::uint32_t getoffset(); 650 void setoffset( std::uint32_t ); 651 char * getname(); 652 void setname( char * ); 653 654 655 protected: 656 std::uint32_t offset; // encodedu32 657 char * name; // string 658 659 }; 660 661 class Parameter : public Item { 662 public: 663 Parameter(); 664 virtual ~Parameter(); 665 666 virtual bool parse( Reader *r, int end, Context *ctx ); 667 virtual void dump( int indent, Context *ctx ); 668 virtual size_t calcSize( Context *ctx, int start_at ); 669 virtual void write( Writer *w, Context *ctx ); 670 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 671 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 672 673 static Parameter* get( Reader *r, int end, Context *ctx ); 674 static Parameter* getByName( const char *name ); 675 676 std::uint8_t getreg(); 677 void setreg( std::uint8_t ); 678 char * getname(); 679 void setname( char * ); 680 681 682 protected: 683 std::uint8_t reg; // byte 684 char * name; // string 685 686 }; 687 688 class UChar : public Item { 689 public: 690 UChar(); 691 virtual ~UChar(); 692 693 virtual bool parse( Reader *r, int end, Context *ctx ); 694 virtual void dump( int indent, Context *ctx ); 695 virtual size_t calcSize( Context *ctx, int start_at ); 696 virtual void write( Writer *w, Context *ctx ); 697 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 698 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 699 700 static UChar* get( Reader *r, int end, Context *ctx ); 701 static UChar* getByName( const char *name ); 702 703 std::uint8_t getvalue(); 704 void setvalue( std::uint8_t ); 705 706 707 protected: 708 std::uint8_t value; // byte 709 710 }; 711 712 class UShort : public Item { 713 public: 714 UShort(); 715 virtual ~UShort(); 716 717 virtual bool parse( Reader *r, int end, Context *ctx ); 718 virtual void dump( int indent, Context *ctx ); 719 virtual size_t calcSize( Context *ctx, int start_at ); 720 virtual void write( Writer *w, Context *ctx ); 721 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 722 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 723 724 static UShort* get( Reader *r, int end, Context *ctx ); 725 static UShort* getByName( const char *name ); 726 727 std::uint16_t getvalue(); 728 void setvalue( std::uint16_t ); 729 730 731 protected: 732 std::uint16_t value; // word 733 734 }; 735 736 class ULong : public Item { 737 public: 738 ULong(); 739 virtual ~ULong(); 740 741 virtual bool parse( Reader *r, int end, Context *ctx ); 742 virtual void dump( int indent, Context *ctx ); 743 virtual size_t calcSize( Context *ctx, int start_at ); 744 virtual void write( Writer *w, Context *ctx ); 745 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 746 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 747 748 static ULong* get( Reader *r, int end, Context *ctx ); 749 static ULong* getByName( const char *name ); 750 751 std::int32_t getvalue(); 752 void setvalue( std::int32_t ); 753 754 755 protected: 756 std::int32_t value; // integer 757 758 }; 759 760 class Short : public Item { 761 public: 762 Short(); 763 virtual ~Short(); 764 765 virtual bool parse( Reader *r, int end, Context *ctx ); 766 virtual void dump( int indent, Context *ctx ); 767 virtual size_t calcSize( Context *ctx, int start_at ); 768 virtual void write( Writer *w, Context *ctx ); 769 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 770 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 771 772 static Short* get( Reader *r, int end, Context *ctx ); 773 static Short* getByName( const char *name ); 774 775 std::uint16_t getvalue(); 776 void setvalue( std::uint16_t ); 777 778 779 protected: 780 std::uint16_t value; // word 781 782 }; 783 784 class Float : public Item { 785 public: 786 Float(); 787 virtual ~Float(); 788 789 virtual bool parse( Reader *r, int end, Context *ctx ); 790 virtual void dump( int indent, Context *ctx ); 791 virtual size_t calcSize( Context *ctx, int start_at ); 792 virtual void write( Writer *w, Context *ctx ); 793 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 794 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 795 796 static Float* get( Reader *r, int end, Context *ctx ); 797 static Float* getByName( const char *name ); 798 799 float getvalue(); 800 void setvalue( float ); 801 802 803 protected: 804 float value; // float 805 806 }; 807 808 class Double : public Item { 809 public: 810 Double(); 811 virtual ~Double(); 812 813 virtual bool parse( Reader *r, int end, Context *ctx ); 814 virtual void dump( int indent, Context *ctx ); 815 virtual size_t calcSize( Context *ctx, int start_at ); 816 virtual void write( Writer *w, Context *ctx ); 817 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 818 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 819 820 static Double* get( Reader *r, int end, Context *ctx ); 821 static Double* getByName( const char *name ); 822 823 double getvalue(); 824 void setvalue( double ); 825 826 827 protected: 828 double value; // double 829 830 }; 831 832 class Kerning : public Item { 833 public: 834 Kerning(); 835 virtual ~Kerning(); 836 837 virtual bool parse( Reader *r, int end, Context *ctx ); 838 virtual void dump( int indent, Context *ctx ); 839 virtual size_t calcSize( Context *ctx, int start_at ); 840 virtual void write( Writer *w, Context *ctx ); 841 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 842 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 843 844 static Kerning* get( Reader *r, int end, Context *ctx ); 845 static Kerning* getByName( const char *name ); 846 847 std::uint8_t geta(); 848 void seta( std::uint8_t ); 849 std::uint8_t getb(); 850 void setb( std::uint8_t ); 851 std::int32_t getadjustment(); 852 void setadjustment( std::int32_t ); 853 854 855 protected: 856 std::uint8_t a; // byte 857 std::uint8_t b; // byte 858 std::int32_t adjustment; // integer 859 860 }; 861 862 class WideKerning : public Item { 863 public: 864 WideKerning(); 865 virtual ~WideKerning(); 866 867 virtual bool parse( Reader *r, int end, Context *ctx ); 868 virtual void dump( int indent, Context *ctx ); 869 virtual size_t calcSize( Context *ctx, int start_at ); 870 virtual void write( Writer *w, Context *ctx ); 871 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 872 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 873 874 static WideKerning* get( Reader *r, int end, Context *ctx ); 875 static WideKerning* getByName( const char *name ); 876 877 std::uint16_t geta(); 878 void seta( std::uint16_t ); 879 std::uint16_t getb(); 880 void setb( std::uint16_t ); 881 std::uint16_t getadjustment(); 882 void setadjustment( std::uint16_t ); 883 884 885 protected: 886 std::uint16_t a; // word 887 std::uint16_t b; // word 888 std::uint16_t adjustment; // word 889 890 }; 891 892 class TextEntry : public Item { 893 public: 894 TextEntry(); 895 virtual ~TextEntry(); 896 897 virtual bool parse( Reader *r, int end, Context *ctx ); 898 virtual void dump( int indent, Context *ctx ); 899 virtual size_t calcSize( Context *ctx, int start_at ); 900 virtual void write( Writer *w, Context *ctx ); 901 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 902 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 903 904 static TextEntry* get( Reader *r, int end, Context *ctx ); 905 static TextEntry* getByName( const char *name ); 906 907 std::int32_t getglyph(); 908 void setglyph( std::int32_t ); 909 std::int32_t getadvance(); 910 void setadvance( std::int32_t ); 911 912 913 protected: 914 std::int32_t glyph; // integer 915 std::int32_t advance; // integer 916 917 }; 918 919 class TextEntry2 : public Item { 920 public: 921 TextEntry2(); 922 virtual ~TextEntry2(); 923 924 virtual bool parse( Reader *r, int end, Context *ctx ); 925 virtual void dump( int indent, Context *ctx ); 926 virtual size_t calcSize( Context *ctx, int start_at ); 927 virtual void write( Writer *w, Context *ctx ); 928 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 929 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 930 931 static TextEntry2* get( Reader *r, int end, Context *ctx ); 932 static TextEntry2* getByName( const char *name ); 933 934 std::int32_t getglyph(); 935 void setglyph( std::int32_t ); 936 std::int32_t getadvance(); 937 void setadvance( std::int32_t ); 938 939 940 protected: 941 std::int32_t glyph; // integer 942 std::int32_t advance; // integer 943 944 }; 945 946 class TextRecord6 : public Item { 947 public: 948 TextRecord6(); 949 virtual ~TextRecord6(); 950 951 virtual bool parse( Reader *r, int end, Context *ctx ); 952 virtual void dump( int indent, Context *ctx ); 953 virtual size_t calcSize( Context *ctx, int start_at ); 954 virtual void write( Writer *w, Context *ctx ); 955 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 956 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 957 958 static TextRecord6* get( Reader *r, int end, Context *ctx ); 959 static TextRecord6* getByName( const char *name ); 960 961 bool getisSetup(); 962 void setisSetup( bool ); 963 std::int32_t getreserved(); 964 void setreserved( std::int32_t ); 965 bool gethasFont(); 966 void sethasFont( bool ); 967 bool gethasColor(); 968 void sethasColor( bool ); 969 bool gethasMoveY(); 970 void sethasMoveY( bool ); 971 bool gethasMoveX(); 972 void sethasMoveX( bool ); 973 std::uint16_t getobjectID(); 974 void setobjectID( std::uint16_t ); 975 Color *getcolor(); 976 std::uint16_t getx(); 977 void setx( std::uint16_t ); 978 std::uint16_t gety(); 979 void sety( std::uint16_t ); 980 std::uint16_t getfontHeight(); 981 void setfontHeight( std::uint16_t ); 982 std::int32_t getnGlyphs(); 983 void setnGlyphs( std::int32_t ); 984 List<TextEntry> *getglyphs(); 985 986 987 protected: 988 bool isSetup; // bit 989 std::int32_t reserved; // integer 990 bool hasFont; // bit 991 bool hasColor; // bit 992 bool hasMoveY; // bit 993 bool hasMoveX; // bit 994 std::uint16_t objectID; // word 995 Color color; // object 996 std::uint16_t x; // word 997 std::uint16_t y; // word 998 std::uint16_t fontHeight; // word 999 std::int32_t nGlyphs; // integer 1000 List<TextEntry> glyphs; // list 1001 1002 }; 1003 1004 class TextRecord62 : public Item { 1005 public: 1006 TextRecord62(); 1007 virtual ~TextRecord62(); 1008 1009 virtual bool parse( Reader *r, int end, Context *ctx ); 1010 virtual void dump( int indent, Context *ctx ); 1011 virtual size_t calcSize( Context *ctx, int start_at ); 1012 virtual void write( Writer *w, Context *ctx ); 1013 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1014 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1015 1016 static TextRecord62* get( Reader *r, int end, Context *ctx ); 1017 static TextRecord62* getByName( const char *name ); 1018 1019 bool getisSetup(); 1020 void setisSetup( bool ); 1021 std::int32_t getreserved(); 1022 void setreserved( std::int32_t ); 1023 bool gethasFont(); 1024 void sethasFont( bool ); 1025 bool gethasColor(); 1026 void sethasColor( bool ); 1027 bool gethasMoveY(); 1028 void sethasMoveY( bool ); 1029 bool gethasMoveX(); 1030 void sethasMoveX( bool ); 1031 std::uint16_t getobjectID(); 1032 void setobjectID( std::uint16_t ); 1033 Color *getcolor(); 1034 std::uint16_t getx(); 1035 void setx( std::uint16_t ); 1036 std::uint16_t gety(); 1037 void sety( std::uint16_t ); 1038 std::uint16_t getfontHeight(); 1039 void setfontHeight( std::uint16_t ); 1040 std::int32_t getnGlyphs(); 1041 void setnGlyphs( std::int32_t ); 1042 List<TextEntry2> *getglyphs(); 1043 1044 1045 protected: 1046 bool isSetup; // bit 1047 std::int32_t reserved; // integer 1048 bool hasFont; // bit 1049 bool hasColor; // bit 1050 bool hasMoveY; // bit 1051 bool hasMoveX; // bit 1052 std::uint16_t objectID; // word 1053 Color color; // object 1054 std::uint16_t x; // word 1055 std::uint16_t y; // word 1056 std::uint16_t fontHeight; // word 1057 std::int32_t nGlyphs; // integer 1058 List<TextEntry2> glyphs; // list 1059 1060 }; 1061 1062 class TextRecord7 : public Item { 1063 public: 1064 TextRecord7(); 1065 virtual ~TextRecord7(); 1066 1067 virtual bool parse( Reader *r, int end, Context *ctx ); 1068 virtual void dump( int indent, Context *ctx ); 1069 virtual size_t calcSize( Context *ctx, int start_at ); 1070 virtual void write( Writer *w, Context *ctx ); 1071 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1072 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1073 1074 static TextRecord7* get( Reader *r, int end, Context *ctx ); 1075 static TextRecord7* getByName( const char *name ); 1076 1077 bool getisSetup(); 1078 void setisSetup( bool ); 1079 std::int32_t getreserved(); 1080 void setreserved( std::int32_t ); 1081 bool gethasFont(); 1082 void sethasFont( bool ); 1083 bool gethasColor(); 1084 void sethasColor( bool ); 1085 bool gethasMoveY(); 1086 void sethasMoveY( bool ); 1087 bool gethasMoveX(); 1088 void sethasMoveX( bool ); 1089 std::uint16_t getobjectID(); 1090 void setobjectID( std::uint16_t ); 1091 Color *getcolor(); 1092 std::uint16_t getx(); 1093 void setx( std::uint16_t ); 1094 std::uint16_t gety(); 1095 void sety( std::uint16_t ); 1096 std::uint16_t getfontHeight(); 1097 void setfontHeight( std::uint16_t ); 1098 std::uint8_t getnGlyphs(); 1099 void setnGlyphs( std::uint8_t ); 1100 List<TextEntry> *getglyphs(); 1101 1102 1103 protected: 1104 bool isSetup; // bit 1105 std::int32_t reserved; // integer 1106 bool hasFont; // bit 1107 bool hasColor; // bit 1108 bool hasMoveY; // bit 1109 bool hasMoveX; // bit 1110 std::uint16_t objectID; // word 1111 Color color; // object 1112 std::uint16_t x; // word 1113 std::uint16_t y; // word 1114 std::uint16_t fontHeight; // word 1115 std::uint8_t nGlyphs; // byte 1116 List<TextEntry> glyphs; // list 1117 1118 }; 1119 1120 class TextRecord72 : public Item { 1121 public: 1122 TextRecord72(); 1123 virtual ~TextRecord72(); 1124 1125 virtual bool parse( Reader *r, int end, Context *ctx ); 1126 virtual void dump( int indent, Context *ctx ); 1127 virtual size_t calcSize( Context *ctx, int start_at ); 1128 virtual void write( Writer *w, Context *ctx ); 1129 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1130 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1131 1132 static TextRecord72* get( Reader *r, int end, Context *ctx ); 1133 static TextRecord72* getByName( const char *name ); 1134 1135 bool getisSetup(); 1136 void setisSetup( bool ); 1137 std::int32_t getreserved(); 1138 void setreserved( std::int32_t ); 1139 bool gethasFont(); 1140 void sethasFont( bool ); 1141 bool gethasColor(); 1142 void sethasColor( bool ); 1143 bool gethasMoveY(); 1144 void sethasMoveY( bool ); 1145 bool gethasMoveX(); 1146 void sethasMoveX( bool ); 1147 std::uint16_t getfontRef(); 1148 void setfontRef( std::uint16_t ); 1149 Color *getcolor(); 1150 std::uint16_t getx(); 1151 void setx( std::uint16_t ); 1152 std::uint16_t gety(); 1153 void sety( std::uint16_t ); 1154 std::uint16_t getfontHeight(); 1155 void setfontHeight( std::uint16_t ); 1156 std::uint8_t getnGlyphs(); 1157 void setnGlyphs( std::uint8_t ); 1158 List<TextEntry2> *getglyphs(); 1159 1160 1161 protected: 1162 bool isSetup; // bit 1163 std::int32_t reserved; // integer 1164 bool hasFont; // bit 1165 bool hasColor; // bit 1166 bool hasMoveY; // bit 1167 bool hasMoveX; // bit 1168 std::uint16_t fontRef; // word 1169 Color color; // object 1170 std::uint16_t x; // word 1171 std::uint16_t y; // word 1172 std::uint16_t fontHeight; // word 1173 std::uint8_t nGlyphs; // byte 1174 List<TextEntry2> glyphs; // list 1175 1176 }; 1177 1178 class TextRecord : public Item { 1179 public: 1180 TextRecord(); 1181 virtual ~TextRecord(); 1182 1183 virtual bool parse( Reader *r, int end, Context *ctx ); 1184 virtual void dump( int indent, Context *ctx ); 1185 virtual size_t calcSize( Context *ctx, int start_at ); 1186 virtual void write( Writer *w, Context *ctx ); 1187 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1188 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1189 1190 static TextRecord* get( Reader *r, int end, Context *ctx ); 1191 static TextRecord* getByName( const char *name ); 1192 1193 List<TextRecord6> *getrecords(); 1194 TextRecord7 *getstring(); 1195 1196 1197 protected: 1198 List<TextRecord6> records; // list 1199 TextRecord7 string; // object 1200 1201 }; 1202 1203 class TextRecord2 : public Item { 1204 public: 1205 TextRecord2(); 1206 virtual ~TextRecord2(); 1207 1208 virtual bool parse( Reader *r, int end, Context *ctx ); 1209 virtual void dump( int indent, Context *ctx ); 1210 virtual size_t calcSize( Context *ctx, int start_at ); 1211 virtual void write( Writer *w, Context *ctx ); 1212 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1213 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1214 1215 static TextRecord2* get( Reader *r, int end, Context *ctx ); 1216 static TextRecord2* getByName( const char *name ); 1217 1218 List<TextRecord62> *getrecords(); 1219 TextRecord72 *gettextString(); 1220 1221 1222 protected: 1223 List<TextRecord62> records; // list 1224 TextRecord72 textString; // object 1225 1226 }; 1227 1228 class Button : public Item { 1229 public: 1230 Button(); 1231 virtual ~Button(); 1232 1233 virtual bool parse( Reader *r, int end, Context *ctx ); 1234 virtual void dump( int indent, Context *ctx ); 1235 virtual size_t calcSize( Context *ctx, int start_at ); 1236 virtual void write( Writer *w, Context *ctx ); 1237 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1238 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1239 1240 static Button* get( Reader *r, int end, Context *ctx ); 1241 static Button* getByName( const char *name ); 1242 1243 std::int32_t getreserved1(); 1244 void setreserved1( std::int32_t ); 1245 std::int32_t getreserved2(); 1246 void setreserved2( std::int32_t ); 1247 bool gethasBlendMode(); 1248 void sethasBlendMode( bool ); 1249 bool gethasFilterList(); 1250 void sethasFilterList( bool ); 1251 bool gethitTest(); 1252 void sethitTest( bool ); 1253 bool getdown(); 1254 void setdown( bool ); 1255 bool getover(); 1256 void setover( bool ); 1257 bool getup(); 1258 void setup( bool ); 1259 std::uint16_t getobjectID(); 1260 void setobjectID( std::uint16_t ); 1261 std::uint16_t getdepth(); 1262 void setdepth( std::uint16_t ); 1263 Transform *gettransform(); 1264 ColorTransform2 *getcolorTransform(); 1265 std::uint8_t getnumFilters(); 1266 void setnumFilters( std::uint8_t ); 1267 List<Filter> *getfilters(); 1268 std::uint8_t getblendMode(); 1269 void setblendMode( std::uint8_t ); 1270 1271 1272 protected: 1273 std::int32_t reserved1; // integer 1274 std::int32_t reserved2; // integer 1275 bool hasBlendMode; // bit 1276 bool hasFilterList; // bit 1277 bool hitTest; // bit 1278 bool down; // bit 1279 bool over; // bit 1280 bool up; // bit 1281 std::uint16_t objectID; // word 1282 std::uint16_t depth; // word 1283 Transform transform; // object 1284 ColorTransform2 colorTransform; // object 1285 std::uint8_t numFilters; // byte 1286 List<Filter> filters; // list 1287 std::uint8_t blendMode; // byte 1288 1289 }; 1290 1291 class Event : public Item { 1292 public: 1293 Event(); 1294 virtual ~Event(); 1295 1296 virtual bool parse( Reader *r, int end, Context *ctx ); 1297 virtual void dump( int indent, Context *ctx ); 1298 virtual size_t calcSize( Context *ctx, int start_at ); 1299 virtual void write( Writer *w, Context *ctx ); 1300 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1301 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1302 1303 static Event* get( Reader *r, int end, Context *ctx ); 1304 static Event* getByName( const char *name ); 1305 1306 std::uint16_t getflags1(); 1307 void setflags1( std::uint16_t ); 1308 std::uint16_t getflags2(); 1309 void setflags2( std::uint16_t ); 1310 std::uint32_t getactionLength(); 1311 void setactionLength( std::uint32_t ); 1312 List<Action> *getactions(); 1313 1314 1315 protected: 1316 std::uint16_t flags1; // word 1317 std::uint16_t flags2; // word 1318 std::uint32_t actionLength; // uint32 1319 List<Action> actions; // list 1320 1321 }; 1322 1323 class Condition : public Item { 1324 public: 1325 Condition(); 1326 virtual ~Condition(); 1327 1328 virtual bool parse( Reader *r, int end, Context *ctx ); 1329 virtual void dump( int indent, Context *ctx ); 1330 virtual size_t calcSize( Context *ctx, int start_at ); 1331 virtual void write( Writer *w, Context *ctx ); 1332 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1333 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1334 1335 static Condition* get( Reader *r, int end, Context *ctx ); 1336 static Condition* getByName( const char *name ); 1337 1338 std::uint16_t getnext(); 1339 void setnext( std::uint16_t ); 1340 bool getmenuEnter(); 1341 void setmenuEnter( bool ); 1342 bool getpointerReleaseOutside(); 1343 void setpointerReleaseOutside( bool ); 1344 bool getpointerDragEnter(); 1345 void setpointerDragEnter( bool ); 1346 bool getpointerDragLeave(); 1347 void setpointerDragLeave( bool ); 1348 bool getpointerReleaseInside(); 1349 void setpointerReleaseInside( bool ); 1350 bool getpointerPush(); 1351 void setpointerPush( bool ); 1352 bool getpointerLeave(); 1353 void setpointerLeave( bool ); 1354 bool getpointerEnter(); 1355 void setpointerEnter( bool ); 1356 std::int32_t getkey(); 1357 void setkey( std::int32_t ); 1358 bool getmenuLeave(); 1359 void setmenuLeave( bool ); 1360 List<Action> *getactions(); 1361 1362 1363 protected: 1364 std::uint16_t next; // word 1365 bool menuEnter; // bit 1366 bool pointerReleaseOutside; // bit 1367 bool pointerDragEnter; // bit 1368 bool pointerDragLeave; // bit 1369 bool pointerReleaseInside; // bit 1370 bool pointerPush; // bit 1371 bool pointerLeave; // bit 1372 bool pointerEnter; // bit 1373 std::int32_t key; // integer 1374 bool menuLeave; // bit 1375 List<Action> actions; // list 1376 1377 }; 1378 1379 class U30 : public Item { 1380 public: 1381 U30(); 1382 virtual ~U30(); 1383 1384 virtual bool parse( Reader *r, int end, Context *ctx ); 1385 virtual void dump( int indent, Context *ctx ); 1386 virtual size_t calcSize( Context *ctx, int start_at ); 1387 virtual void write( Writer *w, Context *ctx ); 1388 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1389 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1390 1391 static U30* get( Reader *r, int end, Context *ctx ); 1392 static U30* getByName( const char *name ); 1393 1394 std::uint32_t getvalue(); 1395 void setvalue( std::uint32_t ); 1396 1397 1398 protected: 1399 std::uint32_t value; // u30 1400 1401 }; 1402 1403 class S24 : public Item { 1404 public: 1405 S24(); 1406 virtual ~S24(); 1407 1408 virtual bool parse( Reader *r, int end, Context *ctx ); 1409 virtual void dump( int indent, Context *ctx ); 1410 virtual size_t calcSize( Context *ctx, int start_at ); 1411 virtual void write( Writer *w, Context *ctx ); 1412 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1413 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1414 1415 static S24* get( Reader *r, int end, Context *ctx ); 1416 static S24* getByName( const char *name ); 1417 1418 std::int32_t getvalue(); 1419 void setvalue( std::int32_t ); 1420 1421 1422 protected: 1423 std::int32_t value; // s24 1424 1425 }; 1426 1427 class ValueKind : public Item { 1428 public: 1429 ValueKind(); 1430 virtual ~ValueKind(); 1431 1432 virtual bool parse( Reader *r, int end, Context *ctx ); 1433 virtual void dump( int indent, Context *ctx ); 1434 virtual size_t calcSize( Context *ctx, int start_at ); 1435 virtual void write( Writer *w, Context *ctx ); 1436 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1437 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1438 1439 static ValueKind* get( Reader *r, int end, Context *ctx ); 1440 static ValueKind* getByName( const char *name ); 1441 1442 std::uint32_t getindex(); 1443 void setindex( std::uint32_t ); 1444 std::uint8_t getkind(); 1445 void setkind( std::uint8_t ); 1446 1447 1448 protected: 1449 std::uint32_t index; // u30 1450 std::uint8_t kind; // byte 1451 1452 }; 1453 1454 class MethodInfo : public Item { 1455 public: 1456 MethodInfo(); 1457 virtual ~MethodInfo(); 1458 1459 virtual bool parse( Reader *r, int end, Context *ctx ); 1460 virtual void dump( int indent, Context *ctx ); 1461 virtual size_t calcSize( Context *ctx, int start_at ); 1462 virtual void write( Writer *w, Context *ctx ); 1463 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1464 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1465 1466 static MethodInfo* get( Reader *r, int end, Context *ctx ); 1467 static MethodInfo* getByName( const char *name ); 1468 1469 std::uint32_t getparamCount(); 1470 void setparamCount( std::uint32_t ); 1471 std::uint32_t getretType(); 1472 void setretType( std::uint32_t ); 1473 List<U30> *getparamTypes(); 1474 std::uint32_t getnameIndex(); 1475 void setnameIndex( std::uint32_t ); 1476 bool gethasParamNames(); 1477 void sethasParamNames( bool ); 1478 bool getsetSDXNs(); 1479 void setsetSDXNs( bool ); 1480 bool getisExplicit(); 1481 void setisExplicit( bool ); 1482 bool getignoreRest(); 1483 void setignoreRest( bool ); 1484 bool gethasOptional(); 1485 void sethasOptional( bool ); 1486 bool getneedRest(); 1487 void setneedRest( bool ); 1488 bool getneedActivation(); 1489 void setneedActivation( bool ); 1490 bool getneedArguments(); 1491 void setneedArguments( bool ); 1492 std::uint32_t getoptionalCount(); 1493 void setoptionalCount( std::uint32_t ); 1494 List<ValueKind> *getoptional(); 1495 List<U30> *getparamNames(); 1496 1497 1498 protected: 1499 std::uint32_t paramCount; // u30 1500 std::uint32_t retType; // u30 1501 List<U30> paramTypes; // list 1502 std::uint32_t nameIndex; // u30 1503 bool hasParamNames; // bit 1504 bool setSDXNs; // bit 1505 bool isExplicit; // bit 1506 bool ignoreRest; // bit 1507 bool hasOptional; // bit 1508 bool needRest; // bit 1509 bool needActivation; // bit 1510 bool needArguments; // bit 1511 std::uint32_t optionalCount; // u30 1512 List<ValueKind> optional; // list 1513 List<U30> paramNames; // list 1514 1515 }; 1516 1517 class MetadataInfo : public Item { 1518 public: 1519 MetadataInfo(); 1520 virtual ~MetadataInfo(); 1521 1522 virtual bool parse( Reader *r, int end, Context *ctx ); 1523 virtual void dump( int indent, Context *ctx ); 1524 virtual size_t calcSize( Context *ctx, int start_at ); 1525 virtual void write( Writer *w, Context *ctx ); 1526 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1527 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1528 1529 static MetadataInfo* get( Reader *r, int end, Context *ctx ); 1530 static MetadataInfo* getByName( const char *name ); 1531 1532 std::uint32_t getnameIndex(); 1533 void setnameIndex( std::uint32_t ); 1534 std::uint32_t getvaluesCount(); 1535 void setvaluesCount( std::uint32_t ); 1536 List<U30> *getkeys(); 1537 List<U30> *getvalues(); 1538 1539 1540 protected: 1541 std::uint32_t nameIndex; // u30 1542 std::uint32_t valuesCount; // u30 1543 List<U30> keys; // list 1544 List<U30> values; // list 1545 1546 }; 1547 1548 class NamespaceSet : public Item { 1549 public: 1550 NamespaceSet(); 1551 virtual ~NamespaceSet(); 1552 1553 virtual bool parse( Reader *r, int end, Context *ctx ); 1554 virtual void dump( int indent, Context *ctx ); 1555 virtual size_t calcSize( Context *ctx, int start_at ); 1556 virtual void write( Writer *w, Context *ctx ); 1557 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1558 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1559 1560 static NamespaceSet* get( Reader *r, int end, Context *ctx ); 1561 static NamespaceSet* getByName( const char *name ); 1562 1563 std::uint32_t getcount(); 1564 void setcount( std::uint32_t ); 1565 List<U30> *getnamespaces(); 1566 1567 1568 protected: 1569 std::uint32_t count; // u30 1570 List<U30> namespaces; // list 1571 1572 }; 1573 1574 class TraitInfo : public Item { 1575 public: 1576 TraitInfo(); 1577 virtual ~TraitInfo(); 1578 1579 virtual bool parse( Reader *r, int end, Context *ctx ); 1580 virtual void dump( int indent, Context *ctx ); 1581 virtual size_t calcSize( Context *ctx, int start_at ); 1582 virtual void write( Writer *w, Context *ctx ); 1583 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1584 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1585 1586 static TraitInfo* get( Reader *r, int end, Context *ctx ); 1587 static TraitInfo* getByName( const char *name ); 1588 1589 std::uint32_t getnameIndex(); 1590 void setnameIndex( std::uint32_t ); 1591 bool getreserved(); 1592 void setreserved( bool ); 1593 bool gethasMetadata(); 1594 void sethasMetadata( bool ); 1595 bool getoverride(); 1596 void setoverride( bool ); 1597 bool getfinal(); 1598 void setfinal( bool ); 1599 List<Trait> *gettrait(); 1600 std::uint32_t getmetadataCount(); 1601 void setmetadataCount( std::uint32_t ); 1602 List<U30> *getmetadata(); 1603 1604 1605 protected: 1606 std::uint32_t nameIndex; // u30 1607 bool reserved; // bit 1608 bool hasMetadata; // bit 1609 bool override; // bit 1610 bool final; // bit 1611 List<Trait> trait; // list 1612 std::uint32_t metadataCount; // u30 1613 List<U30> metadata; // list 1614 1615 }; 1616 1617 class InstanceInfo : public Item { 1618 public: 1619 InstanceInfo(); 1620 virtual ~InstanceInfo(); 1621 1622 virtual bool parse( Reader *r, int end, Context *ctx ); 1623 virtual void dump( int indent, Context *ctx ); 1624 virtual size_t calcSize( Context *ctx, int start_at ); 1625 virtual void write( Writer *w, Context *ctx ); 1626 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1627 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1628 1629 static InstanceInfo* get( Reader *r, int end, Context *ctx ); 1630 static InstanceInfo* getByName( const char *name ); 1631 1632 std::uint32_t getnameIndex(); 1633 void setnameIndex( std::uint32_t ); 1634 std::uint32_t getsuperIndex(); 1635 void setsuperIndex( std::uint32_t ); 1636 std::int32_t getreserved(); 1637 void setreserved( std::int32_t ); 1638 bool gethasProtectedNS(); 1639 void sethasProtectedNS( bool ); 1640 bool getinterface(); 1641 void setinterface( bool ); 1642 bool getfinal(); 1643 void setfinal( bool ); 1644 bool getsealed(); 1645 void setsealed( bool ); 1646 std::uint32_t getprotectedNS(); 1647 void setprotectedNS( std::uint32_t ); 1648 std::uint32_t getinterfaceCount(); 1649 void setinterfaceCount( std::uint32_t ); 1650 List<U30> *getinterfaces(); 1651 std::uint32_t getiInitIndex(); 1652 void setiInitIndex( std::uint32_t ); 1653 std::uint32_t gettraitCount(); 1654 void settraitCount( std::uint32_t ); 1655 List<TraitInfo> *gettraits(); 1656 1657 1658 protected: 1659 std::uint32_t nameIndex; // u30 1660 std::uint32_t superIndex; // u30 1661 std::int32_t reserved; // integer 1662 bool hasProtectedNS; // bit 1663 bool interface; // bit 1664 bool final; // bit 1665 bool sealed; // bit 1666 std::uint32_t protectedNS; // u30 1667 std::uint32_t interfaceCount; // u30 1668 List<U30> interfaces; // list 1669 std::uint32_t iInitIndex; // u30 1670 std::uint32_t traitCount; // u30 1671 List<TraitInfo> traits; // list 1672 1673 }; 1674 1675 class ClassInfo : public Item { 1676 public: 1677 ClassInfo(); 1678 virtual ~ClassInfo(); 1679 1680 virtual bool parse( Reader *r, int end, Context *ctx ); 1681 virtual void dump( int indent, Context *ctx ); 1682 virtual size_t calcSize( Context *ctx, int start_at ); 1683 virtual void write( Writer *w, Context *ctx ); 1684 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1685 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1686 1687 static ClassInfo* get( Reader *r, int end, Context *ctx ); 1688 static ClassInfo* getByName( const char *name ); 1689 1690 std::uint32_t getcInitIndex(); 1691 void setcInitIndex( std::uint32_t ); 1692 std::uint32_t gettraitCount(); 1693 void settraitCount( std::uint32_t ); 1694 List<TraitInfo> *gettraits(); 1695 1696 1697 protected: 1698 std::uint32_t cInitIndex; // u30 1699 std::uint32_t traitCount; // u30 1700 List<TraitInfo> traits; // list 1701 1702 }; 1703 1704 class ScriptInfo : public Item { 1705 public: 1706 ScriptInfo(); 1707 virtual ~ScriptInfo(); 1708 1709 virtual bool parse( Reader *r, int end, Context *ctx ); 1710 virtual void dump( int indent, Context *ctx ); 1711 virtual size_t calcSize( Context *ctx, int start_at ); 1712 virtual void write( Writer *w, Context *ctx ); 1713 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1714 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1715 1716 static ScriptInfo* get( Reader *r, int end, Context *ctx ); 1717 static ScriptInfo* getByName( const char *name ); 1718 1719 std::uint32_t getinitIndex(); 1720 void setinitIndex( std::uint32_t ); 1721 std::uint32_t gettraitCount(); 1722 void settraitCount( std::uint32_t ); 1723 List<TraitInfo> *gettraits(); 1724 1725 1726 protected: 1727 std::uint32_t initIndex; // u30 1728 std::uint32_t traitCount; // u30 1729 List<TraitInfo> traits; // list 1730 1731 }; 1732 1733 class Exception : public Item { 1734 public: 1735 Exception(); 1736 virtual ~Exception(); 1737 1738 virtual bool parse( Reader *r, int end, Context *ctx ); 1739 virtual void dump( int indent, Context *ctx ); 1740 virtual size_t calcSize( Context *ctx, int start_at ); 1741 virtual void write( Writer *w, Context *ctx ); 1742 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1743 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1744 1745 static Exception* get( Reader *r, int end, Context *ctx ); 1746 static Exception* getByName( const char *name ); 1747 1748 std::uint32_t gettryStart(); 1749 void settryStart( std::uint32_t ); 1750 std::uint32_t gettryEnd(); 1751 void settryEnd( std::uint32_t ); 1752 std::uint32_t gettarget(); 1753 void settarget( std::uint32_t ); 1754 std::uint32_t gettype(); 1755 void settype( std::uint32_t ); 1756 std::uint32_t getname(); 1757 void setname( std::uint32_t ); 1758 1759 1760 protected: 1761 std::uint32_t tryStart; // u30 1762 std::uint32_t tryEnd; // u30 1763 std::uint32_t target; // u30 1764 std::uint32_t type; // u30 1765 std::uint32_t name; // u30 1766 1767 }; 1768 1769 class MethodBody : public Item { 1770 public: 1771 MethodBody(); 1772 virtual ~MethodBody(); 1773 1774 virtual bool parse( Reader *r, int end, Context *ctx ); 1775 virtual void dump( int indent, Context *ctx ); 1776 virtual size_t calcSize( Context *ctx, int start_at ); 1777 virtual void write( Writer *w, Context *ctx ); 1778 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1779 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1780 1781 static MethodBody* get( Reader *r, int end, Context *ctx ); 1782 static MethodBody* getByName( const char *name ); 1783 1784 std::uint32_t getmethodInfo(); 1785 void setmethodInfo( std::uint32_t ); 1786 std::uint32_t getmaxStack(); 1787 void setmaxStack( std::uint32_t ); 1788 std::uint32_t getmaxRegs(); 1789 void setmaxRegs( std::uint32_t ); 1790 std::uint32_t getscopeDepth(); 1791 void setscopeDepth( std::uint32_t ); 1792 std::uint32_t getmaxScope(); 1793 void setmaxScope( std::uint32_t ); 1794 std::uint32_t getcodeLength(); 1795 void setcodeLength( std::uint32_t ); 1796 List<OpCode> *getcode(); 1797 std::uint32_t getexceptionCount(); 1798 void setexceptionCount( std::uint32_t ); 1799 List<Exception> *getexceptions(); 1800 std::uint32_t gettraitCount(); 1801 void settraitCount( std::uint32_t ); 1802 List<TraitInfo> *gettraits(); 1803 1804 1805 protected: 1806 std::uint32_t methodInfo; // u30 1807 std::uint32_t maxStack; // u30 1808 std::uint32_t maxRegs; // u30 1809 std::uint32_t scopeDepth; // u30 1810 std::uint32_t maxScope; // u30 1811 std::uint32_t codeLength; // u30 1812 List<OpCode> code; // list 1813 std::uint32_t exceptionCount; // u30 1814 List<Exception> exceptions; // list 1815 std::uint32_t traitCount; // u30 1816 List<TraitInfo> traits; // list 1817 1818 }; 1819 1820 class Constants : public Item { 1821 public: 1822 Constants(); 1823 virtual ~Constants(); 1824 1825 virtual bool parse( Reader *r, int end, Context *ctx ); 1826 virtual void dump( int indent, Context *ctx ); 1827 virtual size_t calcSize( Context *ctx, int start_at ); 1828 virtual void write( Writer *w, Context *ctx ); 1829 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1830 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1831 1832 static Constants* get( Reader *r, int end, Context *ctx ); 1833 static Constants* getByName( const char *name ); 1834 1835 std::uint32_t getintCount(); 1836 void setintCount( std::uint32_t ); 1837 List<U30> *getints(); 1838 std::uint32_t getuintCount(); 1839 void setuintCount( std::uint32_t ); 1840 List<U30> *getuints(); 1841 std::uint32_t getdoubleCount(); 1842 void setdoubleCount( std::uint32_t ); 1843 List<Double> *getdoubles(); 1844 std::uint32_t getstringCount(); 1845 void setstringCount( std::uint32_t ); 1846 List<String2> *getstrings(); 1847 std::uint32_t getnamespaceConstantCount(); 1848 void setnamespaceConstantCount( std::uint32_t ); 1849 List<NamespaceConstant> *getnamespaces(); 1850 std::uint32_t getnamespaceSetCount(); 1851 void setnamespaceSetCount( std::uint32_t ); 1852 List<NamespaceSet> *getnamespaceSets(); 1853 std::uint32_t getmultinameConstantCount(); 1854 void setmultinameConstantCount( std::uint32_t ); 1855 List<MultinameConstant> *getmultinames(); 1856 1857 1858 protected: 1859 std::uint32_t intCount; // u30 1860 List<U30> ints; // list 1861 std::uint32_t uintCount; // u30 1862 List<U30> uints; // list 1863 std::uint32_t doubleCount; // u30 1864 List<Double> doubles; // list 1865 std::uint32_t stringCount; // u30 1866 List<String2> strings; // list 1867 std::uint32_t namespaceConstantCount; // u30 1868 List<NamespaceConstant> namespaces; // list 1869 std::uint32_t namespaceSetCount; // u30 1870 List<NamespaceSet> namespaceSets; // list 1871 std::uint32_t multinameConstantCount; // u30 1872 List<MultinameConstant> multinames; // list 1873 1874 }; 1875 1876 class Action3 : public Item { 1877 public: 1878 Action3(); 1879 virtual ~Action3(); 1880 1881 virtual bool parse( Reader *r, int end, Context *ctx ); 1882 virtual void dump( int indent, Context *ctx ); 1883 virtual size_t calcSize( Context *ctx, int start_at ); 1884 virtual void write( Writer *w, Context *ctx ); 1885 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1886 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1887 1888 static Action3* get( Reader *r, int end, Context *ctx ); 1889 static Action3* getByName( const char *name ); 1890 1891 std::uint16_t getminorVersion(); 1892 void setminorVersion( std::uint16_t ); 1893 std::uint16_t getmajorVersion(); 1894 void setmajorVersion( std::uint16_t ); 1895 Constants *getconstants(); 1896 std::uint32_t getmethodInfoCount(); 1897 void setmethodInfoCount( std::uint32_t ); 1898 List<MethodInfo> *getmethods(); 1899 std::uint32_t getmetadataInfoCount(); 1900 void setmetadataInfoCount( std::uint32_t ); 1901 List<MetadataInfo> *getmetadata(); 1902 std::uint32_t getclassCount(); 1903 void setclassCount( std::uint32_t ); 1904 List<InstanceInfo> *getinstances(); 1905 List<ClassInfo> *getclasses(); 1906 std::uint32_t getscriptCount(); 1907 void setscriptCount( std::uint32_t ); 1908 List<ScriptInfo> *getscripts(); 1909 std::uint32_t getmethodBodyCount(); 1910 void setmethodBodyCount( std::uint32_t ); 1911 List<MethodBody> *getmethodBodies(); 1912 1913 1914 protected: 1915 std::uint16_t minorVersion; // word 1916 std::uint16_t majorVersion; // word 1917 Constants constants; // object 1918 std::uint32_t methodInfoCount; // u30 1919 List<MethodInfo> methods; // list 1920 std::uint32_t metadataInfoCount; // u30 1921 List<MetadataInfo> metadata; // list 1922 std::uint32_t classCount; // u30 1923 List<InstanceInfo> instances; // list 1924 List<ClassInfo> classes; // list 1925 std::uint32_t scriptCount; // u30 1926 List<ScriptInfo> scripts; // list 1927 std::uint32_t methodBodyCount; // u30 1928 List<MethodBody> methodBodies; // list 1929 1930 }; 1931 1932 class ZoneData : public Item { 1933 public: 1934 ZoneData(); 1935 virtual ~ZoneData(); 1936 1937 virtual bool parse( Reader *r, int end, Context *ctx ); 1938 virtual void dump( int indent, Context *ctx ); 1939 virtual size_t calcSize( Context *ctx, int start_at ); 1940 virtual void write( Writer *w, Context *ctx ); 1941 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1942 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1943 1944 static ZoneData* get( Reader *r, int end, Context *ctx ); 1945 static ZoneData* getByName( const char *name ); 1946 1947 float getposition(); 1948 void setposition( float ); 1949 float getsize(); 1950 void setsize( float ); 1951 1952 1953 protected: 1954 float position; // half 1955 float size; // half 1956 1957 }; 1958 1959 class ZoneArray : public Item { 1960 public: 1961 ZoneArray(); 1962 virtual ~ZoneArray(); 1963 1964 virtual bool parse( Reader *r, int end, Context *ctx ); 1965 virtual void dump( int indent, Context *ctx ); 1966 virtual size_t calcSize( Context *ctx, int start_at ); 1967 virtual void write( Writer *w, Context *ctx ); 1968 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 1969 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 1970 1971 static ZoneArray* get( Reader *r, int end, Context *ctx ); 1972 static ZoneArray* getByName( const char *name ); 1973 1974 std::uint8_t getcount(); 1975 void setcount( std::uint8_t ); 1976 List<ZoneData> *getzones(); 1977 std::int32_t getzoneX(); 1978 void setzoneX( std::int32_t ); 1979 std::int32_t getzoneY(); 1980 void setzoneY( std::int32_t ); 1981 std::int32_t getreserved(); 1982 void setreserved( std::int32_t ); 1983 1984 1985 protected: 1986 std::uint8_t count; // byte 1987 List<ZoneData> zones; // list 1988 std::int32_t zoneX; // integer 1989 std::int32_t zoneY; // integer 1990 std::int32_t reserved; // integer 1991 1992 }; 1993 1994 class UnknownFilter : public Filter { 1995 public: 1996 UnknownFilter(); 1997 virtual ~UnknownFilter(); 1998 1999 virtual bool parse( Reader *r, int end, Context *ctx ); 2000 virtual void dump( int indent, Context *ctx ); 2001 virtual size_t calcSize( Context *ctx, int start_at ); 2002 virtual void write( Writer *w, Context *ctx ); 2003 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2004 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2005 2006 static UnknownFilter* get( Reader *r, int end, Context *ctx ); 2007 static UnknownFilter* getByName( const char *name ); 2008 2009 2010 void getdata( unsigned char **dst, int *size ); 2011 void setdata( const unsigned char *src, int size ); 2012 2013 2014 protected: 2015 unsigned char * data; // data 2016 2017 static int id; 2018 2019 }; 2020 2021 class DropShadow : public Filter { 2022 public: 2023 DropShadow(); 2024 virtual ~DropShadow(); 2025 2026 virtual bool parse( Reader *r, int end, Context *ctx ); 2027 virtual void dump( int indent, Context *ctx ); 2028 virtual size_t calcSize( Context *ctx, int start_at ); 2029 virtual void write( Writer *w, Context *ctx ); 2030 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2031 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2032 2033 static DropShadow* get( Reader *r, int end, Context *ctx ); 2034 static DropShadow* getByName( const char *name ); 2035 2036 Color *getcolor(); 2037 float getblurX(); 2038 void setblurX( float ); 2039 float getblurY(); 2040 void setblurY( float ); 2041 float getangle(); 2042 void setangle( float ); 2043 float getdistance(); 2044 void setdistance( float ); 2045 float getstrength(); 2046 void setstrength( float ); 2047 bool getinnerShadow(); 2048 void setinnerShadow( bool ); 2049 bool getknockout(); 2050 void setknockout( bool ); 2051 bool getcompositeSource(); 2052 void setcompositeSource( bool ); 2053 std::int32_t getpasses(); 2054 void setpasses( std::int32_t ); 2055 2056 2057 protected: 2058 Color color; // object 2059 float blurX; // fixedpoint2 2060 float blurY; // fixedpoint2 2061 float angle; // fixedpoint2 2062 float distance; // fixedpoint2 2063 float strength; // fixedpoint2 2064 bool innerShadow; // bit 2065 bool knockout; // bit 2066 bool compositeSource; // bit 2067 std::int32_t passes; // integer 2068 2069 static int id; 2070 2071 }; 2072 2073 class Blur : public Filter { 2074 public: 2075 Blur(); 2076 virtual ~Blur(); 2077 2078 virtual bool parse( Reader *r, int end, Context *ctx ); 2079 virtual void dump( int indent, Context *ctx ); 2080 virtual size_t calcSize( Context *ctx, int start_at ); 2081 virtual void write( Writer *w, Context *ctx ); 2082 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2083 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2084 2085 static Blur* get( Reader *r, int end, Context *ctx ); 2086 static Blur* getByName( const char *name ); 2087 2088 float getblurX(); 2089 void setblurX( float ); 2090 float getblurY(); 2091 void setblurY( float ); 2092 std::int32_t getpasses(); 2093 void setpasses( std::int32_t ); 2094 std::int32_t getreserved1(); 2095 void setreserved1( std::int32_t ); 2096 2097 2098 protected: 2099 float blurX; // fixedpoint2 2100 float blurY; // fixedpoint2 2101 std::int32_t passes; // integer 2102 std::int32_t reserved1; // integer 2103 2104 static int id; 2105 2106 }; 2107 2108 class Glow : public Filter { 2109 public: 2110 Glow(); 2111 virtual ~Glow(); 2112 2113 virtual bool parse( Reader *r, int end, Context *ctx ); 2114 virtual void dump( int indent, Context *ctx ); 2115 virtual size_t calcSize( Context *ctx, int start_at ); 2116 virtual void write( Writer *w, Context *ctx ); 2117 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2118 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2119 2120 static Glow* get( Reader *r, int end, Context *ctx ); 2121 static Glow* getByName( const char *name ); 2122 2123 Color *getcolor(); 2124 float getblurX(); 2125 void setblurX( float ); 2126 float getblurY(); 2127 void setblurY( float ); 2128 float getstrength(); 2129 void setstrength( float ); 2130 bool getinnerGlow(); 2131 void setinnerGlow( bool ); 2132 bool getknockout(); 2133 void setknockout( bool ); 2134 bool getcompositeSource(); 2135 void setcompositeSource( bool ); 2136 std::int32_t getpasses(); 2137 void setpasses( std::int32_t ); 2138 2139 2140 protected: 2141 Color color; // object 2142 float blurX; // fixedpoint2 2143 float blurY; // fixedpoint2 2144 float strength; // fixedpoint2 2145 bool innerGlow; // bit 2146 bool knockout; // bit 2147 bool compositeSource; // bit 2148 std::int32_t passes; // integer 2149 2150 static int id; 2151 2152 }; 2153 2154 class Bevel : public Filter { 2155 public: 2156 Bevel(); 2157 virtual ~Bevel(); 2158 2159 virtual bool parse( Reader *r, int end, Context *ctx ); 2160 virtual void dump( int indent, Context *ctx ); 2161 virtual size_t calcSize( Context *ctx, int start_at ); 2162 virtual void write( Writer *w, Context *ctx ); 2163 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2164 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2165 2166 static Bevel* get( Reader *r, int end, Context *ctx ); 2167 static Bevel* getByName( const char *name ); 2168 2169 Color *getshadowColor(); 2170 Color *gethighlightColor(); 2171 float getblurX(); 2172 void setblurX( float ); 2173 float getblurY(); 2174 void setblurY( float ); 2175 float getangle(); 2176 void setangle( float ); 2177 float getdistance(); 2178 void setdistance( float ); 2179 float getstrength(); 2180 void setstrength( float ); 2181 bool getinnerShadow(); 2182 void setinnerShadow( bool ); 2183 bool getknockout(); 2184 void setknockout( bool ); 2185 bool getcompositeSource(); 2186 void setcompositeSource( bool ); 2187 bool getonTop(); 2188 void setonTop( bool ); 2189 std::int32_t getpasses(); 2190 void setpasses( std::int32_t ); 2191 2192 2193 protected: 2194 Color shadowColor; // object 2195 Color highlightColor; // object 2196 float blurX; // fixedpoint2 2197 float blurY; // fixedpoint2 2198 float angle; // fixedpoint2 2199 float distance; // fixedpoint2 2200 float strength; // fixedpoint2 2201 bool innerShadow; // bit 2202 bool knockout; // bit 2203 bool compositeSource; // bit 2204 bool onTop; // bit 2205 std::int32_t passes; // integer 2206 2207 static int id; 2208 2209 }; 2210 2211 class GradientGlow : public Filter { 2212 public: 2213 GradientGlow(); 2214 virtual ~GradientGlow(); 2215 2216 virtual bool parse( Reader *r, int end, Context *ctx ); 2217 virtual void dump( int indent, Context *ctx ); 2218 virtual size_t calcSize( Context *ctx, int start_at ); 2219 virtual void write( Writer *w, Context *ctx ); 2220 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2221 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2222 2223 static GradientGlow* get( Reader *r, int end, Context *ctx ); 2224 static GradientGlow* getByName( const char *name ); 2225 2226 std::uint8_t getnumColors(); 2227 void setnumColors( std::uint8_t ); 2228 List<Color> *getcolors(); 2229 List<UChar> *getratio(); 2230 float getblurX(); 2231 void setblurX( float ); 2232 float getblurY(); 2233 void setblurY( float ); 2234 float getangle(); 2235 void setangle( float ); 2236 float getdistance(); 2237 void setdistance( float ); 2238 float getstrength(); 2239 void setstrength( float ); 2240 bool getinnerGlow(); 2241 void setinnerGlow( bool ); 2242 bool getknockout(); 2243 void setknockout( bool ); 2244 bool getcompositeSource(); 2245 void setcompositeSource( bool ); 2246 bool getonTop(); 2247 void setonTop( bool ); 2248 std::int32_t getpasses(); 2249 void setpasses( std::int32_t ); 2250 2251 2252 protected: 2253 std::uint8_t numColors; // byte 2254 List<Color> colors; // list 2255 List<UChar> ratio; // list 2256 float blurX; // fixedpoint2 2257 float blurY; // fixedpoint2 2258 float angle; // fixedpoint2 2259 float distance; // fixedpoint2 2260 float strength; // fixedpoint2 2261 bool innerGlow; // bit 2262 bool knockout; // bit 2263 bool compositeSource; // bit 2264 bool onTop; // bit 2265 std::int32_t passes; // integer 2266 2267 static int id; 2268 2269 }; 2270 2271 class Convolution : public Filter { 2272 public: 2273 Convolution(); 2274 virtual ~Convolution(); 2275 2276 virtual bool parse( Reader *r, int end, Context *ctx ); 2277 virtual void dump( int indent, Context *ctx ); 2278 virtual size_t calcSize( Context *ctx, int start_at ); 2279 virtual void write( Writer *w, Context *ctx ); 2280 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2281 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2282 2283 static Convolution* get( Reader *r, int end, Context *ctx ); 2284 static Convolution* getByName( const char *name ); 2285 2286 std::uint8_t getmatrixX(); 2287 void setmatrixX( std::uint8_t ); 2288 std::uint8_t getmatrixY(); 2289 void setmatrixY( std::uint8_t ); 2290 float getdivizor(); 2291 void setdivizor( float ); 2292 float getbias(); 2293 void setbias( float ); 2294 List<Float> *getmatrix(); 2295 Color *getdefaultColor(); 2296 std::int32_t getreserved(); 2297 void setreserved( std::int32_t ); 2298 bool getclamp(); 2299 void setclamp( bool ); 2300 bool getpreserveAlpha(); 2301 void setpreserveAlpha( bool ); 2302 2303 2304 protected: 2305 std::uint8_t matrixX; // byte 2306 std::uint8_t matrixY; // byte 2307 float divizor; // float 2308 float bias; // float 2309 List<Float> matrix; // list 2310 Color defaultColor; // object 2311 std::int32_t reserved; // integer 2312 bool clamp; // bit 2313 bool preserveAlpha; // bit 2314 2315 static int id; 2316 2317 }; 2318 2319 class ColorMatrix : public Filter { 2320 public: 2321 ColorMatrix(); 2322 virtual ~ColorMatrix(); 2323 2324 virtual bool parse( Reader *r, int end, Context *ctx ); 2325 virtual void dump( int indent, Context *ctx ); 2326 virtual size_t calcSize( Context *ctx, int start_at ); 2327 virtual void write( Writer *w, Context *ctx ); 2328 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2329 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2330 2331 static ColorMatrix* get( Reader *r, int end, Context *ctx ); 2332 static ColorMatrix* getByName( const char *name ); 2333 2334 List<Float> *getmatrix(); 2335 2336 2337 protected: 2338 List<Float> matrix; // list 2339 2340 static int id; 2341 2342 }; 2343 2344 class GradientBevel : public Filter { 2345 public: 2346 GradientBevel(); 2347 virtual ~GradientBevel(); 2348 2349 virtual bool parse( Reader *r, int end, Context *ctx ); 2350 virtual void dump( int indent, Context *ctx ); 2351 virtual size_t calcSize( Context *ctx, int start_at ); 2352 virtual void write( Writer *w, Context *ctx ); 2353 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2354 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2355 2356 static GradientBevel* get( Reader *r, int end, Context *ctx ); 2357 static GradientBevel* getByName( const char *name ); 2358 2359 std::uint8_t getnumColors(); 2360 void setnumColors( std::uint8_t ); 2361 List<Color> *getcolors(); 2362 List<UChar> *getratio(); 2363 float getblurX(); 2364 void setblurX( float ); 2365 float getblurY(); 2366 void setblurY( float ); 2367 float getangle(); 2368 void setangle( float ); 2369 float getdistance(); 2370 void setdistance( float ); 2371 float getstrength(); 2372 void setstrength( float ); 2373 bool getinnerGlow(); 2374 void setinnerGlow( bool ); 2375 bool getknockout(); 2376 void setknockout( bool ); 2377 bool getcompositeSource(); 2378 void setcompositeSource( bool ); 2379 bool getonTop(); 2380 void setonTop( bool ); 2381 std::int32_t getpasses(); 2382 void setpasses( std::int32_t ); 2383 2384 2385 protected: 2386 std::uint8_t numColors; // byte 2387 List<Color> colors; // list 2388 List<UChar> ratio; // list 2389 float blurX; // fixedpoint2 2390 float blurY; // fixedpoint2 2391 float angle; // fixedpoint2 2392 float distance; // fixedpoint2 2393 float strength; // fixedpoint2 2394 bool innerGlow; // bit 2395 bool knockout; // bit 2396 bool compositeSource; // bit 2397 bool onTop; // bit 2398 std::int32_t passes; // integer 2399 2400 static int id; 2401 2402 }; 2403 2404 class Solid : public Style { 2405 public: 2406 Solid(); 2407 virtual ~Solid(); 2408 2409 virtual bool parse( Reader *r, int end, Context *ctx ); 2410 virtual void dump( int indent, Context *ctx ); 2411 virtual size_t calcSize( Context *ctx, int start_at ); 2412 virtual void write( Writer *w, Context *ctx ); 2413 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2414 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2415 2416 static Solid* get( Reader *r, int end, Context *ctx ); 2417 static Solid* getByName( const char *name ); 2418 2419 Color *getcolor(); 2420 2421 2422 protected: 2423 Color color; // object 2424 2425 static int id; 2426 2427 }; 2428 2429 class LinearGradient : public Style { 2430 public: 2431 LinearGradient(); 2432 virtual ~LinearGradient(); 2433 2434 virtual bool parse( Reader *r, int end, Context *ctx ); 2435 virtual void dump( int indent, Context *ctx ); 2436 virtual size_t calcSize( Context *ctx, int start_at ); 2437 virtual void write( Writer *w, Context *ctx ); 2438 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2439 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2440 2441 static LinearGradient* get( Reader *r, int end, Context *ctx ); 2442 static LinearGradient* getByName( const char *name ); 2443 2444 Transform *getmatrix(); 2445 std::int32_t getreserved(); 2446 void setreserved( std::int32_t ); 2447 std::int32_t getspreadMode(); 2448 void setspreadMode( std::int32_t ); 2449 std::int32_t getinterpolationMode(); 2450 void setinterpolationMode( std::int32_t ); 2451 std::int32_t getcount(); 2452 void setcount( std::int32_t ); 2453 List<GradientItem> *getgradientColors(); 2454 2455 2456 protected: 2457 Transform matrix; // object 2458 std::int32_t reserved; // integer 2459 std::int32_t spreadMode; // integer 2460 std::int32_t interpolationMode; // integer 2461 std::int32_t count; // integer 2462 List<GradientItem> gradientColors; // list 2463 2464 static int id; 2465 2466 }; 2467 2468 class RadialGradient : public Style { 2469 public: 2470 RadialGradient(); 2471 virtual ~RadialGradient(); 2472 2473 virtual bool parse( Reader *r, int end, Context *ctx ); 2474 virtual void dump( int indent, Context *ctx ); 2475 virtual size_t calcSize( Context *ctx, int start_at ); 2476 virtual void write( Writer *w, Context *ctx ); 2477 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2478 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2479 2480 static RadialGradient* get( Reader *r, int end, Context *ctx ); 2481 static RadialGradient* getByName( const char *name ); 2482 2483 Transform *getmatrix(); 2484 std::int32_t getreserved(); 2485 void setreserved( std::int32_t ); 2486 std::int32_t getspreadMode(); 2487 void setspreadMode( std::int32_t ); 2488 std::int32_t getinterpolationMode(); 2489 void setinterpolationMode( std::int32_t ); 2490 std::int32_t getcount(); 2491 void setcount( std::int32_t ); 2492 List<GradientItem> *getgradientColors(); 2493 2494 2495 protected: 2496 Transform matrix; // object 2497 std::int32_t reserved; // integer 2498 std::int32_t spreadMode; // integer 2499 std::int32_t interpolationMode; // integer 2500 std::int32_t count; // integer 2501 List<GradientItem> gradientColors; // list 2502 2503 static int id; 2504 2505 }; 2506 2507 class ShiftedRadialGradient : public Style { 2508 public: 2509 ShiftedRadialGradient(); 2510 virtual ~ShiftedRadialGradient(); 2511 2512 virtual bool parse( Reader *r, int end, Context *ctx ); 2513 virtual void dump( int indent, Context *ctx ); 2514 virtual size_t calcSize( Context *ctx, int start_at ); 2515 virtual void write( Writer *w, Context *ctx ); 2516 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2517 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2518 2519 static ShiftedRadialGradient* get( Reader *r, int end, Context *ctx ); 2520 static ShiftedRadialGradient* getByName( const char *name ); 2521 2522 Transform *getmatrix(); 2523 std::int32_t getreserved(); 2524 void setreserved( std::int32_t ); 2525 std::int32_t getspreadMode(); 2526 void setspreadMode( std::int32_t ); 2527 std::int32_t getinterpolationMode(); 2528 void setinterpolationMode( std::int32_t ); 2529 std::int32_t getcount(); 2530 void setcount( std::int32_t ); 2531 List<GradientItem> *getgradientColors(); 2532 float getshift(); 2533 void setshift( float ); 2534 2535 2536 protected: 2537 Transform matrix; // object 2538 std::int32_t reserved; // integer 2539 std::int32_t spreadMode; // integer 2540 std::int32_t interpolationMode; // integer 2541 std::int32_t count; // integer 2542 List<GradientItem> gradientColors; // list 2543 float shift; // fixedpoint2 2544 2545 static int id; 2546 2547 }; 2548 2549 class TiledBitmap : public Style { 2550 public: 2551 TiledBitmap(); 2552 virtual ~TiledBitmap(); 2553 2554 virtual bool parse( Reader *r, int end, Context *ctx ); 2555 virtual void dump( int indent, Context *ctx ); 2556 virtual size_t calcSize( Context *ctx, int start_at ); 2557 virtual void write( Writer *w, Context *ctx ); 2558 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2559 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2560 2561 static TiledBitmap* get( Reader *r, int end, Context *ctx ); 2562 static TiledBitmap* getByName( const char *name ); 2563 2564 std::uint16_t getobjectID(); 2565 void setobjectID( std::uint16_t ); 2566 Transform *getmatrix(); 2567 2568 2569 protected: 2570 std::uint16_t objectID; // word 2571 Transform matrix; // object 2572 2573 static int id; 2574 2575 }; 2576 2577 class ClippedBitmap : public Style { 2578 public: 2579 ClippedBitmap(); 2580 virtual ~ClippedBitmap(); 2581 2582 virtual bool parse( Reader *r, int end, Context *ctx ); 2583 virtual void dump( int indent, Context *ctx ); 2584 virtual size_t calcSize( Context *ctx, int start_at ); 2585 virtual void write( Writer *w, Context *ctx ); 2586 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2587 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2588 2589 static ClippedBitmap* get( Reader *r, int end, Context *ctx ); 2590 static ClippedBitmap* getByName( const char *name ); 2591 2592 std::uint16_t getobjectID(); 2593 void setobjectID( std::uint16_t ); 2594 Transform *getmatrix(); 2595 2596 2597 protected: 2598 std::uint16_t objectID; // word 2599 Transform matrix; // object 2600 2601 static int id; 2602 2603 }; 2604 2605 class TiledBitmap2 : public Style { 2606 public: 2607 TiledBitmap2(); 2608 virtual ~TiledBitmap2(); 2609 2610 virtual bool parse( Reader *r, int end, Context *ctx ); 2611 virtual void dump( int indent, Context *ctx ); 2612 virtual size_t calcSize( Context *ctx, int start_at ); 2613 virtual void write( Writer *w, Context *ctx ); 2614 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2615 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2616 2617 static TiledBitmap2* get( Reader *r, int end, Context *ctx ); 2618 static TiledBitmap2* getByName( const char *name ); 2619 2620 std::uint16_t getobjectID(); 2621 void setobjectID( std::uint16_t ); 2622 Transform *getmatrix(); 2623 2624 2625 protected: 2626 std::uint16_t objectID; // word 2627 Transform matrix; // object 2628 2629 static int id; 2630 2631 }; 2632 2633 class ClippedBitmap2 : public Style { 2634 public: 2635 ClippedBitmap2(); 2636 virtual ~ClippedBitmap2(); 2637 2638 virtual bool parse( Reader *r, int end, Context *ctx ); 2639 virtual void dump( int indent, Context *ctx ); 2640 virtual size_t calcSize( Context *ctx, int start_at ); 2641 virtual void write( Writer *w, Context *ctx ); 2642 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2643 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2644 2645 static ClippedBitmap2* get( Reader *r, int end, Context *ctx ); 2646 static ClippedBitmap2* getByName( const char *name ); 2647 2648 std::uint16_t getobjectID(); 2649 void setobjectID( std::uint16_t ); 2650 Transform *getmatrix(); 2651 2652 2653 protected: 2654 std::uint16_t objectID; // word 2655 Transform matrix; // object 2656 2657 static int id; 2658 2659 }; 2660 2661 class UnknownTag : public Tag { 2662 public: 2663 UnknownTag(); 2664 virtual ~UnknownTag(); 2665 2666 virtual bool parse( Reader *r, int end, Context *ctx ); 2667 virtual void dump( int indent, Context *ctx ); 2668 virtual size_t calcSize( Context *ctx, int start_at ); 2669 virtual void write( Writer *w, Context *ctx ); 2670 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2671 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2672 2673 static UnknownTag* get( Reader *r, int end, Context *ctx ); 2674 static UnknownTag* getByName( const char *name ); 2675 2676 2677 void getdata( unsigned char **dst, int *size ); 2678 void setdata( const unsigned char *src, int size ); 2679 2680 2681 protected: 2682 unsigned char * data; // data 2683 2684 static int id; 2685 2686 }; 2687 2688 class End : public Tag { 2689 public: 2690 End(); 2691 virtual ~End(); 2692 2693 virtual bool parse( Reader *r, int end, Context *ctx ); 2694 virtual void dump( int indent, Context *ctx ); 2695 virtual size_t calcSize( Context *ctx, int start_at ); 2696 virtual void write( Writer *w, Context *ctx ); 2697 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2698 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2699 2700 static End* get( Reader *r, int end, Context *ctx ); 2701 static End* getByName( const char *name ); 2702 2703 2704 2705 protected: 2706 2707 static int id; 2708 2709 }; 2710 2711 class ShowFrame : public Tag { 2712 public: 2713 ShowFrame(); 2714 virtual ~ShowFrame(); 2715 2716 virtual bool parse( Reader *r, int end, Context *ctx ); 2717 virtual void dump( int indent, Context *ctx ); 2718 virtual size_t calcSize( Context *ctx, int start_at ); 2719 virtual void write( Writer *w, Context *ctx ); 2720 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2721 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2722 2723 static ShowFrame* get( Reader *r, int end, Context *ctx ); 2724 static ShowFrame* getByName( const char *name ); 2725 2726 2727 2728 protected: 2729 2730 static int id; 2731 2732 }; 2733 2734 class DefineShape : public Tag { 2735 public: 2736 DefineShape(); 2737 virtual ~DefineShape(); 2738 2739 virtual bool parse( Reader *r, int end, Context *ctx ); 2740 virtual void dump( int indent, Context *ctx ); 2741 virtual size_t calcSize( Context *ctx, int start_at ); 2742 virtual void write( Writer *w, Context *ctx ); 2743 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2744 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2745 2746 static DefineShape* get( Reader *r, int end, Context *ctx ); 2747 static DefineShape* getByName( const char *name ); 2748 2749 std::uint16_t getobjectID(); 2750 void setobjectID( std::uint16_t ); 2751 Rectangle *getbounds(); 2752 StyleList *getstyles(); 2753 Shape *getshapes(); 2754 2755 2756 protected: 2757 std::uint16_t objectID; // word 2758 Rectangle bounds; // object 2759 StyleList styles; // object 2760 Shape shapes; // object 2761 2762 static int id; 2763 2764 }; 2765 2766 class RemoveObject : public Tag { 2767 public: 2768 RemoveObject(); 2769 virtual ~RemoveObject(); 2770 2771 virtual bool parse( Reader *r, int end, Context *ctx ); 2772 virtual void dump( int indent, Context *ctx ); 2773 virtual size_t calcSize( Context *ctx, int start_at ); 2774 virtual void write( Writer *w, Context *ctx ); 2775 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2776 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2777 2778 static RemoveObject* get( Reader *r, int end, Context *ctx ); 2779 static RemoveObject* getByName( const char *name ); 2780 2781 std::uint16_t getobjectID(); 2782 void setobjectID( std::uint16_t ); 2783 std::uint16_t getdepth(); 2784 void setdepth( std::uint16_t ); 2785 2786 2787 protected: 2788 std::uint16_t objectID; // word 2789 std::uint16_t depth; // word 2790 2791 static int id; 2792 2793 }; 2794 2795 class DefineBits : public Tag { 2796 public: 2797 DefineBits(); 2798 virtual ~DefineBits(); 2799 2800 virtual bool parse( Reader *r, int end, Context *ctx ); 2801 virtual void dump( int indent, Context *ctx ); 2802 virtual size_t calcSize( Context *ctx, int start_at ); 2803 virtual void write( Writer *w, Context *ctx ); 2804 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2805 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2806 2807 static DefineBits* get( Reader *r, int end, Context *ctx ); 2808 static DefineBits* getByName( const char *name ); 2809 2810 std::uint16_t getobjectID(); 2811 void setobjectID( std::uint16_t ); 2812 Rest *getdata(); 2813 2814 2815 protected: 2816 std::uint16_t objectID; // word 2817 Rest data; // object 2818 2819 static int id; 2820 2821 }; 2822 2823 class SetBackgroundColor : public Tag { 2824 public: 2825 SetBackgroundColor(); 2826 virtual ~SetBackgroundColor(); 2827 2828 virtual bool parse( Reader *r, int end, Context *ctx ); 2829 virtual void dump( int indent, Context *ctx ); 2830 virtual size_t calcSize( Context *ctx, int start_at ); 2831 virtual void write( Writer *w, Context *ctx ); 2832 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2833 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2834 2835 static SetBackgroundColor* get( Reader *r, int end, Context *ctx ); 2836 static SetBackgroundColor* getByName( const char *name ); 2837 2838 Color *getcolor(); 2839 2840 2841 protected: 2842 Color color; // object 2843 2844 static int id; 2845 2846 }; 2847 2848 class DefineText : public Tag { 2849 public: 2850 DefineText(); 2851 virtual ~DefineText(); 2852 2853 virtual bool parse( Reader *r, int end, Context *ctx ); 2854 virtual void dump( int indent, Context *ctx ); 2855 virtual size_t calcSize( Context *ctx, int start_at ); 2856 virtual void write( Writer *w, Context *ctx ); 2857 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2858 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2859 2860 static DefineText* get( Reader *r, int end, Context *ctx ); 2861 static DefineText* getByName( const char *name ); 2862 2863 std::uint16_t getobjectID(); 2864 void setobjectID( std::uint16_t ); 2865 Rectangle *getbounds(); 2866 Transform *gettransform(); 2867 std::uint8_t getglyphBits(); 2868 void setglyphBits( std::uint8_t ); 2869 std::uint8_t getadvanceBits(); 2870 void setadvanceBits( std::uint8_t ); 2871 List<TextRecord> *getrecords(); 2872 2873 2874 protected: 2875 std::uint16_t objectID; // word 2876 Rectangle bounds; // object 2877 Transform transform; // object 2878 std::uint8_t glyphBits; // byte 2879 std::uint8_t advanceBits; // byte 2880 List<TextRecord> records; // list 2881 2882 static int id; 2883 2884 }; 2885 2886 class DefineText2 : public Tag { 2887 public: 2888 DefineText2(); 2889 virtual ~DefineText2(); 2890 2891 virtual bool parse( Reader *r, int end, Context *ctx ); 2892 virtual void dump( int indent, Context *ctx ); 2893 virtual size_t calcSize( Context *ctx, int start_at ); 2894 virtual void write( Writer *w, Context *ctx ); 2895 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2896 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2897 2898 static DefineText2* get( Reader *r, int end, Context *ctx ); 2899 static DefineText2* getByName( const char *name ); 2900 2901 std::uint16_t getobjectID(); 2902 void setobjectID( std::uint16_t ); 2903 Rectangle *getbounds(); 2904 Transform *gettransform(); 2905 std::uint8_t getglyphBits(); 2906 void setglyphBits( std::uint8_t ); 2907 std::uint8_t getadvanceBits(); 2908 void setadvanceBits( std::uint8_t ); 2909 List<TextRecord2> *getrecords(); 2910 2911 2912 protected: 2913 std::uint16_t objectID; // word 2914 Rectangle bounds; // object 2915 Transform transform; // object 2916 std::uint8_t glyphBits; // byte 2917 std::uint8_t advanceBits; // byte 2918 List<TextRecord2> records; // list 2919 2920 static int id; 2921 2922 }; 2923 2924 class DoAction : public Tag { 2925 public: 2926 DoAction(); 2927 virtual ~DoAction(); 2928 2929 virtual bool parse( Reader *r, int end, Context *ctx ); 2930 virtual void dump( int indent, Context *ctx ); 2931 virtual size_t calcSize( Context *ctx, int start_at ); 2932 virtual void write( Writer *w, Context *ctx ); 2933 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2934 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2935 2936 static DoAction* get( Reader *r, int end, Context *ctx ); 2937 static DoAction* getByName( const char *name ); 2938 2939 List<Action> *getactions(); 2940 2941 2942 protected: 2943 List<Action> actions; // list 2944 2945 static int id; 2946 2947 }; 2948 2949 class DefineFontInfo : public Tag { 2950 public: 2951 DefineFontInfo(); 2952 virtual ~DefineFontInfo(); 2953 2954 virtual bool parse( Reader *r, int end, Context *ctx ); 2955 virtual void dump( int indent, Context *ctx ); 2956 virtual size_t calcSize( Context *ctx, int start_at ); 2957 virtual void write( Writer *w, Context *ctx ); 2958 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 2959 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 2960 2961 static DefineFontInfo* get( Reader *r, int end, Context *ctx ); 2962 static DefineFontInfo* getByName( const char *name ); 2963 2964 std::uint16_t getobjectID(); 2965 void setobjectID( std::uint16_t ); 2966 std::uint8_t getnameLength(); 2967 void setnameLength( std::uint8_t ); 2968 2969 void getnameData( unsigned char **dst, int *size ); 2970 void setnameData( const unsigned char *src, int size ); 2971 std::int32_t getreserved(); 2972 void setreserved( std::int32_t ); 2973 bool getsmallTextOrUnicode(); 2974 void setsmallTextOrUnicode( bool ); 2975 bool getisShiftJIS(); 2976 void setisShiftJIS( bool ); 2977 bool getisANSII(); 2978 void setisANSII( bool ); 2979 bool getisItalic(); 2980 void setisItalic( bool ); 2981 bool getisBold(); 2982 void setisBold( bool ); 2983 bool getisWide(); 2984 void setisWide( bool ); 2985 std::uint8_t getlanguage(); 2986 void setlanguage( std::uint8_t ); 2987 Rest *getmap(); 2988 2989 2990 protected: 2991 std::uint16_t objectID; // word 2992 std::uint8_t nameLength; // byte 2993 unsigned char * nameData; // data 2994 std::int32_t reserved; // integer 2995 bool smallTextOrUnicode; // bit 2996 bool isShiftJIS; // bit 2997 bool isANSII; // bit 2998 bool isItalic; // bit 2999 bool isBold; // bit 3000 bool isWide; // bit 3001 std::uint8_t language; // byte 3002 Rest map; // object 3003 3004 static int id; 3005 3006 }; 3007 3008 class DefineSound : public Tag { 3009 public: 3010 DefineSound(); 3011 virtual ~DefineSound(); 3012 3013 virtual bool parse( Reader *r, int end, Context *ctx ); 3014 virtual void dump( int indent, Context *ctx ); 3015 virtual size_t calcSize( Context *ctx, int start_at ); 3016 virtual void write( Writer *w, Context *ctx ); 3017 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3018 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3019 3020 static DefineSound* get( Reader *r, int end, Context *ctx ); 3021 static DefineSound* getByName( const char *name ); 3022 3023 std::uint16_t getobjectID(); 3024 void setobjectID( std::uint16_t ); 3025 std::int32_t getformat(); 3026 void setformat( std::int32_t ); 3027 std::int32_t getrate(); 3028 void setrate( std::int32_t ); 3029 bool getis16bit(); 3030 void setis16bit( bool ); 3031 bool getstereo(); 3032 void setstereo( bool ); 3033 std::uint32_t getsamples(); 3034 void setsamples( std::uint32_t ); 3035 Rest *getdata(); 3036 3037 3038 protected: 3039 std::uint16_t objectID; // word 3040 std::int32_t format; // integer 3041 std::int32_t rate; // integer 3042 bool is16bit; // bit 3043 bool stereo; // bit 3044 std::uint32_t samples; // uint32 3045 Rest data; // object 3046 3047 static int id; 3048 3049 }; 3050 3051 class StartSound : public Tag { 3052 public: 3053 StartSound(); 3054 virtual ~StartSound(); 3055 3056 virtual bool parse( Reader *r, int end, Context *ctx ); 3057 virtual void dump( int indent, Context *ctx ); 3058 virtual size_t calcSize( Context *ctx, int start_at ); 3059 virtual void write( Writer *w, Context *ctx ); 3060 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3061 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3062 3063 static StartSound* get( Reader *r, int end, Context *ctx ); 3064 static StartSound* getByName( const char *name ); 3065 3066 std::uint16_t getobjectID(); 3067 void setobjectID( std::uint16_t ); 3068 std::int32_t getreserved(); 3069 void setreserved( std::int32_t ); 3070 bool getstopPlayback(); 3071 void setstopPlayback( bool ); 3072 bool getnoMultiple(); 3073 void setnoMultiple( bool ); 3074 bool gethasEnvelope(); 3075 void sethasEnvelope( bool ); 3076 bool gethasLoop(); 3077 void sethasLoop( bool ); 3078 bool gethasOutPoint(); 3079 void sethasOutPoint( bool ); 3080 bool gethasInPoint(); 3081 void sethasInPoint( bool ); 3082 std::uint32_t getinPoint(); 3083 void setinPoint( std::uint32_t ); 3084 std::uint32_t getoutPoint(); 3085 void setoutPoint( std::uint32_t ); 3086 std::uint16_t getloop(); 3087 void setloop( std::uint16_t ); 3088 std::uint8_t getenvelopeCount(); 3089 void setenvelopeCount( std::uint8_t ); 3090 Rest *getenvelopeData(); 3091 3092 3093 protected: 3094 std::uint16_t objectID; // word 3095 std::int32_t reserved; // integer 3096 bool stopPlayback; // bit 3097 bool noMultiple; // bit 3098 bool hasEnvelope; // bit 3099 bool hasLoop; // bit 3100 bool hasOutPoint; // bit 3101 bool hasInPoint; // bit 3102 std::uint32_t inPoint; // uint32 3103 std::uint32_t outPoint; // uint32 3104 std::uint16_t loop; // word 3105 std::uint8_t envelopeCount; // byte 3106 Rest envelopeData; // object 3107 3108 static int id; 3109 3110 }; 3111 3112 class DefineShape2 : public Tag { 3113 public: 3114 DefineShape2(); 3115 virtual ~DefineShape2(); 3116 3117 virtual bool parse( Reader *r, int end, Context *ctx ); 3118 virtual void dump( int indent, Context *ctx ); 3119 virtual size_t calcSize( Context *ctx, int start_at ); 3120 virtual void write( Writer *w, Context *ctx ); 3121 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3122 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3123 3124 static DefineShape2* get( Reader *r, int end, Context *ctx ); 3125 static DefineShape2* getByName( const char *name ); 3126 3127 std::uint16_t getobjectID(); 3128 void setobjectID( std::uint16_t ); 3129 Rectangle *getbounds(); 3130 StyleList *getstyles(); 3131 Shape *getshapes(); 3132 3133 3134 protected: 3135 std::uint16_t objectID; // word 3136 Rectangle bounds; // object 3137 StyleList styles; // object 3138 Shape shapes; // object 3139 3140 static int id; 3141 3142 }; 3143 3144 class DefineShape3 : public Tag { 3145 public: 3146 DefineShape3(); 3147 virtual ~DefineShape3(); 3148 3149 virtual bool parse( Reader *r, int end, Context *ctx ); 3150 virtual void dump( int indent, Context *ctx ); 3151 virtual size_t calcSize( Context *ctx, int start_at ); 3152 virtual void write( Writer *w, Context *ctx ); 3153 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3154 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3155 3156 static DefineShape3* get( Reader *r, int end, Context *ctx ); 3157 static DefineShape3* getByName( const char *name ); 3158 3159 std::uint16_t getobjectID(); 3160 void setobjectID( std::uint16_t ); 3161 Rectangle *getbounds(); 3162 StyleList *getstyles(); 3163 Shape *getshapes(); 3164 3165 3166 protected: 3167 std::uint16_t objectID; // word 3168 Rectangle bounds; // object 3169 StyleList styles; // object 3170 Shape shapes; // object 3171 3172 static int id; 3173 3174 }; 3175 3176 class DefineShape4 : public Tag { 3177 public: 3178 DefineShape4(); 3179 virtual ~DefineShape4(); 3180 3181 virtual bool parse( Reader *r, int end, Context *ctx ); 3182 virtual void dump( int indent, Context *ctx ); 3183 virtual size_t calcSize( Context *ctx, int start_at ); 3184 virtual void write( Writer *w, Context *ctx ); 3185 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3186 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3187 3188 static DefineShape4* get( Reader *r, int end, Context *ctx ); 3189 static DefineShape4* getByName( const char *name ); 3190 3191 std::uint16_t getobjectID(); 3192 void setobjectID( std::uint16_t ); 3193 Rest *getdata(); 3194 3195 3196 protected: 3197 std::uint16_t objectID; // word 3198 Rest data; // object 3199 3200 static int id; 3201 3202 }; 3203 3204 class DefineShape5 : public Tag { 3205 public: 3206 DefineShape5(); 3207 virtual ~DefineShape5(); 3208 3209 virtual bool parse( Reader *r, int end, Context *ctx ); 3210 virtual void dump( int indent, Context *ctx ); 3211 virtual size_t calcSize( Context *ctx, int start_at ); 3212 virtual void write( Writer *w, Context *ctx ); 3213 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3214 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3215 3216 static DefineShape5* get( Reader *r, int end, Context *ctx ); 3217 static DefineShape5* getByName( const char *name ); 3218 3219 std::uint16_t getobjectID(); 3220 void setobjectID( std::uint16_t ); 3221 Rectangle *getbounds(); 3222 Rectangle *getstrokeBounds(); 3223 std::int32_t getreserved(); 3224 void setreserved( std::int32_t ); 3225 bool getnonScalingStrokes(); 3226 void setnonScalingStrokes( bool ); 3227 bool getscalingStrokes(); 3228 void setscalingStrokes( bool ); 3229 StyleList *getstyles(); 3230 Shape *getshapes(); 3231 3232 3233 protected: 3234 std::uint16_t objectID; // word 3235 Rectangle bounds; // object 3236 Rectangle strokeBounds; // object 3237 std::int32_t reserved; // integer 3238 bool nonScalingStrokes; // bit 3239 bool scalingStrokes; // bit 3240 StyleList styles; // object 3241 Shape shapes; // object 3242 3243 static int id; 3244 3245 }; 3246 3247 class DefineMorphShape : public Tag { 3248 public: 3249 DefineMorphShape(); 3250 virtual ~DefineMorphShape(); 3251 3252 virtual bool parse( Reader *r, int end, Context *ctx ); 3253 virtual void dump( int indent, Context *ctx ); 3254 virtual size_t calcSize( Context *ctx, int start_at ); 3255 virtual void write( Writer *w, Context *ctx ); 3256 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3257 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3258 3259 static DefineMorphShape* get( Reader *r, int end, Context *ctx ); 3260 static DefineMorphShape* getByName( const char *name ); 3261 3262 std::uint16_t getobjectID(); 3263 void setobjectID( std::uint16_t ); 3264 Rest *getdata(); 3265 3266 3267 protected: 3268 std::uint16_t objectID; // word 3269 Rest data; // object 3270 3271 static int id; 3272 3273 }; 3274 3275 class DefineFontInfo2 : public Tag { 3276 public: 3277 DefineFontInfo2(); 3278 virtual ~DefineFontInfo2(); 3279 3280 virtual bool parse( Reader *r, int end, Context *ctx ); 3281 virtual void dump( int indent, Context *ctx ); 3282 virtual size_t calcSize( Context *ctx, int start_at ); 3283 virtual void write( Writer *w, Context *ctx ); 3284 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3285 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3286 3287 static DefineFontInfo2* get( Reader *r, int end, Context *ctx ); 3288 static DefineFontInfo2* getByName( const char *name ); 3289 3290 std::uint16_t getobjectID(); 3291 void setobjectID( std::uint16_t ); 3292 std::uint8_t getnameLength(); 3293 void setnameLength( std::uint8_t ); 3294 3295 void getnameData( unsigned char **dst, int *size ); 3296 void setnameData( const unsigned char *src, int size ); 3297 std::int32_t getreserved(); 3298 void setreserved( std::int32_t ); 3299 bool getsmallTextOrUnicode(); 3300 void setsmallTextOrUnicode( bool ); 3301 bool getisShiftJIS(); 3302 void setisShiftJIS( bool ); 3303 bool getisANSII(); 3304 void setisANSII( bool ); 3305 bool getisItalic(); 3306 void setisItalic( bool ); 3307 bool getisBold(); 3308 void setisBold( bool ); 3309 bool getisWide(); 3310 void setisWide( bool ); 3311 std::uint8_t getlanguage(); 3312 void setlanguage( std::uint8_t ); 3313 Rest *getmap(); 3314 3315 3316 protected: 3317 std::uint16_t objectID; // word 3318 std::uint8_t nameLength; // byte 3319 unsigned char * nameData; // data 3320 std::int32_t reserved; // integer 3321 bool smallTextOrUnicode; // bit 3322 bool isShiftJIS; // bit 3323 bool isANSII; // bit 3324 bool isItalic; // bit 3325 bool isBold; // bit 3326 bool isWide; // bit 3327 std::uint8_t language; // byte 3328 Rest map; // object 3329 3330 static int id; 3331 3332 }; 3333 3334 class SoundStreamHead : public Tag { 3335 public: 3336 SoundStreamHead(); 3337 virtual ~SoundStreamHead(); 3338 3339 virtual bool parse( Reader *r, int end, Context *ctx ); 3340 virtual void dump( int indent, Context *ctx ); 3341 virtual size_t calcSize( Context *ctx, int start_at ); 3342 virtual void write( Writer *w, Context *ctx ); 3343 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3344 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3345 3346 static SoundStreamHead* get( Reader *r, int end, Context *ctx ); 3347 static SoundStreamHead* getByName( const char *name ); 3348 3349 std::int32_t getreserved(); 3350 void setreserved( std::int32_t ); 3351 std::int32_t getplaybackRate(); 3352 void setplaybackRate( std::int32_t ); 3353 bool getplaybackSize(); 3354 void setplaybackSize( bool ); 3355 bool getplaybackStereo(); 3356 void setplaybackStereo( bool ); 3357 std::int32_t getcompression(); 3358 void setcompression( std::int32_t ); 3359 std::int32_t getsoundRate(); 3360 void setsoundRate( std::int32_t ); 3361 bool getsoundSize(); 3362 void setsoundSize( bool ); 3363 bool getsoundStereo(); 3364 void setsoundStereo( bool ); 3365 std::uint16_t getsampleSize(); 3366 void setsampleSize( std::uint16_t ); 3367 Rest *getlatencySeek(); 3368 3369 3370 protected: 3371 std::int32_t reserved; // integer 3372 std::int32_t playbackRate; // integer 3373 bool playbackSize; // bit 3374 bool playbackStereo; // bit 3375 std::int32_t compression; // integer 3376 std::int32_t soundRate; // integer 3377 bool soundSize; // bit 3378 bool soundStereo; // bit 3379 std::uint16_t sampleSize; // word 3380 Rest latencySeek; // object 3381 3382 static int id; 3383 3384 }; 3385 3386 class DefineBitsLossless : public Tag { 3387 public: 3388 DefineBitsLossless(); 3389 virtual ~DefineBitsLossless(); 3390 3391 virtual bool parse( Reader *r, int end, Context *ctx ); 3392 virtual void dump( int indent, Context *ctx ); 3393 virtual size_t calcSize( Context *ctx, int start_at ); 3394 virtual void write( Writer *w, Context *ctx ); 3395 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3396 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3397 3398 static DefineBitsLossless* get( Reader *r, int end, Context *ctx ); 3399 static DefineBitsLossless* getByName( const char *name ); 3400 3401 std::uint16_t getobjectID(); 3402 void setobjectID( std::uint16_t ); 3403 std::uint8_t getformat(); 3404 void setformat( std::uint8_t ); 3405 std::uint16_t getwidth(); 3406 void setwidth( std::uint16_t ); 3407 std::uint16_t getheight(); 3408 void setheight( std::uint16_t ); 3409 std::uint8_t getn_colormap(); 3410 void setn_colormap( std::uint8_t ); 3411 Rest *getdata(); 3412 3413 3414 protected: 3415 std::uint16_t objectID; // word 3416 std::uint8_t format; // byte 3417 std::uint16_t width; // word 3418 std::uint16_t height; // word 3419 std::uint8_t n_colormap; // byte 3420 Rest data; // object 3421 3422 static int id; 3423 3424 }; 3425 3426 class DefineBitsJPEG2 : public Tag { 3427 public: 3428 DefineBitsJPEG2(); 3429 virtual ~DefineBitsJPEG2(); 3430 3431 virtual bool parse( Reader *r, int end, Context *ctx ); 3432 virtual void dump( int indent, Context *ctx ); 3433 virtual size_t calcSize( Context *ctx, int start_at ); 3434 virtual void write( Writer *w, Context *ctx ); 3435 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3436 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3437 3438 static DefineBitsJPEG2* get( Reader *r, int end, Context *ctx ); 3439 static DefineBitsJPEG2* getByName( const char *name ); 3440 3441 std::uint16_t getobjectID(); 3442 void setobjectID( std::uint16_t ); 3443 Rest *getdata(); 3444 3445 3446 protected: 3447 std::uint16_t objectID; // word 3448 Rest data; // object 3449 3450 static int id; 3451 3452 }; 3453 3454 class DefineBitsJPEG3 : public Tag { 3455 public: 3456 DefineBitsJPEG3(); 3457 virtual ~DefineBitsJPEG3(); 3458 3459 virtual bool parse( Reader *r, int end, Context *ctx ); 3460 virtual void dump( int indent, Context *ctx ); 3461 virtual size_t calcSize( Context *ctx, int start_at ); 3462 virtual void write( Writer *w, Context *ctx ); 3463 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3464 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3465 3466 static DefineBitsJPEG3* get( Reader *r, int end, Context *ctx ); 3467 static DefineBitsJPEG3* getByName( const char *name ); 3468 3469 std::uint16_t getobjectID(); 3470 void setobjectID( std::uint16_t ); 3471 std::uint32_t getoffset_to_alpha(); 3472 void setoffset_to_alpha( std::uint32_t ); 3473 Rest *getdata(); 3474 3475 3476 protected: 3477 std::uint16_t objectID; // word 3478 std::uint32_t offset_to_alpha; // uint32 3479 Rest data; // object 3480 3481 static int id; 3482 3483 }; 3484 3485 class DefineBitsLossless2 : public Tag { 3486 public: 3487 DefineBitsLossless2(); 3488 virtual ~DefineBitsLossless2(); 3489 3490 virtual bool parse( Reader *r, int end, Context *ctx ); 3491 virtual void dump( int indent, Context *ctx ); 3492 virtual size_t calcSize( Context *ctx, int start_at ); 3493 virtual void write( Writer *w, Context *ctx ); 3494 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3495 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3496 3497 static DefineBitsLossless2* get( Reader *r, int end, Context *ctx ); 3498 static DefineBitsLossless2* getByName( const char *name ); 3499 3500 std::uint16_t getobjectID(); 3501 void setobjectID( std::uint16_t ); 3502 std::uint8_t getformat(); 3503 void setformat( std::uint8_t ); 3504 std::uint16_t getwidth(); 3505 void setwidth( std::uint16_t ); 3506 std::uint16_t getheight(); 3507 void setheight( std::uint16_t ); 3508 std::uint8_t getn_colormap(); 3509 void setn_colormap( std::uint8_t ); 3510 Rest *getdata(); 3511 3512 3513 protected: 3514 std::uint16_t objectID; // word 3515 std::uint8_t format; // byte 3516 std::uint16_t width; // word 3517 std::uint16_t height; // word 3518 std::uint8_t n_colormap; // byte 3519 Rest data; // object 3520 3521 static int id; 3522 3523 }; 3524 3525 class PlaceObject2 : public Tag { 3526 public: 3527 PlaceObject2(); 3528 virtual ~PlaceObject2(); 3529 3530 virtual bool parse( Reader *r, int end, Context *ctx ); 3531 virtual void dump( int indent, Context *ctx ); 3532 virtual size_t calcSize( Context *ctx, int start_at ); 3533 virtual void write( Writer *w, Context *ctx ); 3534 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3535 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3536 3537 static PlaceObject2* get( Reader *r, int end, Context *ctx ); 3538 static PlaceObject2* getByName( const char *name ); 3539 3540 bool gethasEventHandler(); 3541 void sethasEventHandler( bool ); 3542 bool gethasClipDepth(); 3543 void sethasClipDepth( bool ); 3544 bool gethasName(); 3545 void sethasName( bool ); 3546 bool gethasMorph(); 3547 void sethasMorph( bool ); 3548 bool gethasColorTransform(); 3549 void sethasColorTransform( bool ); 3550 bool gethasTransform(); 3551 void sethasTransform( bool ); 3552 bool gethasID(); 3553 void sethasID( bool ); 3554 bool getreplace(); 3555 void setreplace( bool ); 3556 std::uint16_t getdepth(); 3557 void setdepth( std::uint16_t ); 3558 std::uint16_t getobjectID(); 3559 void setobjectID( std::uint16_t ); 3560 Transform *gettransform(); 3561 ColorTransform2 *getcolorTransform(); 3562 std::uint16_t getmorph(); 3563 void setmorph( std::uint16_t ); 3564 char * getname(); 3565 void setname( char * ); 3566 std::uint16_t getclipDepth(); 3567 void setclipDepth( std::uint16_t ); 3568 std::uint16_t getreserved(); 3569 void setreserved( std::uint16_t ); 3570 std::uint16_t getallflags1(); 3571 void setallflags1( std::uint16_t ); 3572 std::uint16_t getallflags2(); 3573 void setallflags2( std::uint16_t ); 3574 List<Event> *getevents(); 3575 3576 3577 protected: 3578 bool hasEventHandler; // bit 3579 bool hasClipDepth; // bit 3580 bool hasName; // bit 3581 bool hasMorph; // bit 3582 bool hasColorTransform; // bit 3583 bool hasTransform; // bit 3584 bool hasID; // bit 3585 bool replace; // bit 3586 std::uint16_t depth; // word 3587 std::uint16_t objectID; // word 3588 Transform transform; // object 3589 ColorTransform2 colorTransform; // object 3590 std::uint16_t morph; // word 3591 char * name; // string 3592 std::uint16_t clipDepth; // word 3593 std::uint16_t reserved; // word 3594 std::uint16_t allflags1; // word 3595 std::uint16_t allflags2; // word 3596 List<Event> events; // list 3597 3598 static int id; 3599 3600 }; 3601 3602 class RemoveObject2 : public Tag { 3603 public: 3604 RemoveObject2(); 3605 virtual ~RemoveObject2(); 3606 3607 virtual bool parse( Reader *r, int end, Context *ctx ); 3608 virtual void dump( int indent, Context *ctx ); 3609 virtual size_t calcSize( Context *ctx, int start_at ); 3610 virtual void write( Writer *w, Context *ctx ); 3611 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3612 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3613 3614 static RemoveObject2* get( Reader *r, int end, Context *ctx ); 3615 static RemoveObject2* getByName( const char *name ); 3616 3617 std::uint16_t getdepth(); 3618 void setdepth( std::uint16_t ); 3619 3620 3621 protected: 3622 std::uint16_t depth; // word 3623 3624 static int id; 3625 3626 }; 3627 3628 class DefineEditText : public Tag { 3629 public: 3630 DefineEditText(); 3631 virtual ~DefineEditText(); 3632 3633 virtual bool parse( Reader *r, int end, Context *ctx ); 3634 virtual void dump( int indent, Context *ctx ); 3635 virtual size_t calcSize( Context *ctx, int start_at ); 3636 virtual void write( Writer *w, Context *ctx ); 3637 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3638 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3639 3640 static DefineEditText* get( Reader *r, int end, Context *ctx ); 3641 static DefineEditText* getByName( const char *name ); 3642 3643 std::uint16_t getobjectID(); 3644 void setobjectID( std::uint16_t ); 3645 Rectangle *getsize(); 3646 bool gethasText(); 3647 void sethasText( bool ); 3648 bool getwordWrap(); 3649 void setwordWrap( bool ); 3650 bool getmultiLine(); 3651 void setmultiLine( bool ); 3652 bool getpassword(); 3653 void setpassword( bool ); 3654 bool getreadOnly(); 3655 void setreadOnly( bool ); 3656 bool gethasColor(); 3657 void sethasColor( bool ); 3658 bool gethasMaxLength(); 3659 void sethasMaxLength( bool ); 3660 bool gethasFont(); 3661 void sethasFont( bool ); 3662 bool getreserved(); 3663 void setreserved( bool ); 3664 bool getautoSize(); 3665 void setautoSize( bool ); 3666 bool gethasLayout(); 3667 void sethasLayout( bool ); 3668 bool getnotSelectable(); 3669 void setnotSelectable( bool ); 3670 bool gethasBorder(); 3671 void sethasBorder( bool ); 3672 bool getreserved2(); 3673 void setreserved2( bool ); 3674 bool getisHTML(); 3675 void setisHTML( bool ); 3676 bool getuseOutlines(); 3677 void setuseOutlines( bool ); 3678 std::uint16_t getfontRef(); 3679 void setfontRef( std::uint16_t ); 3680 std::uint16_t getfontHeight(); 3681 void setfontHeight( std::uint16_t ); 3682 Color *getcolor(); 3683 std::uint16_t getmaxLength(); 3684 void setmaxLength( std::uint16_t ); 3685 std::uint8_t getalign(); 3686 void setalign( std::uint8_t ); 3687 std::uint16_t getleftMargin(); 3688 void setleftMargin( std::uint16_t ); 3689 std::uint16_t getrightMargin(); 3690 void setrightMargin( std::uint16_t ); 3691 std::uint16_t getindent(); 3692 void setindent( std::uint16_t ); 3693 std::uint16_t getleading(); 3694 void setleading( std::uint16_t ); 3695 char * getvariableName(); 3696 void setvariableName( char * ); 3697 char * getinitialText(); 3698 void setinitialText( char * ); 3699 3700 3701 protected: 3702 std::uint16_t objectID; // word 3703 Rectangle size; // object 3704 bool hasText; // bit 3705 bool wordWrap; // bit 3706 bool multiLine; // bit 3707 bool password; // bit 3708 bool readOnly; // bit 3709 bool hasColor; // bit 3710 bool hasMaxLength; // bit 3711 bool hasFont; // bit 3712 bool reserved; // bit 3713 bool autoSize; // bit 3714 bool hasLayout; // bit 3715 bool notSelectable; // bit 3716 bool hasBorder; // bit 3717 bool reserved2; // bit 3718 bool isHTML; // bit 3719 bool useOutlines; // bit 3720 std::uint16_t fontRef; // word 3721 std::uint16_t fontHeight; // word 3722 Color color; // object 3723 std::uint16_t maxLength; // word 3724 std::uint8_t align; // byte 3725 std::uint16_t leftMargin; // word 3726 std::uint16_t rightMargin; // word 3727 std::uint16_t indent; // word 3728 std::uint16_t leading; // word 3729 char * variableName; // string 3730 char * initialText; // string 3731 3732 static int id; 3733 3734 }; 3735 3736 class DefineSprite : public Tag { 3737 public: 3738 DefineSprite(); 3739 virtual ~DefineSprite(); 3740 3741 virtual bool parse( Reader *r, int end, Context *ctx ); 3742 virtual void dump( int indent, Context *ctx ); 3743 virtual size_t calcSize( Context *ctx, int start_at ); 3744 virtual void write( Writer *w, Context *ctx ); 3745 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3746 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3747 3748 static DefineSprite* get( Reader *r, int end, Context *ctx ); 3749 static DefineSprite* getByName( const char *name ); 3750 3751 std::uint16_t getobjectID(); 3752 void setobjectID( std::uint16_t ); 3753 std::uint16_t getframes(); 3754 void setframes( std::uint16_t ); 3755 List<Tag> *gettags(); 3756 3757 3758 protected: 3759 std::uint16_t objectID; // word 3760 std::uint16_t frames; // word 3761 List<Tag> tags; // list 3762 3763 static int id; 3764 3765 }; 3766 3767 class FrameLabel : public Tag { 3768 public: 3769 FrameLabel(); 3770 virtual ~FrameLabel(); 3771 3772 virtual bool parse( Reader *r, int end, Context *ctx ); 3773 virtual void dump( int indent, Context *ctx ); 3774 virtual size_t calcSize( Context *ctx, int start_at ); 3775 virtual void write( Writer *w, Context *ctx ); 3776 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3777 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3778 3779 static FrameLabel* get( Reader *r, int end, Context *ctx ); 3780 static FrameLabel* getByName( const char *name ); 3781 3782 char * getlabel(); 3783 void setlabel( char * ); 3784 Rest *getflags(); 3785 3786 3787 protected: 3788 char * label; // string 3789 Rest flags; // object 3790 3791 static int id; 3792 3793 }; 3794 3795 class SoundStreamHead2 : public Tag { 3796 public: 3797 SoundStreamHead2(); 3798 virtual ~SoundStreamHead2(); 3799 3800 virtual bool parse( Reader *r, int end, Context *ctx ); 3801 virtual void dump( int indent, Context *ctx ); 3802 virtual size_t calcSize( Context *ctx, int start_at ); 3803 virtual void write( Writer *w, Context *ctx ); 3804 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3805 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3806 3807 static SoundStreamHead2* get( Reader *r, int end, Context *ctx ); 3808 static SoundStreamHead2* getByName( const char *name ); 3809 3810 std::int32_t getreserved(); 3811 void setreserved( std::int32_t ); 3812 std::int32_t getplaybackRate(); 3813 void setplaybackRate( std::int32_t ); 3814 bool getplaybackSize(); 3815 void setplaybackSize( bool ); 3816 bool getplaybackStereo(); 3817 void setplaybackStereo( bool ); 3818 std::int32_t getcompression(); 3819 void setcompression( std::int32_t ); 3820 std::int32_t getsoundRate(); 3821 void setsoundRate( std::int32_t ); 3822 bool getsoundSize(); 3823 void setsoundSize( bool ); 3824 bool getsoundStereo(); 3825 void setsoundStereo( bool ); 3826 std::uint16_t getsampleSize(); 3827 void setsampleSize( std::uint16_t ); 3828 Rest *getlatencySeek(); 3829 3830 3831 protected: 3832 std::int32_t reserved; // integer 3833 std::int32_t playbackRate; // integer 3834 bool playbackSize; // bit 3835 bool playbackStereo; // bit 3836 std::int32_t compression; // integer 3837 std::int32_t soundRate; // integer 3838 bool soundSize; // bit 3839 bool soundStereo; // bit 3840 std::uint16_t sampleSize; // word 3841 Rest latencySeek; // object 3842 3843 static int id; 3844 3845 }; 3846 3847 class DefineFont : public Tag { 3848 public: 3849 DefineFont(); 3850 virtual ~DefineFont(); 3851 3852 virtual bool parse( Reader *r, int end, Context *ctx ); 3853 virtual void dump( int indent, Context *ctx ); 3854 virtual size_t calcSize( Context *ctx, int start_at ); 3855 virtual void write( Writer *w, Context *ctx ); 3856 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3857 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3858 3859 static DefineFont* get( Reader *r, int end, Context *ctx ); 3860 static DefineFont* getByName( const char *name ); 3861 3862 std::uint16_t getobjectID(); 3863 void setobjectID( std::uint16_t ); 3864 Rest *getdata(); 3865 3866 3867 protected: 3868 std::uint16_t objectID; // word 3869 Rest data; // object 3870 3871 static int id; 3872 3873 }; 3874 3875 class DefineFont2 : public Tag { 3876 public: 3877 DefineFont2(); 3878 virtual ~DefineFont2(); 3879 3880 virtual bool parse( Reader *r, int end, Context *ctx ); 3881 virtual void dump( int indent, Context *ctx ); 3882 virtual size_t calcSize( Context *ctx, int start_at ); 3883 virtual void write( Writer *w, Context *ctx ); 3884 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3885 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3886 3887 static DefineFont2* get( Reader *r, int end, Context *ctx ); 3888 static DefineFont2* getByName( const char *name ); 3889 3890 std::uint16_t getobjectID(); 3891 void setobjectID( std::uint16_t ); 3892 bool gethasLayout(); 3893 void sethasLayout( bool ); 3894 bool getisShiftJIS(); 3895 void setisShiftJIS( bool ); 3896 bool getisUnicode(); 3897 void setisUnicode( bool ); 3898 bool getisANSII(); 3899 void setisANSII( bool ); 3900 bool getwideGlyphOffsets(); 3901 void setwideGlyphOffsets( bool ); 3902 bool getwideMap(); 3903 void setwideMap( bool ); 3904 bool getitalic(); 3905 void setitalic( bool ); 3906 bool getbold(); 3907 void setbold( bool ); 3908 std::uint8_t getlanguage(); 3909 void setlanguage( std::uint8_t ); 3910 char * getname(); 3911 void setname( char * ); 3912 std::uint16_t getglyphCount(); 3913 void setglyphCount( std::uint16_t ); 3914 GlyphList *getglyphs(); 3915 std::uint16_t getascent(); 3916 void setascent( std::uint16_t ); 3917 std::uint16_t getdescent(); 3918 void setdescent( std::uint16_t ); 3919 std::uint16_t getleading(); 3920 void setleading( std::uint16_t ); 3921 List<Short> *getadvance(); 3922 List<Rectangle> *getbounds(); 3923 std::uint16_t getkerningCount(); 3924 void setkerningCount( std::uint16_t ); 3925 List<WideKerning> *getwideKerning(); 3926 List<Kerning> *getkerning(); 3927 3928 3929 protected: 3930 std::uint16_t objectID; // word 3931 bool hasLayout; // bit 3932 bool isShiftJIS; // bit 3933 bool isUnicode; // bit 3934 bool isANSII; // bit 3935 bool wideGlyphOffsets; // bit 3936 bool wideMap; // bit 3937 bool italic; // bit 3938 bool bold; // bit 3939 std::uint8_t language; // byte 3940 char * name; // string 3941 std::uint16_t glyphCount; // word 3942 GlyphList glyphs; // object 3943 std::uint16_t ascent; // word 3944 std::uint16_t descent; // word 3945 std::uint16_t leading; // word 3946 List<Short> advance; // list 3947 List<Rectangle> bounds; // list 3948 std::uint16_t kerningCount; // word 3949 List<WideKerning> wideKerning; // list 3950 List<Kerning> kerning; // list 3951 3952 static int id; 3953 3954 }; 3955 3956 class DefineFont3 : public Tag { 3957 public: 3958 DefineFont3(); 3959 virtual ~DefineFont3(); 3960 3961 virtual bool parse( Reader *r, int end, Context *ctx ); 3962 virtual void dump( int indent, Context *ctx ); 3963 virtual size_t calcSize( Context *ctx, int start_at ); 3964 virtual void write( Writer *w, Context *ctx ); 3965 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 3966 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 3967 3968 static DefineFont3* get( Reader *r, int end, Context *ctx ); 3969 static DefineFont3* getByName( const char *name ); 3970 3971 std::uint16_t getobjectID(); 3972 void setobjectID( std::uint16_t ); 3973 bool gethasLayout(); 3974 void sethasLayout( bool ); 3975 bool getisShiftJIS(); 3976 void setisShiftJIS( bool ); 3977 bool getisUnicode(); 3978 void setisUnicode( bool ); 3979 bool getisANSII(); 3980 void setisANSII( bool ); 3981 bool getwideGlyphOffsets(); 3982 void setwideGlyphOffsets( bool ); 3983 bool getwideMap(); 3984 void setwideMap( bool ); 3985 bool getitalic(); 3986 void setitalic( bool ); 3987 bool getbold(); 3988 void setbold( bool ); 3989 std::uint8_t getlanguage(); 3990 void setlanguage( std::uint8_t ); 3991 char * getname(); 3992 void setname( char * ); 3993 std::uint16_t getglyphCount(); 3994 void setglyphCount( std::uint16_t ); 3995 GlyphList *getglyphs(); 3996 std::uint16_t getascent(); 3997 void setascent( std::uint16_t ); 3998 std::uint16_t getdescent(); 3999 void setdescent( std::uint16_t ); 4000 std::uint16_t getleading(); 4001 void setleading( std::uint16_t ); 4002 List<Short> *getadvance(); 4003 List<Rectangle> *getbounds(); 4004 std::uint16_t getkerningCount(); 4005 void setkerningCount( std::uint16_t ); 4006 List<WideKerning> *getwideKerning(); 4007 List<Kerning> *getkerning(); 4008 4009 4010 protected: 4011 std::uint16_t objectID; // word 4012 bool hasLayout; // bit 4013 bool isShiftJIS; // bit 4014 bool isUnicode; // bit 4015 bool isANSII; // bit 4016 bool wideGlyphOffsets; // bit 4017 bool wideMap; // bit 4018 bool italic; // bit 4019 bool bold; // bit 4020 std::uint8_t language; // byte 4021 char * name; // string 4022 std::uint16_t glyphCount; // word 4023 GlyphList glyphs; // object 4024 std::uint16_t ascent; // word 4025 std::uint16_t descent; // word 4026 std::uint16_t leading; // word 4027 List<Short> advance; // list 4028 List<Rectangle> bounds; // list 4029 std::uint16_t kerningCount; // word 4030 List<WideKerning> wideKerning; // list 4031 List<Kerning> kerning; // list 4032 4033 static int id; 4034 4035 }; 4036 4037 class DefineButton : public Tag { 4038 public: 4039 DefineButton(); 4040 virtual ~DefineButton(); 4041 4042 virtual bool parse( Reader *r, int end, Context *ctx ); 4043 virtual void dump( int indent, Context *ctx ); 4044 virtual size_t calcSize( Context *ctx, int start_at ); 4045 virtual void write( Writer *w, Context *ctx ); 4046 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4047 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4048 4049 static DefineButton* get( Reader *r, int end, Context *ctx ); 4050 static DefineButton* getByName( const char *name ); 4051 4052 std::uint16_t getobjectID(); 4053 void setobjectID( std::uint16_t ); 4054 List<Button> *getbuttons(); 4055 List<Action> *getactions(); 4056 4057 4058 protected: 4059 std::uint16_t objectID; // word 4060 List<Button> buttons; // list 4061 List<Action> actions; // list 4062 4063 static int id; 4064 4065 }; 4066 4067 class DefineButton2 : public Tag { 4068 public: 4069 DefineButton2(); 4070 virtual ~DefineButton2(); 4071 4072 virtual bool parse( Reader *r, int end, Context *ctx ); 4073 virtual void dump( int indent, Context *ctx ); 4074 virtual size_t calcSize( Context *ctx, int start_at ); 4075 virtual void write( Writer *w, Context *ctx ); 4076 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4077 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4078 4079 static DefineButton2* get( Reader *r, int end, Context *ctx ); 4080 static DefineButton2* getByName( const char *name ); 4081 4082 std::uint16_t getobjectID(); 4083 void setobjectID( std::uint16_t ); 4084 std::int32_t getreserved(); 4085 void setreserved( std::int32_t ); 4086 bool getmenu(); 4087 void setmenu( bool ); 4088 std::uint16_t getbuttonsSize(); 4089 void setbuttonsSize( std::uint16_t ); 4090 List<Button> *getbuttons(); 4091 List<Condition> *getconditions(); 4092 4093 4094 protected: 4095 std::uint16_t objectID; // word 4096 std::int32_t reserved; // integer 4097 bool menu; // bit 4098 std::uint16_t buttonsSize; // word 4099 List<Button> buttons; // list 4100 List<Condition> conditions; // list 4101 4102 static int id; 4103 4104 }; 4105 4106 class Export : public Tag { 4107 public: 4108 Export(); 4109 virtual ~Export(); 4110 4111 virtual bool parse( Reader *r, int end, Context *ctx ); 4112 virtual void dump( int indent, Context *ctx ); 4113 virtual size_t calcSize( Context *ctx, int start_at ); 4114 virtual void write( Writer *w, Context *ctx ); 4115 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4116 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4117 4118 static Export* get( Reader *r, int end, Context *ctx ); 4119 static Export* getByName( const char *name ); 4120 4121 std::uint16_t getcount(); 4122 void setcount( std::uint16_t ); 4123 List<Symbol> *getsymbols(); 4124 4125 4126 protected: 4127 std::uint16_t count; // word 4128 List<Symbol> symbols; // list 4129 4130 static int id; 4131 4132 }; 4133 4134 class Import : public Tag { 4135 public: 4136 Import(); 4137 virtual ~Import(); 4138 4139 virtual bool parse( Reader *r, int end, Context *ctx ); 4140 virtual void dump( int indent, Context *ctx ); 4141 virtual size_t calcSize( Context *ctx, int start_at ); 4142 virtual void write( Writer *w, Context *ctx ); 4143 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4144 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4145 4146 static Import* get( Reader *r, int end, Context *ctx ); 4147 static Import* getByName( const char *name ); 4148 4149 char * geturl(); 4150 void seturl( char * ); 4151 std::uint16_t getcount(); 4152 void setcount( std::uint16_t ); 4153 List<Symbol> *getsymbols(); 4154 4155 4156 protected: 4157 char * url; // string 4158 std::uint16_t count; // word 4159 List<Symbol> symbols; // list 4160 4161 static int id; 4162 4163 }; 4164 4165 class DoInitAction : public Tag { 4166 public: 4167 DoInitAction(); 4168 virtual ~DoInitAction(); 4169 4170 virtual bool parse( Reader *r, int end, Context *ctx ); 4171 virtual void dump( int indent, Context *ctx ); 4172 virtual size_t calcSize( Context *ctx, int start_at ); 4173 virtual void write( Writer *w, Context *ctx ); 4174 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4175 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4176 4177 static DoInitAction* get( Reader *r, int end, Context *ctx ); 4178 static DoInitAction* getByName( const char *name ); 4179 4180 std::uint16_t getsprite(); 4181 void setsprite( std::uint16_t ); 4182 List<Action> *getactions(); 4183 4184 4185 protected: 4186 std::uint16_t sprite; // word 4187 List<Action> actions; // list 4188 4189 static int id; 4190 4191 }; 4192 4193 class SoundStreamBlock : public Tag { 4194 public: 4195 SoundStreamBlock(); 4196 virtual ~SoundStreamBlock(); 4197 4198 virtual bool parse( Reader *r, int end, Context *ctx ); 4199 virtual void dump( int indent, Context *ctx ); 4200 virtual size_t calcSize( Context *ctx, int start_at ); 4201 virtual void write( Writer *w, Context *ctx ); 4202 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4203 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4204 4205 static SoundStreamBlock* get( Reader *r, int end, Context *ctx ); 4206 static SoundStreamBlock* getByName( const char *name ); 4207 4208 4209 void getdata( unsigned char **dst, int *size ); 4210 void setdata( const unsigned char *src, int size ); 4211 4212 4213 protected: 4214 unsigned char * data; // data 4215 4216 static int id; 4217 4218 }; 4219 4220 class DefineVideoStream : public Tag { 4221 public: 4222 DefineVideoStream(); 4223 virtual ~DefineVideoStream(); 4224 4225 virtual bool parse( Reader *r, int end, Context *ctx ); 4226 virtual void dump( int indent, Context *ctx ); 4227 virtual size_t calcSize( Context *ctx, int start_at ); 4228 virtual void write( Writer *w, Context *ctx ); 4229 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4230 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4231 4232 static DefineVideoStream* get( Reader *r, int end, Context *ctx ); 4233 static DefineVideoStream* getByName( const char *name ); 4234 4235 std::uint16_t getobjectID(); 4236 void setobjectID( std::uint16_t ); 4237 std::uint16_t getframes(); 4238 void setframes( std::uint16_t ); 4239 std::uint16_t getwidth(); 4240 void setwidth( std::uint16_t ); 4241 std::uint16_t getheight(); 4242 void setheight( std::uint16_t ); 4243 std::int32_t getreserved(); 4244 void setreserved( std::int32_t ); 4245 std::int32_t getdeblocking(); 4246 void setdeblocking( std::int32_t ); 4247 bool getsmoothing(); 4248 void setsmoothing( bool ); 4249 std::uint8_t getcodec(); 4250 void setcodec( std::uint8_t ); 4251 4252 4253 protected: 4254 std::uint16_t objectID; // word 4255 std::uint16_t frames; // word 4256 std::uint16_t width; // word 4257 std::uint16_t height; // word 4258 std::int32_t reserved; // integer 4259 std::int32_t deblocking; // integer 4260 bool smoothing; // bit 4261 std::uint8_t codec; // byte 4262 4263 static int id; 4264 4265 }; 4266 4267 class VideoFrame : public Tag { 4268 public: 4269 VideoFrame(); 4270 virtual ~VideoFrame(); 4271 4272 virtual bool parse( Reader *r, int end, Context *ctx ); 4273 virtual void dump( int indent, Context *ctx ); 4274 virtual size_t calcSize( Context *ctx, int start_at ); 4275 virtual void write( Writer *w, Context *ctx ); 4276 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4277 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4278 4279 static VideoFrame* get( Reader *r, int end, Context *ctx ); 4280 static VideoFrame* getByName( const char *name ); 4281 4282 std::uint16_t getobjectID(); 4283 void setobjectID( std::uint16_t ); 4284 std::uint16_t getframe(); 4285 void setframe( std::uint16_t ); 4286 Rest *getdata(); 4287 4288 4289 protected: 4290 std::uint16_t objectID; // word 4291 std::uint16_t frame; // word 4292 Rest data; // object 4293 4294 static int id; 4295 4296 }; 4297 4298 class ScriptLimits : public Tag { 4299 public: 4300 ScriptLimits(); 4301 virtual ~ScriptLimits(); 4302 4303 virtual bool parse( Reader *r, int end, Context *ctx ); 4304 virtual void dump( int indent, Context *ctx ); 4305 virtual size_t calcSize( Context *ctx, int start_at ); 4306 virtual void write( Writer *w, Context *ctx ); 4307 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4308 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4309 4310 static ScriptLimits* get( Reader *r, int end, Context *ctx ); 4311 static ScriptLimits* getByName( const char *name ); 4312 4313 std::uint16_t getmaxRecursionDepth(); 4314 void setmaxRecursionDepth( std::uint16_t ); 4315 std::uint16_t gettimeout(); 4316 void settimeout( std::uint16_t ); 4317 4318 4319 protected: 4320 std::uint16_t maxRecursionDepth; // word 4321 std::uint16_t timeout; // word 4322 4323 static int id; 4324 4325 }; 4326 4327 class SetTabIndex : public Tag { 4328 public: 4329 SetTabIndex(); 4330 virtual ~SetTabIndex(); 4331 4332 virtual bool parse( Reader *r, int end, Context *ctx ); 4333 virtual void dump( int indent, Context *ctx ); 4334 virtual size_t calcSize( Context *ctx, int start_at ); 4335 virtual void write( Writer *w, Context *ctx ); 4336 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4337 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4338 4339 static SetTabIndex* get( Reader *r, int end, Context *ctx ); 4340 static SetTabIndex* getByName( const char *name ); 4341 4342 std::uint16_t getdepth(); 4343 void setdepth( std::uint16_t ); 4344 std::uint16_t gettabIndex(); 4345 void settabIndex( std::uint16_t ); 4346 4347 4348 protected: 4349 std::uint16_t depth; // word 4350 std::uint16_t tabIndex; // word 4351 4352 static int id; 4353 4354 }; 4355 4356 class PlaceObject3 : public Tag { 4357 public: 4358 PlaceObject3(); 4359 virtual ~PlaceObject3(); 4360 4361 virtual bool parse( Reader *r, int end, Context *ctx ); 4362 virtual void dump( int indent, Context *ctx ); 4363 virtual size_t calcSize( Context *ctx, int start_at ); 4364 virtual void write( Writer *w, Context *ctx ); 4365 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4366 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4367 4368 static PlaceObject3* get( Reader *r, int end, Context *ctx ); 4369 static PlaceObject3* getByName( const char *name ); 4370 4371 bool gethasEventHandler(); 4372 void sethasEventHandler( bool ); 4373 bool gethasClipDepth(); 4374 void sethasClipDepth( bool ); 4375 bool gethasName(); 4376 void sethasName( bool ); 4377 bool gethasMorph(); 4378 void sethasMorph( bool ); 4379 bool gethasColorTransform(); 4380 void sethasColorTransform( bool ); 4381 bool gethasTransform(); 4382 void sethasTransform( bool ); 4383 bool gethasID(); 4384 void sethasID( bool ); 4385 bool getreplace(); 4386 void setreplace( bool ); 4387 std::int32_t getreserved1(); 4388 void setreserved1( std::int32_t ); 4389 bool gethasCacheAsBitmap(); 4390 void sethasCacheAsBitmap( bool ); 4391 bool gethasBlendMode(); 4392 void sethasBlendMode( bool ); 4393 bool gethasFilterList(); 4394 void sethasFilterList( bool ); 4395 std::uint16_t getdepth(); 4396 void setdepth( std::uint16_t ); 4397 std::uint16_t getobjectID(); 4398 void setobjectID( std::uint16_t ); 4399 Transform *gettransform(); 4400 ColorTransform2 *getcolorTransform(); 4401 std::uint16_t getmorph(); 4402 void setmorph( std::uint16_t ); 4403 char * getname(); 4404 void setname( char * ); 4405 std::uint16_t getclipDepth(); 4406 void setclipDepth( std::uint16_t ); 4407 std::uint8_t getnumFilters(); 4408 void setnumFilters( std::uint8_t ); 4409 List<Filter> *getfilters(); 4410 std::uint8_t getblendMode(); 4411 void setblendMode( std::uint8_t ); 4412 std::uint8_t getbitmapCaching(); 4413 void setbitmapCaching( std::uint8_t ); 4414 std::uint16_t getreserved(); 4415 void setreserved( std::uint16_t ); 4416 std::uint16_t getallflags1(); 4417 void setallflags1( std::uint16_t ); 4418 std::uint16_t getallflags2(); 4419 void setallflags2( std::uint16_t ); 4420 List<Event> *getevents(); 4421 4422 4423 protected: 4424 bool hasEventHandler; // bit 4425 bool hasClipDepth; // bit 4426 bool hasName; // bit 4427 bool hasMorph; // bit 4428 bool hasColorTransform; // bit 4429 bool hasTransform; // bit 4430 bool hasID; // bit 4431 bool replace; // bit 4432 std::int32_t reserved1; // integer 4433 bool hasCacheAsBitmap; // bit 4434 bool hasBlendMode; // bit 4435 bool hasFilterList; // bit 4436 std::uint16_t depth; // word 4437 std::uint16_t objectID; // word 4438 Transform transform; // object 4439 ColorTransform2 colorTransform; // object 4440 std::uint16_t morph; // word 4441 char * name; // string 4442 std::uint16_t clipDepth; // word 4443 std::uint8_t numFilters; // byte 4444 List<Filter> filters; // list 4445 std::uint8_t blendMode; // byte 4446 std::uint8_t bitmapCaching; // byte 4447 std::uint16_t reserved; // word 4448 std::uint16_t allflags1; // word 4449 std::uint16_t allflags2; // word 4450 List<Event> events; // list 4451 4452 static int id; 4453 4454 }; 4455 4456 class ImportAssets2 : public Tag { 4457 public: 4458 ImportAssets2(); 4459 virtual ~ImportAssets2(); 4460 4461 virtual bool parse( Reader *r, int end, Context *ctx ); 4462 virtual void dump( int indent, Context *ctx ); 4463 virtual size_t calcSize( Context *ctx, int start_at ); 4464 virtual void write( Writer *w, Context *ctx ); 4465 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4466 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4467 4468 static ImportAssets2* get( Reader *r, int end, Context *ctx ); 4469 static ImportAssets2* getByName( const char *name ); 4470 4471 char * geturl(); 4472 void seturl( char * ); 4473 std::uint8_t getreserved1(); 4474 void setreserved1( std::uint8_t ); 4475 std::uint8_t getreserved2(); 4476 void setreserved2( std::uint8_t ); 4477 std::uint16_t getcount(); 4478 void setcount( std::uint16_t ); 4479 List<Symbol> *getsymbols(); 4480 4481 4482 protected: 4483 char * url; // string 4484 std::uint8_t reserved1; // byte 4485 std::uint8_t reserved2; // byte 4486 std::uint16_t count; // word 4487 List<Symbol> symbols; // list 4488 4489 static int id; 4490 4491 }; 4492 4493 class FileAttributes : public Tag { 4494 public: 4495 FileAttributes(); 4496 virtual ~FileAttributes(); 4497 4498 virtual bool parse( Reader *r, int end, Context *ctx ); 4499 virtual void dump( int indent, Context *ctx ); 4500 virtual size_t calcSize( Context *ctx, int start_at ); 4501 virtual void write( Writer *w, Context *ctx ); 4502 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4503 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4504 4505 static FileAttributes* get( Reader *r, int end, Context *ctx ); 4506 static FileAttributes* getByName( const char *name ); 4507 4508 std::int32_t getreserved1(); 4509 void setreserved1( std::int32_t ); 4510 bool gethasMetaData(); 4511 void sethasMetaData( bool ); 4512 std::int32_t getreserved2(); 4513 void setreserved2( std::int32_t ); 4514 bool getallowABC(); 4515 void setallowABC( bool ); 4516 bool getsuppressCrossDomainCaching(); 4517 void setsuppressCrossDomainCaching( bool ); 4518 bool getswfRelativeURLs(); 4519 void setswfRelativeURLs( bool ); 4520 bool getuseNetwork(); 4521 void setuseNetwork( bool ); 4522 std::int32_t getreserved3(); 4523 void setreserved3( std::int32_t ); 4524 4525 4526 protected: 4527 std::int32_t reserved1; // integer 4528 bool hasMetaData; // bit 4529 std::int32_t reserved2; // integer 4530 bool allowABC; // bit 4531 bool suppressCrossDomainCaching; // bit 4532 bool swfRelativeURLs; // bit 4533 bool useNetwork; // bit 4534 std::int32_t reserved3; // integer 4535 4536 static int id; 4537 4538 }; 4539 4540 class DefineFontAlignZones : public Tag { 4541 public: 4542 DefineFontAlignZones(); 4543 virtual ~DefineFontAlignZones(); 4544 4545 virtual bool parse( Reader *r, int end, Context *ctx ); 4546 virtual void dump( int indent, Context *ctx ); 4547 virtual size_t calcSize( Context *ctx, int start_at ); 4548 virtual void write( Writer *w, Context *ctx ); 4549 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4550 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4551 4552 static DefineFontAlignZones* get( Reader *r, int end, Context *ctx ); 4553 static DefineFontAlignZones* getByName( const char *name ); 4554 4555 std::uint16_t getobjectID(); 4556 void setobjectID( std::uint16_t ); 4557 std::int32_t getcsmTableHint(); 4558 void setcsmTableHint( std::int32_t ); 4559 std::int32_t getreserved(); 4560 void setreserved( std::int32_t ); 4561 List<ZoneArray> *getzoneArrays(); 4562 4563 4564 protected: 4565 std::uint16_t objectID; // word 4566 std::int32_t csmTableHint; // integer 4567 std::int32_t reserved; // integer 4568 List<ZoneArray> zoneArrays; // list 4569 4570 static int id; 4571 4572 }; 4573 4574 class CSMTextSettings : public Tag { 4575 public: 4576 CSMTextSettings(); 4577 virtual ~CSMTextSettings(); 4578 4579 virtual bool parse( Reader *r, int end, Context *ctx ); 4580 virtual void dump( int indent, Context *ctx ); 4581 virtual size_t calcSize( Context *ctx, int start_at ); 4582 virtual void write( Writer *w, Context *ctx ); 4583 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4584 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4585 4586 static CSMTextSettings* get( Reader *r, int end, Context *ctx ); 4587 static CSMTextSettings* getByName( const char *name ); 4588 4589 std::uint16_t getobjectID(); 4590 void setobjectID( std::uint16_t ); 4591 std::int32_t getuseFlashType(); 4592 void setuseFlashType( std::int32_t ); 4593 std::int32_t getgridFit(); 4594 void setgridFit( std::int32_t ); 4595 std::int32_t getreserved1(); 4596 void setreserved1( std::int32_t ); 4597 float getthickness(); 4598 void setthickness( float ); 4599 float getsharpness(); 4600 void setsharpness( float ); 4601 std::uint8_t getreserved2(); 4602 void setreserved2( std::uint8_t ); 4603 4604 4605 protected: 4606 std::uint16_t objectID; // word 4607 std::int32_t useFlashType; // integer 4608 std::int32_t gridFit; // integer 4609 std::int32_t reserved1; // integer 4610 float thickness; // float 4611 float sharpness; // float 4612 std::uint8_t reserved2; // byte 4613 4614 static int id; 4615 4616 }; 4617 4618 class Metadata : public Tag { 4619 public: 4620 Metadata(); 4621 virtual ~Metadata(); 4622 4623 virtual bool parse( Reader *r, int end, Context *ctx ); 4624 virtual void dump( int indent, Context *ctx ); 4625 virtual size_t calcSize( Context *ctx, int start_at ); 4626 virtual void write( Writer *w, Context *ctx ); 4627 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4628 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4629 4630 static Metadata* get( Reader *r, int end, Context *ctx ); 4631 static Metadata* getByName( const char *name ); 4632 4633 char * getRDF(); 4634 void setRDF( char * ); 4635 4636 4637 protected: 4638 char * RDF; // xml 4639 4640 static int id; 4641 4642 }; 4643 4644 class DefineScalingGrid : public Tag { 4645 public: 4646 DefineScalingGrid(); 4647 virtual ~DefineScalingGrid(); 4648 4649 virtual bool parse( Reader *r, int end, Context *ctx ); 4650 virtual void dump( int indent, Context *ctx ); 4651 virtual size_t calcSize( Context *ctx, int start_at ); 4652 virtual void write( Writer *w, Context *ctx ); 4653 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4654 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4655 4656 static DefineScalingGrid* get( Reader *r, int end, Context *ctx ); 4657 static DefineScalingGrid* getByName( const char *name ); 4658 4659 std::uint16_t getobjectID(); 4660 void setobjectID( std::uint16_t ); 4661 Rectangle *getsplitter(); 4662 4663 4664 protected: 4665 std::uint16_t objectID; // word 4666 Rectangle splitter; // object 4667 4668 static int id; 4669 4670 }; 4671 4672 class DoABC : public Tag { 4673 public: 4674 DoABC(); 4675 virtual ~DoABC(); 4676 4677 virtual bool parse( Reader *r, int end, Context *ctx ); 4678 virtual void dump( int indent, Context *ctx ); 4679 virtual size_t calcSize( Context *ctx, int start_at ); 4680 virtual void write( Writer *w, Context *ctx ); 4681 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4682 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4683 4684 static DoABC* get( Reader *r, int end, Context *ctx ); 4685 static DoABC* getByName( const char *name ); 4686 4687 Action3 *getactions(); 4688 4689 4690 protected: 4691 Action3 actions; // object 4692 4693 static int id; 4694 4695 }; 4696 4697 class DoABCDefine : public Tag { 4698 public: 4699 DoABCDefine(); 4700 virtual ~DoABCDefine(); 4701 4702 virtual bool parse( Reader *r, int end, Context *ctx ); 4703 virtual void dump( int indent, Context *ctx ); 4704 virtual size_t calcSize( Context *ctx, int start_at ); 4705 virtual void write( Writer *w, Context *ctx ); 4706 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4707 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4708 4709 static DoABCDefine* get( Reader *r, int end, Context *ctx ); 4710 static DoABCDefine* getByName( const char *name ); 4711 4712 std::uint32_t getflags(); 4713 void setflags( std::uint32_t ); 4714 char * getname(); 4715 void setname( char * ); 4716 Action3 *getactions(); 4717 4718 4719 protected: 4720 std::uint32_t flags; // uint32 4721 char * name; // string 4722 Action3 actions; // object 4723 4724 static int id; 4725 4726 }; 4727 4728 class SymbolClass : public Tag { 4729 public: 4730 SymbolClass(); 4731 virtual ~SymbolClass(); 4732 4733 virtual bool parse( Reader *r, int end, Context *ctx ); 4734 virtual void dump( int indent, Context *ctx ); 4735 virtual size_t calcSize( Context *ctx, int start_at ); 4736 virtual void write( Writer *w, Context *ctx ); 4737 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4738 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4739 4740 static SymbolClass* get( Reader *r, int end, Context *ctx ); 4741 static SymbolClass* getByName( const char *name ); 4742 4743 std::uint16_t getcount(); 4744 void setcount( std::uint16_t ); 4745 List<Symbol> *getsymbols(); 4746 4747 4748 protected: 4749 std::uint16_t count; // word 4750 List<Symbol> symbols; // list 4751 4752 static int id; 4753 4754 }; 4755 4756 class DefineSceneAndFrameLabelData : public Tag { 4757 public: 4758 DefineSceneAndFrameLabelData(); 4759 virtual ~DefineSceneAndFrameLabelData(); 4760 4761 virtual bool parse( Reader *r, int end, Context *ctx ); 4762 virtual void dump( int indent, Context *ctx ); 4763 virtual size_t calcSize( Context *ctx, int start_at ); 4764 virtual void write( Writer *w, Context *ctx ); 4765 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4766 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4767 4768 static DefineSceneAndFrameLabelData* get( Reader *r, int end, Context *ctx ); 4769 static DefineSceneAndFrameLabelData* getByName( const char *name ); 4770 4771 std::uint32_t getsceneCount(); 4772 void setsceneCount( std::uint32_t ); 4773 List<Scene> *getscenes(); 4774 std::uint32_t getframeCount(); 4775 void setframeCount( std::uint32_t ); 4776 List<Frame> *getframes(); 4777 4778 4779 protected: 4780 std::uint32_t sceneCount; // encodedu32 4781 List<Scene> scenes; // list 4782 std::uint32_t frameCount; // encodedu32 4783 List<Frame> frames; // list 4784 4785 static int id; 4786 4787 }; 4788 4789 class DefineBinaryData : public Tag { 4790 public: 4791 DefineBinaryData(); 4792 virtual ~DefineBinaryData(); 4793 4794 virtual bool parse( Reader *r, int end, Context *ctx ); 4795 virtual void dump( int indent, Context *ctx ); 4796 virtual size_t calcSize( Context *ctx, int start_at ); 4797 virtual void write( Writer *w, Context *ctx ); 4798 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4799 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4800 4801 static DefineBinaryData* get( Reader *r, int end, Context *ctx ); 4802 static DefineBinaryData* getByName( const char *name ); 4803 4804 std::uint16_t getobjectID(); 4805 void setobjectID( std::uint16_t ); 4806 std::uint32_t getreserved(); 4807 void setreserved( std::uint32_t ); 4808 Rest *getdata(); 4809 4810 4811 protected: 4812 std::uint16_t objectID; // word 4813 std::uint32_t reserved; // uint32 4814 Rest data; // object 4815 4816 static int id; 4817 4818 }; 4819 4820 class DefineFontName : public Tag { 4821 public: 4822 DefineFontName(); 4823 virtual ~DefineFontName(); 4824 4825 virtual bool parse( Reader *r, int end, Context *ctx ); 4826 virtual void dump( int indent, Context *ctx ); 4827 virtual size_t calcSize( Context *ctx, int start_at ); 4828 virtual void write( Writer *w, Context *ctx ); 4829 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4830 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4831 4832 static DefineFontName* get( Reader *r, int end, Context *ctx ); 4833 static DefineFontName* getByName( const char *name ); 4834 4835 std::uint16_t getobjectID(); 4836 void setobjectID( std::uint16_t ); 4837 char * getname(); 4838 void setname( char * ); 4839 char * getcopyright(); 4840 void setcopyright( char * ); 4841 4842 4843 protected: 4844 std::uint16_t objectID; // word 4845 char * name; // string 4846 char * copyright; // string 4847 4848 static int id; 4849 4850 }; 4851 4852 class EnableDebugger : public Tag { 4853 public: 4854 EnableDebugger(); 4855 virtual ~EnableDebugger(); 4856 4857 virtual bool parse( Reader *r, int end, Context *ctx ); 4858 virtual void dump( int indent, Context *ctx ); 4859 virtual size_t calcSize( Context *ctx, int start_at ); 4860 virtual void write( Writer *w, Context *ctx ); 4861 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4862 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4863 4864 static EnableDebugger* get( Reader *r, int end, Context *ctx ); 4865 static EnableDebugger* getByName( const char *name ); 4866 4867 char * getpassword(); 4868 void setpassword( char * ); 4869 4870 4871 protected: 4872 char * password; // string 4873 4874 static int id; 4875 4876 }; 4877 4878 class EnableDebugger2 : public Tag { 4879 public: 4880 EnableDebugger2(); 4881 virtual ~EnableDebugger2(); 4882 4883 virtual bool parse( Reader *r, int end, Context *ctx ); 4884 virtual void dump( int indent, Context *ctx ); 4885 virtual size_t calcSize( Context *ctx, int start_at ); 4886 virtual void write( Writer *w, Context *ctx ); 4887 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4888 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4889 4890 static EnableDebugger2* get( Reader *r, int end, Context *ctx ); 4891 static EnableDebugger2* getByName( const char *name ); 4892 4893 std::uint16_t getreserved(); 4894 void setreserved( std::uint16_t ); 4895 char * getpassword(); 4896 void setpassword( char * ); 4897 4898 4899 protected: 4900 std::uint16_t reserved; // word 4901 char * password; // string 4902 4903 static int id; 4904 4905 }; 4906 4907 class StackString : public StackItem { 4908 public: 4909 StackString(); 4910 virtual ~StackString(); 4911 4912 virtual bool parse( Reader *r, int end, Context *ctx ); 4913 virtual void dump( int indent, Context *ctx ); 4914 virtual size_t calcSize( Context *ctx, int start_at ); 4915 virtual void write( Writer *w, Context *ctx ); 4916 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4917 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4918 4919 static StackString* get( Reader *r, int end, Context *ctx ); 4920 static StackString* getByName( const char *name ); 4921 4922 char * getvalue(); 4923 void setvalue( char * ); 4924 4925 4926 protected: 4927 char * value; // string 4928 4929 static int id; 4930 4931 }; 4932 4933 class StackFloat : public StackItem { 4934 public: 4935 StackFloat(); 4936 virtual ~StackFloat(); 4937 4938 virtual bool parse( Reader *r, int end, Context *ctx ); 4939 virtual void dump( int indent, Context *ctx ); 4940 virtual size_t calcSize( Context *ctx, int start_at ); 4941 virtual void write( Writer *w, Context *ctx ); 4942 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4943 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4944 4945 static StackFloat* get( Reader *r, int end, Context *ctx ); 4946 static StackFloat* getByName( const char *name ); 4947 4948 float getvalue(); 4949 void setvalue( float ); 4950 4951 4952 protected: 4953 float value; // float 4954 4955 static int id; 4956 4957 }; 4958 4959 class StackNull : public StackItem { 4960 public: 4961 StackNull(); 4962 virtual ~StackNull(); 4963 4964 virtual bool parse( Reader *r, int end, Context *ctx ); 4965 virtual void dump( int indent, Context *ctx ); 4966 virtual size_t calcSize( Context *ctx, int start_at ); 4967 virtual void write( Writer *w, Context *ctx ); 4968 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4969 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4970 4971 static StackNull* get( Reader *r, int end, Context *ctx ); 4972 static StackNull* getByName( const char *name ); 4973 4974 4975 4976 protected: 4977 4978 static int id; 4979 4980 }; 4981 4982 class StackUndefined : public StackItem { 4983 public: 4984 StackUndefined(); 4985 virtual ~StackUndefined(); 4986 4987 virtual bool parse( Reader *r, int end, Context *ctx ); 4988 virtual void dump( int indent, Context *ctx ); 4989 virtual size_t calcSize( Context *ctx, int start_at ); 4990 virtual void write( Writer *w, Context *ctx ); 4991 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 4992 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 4993 4994 static StackUndefined* get( Reader *r, int end, Context *ctx ); 4995 static StackUndefined* getByName( const char *name ); 4996 4997 4998 4999 protected: 5000 5001 static int id; 5002 5003 }; 5004 5005 class StackRegister : public StackItem { 5006 public: 5007 StackRegister(); 5008 virtual ~StackRegister(); 5009 5010 virtual bool parse( Reader *r, int end, Context *ctx ); 5011 virtual void dump( int indent, Context *ctx ); 5012 virtual size_t calcSize( Context *ctx, int start_at ); 5013 virtual void write( Writer *w, Context *ctx ); 5014 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5015 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5016 5017 static StackRegister* get( Reader *r, int end, Context *ctx ); 5018 static StackRegister* getByName( const char *name ); 5019 5020 std::uint8_t getreg(); 5021 void setreg( std::uint8_t ); 5022 5023 5024 protected: 5025 std::uint8_t reg; // byte 5026 5027 static int id; 5028 5029 }; 5030 5031 class StackBoolean : public StackItem { 5032 public: 5033 StackBoolean(); 5034 virtual ~StackBoolean(); 5035 5036 virtual bool parse( Reader *r, int end, Context *ctx ); 5037 virtual void dump( int indent, Context *ctx ); 5038 virtual size_t calcSize( Context *ctx, int start_at ); 5039 virtual void write( Writer *w, Context *ctx ); 5040 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5041 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5042 5043 static StackBoolean* get( Reader *r, int end, Context *ctx ); 5044 static StackBoolean* getByName( const char *name ); 5045 5046 std::uint8_t getvalue(); 5047 void setvalue( std::uint8_t ); 5048 5049 5050 protected: 5051 std::uint8_t value; // byte 5052 5053 static int id; 5054 5055 }; 5056 5057 class StackDouble : public StackItem { 5058 public: 5059 StackDouble(); 5060 virtual ~StackDouble(); 5061 5062 virtual bool parse( Reader *r, int end, Context *ctx ); 5063 virtual void dump( int indent, Context *ctx ); 5064 virtual size_t calcSize( Context *ctx, int start_at ); 5065 virtual void write( Writer *w, Context *ctx ); 5066 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5067 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5068 5069 static StackDouble* get( Reader *r, int end, Context *ctx ); 5070 static StackDouble* getByName( const char *name ); 5071 5072 double getvalue(); 5073 void setvalue( double ); 5074 5075 5076 protected: 5077 double value; // double 5078 5079 static int id; 5080 5081 }; 5082 5083 class StackInteger : public StackItem { 5084 public: 5085 StackInteger(); 5086 virtual ~StackInteger(); 5087 5088 virtual bool parse( Reader *r, int end, Context *ctx ); 5089 virtual void dump( int indent, Context *ctx ); 5090 virtual size_t calcSize( Context *ctx, int start_at ); 5091 virtual void write( Writer *w, Context *ctx ); 5092 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5093 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5094 5095 static StackInteger* get( Reader *r, int end, Context *ctx ); 5096 static StackInteger* getByName( const char *name ); 5097 5098 std::uint32_t getvalue(); 5099 void setvalue( std::uint32_t ); 5100 5101 5102 protected: 5103 std::uint32_t value; // uint32 5104 5105 static int id; 5106 5107 }; 5108 5109 class StackDictionaryLookup : public StackItem { 5110 public: 5111 StackDictionaryLookup(); 5112 virtual ~StackDictionaryLookup(); 5113 5114 virtual bool parse( Reader *r, int end, Context *ctx ); 5115 virtual void dump( int indent, Context *ctx ); 5116 virtual size_t calcSize( Context *ctx, int start_at ); 5117 virtual void write( Writer *w, Context *ctx ); 5118 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5119 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5120 5121 static StackDictionaryLookup* get( Reader *r, int end, Context *ctx ); 5122 static StackDictionaryLookup* getByName( const char *name ); 5123 5124 std::uint8_t getindex(); 5125 void setindex( std::uint8_t ); 5126 5127 5128 protected: 5129 std::uint8_t index; // byte 5130 5131 static int id; 5132 5133 }; 5134 5135 class StackLargeDictionaryLookup : public StackItem { 5136 public: 5137 StackLargeDictionaryLookup(); 5138 virtual ~StackLargeDictionaryLookup(); 5139 5140 virtual bool parse( Reader *r, int end, Context *ctx ); 5141 virtual void dump( int indent, Context *ctx ); 5142 virtual size_t calcSize( Context *ctx, int start_at ); 5143 virtual void write( Writer *w, Context *ctx ); 5144 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5145 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5146 5147 static StackLargeDictionaryLookup* get( Reader *r, int end, Context *ctx ); 5148 static StackLargeDictionaryLookup* getByName( const char *name ); 5149 5150 std::uint16_t getindex(); 5151 void setindex( std::uint16_t ); 5152 5153 5154 protected: 5155 std::uint16_t index; // word 5156 5157 static int id; 5158 5159 }; 5160 5161 class UnknownAction : public Action { 5162 public: 5163 UnknownAction(); 5164 virtual ~UnknownAction(); 5165 5166 virtual bool parse( Reader *r, int end, Context *ctx ); 5167 virtual void dump( int indent, Context *ctx ); 5168 virtual size_t calcSize( Context *ctx, int start_at ); 5169 virtual void write( Writer *w, Context *ctx ); 5170 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5171 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5172 5173 static UnknownAction* get( Reader *r, int end, Context *ctx ); 5174 static UnknownAction* getByName( const char *name ); 5175 5176 5177 void getdata( unsigned char **dst, int *size ); 5178 void setdata( const unsigned char *src, int size ); 5179 5180 5181 protected: 5182 unsigned char * data; // data 5183 5184 static int id; 5185 5186 }; 5187 5188 class EndAction : public Action { 5189 public: 5190 EndAction(); 5191 virtual ~EndAction(); 5192 5193 virtual bool parse( Reader *r, int end, Context *ctx ); 5194 virtual void dump( int indent, Context *ctx ); 5195 virtual size_t calcSize( Context *ctx, int start_at ); 5196 virtual void write( Writer *w, Context *ctx ); 5197 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5198 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5199 5200 static EndAction* get( Reader *r, int end, Context *ctx ); 5201 static EndAction* getByName( const char *name ); 5202 5203 5204 5205 protected: 5206 5207 static int id; 5208 5209 }; 5210 5211 class NextFrame : public Action { 5212 public: 5213 NextFrame(); 5214 virtual ~NextFrame(); 5215 5216 virtual bool parse( Reader *r, int end, Context *ctx ); 5217 virtual void dump( int indent, Context *ctx ); 5218 virtual size_t calcSize( Context *ctx, int start_at ); 5219 virtual void write( Writer *w, Context *ctx ); 5220 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5221 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5222 5223 static NextFrame* get( Reader *r, int end, Context *ctx ); 5224 static NextFrame* getByName( const char *name ); 5225 5226 5227 5228 protected: 5229 5230 static int id; 5231 5232 }; 5233 5234 class PreviousFrame : public Action { 5235 public: 5236 PreviousFrame(); 5237 virtual ~PreviousFrame(); 5238 5239 virtual bool parse( Reader *r, int end, Context *ctx ); 5240 virtual void dump( int indent, Context *ctx ); 5241 virtual size_t calcSize( Context *ctx, int start_at ); 5242 virtual void write( Writer *w, Context *ctx ); 5243 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5244 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5245 5246 static PreviousFrame* get( Reader *r, int end, Context *ctx ); 5247 static PreviousFrame* getByName( const char *name ); 5248 5249 5250 5251 protected: 5252 5253 static int id; 5254 5255 }; 5256 5257 class Play : public Action { 5258 public: 5259 Play(); 5260 virtual ~Play(); 5261 5262 virtual bool parse( Reader *r, int end, Context *ctx ); 5263 virtual void dump( int indent, Context *ctx ); 5264 virtual size_t calcSize( Context *ctx, int start_at ); 5265 virtual void write( Writer *w, Context *ctx ); 5266 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5267 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5268 5269 static Play* get( Reader *r, int end, Context *ctx ); 5270 static Play* getByName( const char *name ); 5271 5272 5273 5274 protected: 5275 5276 static int id; 5277 5278 }; 5279 5280 class Stop : public Action { 5281 public: 5282 Stop(); 5283 virtual ~Stop(); 5284 5285 virtual bool parse( Reader *r, int end, Context *ctx ); 5286 virtual void dump( int indent, Context *ctx ); 5287 virtual size_t calcSize( Context *ctx, int start_at ); 5288 virtual void write( Writer *w, Context *ctx ); 5289 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5290 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5291 5292 static Stop* get( Reader *r, int end, Context *ctx ); 5293 static Stop* getByName( const char *name ); 5294 5295 5296 5297 protected: 5298 5299 static int id; 5300 5301 }; 5302 5303 class ToggleQuality : public Action { 5304 public: 5305 ToggleQuality(); 5306 virtual ~ToggleQuality(); 5307 5308 virtual bool parse( Reader *r, int end, Context *ctx ); 5309 virtual void dump( int indent, Context *ctx ); 5310 virtual size_t calcSize( Context *ctx, int start_at ); 5311 virtual void write( Writer *w, Context *ctx ); 5312 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5313 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5314 5315 static ToggleQuality* get( Reader *r, int end, Context *ctx ); 5316 static ToggleQuality* getByName( const char *name ); 5317 5318 5319 5320 protected: 5321 5322 static int id; 5323 5324 }; 5325 5326 class StopSound : public Action { 5327 public: 5328 StopSound(); 5329 virtual ~StopSound(); 5330 5331 virtual bool parse( Reader *r, int end, Context *ctx ); 5332 virtual void dump( int indent, Context *ctx ); 5333 virtual size_t calcSize( Context *ctx, int start_at ); 5334 virtual void write( Writer *w, Context *ctx ); 5335 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5336 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5337 5338 static StopSound* get( Reader *r, int end, Context *ctx ); 5339 static StopSound* getByName( const char *name ); 5340 5341 5342 5343 protected: 5344 5345 static int id; 5346 5347 }; 5348 5349 class AddCast : public Action { 5350 public: 5351 AddCast(); 5352 virtual ~AddCast(); 5353 5354 virtual bool parse( Reader *r, int end, Context *ctx ); 5355 virtual void dump( int indent, Context *ctx ); 5356 virtual size_t calcSize( Context *ctx, int start_at ); 5357 virtual void write( Writer *w, Context *ctx ); 5358 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5359 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5360 5361 static AddCast* get( Reader *r, int end, Context *ctx ); 5362 static AddCast* getByName( const char *name ); 5363 5364 5365 5366 protected: 5367 5368 static int id; 5369 5370 }; 5371 5372 class Substract : public Action { 5373 public: 5374 Substract(); 5375 virtual ~Substract(); 5376 5377 virtual bool parse( Reader *r, int end, Context *ctx ); 5378 virtual void dump( int indent, Context *ctx ); 5379 virtual size_t calcSize( Context *ctx, int start_at ); 5380 virtual void write( Writer *w, Context *ctx ); 5381 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5382 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5383 5384 static Substract* get( Reader *r, int end, Context *ctx ); 5385 static Substract* getByName( const char *name ); 5386 5387 5388 5389 protected: 5390 5391 static int id; 5392 5393 }; 5394 5395 class Mulitply : public Action { 5396 public: 5397 Mulitply(); 5398 virtual ~Mulitply(); 5399 5400 virtual bool parse( Reader *r, int end, Context *ctx ); 5401 virtual void dump( int indent, Context *ctx ); 5402 virtual size_t calcSize( Context *ctx, int start_at ); 5403 virtual void write( Writer *w, Context *ctx ); 5404 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5405 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5406 5407 static Mulitply* get( Reader *r, int end, Context *ctx ); 5408 static Mulitply* getByName( const char *name ); 5409 5410 5411 5412 protected: 5413 5414 static int id; 5415 5416 }; 5417 5418 class Divide : public Action { 5419 public: 5420 Divide(); 5421 virtual ~Divide(); 5422 5423 virtual bool parse( Reader *r, int end, Context *ctx ); 5424 virtual void dump( int indent, Context *ctx ); 5425 virtual size_t calcSize( Context *ctx, int start_at ); 5426 virtual void write( Writer *w, Context *ctx ); 5427 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5428 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5429 5430 static Divide* get( Reader *r, int end, Context *ctx ); 5431 static Divide* getByName( const char *name ); 5432 5433 5434 5435 protected: 5436 5437 static int id; 5438 5439 }; 5440 5441 class EqualCast : public Action { 5442 public: 5443 EqualCast(); 5444 virtual ~EqualCast(); 5445 5446 virtual bool parse( Reader *r, int end, Context *ctx ); 5447 virtual void dump( int indent, Context *ctx ); 5448 virtual size_t calcSize( Context *ctx, int start_at ); 5449 virtual void write( Writer *w, Context *ctx ); 5450 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5451 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5452 5453 static EqualCast* get( Reader *r, int end, Context *ctx ); 5454 static EqualCast* getByName( const char *name ); 5455 5456 5457 5458 protected: 5459 5460 static int id; 5461 5462 }; 5463 5464 class LessThanCast : public Action { 5465 public: 5466 LessThanCast(); 5467 virtual ~LessThanCast(); 5468 5469 virtual bool parse( Reader *r, int end, Context *ctx ); 5470 virtual void dump( int indent, Context *ctx ); 5471 virtual size_t calcSize( Context *ctx, int start_at ); 5472 virtual void write( Writer *w, Context *ctx ); 5473 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5474 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5475 5476 static LessThanCast* get( Reader *r, int end, Context *ctx ); 5477 static LessThanCast* getByName( const char *name ); 5478 5479 5480 5481 protected: 5482 5483 static int id; 5484 5485 }; 5486 5487 class LogicalAND : public Action { 5488 public: 5489 LogicalAND(); 5490 virtual ~LogicalAND(); 5491 5492 virtual bool parse( Reader *r, int end, Context *ctx ); 5493 virtual void dump( int indent, Context *ctx ); 5494 virtual size_t calcSize( Context *ctx, int start_at ); 5495 virtual void write( Writer *w, Context *ctx ); 5496 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5497 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5498 5499 static LogicalAND* get( Reader *r, int end, Context *ctx ); 5500 static LogicalAND* getByName( const char *name ); 5501 5502 5503 5504 protected: 5505 5506 static int id; 5507 5508 }; 5509 5510 class LogicalOR : public Action { 5511 public: 5512 LogicalOR(); 5513 virtual ~LogicalOR(); 5514 5515 virtual bool parse( Reader *r, int end, Context *ctx ); 5516 virtual void dump( int indent, Context *ctx ); 5517 virtual size_t calcSize( Context *ctx, int start_at ); 5518 virtual void write( Writer *w, Context *ctx ); 5519 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5520 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5521 5522 static LogicalOR* get( Reader *r, int end, Context *ctx ); 5523 static LogicalOR* getByName( const char *name ); 5524 5525 5526 5527 protected: 5528 5529 static int id; 5530 5531 }; 5532 5533 class LogicalNOT : public Action { 5534 public: 5535 LogicalNOT(); 5536 virtual ~LogicalNOT(); 5537 5538 virtual bool parse( Reader *r, int end, Context *ctx ); 5539 virtual void dump( int indent, Context *ctx ); 5540 virtual size_t calcSize( Context *ctx, int start_at ); 5541 virtual void write( Writer *w, Context *ctx ); 5542 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5543 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5544 5545 static LogicalNOT* get( Reader *r, int end, Context *ctx ); 5546 static LogicalNOT* getByName( const char *name ); 5547 5548 5549 5550 protected: 5551 5552 static int id; 5553 5554 }; 5555 5556 class StringEqual : public Action { 5557 public: 5558 StringEqual(); 5559 virtual ~StringEqual(); 5560 5561 virtual bool parse( Reader *r, int end, Context *ctx ); 5562 virtual void dump( int indent, Context *ctx ); 5563 virtual size_t calcSize( Context *ctx, int start_at ); 5564 virtual void write( Writer *w, Context *ctx ); 5565 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5566 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5567 5568 static StringEqual* get( Reader *r, int end, Context *ctx ); 5569 static StringEqual* getByName( const char *name ); 5570 5571 5572 5573 protected: 5574 5575 static int id; 5576 5577 }; 5578 5579 class StringLength : public Action { 5580 public: 5581 StringLength(); 5582 virtual ~StringLength(); 5583 5584 virtual bool parse( Reader *r, int end, Context *ctx ); 5585 virtual void dump( int indent, Context *ctx ); 5586 virtual size_t calcSize( Context *ctx, int start_at ); 5587 virtual void write( Writer *w, Context *ctx ); 5588 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5589 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5590 5591 static StringLength* get( Reader *r, int end, Context *ctx ); 5592 static StringLength* getByName( const char *name ); 5593 5594 5595 5596 protected: 5597 5598 static int id; 5599 5600 }; 5601 5602 class SubString : public Action { 5603 public: 5604 SubString(); 5605 virtual ~SubString(); 5606 5607 virtual bool parse( Reader *r, int end, Context *ctx ); 5608 virtual void dump( int indent, Context *ctx ); 5609 virtual size_t calcSize( Context *ctx, int start_at ); 5610 virtual void write( Writer *w, Context *ctx ); 5611 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5612 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5613 5614 static SubString* get( Reader *r, int end, Context *ctx ); 5615 static SubString* getByName( const char *name ); 5616 5617 5618 5619 protected: 5620 5621 static int id; 5622 5623 }; 5624 5625 class Pop : public Action { 5626 public: 5627 Pop(); 5628 virtual ~Pop(); 5629 5630 virtual bool parse( Reader *r, int end, Context *ctx ); 5631 virtual void dump( int indent, Context *ctx ); 5632 virtual size_t calcSize( Context *ctx, int start_at ); 5633 virtual void write( Writer *w, Context *ctx ); 5634 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5635 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5636 5637 static Pop* get( Reader *r, int end, Context *ctx ); 5638 static Pop* getByName( const char *name ); 5639 5640 5641 5642 protected: 5643 5644 static int id; 5645 5646 }; 5647 5648 class IntegralPart : public Action { 5649 public: 5650 IntegralPart(); 5651 virtual ~IntegralPart(); 5652 5653 virtual bool parse( Reader *r, int end, Context *ctx ); 5654 virtual void dump( int indent, Context *ctx ); 5655 virtual size_t calcSize( Context *ctx, int start_at ); 5656 virtual void write( Writer *w, Context *ctx ); 5657 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5658 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5659 5660 static IntegralPart* get( Reader *r, int end, Context *ctx ); 5661 static IntegralPart* getByName( const char *name ); 5662 5663 5664 5665 protected: 5666 5667 static int id; 5668 5669 }; 5670 5671 class GetVariable : public Action { 5672 public: 5673 GetVariable(); 5674 virtual ~GetVariable(); 5675 5676 virtual bool parse( Reader *r, int end, Context *ctx ); 5677 virtual void dump( int indent, Context *ctx ); 5678 virtual size_t calcSize( Context *ctx, int start_at ); 5679 virtual void write( Writer *w, Context *ctx ); 5680 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5681 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5682 5683 static GetVariable* get( Reader *r, int end, Context *ctx ); 5684 static GetVariable* getByName( const char *name ); 5685 5686 5687 5688 protected: 5689 5690 static int id; 5691 5692 }; 5693 5694 class SetVariable : public Action { 5695 public: 5696 SetVariable(); 5697 virtual ~SetVariable(); 5698 5699 virtual bool parse( Reader *r, int end, Context *ctx ); 5700 virtual void dump( int indent, Context *ctx ); 5701 virtual size_t calcSize( Context *ctx, int start_at ); 5702 virtual void write( Writer *w, Context *ctx ); 5703 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5704 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5705 5706 static SetVariable* get( Reader *r, int end, Context *ctx ); 5707 static SetVariable* getByName( const char *name ); 5708 5709 5710 5711 protected: 5712 5713 static int id; 5714 5715 }; 5716 5717 class SetTargetDynamic : public Action { 5718 public: 5719 SetTargetDynamic(); 5720 virtual ~SetTargetDynamic(); 5721 5722 virtual bool parse( Reader *r, int end, Context *ctx ); 5723 virtual void dump( int indent, Context *ctx ); 5724 virtual size_t calcSize( Context *ctx, int start_at ); 5725 virtual void write( Writer *w, Context *ctx ); 5726 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5727 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5728 5729 static SetTargetDynamic* get( Reader *r, int end, Context *ctx ); 5730 static SetTargetDynamic* getByName( const char *name ); 5731 5732 5733 5734 protected: 5735 5736 static int id; 5737 5738 }; 5739 5740 class ConcatenateString : public Action { 5741 public: 5742 ConcatenateString(); 5743 virtual ~ConcatenateString(); 5744 5745 virtual bool parse( Reader *r, int end, Context *ctx ); 5746 virtual void dump( int indent, Context *ctx ); 5747 virtual size_t calcSize( Context *ctx, int start_at ); 5748 virtual void write( Writer *w, Context *ctx ); 5749 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5750 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5751 5752 static ConcatenateString* get( Reader *r, int end, Context *ctx ); 5753 static ConcatenateString* getByName( const char *name ); 5754 5755 5756 5757 protected: 5758 5759 static int id; 5760 5761 }; 5762 5763 class GetProperty : public Action { 5764 public: 5765 GetProperty(); 5766 virtual ~GetProperty(); 5767 5768 virtual bool parse( Reader *r, int end, Context *ctx ); 5769 virtual void dump( int indent, Context *ctx ); 5770 virtual size_t calcSize( Context *ctx, int start_at ); 5771 virtual void write( Writer *w, Context *ctx ); 5772 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5773 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5774 5775 static GetProperty* get( Reader *r, int end, Context *ctx ); 5776 static GetProperty* getByName( const char *name ); 5777 5778 5779 5780 protected: 5781 5782 static int id; 5783 5784 }; 5785 5786 class SetProperty : public Action { 5787 public: 5788 SetProperty(); 5789 virtual ~SetProperty(); 5790 5791 virtual bool parse( Reader *r, int end, Context *ctx ); 5792 virtual void dump( int indent, Context *ctx ); 5793 virtual size_t calcSize( Context *ctx, int start_at ); 5794 virtual void write( Writer *w, Context *ctx ); 5795 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5796 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5797 5798 static SetProperty* get( Reader *r, int end, Context *ctx ); 5799 static SetProperty* getByName( const char *name ); 5800 5801 5802 5803 protected: 5804 5805 static int id; 5806 5807 }; 5808 5809 class DuplicateSprite : public Action { 5810 public: 5811 DuplicateSprite(); 5812 virtual ~DuplicateSprite(); 5813 5814 virtual bool parse( Reader *r, int end, Context *ctx ); 5815 virtual void dump( int indent, Context *ctx ); 5816 virtual size_t calcSize( Context *ctx, int start_at ); 5817 virtual void write( Writer *w, Context *ctx ); 5818 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5819 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5820 5821 static DuplicateSprite* get( Reader *r, int end, Context *ctx ); 5822 static DuplicateSprite* getByName( const char *name ); 5823 5824 5825 5826 protected: 5827 5828 static int id; 5829 5830 }; 5831 5832 class RemoveSprite : public Action { 5833 public: 5834 RemoveSprite(); 5835 virtual ~RemoveSprite(); 5836 5837 virtual bool parse( Reader *r, int end, Context *ctx ); 5838 virtual void dump( int indent, Context *ctx ); 5839 virtual size_t calcSize( Context *ctx, int start_at ); 5840 virtual void write( Writer *w, Context *ctx ); 5841 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5842 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5843 5844 static RemoveSprite* get( Reader *r, int end, Context *ctx ); 5845 static RemoveSprite* getByName( const char *name ); 5846 5847 5848 5849 protected: 5850 5851 static int id; 5852 5853 }; 5854 5855 class Trace : public Action { 5856 public: 5857 Trace(); 5858 virtual ~Trace(); 5859 5860 virtual bool parse( Reader *r, int end, Context *ctx ); 5861 virtual void dump( int indent, Context *ctx ); 5862 virtual size_t calcSize( Context *ctx, int start_at ); 5863 virtual void write( Writer *w, Context *ctx ); 5864 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5865 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5866 5867 static Trace* get( Reader *r, int end, Context *ctx ); 5868 static Trace* getByName( const char *name ); 5869 5870 5871 5872 protected: 5873 5874 static int id; 5875 5876 }; 5877 5878 class StartDrag : public Action { 5879 public: 5880 StartDrag(); 5881 virtual ~StartDrag(); 5882 5883 virtual bool parse( Reader *r, int end, Context *ctx ); 5884 virtual void dump( int indent, Context *ctx ); 5885 virtual size_t calcSize( Context *ctx, int start_at ); 5886 virtual void write( Writer *w, Context *ctx ); 5887 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5888 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5889 5890 static StartDrag* get( Reader *r, int end, Context *ctx ); 5891 static StartDrag* getByName( const char *name ); 5892 5893 5894 5895 protected: 5896 5897 static int id; 5898 5899 }; 5900 5901 class StopDrag : public Action { 5902 public: 5903 StopDrag(); 5904 virtual ~StopDrag(); 5905 5906 virtual bool parse( Reader *r, int end, Context *ctx ); 5907 virtual void dump( int indent, Context *ctx ); 5908 virtual size_t calcSize( Context *ctx, int start_at ); 5909 virtual void write( Writer *w, Context *ctx ); 5910 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5911 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5912 5913 static StopDrag* get( Reader *r, int end, Context *ctx ); 5914 static StopDrag* getByName( const char *name ); 5915 5916 5917 5918 protected: 5919 5920 static int id; 5921 5922 }; 5923 5924 class StringLessThan : public Action { 5925 public: 5926 StringLessThan(); 5927 virtual ~StringLessThan(); 5928 5929 virtual bool parse( Reader *r, int end, Context *ctx ); 5930 virtual void dump( int indent, Context *ctx ); 5931 virtual size_t calcSize( Context *ctx, int start_at ); 5932 virtual void write( Writer *w, Context *ctx ); 5933 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5934 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5935 5936 static StringLessThan* get( Reader *r, int end, Context *ctx ); 5937 static StringLessThan* getByName( const char *name ); 5938 5939 5940 5941 protected: 5942 5943 static int id; 5944 5945 }; 5946 5947 class Throw : public Action { 5948 public: 5949 Throw(); 5950 virtual ~Throw(); 5951 5952 virtual bool parse( Reader *r, int end, Context *ctx ); 5953 virtual void dump( int indent, Context *ctx ); 5954 virtual size_t calcSize( Context *ctx, int start_at ); 5955 virtual void write( Writer *w, Context *ctx ); 5956 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5957 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5958 5959 static Throw* get( Reader *r, int end, Context *ctx ); 5960 static Throw* getByName( const char *name ); 5961 5962 5963 5964 protected: 5965 5966 static int id; 5967 5968 }; 5969 5970 class CastObject : public Action { 5971 public: 5972 CastObject(); 5973 virtual ~CastObject(); 5974 5975 virtual bool parse( Reader *r, int end, Context *ctx ); 5976 virtual void dump( int indent, Context *ctx ); 5977 virtual size_t calcSize( Context *ctx, int start_at ); 5978 virtual void write( Writer *w, Context *ctx ); 5979 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 5980 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 5981 5982 static CastObject* get( Reader *r, int end, Context *ctx ); 5983 static CastObject* getByName( const char *name ); 5984 5985 5986 5987 protected: 5988 5989 static int id; 5990 5991 }; 5992 5993 class Implements : public Action { 5994 public: 5995 Implements(); 5996 virtual ~Implements(); 5997 5998 virtual bool parse( Reader *r, int end, Context *ctx ); 5999 virtual void dump( int indent, Context *ctx ); 6000 virtual size_t calcSize( Context *ctx, int start_at ); 6001 virtual void write( Writer *w, Context *ctx ); 6002 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6003 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6004 6005 static Implements* get( Reader *r, int end, Context *ctx ); 6006 static Implements* getByName( const char *name ); 6007 6008 6009 6010 protected: 6011 6012 static int id; 6013 6014 }; 6015 6016 class Random : public Action { 6017 public: 6018 Random(); 6019 virtual ~Random(); 6020 6021 virtual bool parse( Reader *r, int end, Context *ctx ); 6022 virtual void dump( int indent, Context *ctx ); 6023 virtual size_t calcSize( Context *ctx, int start_at ); 6024 virtual void write( Writer *w, Context *ctx ); 6025 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6026 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6027 6028 static Random* get( Reader *r, int end, Context *ctx ); 6029 static Random* getByName( const char *name ); 6030 6031 6032 6033 protected: 6034 6035 static int id; 6036 6037 }; 6038 6039 class MultibyteStringLength : public Action { 6040 public: 6041 MultibyteStringLength(); 6042 virtual ~MultibyteStringLength(); 6043 6044 virtual bool parse( Reader *r, int end, Context *ctx ); 6045 virtual void dump( int indent, Context *ctx ); 6046 virtual size_t calcSize( Context *ctx, int start_at ); 6047 virtual void write( Writer *w, Context *ctx ); 6048 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6049 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6050 6051 static MultibyteStringLength* get( Reader *r, int end, Context *ctx ); 6052 static MultibyteStringLength* getByName( const char *name ); 6053 6054 6055 6056 protected: 6057 6058 static int id; 6059 6060 }; 6061 6062 class ORD : public Action { 6063 public: 6064 ORD(); 6065 virtual ~ORD(); 6066 6067 virtual bool parse( Reader *r, int end, Context *ctx ); 6068 virtual void dump( int indent, Context *ctx ); 6069 virtual size_t calcSize( Context *ctx, int start_at ); 6070 virtual void write( Writer *w, Context *ctx ); 6071 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6072 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6073 6074 static ORD* get( Reader *r, int end, Context *ctx ); 6075 static ORD* getByName( const char *name ); 6076 6077 6078 6079 protected: 6080 6081 static int id; 6082 6083 }; 6084 6085 class CHR : public Action { 6086 public: 6087 CHR(); 6088 virtual ~CHR(); 6089 6090 virtual bool parse( Reader *r, int end, Context *ctx ); 6091 virtual void dump( int indent, Context *ctx ); 6092 virtual size_t calcSize( Context *ctx, int start_at ); 6093 virtual void write( Writer *w, Context *ctx ); 6094 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6095 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6096 6097 static CHR* get( Reader *r, int end, Context *ctx ); 6098 static CHR* getByName( const char *name ); 6099 6100 6101 6102 protected: 6103 6104 static int id; 6105 6106 }; 6107 6108 class GetTimer : public Action { 6109 public: 6110 GetTimer(); 6111 virtual ~GetTimer(); 6112 6113 virtual bool parse( Reader *r, int end, Context *ctx ); 6114 virtual void dump( int indent, Context *ctx ); 6115 virtual size_t calcSize( Context *ctx, int start_at ); 6116 virtual void write( Writer *w, Context *ctx ); 6117 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6118 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6119 6120 static GetTimer* get( Reader *r, int end, Context *ctx ); 6121 static GetTimer* getByName( const char *name ); 6122 6123 6124 6125 protected: 6126 6127 static int id; 6128 6129 }; 6130 6131 class MultibyteSubString : public Action { 6132 public: 6133 MultibyteSubString(); 6134 virtual ~MultibyteSubString(); 6135 6136 virtual bool parse( Reader *r, int end, Context *ctx ); 6137 virtual void dump( int indent, Context *ctx ); 6138 virtual size_t calcSize( Context *ctx, int start_at ); 6139 virtual void write( Writer *w, Context *ctx ); 6140 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6141 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6142 6143 static MultibyteSubString* get( Reader *r, int end, Context *ctx ); 6144 static MultibyteSubString* getByName( const char *name ); 6145 6146 6147 6148 protected: 6149 6150 static int id; 6151 6152 }; 6153 6154 class MultibyteORD : public Action { 6155 public: 6156 MultibyteORD(); 6157 virtual ~MultibyteORD(); 6158 6159 virtual bool parse( Reader *r, int end, Context *ctx ); 6160 virtual void dump( int indent, Context *ctx ); 6161 virtual size_t calcSize( Context *ctx, int start_at ); 6162 virtual void write( Writer *w, Context *ctx ); 6163 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6164 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6165 6166 static MultibyteORD* get( Reader *r, int end, Context *ctx ); 6167 static MultibyteORD* getByName( const char *name ); 6168 6169 6170 6171 protected: 6172 6173 static int id; 6174 6175 }; 6176 6177 class MultibyteCHR : public Action { 6178 public: 6179 MultibyteCHR(); 6180 virtual ~MultibyteCHR(); 6181 6182 virtual bool parse( Reader *r, int end, Context *ctx ); 6183 virtual void dump( int indent, Context *ctx ); 6184 virtual size_t calcSize( Context *ctx, int start_at ); 6185 virtual void write( Writer *w, Context *ctx ); 6186 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6187 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6188 6189 static MultibyteCHR* get( Reader *r, int end, Context *ctx ); 6190 static MultibyteCHR* getByName( const char *name ); 6191 6192 6193 6194 protected: 6195 6196 static int id; 6197 6198 }; 6199 6200 class Delete : public Action { 6201 public: 6202 Delete(); 6203 virtual ~Delete(); 6204 6205 virtual bool parse( Reader *r, int end, Context *ctx ); 6206 virtual void dump( int indent, Context *ctx ); 6207 virtual size_t calcSize( Context *ctx, int start_at ); 6208 virtual void write( Writer *w, Context *ctx ); 6209 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6210 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6211 6212 static Delete* get( Reader *r, int end, Context *ctx ); 6213 static Delete* getByName( const char *name ); 6214 6215 6216 6217 protected: 6218 6219 static int id; 6220 6221 }; 6222 6223 class DeleteAll : public Action { 6224 public: 6225 DeleteAll(); 6226 virtual ~DeleteAll(); 6227 6228 virtual bool parse( Reader *r, int end, Context *ctx ); 6229 virtual void dump( int indent, Context *ctx ); 6230 virtual size_t calcSize( Context *ctx, int start_at ); 6231 virtual void write( Writer *w, Context *ctx ); 6232 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6233 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6234 6235 static DeleteAll* get( Reader *r, int end, Context *ctx ); 6236 static DeleteAll* getByName( const char *name ); 6237 6238 6239 6240 protected: 6241 6242 static int id; 6243 6244 }; 6245 6246 class SetLocalVariable : public Action { 6247 public: 6248 SetLocalVariable(); 6249 virtual ~SetLocalVariable(); 6250 6251 virtual bool parse( Reader *r, int end, Context *ctx ); 6252 virtual void dump( int indent, Context *ctx ); 6253 virtual size_t calcSize( Context *ctx, int start_at ); 6254 virtual void write( Writer *w, Context *ctx ); 6255 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6256 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6257 6258 static SetLocalVariable* get( Reader *r, int end, Context *ctx ); 6259 static SetLocalVariable* getByName( const char *name ); 6260 6261 6262 6263 protected: 6264 6265 static int id; 6266 6267 }; 6268 6269 class CallFunction : public Action { 6270 public: 6271 CallFunction(); 6272 virtual ~CallFunction(); 6273 6274 virtual bool parse( Reader *r, int end, Context *ctx ); 6275 virtual void dump( int indent, Context *ctx ); 6276 virtual size_t calcSize( Context *ctx, int start_at ); 6277 virtual void write( Writer *w, Context *ctx ); 6278 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6279 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6280 6281 static CallFunction* get( Reader *r, int end, Context *ctx ); 6282 static CallFunction* getByName( const char *name ); 6283 6284 6285 6286 protected: 6287 6288 static int id; 6289 6290 }; 6291 6292 class Return : public Action { 6293 public: 6294 Return(); 6295 virtual ~Return(); 6296 6297 virtual bool parse( Reader *r, int end, Context *ctx ); 6298 virtual void dump( int indent, Context *ctx ); 6299 virtual size_t calcSize( Context *ctx, int start_at ); 6300 virtual void write( Writer *w, Context *ctx ); 6301 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6302 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6303 6304 static Return* get( Reader *r, int end, Context *ctx ); 6305 static Return* getByName( const char *name ); 6306 6307 6308 6309 protected: 6310 6311 static int id; 6312 6313 }; 6314 6315 class Modulo : public Action { 6316 public: 6317 Modulo(); 6318 virtual ~Modulo(); 6319 6320 virtual bool parse( Reader *r, int end, Context *ctx ); 6321 virtual void dump( int indent, Context *ctx ); 6322 virtual size_t calcSize( Context *ctx, int start_at ); 6323 virtual void write( Writer *w, Context *ctx ); 6324 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6325 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6326 6327 static Modulo* get( Reader *r, int end, Context *ctx ); 6328 static Modulo* getByName( const char *name ); 6329 6330 6331 6332 protected: 6333 6334 static int id; 6335 6336 }; 6337 6338 class New : public Action { 6339 public: 6340 New(); 6341 virtual ~New(); 6342 6343 virtual bool parse( Reader *r, int end, Context *ctx ); 6344 virtual void dump( int indent, Context *ctx ); 6345 virtual size_t calcSize( Context *ctx, int start_at ); 6346 virtual void write( Writer *w, Context *ctx ); 6347 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6348 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6349 6350 static New* get( Reader *r, int end, Context *ctx ); 6351 static New* getByName( const char *name ); 6352 6353 6354 6355 protected: 6356 6357 static int id; 6358 6359 }; 6360 6361 class DeclareLocalVariable : public Action { 6362 public: 6363 DeclareLocalVariable(); 6364 virtual ~DeclareLocalVariable(); 6365 6366 virtual bool parse( Reader *r, int end, Context *ctx ); 6367 virtual void dump( int indent, Context *ctx ); 6368 virtual size_t calcSize( Context *ctx, int start_at ); 6369 virtual void write( Writer *w, Context *ctx ); 6370 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6371 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6372 6373 static DeclareLocalVariable* get( Reader *r, int end, Context *ctx ); 6374 static DeclareLocalVariable* getByName( const char *name ); 6375 6376 6377 6378 protected: 6379 6380 static int id; 6381 6382 }; 6383 6384 class DeclareArray : public Action { 6385 public: 6386 DeclareArray(); 6387 virtual ~DeclareArray(); 6388 6389 virtual bool parse( Reader *r, int end, Context *ctx ); 6390 virtual void dump( int indent, Context *ctx ); 6391 virtual size_t calcSize( Context *ctx, int start_at ); 6392 virtual void write( Writer *w, Context *ctx ); 6393 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6394 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6395 6396 static DeclareArray* get( Reader *r, int end, Context *ctx ); 6397 static DeclareArray* getByName( const char *name ); 6398 6399 6400 6401 protected: 6402 6403 static int id; 6404 6405 }; 6406 6407 class DeclareObject : public Action { 6408 public: 6409 DeclareObject(); 6410 virtual ~DeclareObject(); 6411 6412 virtual bool parse( Reader *r, int end, Context *ctx ); 6413 virtual void dump( int indent, Context *ctx ); 6414 virtual size_t calcSize( Context *ctx, int start_at ); 6415 virtual void write( Writer *w, Context *ctx ); 6416 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6417 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6418 6419 static DeclareObject* get( Reader *r, int end, Context *ctx ); 6420 static DeclareObject* getByName( const char *name ); 6421 6422 6423 6424 protected: 6425 6426 static int id; 6427 6428 }; 6429 6430 class TypeOf : public Action { 6431 public: 6432 TypeOf(); 6433 virtual ~TypeOf(); 6434 6435 virtual bool parse( Reader *r, int end, Context *ctx ); 6436 virtual void dump( int indent, Context *ctx ); 6437 virtual size_t calcSize( Context *ctx, int start_at ); 6438 virtual void write( Writer *w, Context *ctx ); 6439 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6440 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6441 6442 static TypeOf* get( Reader *r, int end, Context *ctx ); 6443 static TypeOf* getByName( const char *name ); 6444 6445 6446 6447 protected: 6448 6449 static int id; 6450 6451 }; 6452 6453 class GetTarget : public Action { 6454 public: 6455 GetTarget(); 6456 virtual ~GetTarget(); 6457 6458 virtual bool parse( Reader *r, int end, Context *ctx ); 6459 virtual void dump( int indent, Context *ctx ); 6460 virtual size_t calcSize( Context *ctx, int start_at ); 6461 virtual void write( Writer *w, Context *ctx ); 6462 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6463 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6464 6465 static GetTarget* get( Reader *r, int end, Context *ctx ); 6466 static GetTarget* getByName( const char *name ); 6467 6468 6469 6470 protected: 6471 6472 static int id; 6473 6474 }; 6475 6476 class Enumerate : public Action { 6477 public: 6478 Enumerate(); 6479 virtual ~Enumerate(); 6480 6481 virtual bool parse( Reader *r, int end, Context *ctx ); 6482 virtual void dump( int indent, Context *ctx ); 6483 virtual size_t calcSize( Context *ctx, int start_at ); 6484 virtual void write( Writer *w, Context *ctx ); 6485 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6486 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6487 6488 static Enumerate* get( Reader *r, int end, Context *ctx ); 6489 static Enumerate* getByName( const char *name ); 6490 6491 6492 6493 protected: 6494 6495 static int id; 6496 6497 }; 6498 6499 class AddTyped : public Action { 6500 public: 6501 AddTyped(); 6502 virtual ~AddTyped(); 6503 6504 virtual bool parse( Reader *r, int end, Context *ctx ); 6505 virtual void dump( int indent, Context *ctx ); 6506 virtual size_t calcSize( Context *ctx, int start_at ); 6507 virtual void write( Writer *w, Context *ctx ); 6508 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6509 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6510 6511 static AddTyped* get( Reader *r, int end, Context *ctx ); 6512 static AddTyped* getByName( const char *name ); 6513 6514 6515 6516 protected: 6517 6518 static int id; 6519 6520 }; 6521 6522 class LessThanTyped : public Action { 6523 public: 6524 LessThanTyped(); 6525 virtual ~LessThanTyped(); 6526 6527 virtual bool parse( Reader *r, int end, Context *ctx ); 6528 virtual void dump( int indent, Context *ctx ); 6529 virtual size_t calcSize( Context *ctx, int start_at ); 6530 virtual void write( Writer *w, Context *ctx ); 6531 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6532 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6533 6534 static LessThanTyped* get( Reader *r, int end, Context *ctx ); 6535 static LessThanTyped* getByName( const char *name ); 6536 6537 6538 6539 protected: 6540 6541 static int id; 6542 6543 }; 6544 6545 class EqualTyped : public Action { 6546 public: 6547 EqualTyped(); 6548 virtual ~EqualTyped(); 6549 6550 virtual bool parse( Reader *r, int end, Context *ctx ); 6551 virtual void dump( int indent, Context *ctx ); 6552 virtual size_t calcSize( Context *ctx, int start_at ); 6553 virtual void write( Writer *w, Context *ctx ); 6554 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6555 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6556 6557 static EqualTyped* get( Reader *r, int end, Context *ctx ); 6558 static EqualTyped* getByName( const char *name ); 6559 6560 6561 6562 protected: 6563 6564 static int id; 6565 6566 }; 6567 6568 class DefineNumber : public Action { 6569 public: 6570 DefineNumber(); 6571 virtual ~DefineNumber(); 6572 6573 virtual bool parse( Reader *r, int end, Context *ctx ); 6574 virtual void dump( int indent, Context *ctx ); 6575 virtual size_t calcSize( Context *ctx, int start_at ); 6576 virtual void write( Writer *w, Context *ctx ); 6577 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6578 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6579 6580 static DefineNumber* get( Reader *r, int end, Context *ctx ); 6581 static DefineNumber* getByName( const char *name ); 6582 6583 6584 6585 protected: 6586 6587 static int id; 6588 6589 }; 6590 6591 class DefineString : public Action { 6592 public: 6593 DefineString(); 6594 virtual ~DefineString(); 6595 6596 virtual bool parse( Reader *r, int end, Context *ctx ); 6597 virtual void dump( int indent, Context *ctx ); 6598 virtual size_t calcSize( Context *ctx, int start_at ); 6599 virtual void write( Writer *w, Context *ctx ); 6600 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6601 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6602 6603 static DefineString* get( Reader *r, int end, Context *ctx ); 6604 static DefineString* getByName( const char *name ); 6605 6606 6607 6608 protected: 6609 6610 static int id; 6611 6612 }; 6613 6614 class Duplicate : public Action { 6615 public: 6616 Duplicate(); 6617 virtual ~Duplicate(); 6618 6619 virtual bool parse( Reader *r, int end, Context *ctx ); 6620 virtual void dump( int indent, Context *ctx ); 6621 virtual size_t calcSize( Context *ctx, int start_at ); 6622 virtual void write( Writer *w, Context *ctx ); 6623 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6624 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6625 6626 static Duplicate* get( Reader *r, int end, Context *ctx ); 6627 static Duplicate* getByName( const char *name ); 6628 6629 6630 6631 protected: 6632 6633 static int id; 6634 6635 }; 6636 6637 class Swap : public Action { 6638 public: 6639 Swap(); 6640 virtual ~Swap(); 6641 6642 virtual bool parse( Reader *r, int end, Context *ctx ); 6643 virtual void dump( int indent, Context *ctx ); 6644 virtual size_t calcSize( Context *ctx, int start_at ); 6645 virtual void write( Writer *w, Context *ctx ); 6646 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6647 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6648 6649 static Swap* get( Reader *r, int end, Context *ctx ); 6650 static Swap* getByName( const char *name ); 6651 6652 6653 6654 protected: 6655 6656 static int id; 6657 6658 }; 6659 6660 class GetMember : public Action { 6661 public: 6662 GetMember(); 6663 virtual ~GetMember(); 6664 6665 virtual bool parse( Reader *r, int end, Context *ctx ); 6666 virtual void dump( int indent, Context *ctx ); 6667 virtual size_t calcSize( Context *ctx, int start_at ); 6668 virtual void write( Writer *w, Context *ctx ); 6669 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6670 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6671 6672 static GetMember* get( Reader *r, int end, Context *ctx ); 6673 static GetMember* getByName( const char *name ); 6674 6675 6676 6677 protected: 6678 6679 static int id; 6680 6681 }; 6682 6683 class SetMember : public Action { 6684 public: 6685 SetMember(); 6686 virtual ~SetMember(); 6687 6688 virtual bool parse( Reader *r, int end, Context *ctx ); 6689 virtual void dump( int indent, Context *ctx ); 6690 virtual size_t calcSize( Context *ctx, int start_at ); 6691 virtual void write( Writer *w, Context *ctx ); 6692 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6693 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6694 6695 static SetMember* get( Reader *r, int end, Context *ctx ); 6696 static SetMember* getByName( const char *name ); 6697 6698 6699 6700 protected: 6701 6702 static int id; 6703 6704 }; 6705 6706 class Increment : public Action { 6707 public: 6708 Increment(); 6709 virtual ~Increment(); 6710 6711 virtual bool parse( Reader *r, int end, Context *ctx ); 6712 virtual void dump( int indent, Context *ctx ); 6713 virtual size_t calcSize( Context *ctx, int start_at ); 6714 virtual void write( Writer *w, Context *ctx ); 6715 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6716 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6717 6718 static Increment* get( Reader *r, int end, Context *ctx ); 6719 static Increment* getByName( const char *name ); 6720 6721 6722 6723 protected: 6724 6725 static int id; 6726 6727 }; 6728 6729 class Decrement : public Action { 6730 public: 6731 Decrement(); 6732 virtual ~Decrement(); 6733 6734 virtual bool parse( Reader *r, int end, Context *ctx ); 6735 virtual void dump( int indent, Context *ctx ); 6736 virtual size_t calcSize( Context *ctx, int start_at ); 6737 virtual void write( Writer *w, Context *ctx ); 6738 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6739 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6740 6741 static Decrement* get( Reader *r, int end, Context *ctx ); 6742 static Decrement* getByName( const char *name ); 6743 6744 6745 6746 protected: 6747 6748 static int id; 6749 6750 }; 6751 6752 class CallMethod : public Action { 6753 public: 6754 CallMethod(); 6755 virtual ~CallMethod(); 6756 6757 virtual bool parse( Reader *r, int end, Context *ctx ); 6758 virtual void dump( int indent, Context *ctx ); 6759 virtual size_t calcSize( Context *ctx, int start_at ); 6760 virtual void write( Writer *w, Context *ctx ); 6761 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6762 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6763 6764 static CallMethod* get( Reader *r, int end, Context *ctx ); 6765 static CallMethod* getByName( const char *name ); 6766 6767 6768 6769 protected: 6770 6771 static int id; 6772 6773 }; 6774 6775 class NewMethod : public Action { 6776 public: 6777 NewMethod(); 6778 virtual ~NewMethod(); 6779 6780 virtual bool parse( Reader *r, int end, Context *ctx ); 6781 virtual void dump( int indent, Context *ctx ); 6782 virtual size_t calcSize( Context *ctx, int start_at ); 6783 virtual void write( Writer *w, Context *ctx ); 6784 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6785 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6786 6787 static NewMethod* get( Reader *r, int end, Context *ctx ); 6788 static NewMethod* getByName( const char *name ); 6789 6790 6791 6792 protected: 6793 6794 static int id; 6795 6796 }; 6797 6798 class InstanceOf : public Action { 6799 public: 6800 InstanceOf(); 6801 virtual ~InstanceOf(); 6802 6803 virtual bool parse( Reader *r, int end, Context *ctx ); 6804 virtual void dump( int indent, Context *ctx ); 6805 virtual size_t calcSize( Context *ctx, int start_at ); 6806 virtual void write( Writer *w, Context *ctx ); 6807 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6808 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6809 6810 static InstanceOf* get( Reader *r, int end, Context *ctx ); 6811 static InstanceOf* getByName( const char *name ); 6812 6813 6814 6815 protected: 6816 6817 static int id; 6818 6819 }; 6820 6821 class EnumerateObject : public Action { 6822 public: 6823 EnumerateObject(); 6824 virtual ~EnumerateObject(); 6825 6826 virtual bool parse( Reader *r, int end, Context *ctx ); 6827 virtual void dump( int indent, Context *ctx ); 6828 virtual size_t calcSize( Context *ctx, int start_at ); 6829 virtual void write( Writer *w, Context *ctx ); 6830 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6831 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6832 6833 static EnumerateObject* get( Reader *r, int end, Context *ctx ); 6834 static EnumerateObject* getByName( const char *name ); 6835 6836 6837 6838 protected: 6839 6840 static int id; 6841 6842 }; 6843 6844 class AND : public Action { 6845 public: 6846 AND(); 6847 virtual ~AND(); 6848 6849 virtual bool parse( Reader *r, int end, Context *ctx ); 6850 virtual void dump( int indent, Context *ctx ); 6851 virtual size_t calcSize( Context *ctx, int start_at ); 6852 virtual void write( Writer *w, Context *ctx ); 6853 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6854 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6855 6856 static AND* get( Reader *r, int end, Context *ctx ); 6857 static AND* getByName( const char *name ); 6858 6859 6860 6861 protected: 6862 6863 static int id; 6864 6865 }; 6866 6867 class OR : public Action { 6868 public: 6869 OR(); 6870 virtual ~OR(); 6871 6872 virtual bool parse( Reader *r, int end, Context *ctx ); 6873 virtual void dump( int indent, Context *ctx ); 6874 virtual size_t calcSize( Context *ctx, int start_at ); 6875 virtual void write( Writer *w, Context *ctx ); 6876 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6877 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6878 6879 static OR* get( Reader *r, int end, Context *ctx ); 6880 static OR* getByName( const char *name ); 6881 6882 6883 6884 protected: 6885 6886 static int id; 6887 6888 }; 6889 6890 class XOR : public Action { 6891 public: 6892 XOR(); 6893 virtual ~XOR(); 6894 6895 virtual bool parse( Reader *r, int end, Context *ctx ); 6896 virtual void dump( int indent, Context *ctx ); 6897 virtual size_t calcSize( Context *ctx, int start_at ); 6898 virtual void write( Writer *w, Context *ctx ); 6899 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6900 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6901 6902 static XOR* get( Reader *r, int end, Context *ctx ); 6903 static XOR* getByName( const char *name ); 6904 6905 6906 6907 protected: 6908 6909 static int id; 6910 6911 }; 6912 6913 class ShiftLeft : public Action { 6914 public: 6915 ShiftLeft(); 6916 virtual ~ShiftLeft(); 6917 6918 virtual bool parse( Reader *r, int end, Context *ctx ); 6919 virtual void dump( int indent, Context *ctx ); 6920 virtual size_t calcSize( Context *ctx, int start_at ); 6921 virtual void write( Writer *w, Context *ctx ); 6922 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6923 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6924 6925 static ShiftLeft* get( Reader *r, int end, Context *ctx ); 6926 static ShiftLeft* getByName( const char *name ); 6927 6928 6929 6930 protected: 6931 6932 static int id; 6933 6934 }; 6935 6936 class ShiftRight : public Action { 6937 public: 6938 ShiftRight(); 6939 virtual ~ShiftRight(); 6940 6941 virtual bool parse( Reader *r, int end, Context *ctx ); 6942 virtual void dump( int indent, Context *ctx ); 6943 virtual size_t calcSize( Context *ctx, int start_at ); 6944 virtual void write( Writer *w, Context *ctx ); 6945 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6946 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6947 6948 static ShiftRight* get( Reader *r, int end, Context *ctx ); 6949 static ShiftRight* getByName( const char *name ); 6950 6951 6952 6953 protected: 6954 6955 static int id; 6956 6957 }; 6958 6959 class ShiftRightUnsigned : public Action { 6960 public: 6961 ShiftRightUnsigned(); 6962 virtual ~ShiftRightUnsigned(); 6963 6964 virtual bool parse( Reader *r, int end, Context *ctx ); 6965 virtual void dump( int indent, Context *ctx ); 6966 virtual size_t calcSize( Context *ctx, int start_at ); 6967 virtual void write( Writer *w, Context *ctx ); 6968 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6969 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6970 6971 static ShiftRightUnsigned* get( Reader *r, int end, Context *ctx ); 6972 static ShiftRightUnsigned* getByName( const char *name ); 6973 6974 6975 6976 protected: 6977 6978 static int id; 6979 6980 }; 6981 6982 class StrictEqual : public Action { 6983 public: 6984 StrictEqual(); 6985 virtual ~StrictEqual(); 6986 6987 virtual bool parse( Reader *r, int end, Context *ctx ); 6988 virtual void dump( int indent, Context *ctx ); 6989 virtual size_t calcSize( Context *ctx, int start_at ); 6990 virtual void write( Writer *w, Context *ctx ); 6991 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 6992 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 6993 6994 static StrictEqual* get( Reader *r, int end, Context *ctx ); 6995 static StrictEqual* getByName( const char *name ); 6996 6997 6998 6999 protected: 7000 7001 static int id; 7002 7003 }; 7004 7005 class GreaterThanTyped : public Action { 7006 public: 7007 GreaterThanTyped(); 7008 virtual ~GreaterThanTyped(); 7009 7010 virtual bool parse( Reader *r, int end, Context *ctx ); 7011 virtual void dump( int indent, Context *ctx ); 7012 virtual size_t calcSize( Context *ctx, int start_at ); 7013 virtual void write( Writer *w, Context *ctx ); 7014 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7015 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7016 7017 static GreaterThanTyped* get( Reader *r, int end, Context *ctx ); 7018 static GreaterThanTyped* getByName( const char *name ); 7019 7020 7021 7022 protected: 7023 7024 static int id; 7025 7026 }; 7027 7028 class StringGreaterThan : public Action { 7029 public: 7030 StringGreaterThan(); 7031 virtual ~StringGreaterThan(); 7032 7033 virtual bool parse( Reader *r, int end, Context *ctx ); 7034 virtual void dump( int indent, Context *ctx ); 7035 virtual size_t calcSize( Context *ctx, int start_at ); 7036 virtual void write( Writer *w, Context *ctx ); 7037 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7038 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7039 7040 static StringGreaterThan* get( Reader *r, int end, Context *ctx ); 7041 static StringGreaterThan* getByName( const char *name ); 7042 7043 7044 7045 protected: 7046 7047 static int id; 7048 7049 }; 7050 7051 class Extends : public Action { 7052 public: 7053 Extends(); 7054 virtual ~Extends(); 7055 7056 virtual bool parse( Reader *r, int end, Context *ctx ); 7057 virtual void dump( int indent, Context *ctx ); 7058 virtual size_t calcSize( Context *ctx, int start_at ); 7059 virtual void write( Writer *w, Context *ctx ); 7060 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7061 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7062 7063 static Extends* get( Reader *r, int end, Context *ctx ); 7064 static Extends* getByName( const char *name ); 7065 7066 7067 7068 protected: 7069 7070 static int id; 7071 7072 }; 7073 7074 class GotoFrame : public Action { 7075 public: 7076 GotoFrame(); 7077 virtual ~GotoFrame(); 7078 7079 virtual bool parse( Reader *r, int end, Context *ctx ); 7080 virtual void dump( int indent, Context *ctx ); 7081 virtual size_t calcSize( Context *ctx, int start_at ); 7082 virtual void write( Writer *w, Context *ctx ); 7083 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7084 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7085 7086 static GotoFrame* get( Reader *r, int end, Context *ctx ); 7087 static GotoFrame* getByName( const char *name ); 7088 7089 std::uint16_t getframe(); 7090 void setframe( std::uint16_t ); 7091 7092 7093 protected: 7094 std::uint16_t frame; // word 7095 7096 static int id; 7097 7098 }; 7099 7100 class GetURL : public Action { 7101 public: 7102 GetURL(); 7103 virtual ~GetURL(); 7104 7105 virtual bool parse( Reader *r, int end, Context *ctx ); 7106 virtual void dump( int indent, Context *ctx ); 7107 virtual size_t calcSize( Context *ctx, int start_at ); 7108 virtual void write( Writer *w, Context *ctx ); 7109 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7110 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7111 7112 static GetURL* get( Reader *r, int end, Context *ctx ); 7113 static GetURL* getByName( const char *name ); 7114 7115 char * geturl(); 7116 void seturl( char * ); 7117 char * gettarget(); 7118 void settarget( char * ); 7119 7120 7121 protected: 7122 char * url; // string 7123 char * target; // string 7124 7125 static int id; 7126 7127 }; 7128 7129 class StoreRegister : public Action { 7130 public: 7131 StoreRegister(); 7132 virtual ~StoreRegister(); 7133 7134 virtual bool parse( Reader *r, int end, Context *ctx ); 7135 virtual void dump( int indent, Context *ctx ); 7136 virtual size_t calcSize( Context *ctx, int start_at ); 7137 virtual void write( Writer *w, Context *ctx ); 7138 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7139 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7140 7141 static StoreRegister* get( Reader *r, int end, Context *ctx ); 7142 static StoreRegister* getByName( const char *name ); 7143 7144 std::uint8_t getreg(); 7145 void setreg( std::uint8_t ); 7146 7147 7148 protected: 7149 std::uint8_t reg; // byte 7150 7151 static int id; 7152 7153 }; 7154 7155 class Dictionary : public Action { 7156 public: 7157 Dictionary(); 7158 virtual ~Dictionary(); 7159 7160 virtual bool parse( Reader *r, int end, Context *ctx ); 7161 virtual void dump( int indent, Context *ctx ); 7162 virtual size_t calcSize( Context *ctx, int start_at ); 7163 virtual void write( Writer *w, Context *ctx ); 7164 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7165 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7166 7167 static Dictionary* get( Reader *r, int end, Context *ctx ); 7168 static Dictionary* getByName( const char *name ); 7169 7170 std::uint16_t getlength(); 7171 void setlength( std::uint16_t ); 7172 List<String> *getstrings(); 7173 7174 7175 protected: 7176 std::uint16_t length; // word 7177 List<String> strings; // list 7178 7179 static int id; 7180 7181 }; 7182 7183 class WaitForFrame : public Action { 7184 public: 7185 WaitForFrame(); 7186 virtual ~WaitForFrame(); 7187 7188 virtual bool parse( Reader *r, int end, Context *ctx ); 7189 virtual void dump( int indent, Context *ctx ); 7190 virtual size_t calcSize( Context *ctx, int start_at ); 7191 virtual void write( Writer *w, Context *ctx ); 7192 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7193 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7194 7195 static WaitForFrame* get( Reader *r, int end, Context *ctx ); 7196 static WaitForFrame* getByName( const char *name ); 7197 7198 std::uint16_t getframe(); 7199 void setframe( std::uint16_t ); 7200 std::uint8_t getskip(); 7201 void setskip( std::uint8_t ); 7202 7203 7204 protected: 7205 std::uint16_t frame; // word 7206 std::uint8_t skip; // byte 7207 7208 static int id; 7209 7210 }; 7211 7212 class SetTarget : public Action { 7213 public: 7214 SetTarget(); 7215 virtual ~SetTarget(); 7216 7217 virtual bool parse( Reader *r, int end, Context *ctx ); 7218 virtual void dump( int indent, Context *ctx ); 7219 virtual size_t calcSize( Context *ctx, int start_at ); 7220 virtual void write( Writer *w, Context *ctx ); 7221 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7222 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7223 7224 static SetTarget* get( Reader *r, int end, Context *ctx ); 7225 static SetTarget* getByName( const char *name ); 7226 7227 char * getlabel(); 7228 void setlabel( char * ); 7229 7230 7231 protected: 7232 char * label; // string 7233 7234 static int id; 7235 7236 }; 7237 7238 class GotoLabel : public Action { 7239 public: 7240 GotoLabel(); 7241 virtual ~GotoLabel(); 7242 7243 virtual bool parse( Reader *r, int end, Context *ctx ); 7244 virtual void dump( int indent, Context *ctx ); 7245 virtual size_t calcSize( Context *ctx, int start_at ); 7246 virtual void write( Writer *w, Context *ctx ); 7247 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7248 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7249 7250 static GotoLabel* get( Reader *r, int end, Context *ctx ); 7251 static GotoLabel* getByName( const char *name ); 7252 7253 char * getlabel(); 7254 void setlabel( char * ); 7255 7256 7257 protected: 7258 char * label; // string 7259 7260 static int id; 7261 7262 }; 7263 7264 class WaitForFrameDynamic : public Action { 7265 public: 7266 WaitForFrameDynamic(); 7267 virtual ~WaitForFrameDynamic(); 7268 7269 virtual bool parse( Reader *r, int end, Context *ctx ); 7270 virtual void dump( int indent, Context *ctx ); 7271 virtual size_t calcSize( Context *ctx, int start_at ); 7272 virtual void write( Writer *w, Context *ctx ); 7273 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7274 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7275 7276 static WaitForFrameDynamic* get( Reader *r, int end, Context *ctx ); 7277 static WaitForFrameDynamic* getByName( const char *name ); 7278 7279 std::uint16_t getframe(); 7280 void setframe( std::uint16_t ); 7281 std::uint8_t getskip(); 7282 void setskip( std::uint8_t ); 7283 7284 7285 protected: 7286 std::uint16_t frame; // word 7287 std::uint8_t skip; // byte 7288 7289 static int id; 7290 7291 }; 7292 7293 class DeclareFunction2 : public Action { 7294 public: 7295 DeclareFunction2(); 7296 virtual ~DeclareFunction2(); 7297 7298 virtual bool parse( Reader *r, int end, Context *ctx ); 7299 virtual void dump( int indent, Context *ctx ); 7300 virtual size_t calcSize( Context *ctx, int start_at ); 7301 virtual void write( Writer *w, Context *ctx ); 7302 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7303 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7304 7305 static DeclareFunction2* get( Reader *r, int end, Context *ctx ); 7306 static DeclareFunction2* getByName( const char *name ); 7307 7308 char * getname(); 7309 void setname( char * ); 7310 std::uint16_t getargc(); 7311 void setargc( std::uint16_t ); 7312 std::uint8_t getregc(); 7313 void setregc( std::uint8_t ); 7314 bool getpreloadParent(); 7315 void setpreloadParent( bool ); 7316 bool getpreloadRoot(); 7317 void setpreloadRoot( bool ); 7318 bool getsuppressSuper(); 7319 void setsuppressSuper( bool ); 7320 bool getpreloadSuper(); 7321 void setpreloadSuper( bool ); 7322 bool getsuppressArguments(); 7323 void setsuppressArguments( bool ); 7324 bool getpreloadArguments(); 7325 void setpreloadArguments( bool ); 7326 bool getsuppressThis(); 7327 void setsuppressThis( bool ); 7328 bool getpreloadThis(); 7329 void setpreloadThis( bool ); 7330 std::int32_t getreserved(); 7331 void setreserved( std::int32_t ); 7332 bool getpreloadGlobal(); 7333 void setpreloadGlobal( bool ); 7334 List<Parameter> *getargs(); 7335 std::uint16_t getlength(); 7336 void setlength( std::uint16_t ); 7337 List<Action> *getactions(); 7338 7339 7340 protected: 7341 char * name; // string 7342 std::uint16_t argc; // word 7343 std::uint8_t regc; // byte 7344 bool preloadParent; // bit 7345 bool preloadRoot; // bit 7346 bool suppressSuper; // bit 7347 bool preloadSuper; // bit 7348 bool suppressArguments; // bit 7349 bool preloadArguments; // bit 7350 bool suppressThis; // bit 7351 bool preloadThis; // bit 7352 std::int32_t reserved; // integer 7353 bool preloadGlobal; // bit 7354 List<Parameter> args; // list 7355 std::uint16_t length; // word 7356 List<Action> actions; // list 7357 7358 static int id; 7359 7360 }; 7361 7362 class Try : public Action { 7363 public: 7364 Try(); 7365 virtual ~Try(); 7366 7367 virtual bool parse( Reader *r, int end, Context *ctx ); 7368 virtual void dump( int indent, Context *ctx ); 7369 virtual size_t calcSize( Context *ctx, int start_at ); 7370 virtual void write( Writer *w, Context *ctx ); 7371 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7372 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7373 7374 static Try* get( Reader *r, int end, Context *ctx ); 7375 static Try* getByName( const char *name ); 7376 7377 std::int32_t getreserved(); 7378 void setreserved( std::int32_t ); 7379 bool getcatchInRegister(); 7380 void setcatchInRegister( bool ); 7381 bool getdoFinally(); 7382 void setdoFinally( bool ); 7383 bool getdoCatch(); 7384 void setdoCatch( bool ); 7385 std::uint16_t gettrySize(); 7386 void settrySize( std::uint16_t ); 7387 std::uint16_t getcatchSize(); 7388 void setcatchSize( std::uint16_t ); 7389 std::uint16_t getfinallySize(); 7390 void setfinallySize( std::uint16_t ); 7391 std::uint8_t getreg(); 7392 void setreg( std::uint8_t ); 7393 7394 7395 protected: 7396 std::int32_t reserved; // integer 7397 bool catchInRegister; // bit 7398 bool doFinally; // bit 7399 bool doCatch; // bit 7400 std::uint16_t trySize; // word 7401 std::uint16_t catchSize; // word 7402 std::uint16_t finallySize; // word 7403 std::uint8_t reg; // byte 7404 7405 static int id; 7406 7407 }; 7408 7409 class With : public Action { 7410 public: 7411 With(); 7412 virtual ~With(); 7413 7414 virtual bool parse( Reader *r, int end, Context *ctx ); 7415 virtual void dump( int indent, Context *ctx ); 7416 virtual size_t calcSize( Context *ctx, int start_at ); 7417 virtual void write( Writer *w, Context *ctx ); 7418 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7419 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7420 7421 static With* get( Reader *r, int end, Context *ctx ); 7422 static With* getByName( const char *name ); 7423 7424 std::uint16_t getsize(); 7425 void setsize( std::uint16_t ); 7426 7427 7428 protected: 7429 std::uint16_t size; // word 7430 7431 static int id; 7432 7433 }; 7434 7435 class PushData : public Action { 7436 public: 7437 PushData(); 7438 virtual ~PushData(); 7439 7440 virtual bool parse( Reader *r, int end, Context *ctx ); 7441 virtual void dump( int indent, Context *ctx ); 7442 virtual size_t calcSize( Context *ctx, int start_at ); 7443 virtual void write( Writer *w, Context *ctx ); 7444 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7445 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7446 7447 static PushData* get( Reader *r, int end, Context *ctx ); 7448 static PushData* getByName( const char *name ); 7449 7450 List<StackItem> *getitems(); 7451 7452 7453 protected: 7454 List<StackItem> items; // list 7455 7456 static int id; 7457 7458 }; 7459 7460 class GetURL2 : public Action { 7461 public: 7462 GetURL2(); 7463 virtual ~GetURL2(); 7464 7465 virtual bool parse( Reader *r, int end, Context *ctx ); 7466 virtual void dump( int indent, Context *ctx ); 7467 virtual size_t calcSize( Context *ctx, int start_at ); 7468 virtual void write( Writer *w, Context *ctx ); 7469 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7470 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7471 7472 static GetURL2* get( Reader *r, int end, Context *ctx ); 7473 static GetURL2* getByName( const char *name ); 7474 7475 std::uint8_t getmethod(); 7476 void setmethod( std::uint8_t ); 7477 7478 7479 protected: 7480 std::uint8_t method; // byte 7481 7482 static int id; 7483 7484 }; 7485 7486 class DeclareFunction : public Action { 7487 public: 7488 DeclareFunction(); 7489 virtual ~DeclareFunction(); 7490 7491 virtual bool parse( Reader *r, int end, Context *ctx ); 7492 virtual void dump( int indent, Context *ctx ); 7493 virtual size_t calcSize( Context *ctx, int start_at ); 7494 virtual void write( Writer *w, Context *ctx ); 7495 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7496 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7497 7498 static DeclareFunction* get( Reader *r, int end, Context *ctx ); 7499 static DeclareFunction* getByName( const char *name ); 7500 7501 char * getname(); 7502 void setname( char * ); 7503 std::uint16_t getargc(); 7504 void setargc( std::uint16_t ); 7505 List<String> *getargs(); 7506 std::uint16_t getlength(); 7507 void setlength( std::uint16_t ); 7508 7509 7510 protected: 7511 char * name; // string 7512 std::uint16_t argc; // word 7513 List<String> args; // list 7514 std::uint16_t length; // word 7515 7516 static int id; 7517 7518 }; 7519 7520 class BranchAlways : public Action { 7521 public: 7522 BranchAlways(); 7523 virtual ~BranchAlways(); 7524 7525 virtual bool parse( Reader *r, int end, Context *ctx ); 7526 virtual void dump( int indent, Context *ctx ); 7527 virtual size_t calcSize( Context *ctx, int start_at ); 7528 virtual void write( Writer *w, Context *ctx ); 7529 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7530 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7531 7532 static BranchAlways* get( Reader *r, int end, Context *ctx ); 7533 static BranchAlways* getByName( const char *name ); 7534 7535 std::uint16_t getbyteOffset(); 7536 void setbyteOffset( std::uint16_t ); 7537 7538 7539 protected: 7540 std::uint16_t byteOffset; // word 7541 7542 static int id; 7543 7544 }; 7545 7546 class BranchIfTrue : public Action { 7547 public: 7548 BranchIfTrue(); 7549 virtual ~BranchIfTrue(); 7550 7551 virtual bool parse( Reader *r, int end, Context *ctx ); 7552 virtual void dump( int indent, Context *ctx ); 7553 virtual size_t calcSize( Context *ctx, int start_at ); 7554 virtual void write( Writer *w, Context *ctx ); 7555 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7556 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7557 7558 static BranchIfTrue* get( Reader *r, int end, Context *ctx ); 7559 static BranchIfTrue* getByName( const char *name ); 7560 7561 std::uint16_t getbyteOffset(); 7562 void setbyteOffset( std::uint16_t ); 7563 7564 7565 protected: 7566 std::uint16_t byteOffset; // word 7567 7568 static int id; 7569 7570 }; 7571 7572 class CallFrame : public Action { 7573 public: 7574 CallFrame(); 7575 virtual ~CallFrame(); 7576 7577 virtual bool parse( Reader *r, int end, Context *ctx ); 7578 virtual void dump( int indent, Context *ctx ); 7579 virtual size_t calcSize( Context *ctx, int start_at ); 7580 virtual void write( Writer *w, Context *ctx ); 7581 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7582 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7583 7584 static CallFrame* get( Reader *r, int end, Context *ctx ); 7585 static CallFrame* getByName( const char *name ); 7586 7587 7588 7589 protected: 7590 7591 static int id; 7592 7593 }; 7594 7595 class GotoExpression : public Action { 7596 public: 7597 GotoExpression(); 7598 virtual ~GotoExpression(); 7599 7600 virtual bool parse( Reader *r, int end, Context *ctx ); 7601 virtual void dump( int indent, Context *ctx ); 7602 virtual size_t calcSize( Context *ctx, int start_at ); 7603 virtual void write( Writer *w, Context *ctx ); 7604 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7605 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7606 7607 static GotoExpression* get( Reader *r, int end, Context *ctx ); 7608 static GotoExpression* getByName( const char *name ); 7609 7610 std::uint8_t getplay(); 7611 void setplay( std::uint8_t ); 7612 7613 7614 protected: 7615 std::uint8_t play; // byte 7616 7617 static int id; 7618 7619 }; 7620 7621 class PrivateNamespace : public NamespaceConstant { 7622 public: 7623 PrivateNamespace(); 7624 virtual ~PrivateNamespace(); 7625 7626 virtual bool parse( Reader *r, int end, Context *ctx ); 7627 virtual void dump( int indent, Context *ctx ); 7628 virtual size_t calcSize( Context *ctx, int start_at ); 7629 virtual void write( Writer *w, Context *ctx ); 7630 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7631 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7632 7633 static PrivateNamespace* get( Reader *r, int end, Context *ctx ); 7634 static PrivateNamespace* getByName( const char *name ); 7635 7636 std::uint32_t getindex(); 7637 void setindex( std::uint32_t ); 7638 7639 7640 protected: 7641 std::uint32_t index; // u30 7642 7643 static int id; 7644 7645 }; 7646 7647 class Namespace : public NamespaceConstant { 7648 public: 7649 Namespace(); 7650 virtual ~Namespace(); 7651 7652 virtual bool parse( Reader *r, int end, Context *ctx ); 7653 virtual void dump( int indent, Context *ctx ); 7654 virtual size_t calcSize( Context *ctx, int start_at ); 7655 virtual void write( Writer *w, Context *ctx ); 7656 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7657 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7658 7659 static Namespace* get( Reader *r, int end, Context *ctx ); 7660 static Namespace* getByName( const char *name ); 7661 7662 std::uint32_t getindex(); 7663 void setindex( std::uint32_t ); 7664 7665 7666 protected: 7667 std::uint32_t index; // u30 7668 7669 static int id; 7670 7671 }; 7672 7673 class PackageNamespace : public NamespaceConstant { 7674 public: 7675 PackageNamespace(); 7676 virtual ~PackageNamespace(); 7677 7678 virtual bool parse( Reader *r, int end, Context *ctx ); 7679 virtual void dump( int indent, Context *ctx ); 7680 virtual size_t calcSize( Context *ctx, int start_at ); 7681 virtual void write( Writer *w, Context *ctx ); 7682 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7683 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7684 7685 static PackageNamespace* get( Reader *r, int end, Context *ctx ); 7686 static PackageNamespace* getByName( const char *name ); 7687 7688 std::uint32_t getindex(); 7689 void setindex( std::uint32_t ); 7690 7691 7692 protected: 7693 std::uint32_t index; // u30 7694 7695 static int id; 7696 7697 }; 7698 7699 class PackageInternalNamespace : public NamespaceConstant { 7700 public: 7701 PackageInternalNamespace(); 7702 virtual ~PackageInternalNamespace(); 7703 7704 virtual bool parse( Reader *r, int end, Context *ctx ); 7705 virtual void dump( int indent, Context *ctx ); 7706 virtual size_t calcSize( Context *ctx, int start_at ); 7707 virtual void write( Writer *w, Context *ctx ); 7708 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7709 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7710 7711 static PackageInternalNamespace* get( Reader *r, int end, Context *ctx ); 7712 static PackageInternalNamespace* getByName( const char *name ); 7713 7714 std::uint32_t getindex(); 7715 void setindex( std::uint32_t ); 7716 7717 7718 protected: 7719 std::uint32_t index; // u30 7720 7721 static int id; 7722 7723 }; 7724 7725 class ProtectedNamespace : public NamespaceConstant { 7726 public: 7727 ProtectedNamespace(); 7728 virtual ~ProtectedNamespace(); 7729 7730 virtual bool parse( Reader *r, int end, Context *ctx ); 7731 virtual void dump( int indent, Context *ctx ); 7732 virtual size_t calcSize( Context *ctx, int start_at ); 7733 virtual void write( Writer *w, Context *ctx ); 7734 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7735 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7736 7737 static ProtectedNamespace* get( Reader *r, int end, Context *ctx ); 7738 static ProtectedNamespace* getByName( const char *name ); 7739 7740 std::uint32_t getindex(); 7741 void setindex( std::uint32_t ); 7742 7743 7744 protected: 7745 std::uint32_t index; // u30 7746 7747 static int id; 7748 7749 }; 7750 7751 class ExplicitNamespace : public NamespaceConstant { 7752 public: 7753 ExplicitNamespace(); 7754 virtual ~ExplicitNamespace(); 7755 7756 virtual bool parse( Reader *r, int end, Context *ctx ); 7757 virtual void dump( int indent, Context *ctx ); 7758 virtual size_t calcSize( Context *ctx, int start_at ); 7759 virtual void write( Writer *w, Context *ctx ); 7760 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7761 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7762 7763 static ExplicitNamespace* get( Reader *r, int end, Context *ctx ); 7764 static ExplicitNamespace* getByName( const char *name ); 7765 7766 std::uint32_t getindex(); 7767 void setindex( std::uint32_t ); 7768 7769 7770 protected: 7771 std::uint32_t index; // u30 7772 7773 static int id; 7774 7775 }; 7776 7777 class MultinameLNamespace : public NamespaceConstant { 7778 public: 7779 MultinameLNamespace(); 7780 virtual ~MultinameLNamespace(); 7781 7782 virtual bool parse( Reader *r, int end, Context *ctx ); 7783 virtual void dump( int indent, Context *ctx ); 7784 virtual size_t calcSize( Context *ctx, int start_at ); 7785 virtual void write( Writer *w, Context *ctx ); 7786 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7787 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7788 7789 static MultinameLNamespace* get( Reader *r, int end, Context *ctx ); 7790 static MultinameLNamespace* getByName( const char *name ); 7791 7792 std::uint32_t getindex(); 7793 void setindex( std::uint32_t ); 7794 7795 7796 protected: 7797 std::uint32_t index; // u30 7798 7799 static int id; 7800 7801 }; 7802 7803 class QName : public MultinameConstant { 7804 public: 7805 QName(); 7806 virtual ~QName(); 7807 7808 virtual bool parse( Reader *r, int end, Context *ctx ); 7809 virtual void dump( int indent, Context *ctx ); 7810 virtual size_t calcSize( Context *ctx, int start_at ); 7811 virtual void write( Writer *w, Context *ctx ); 7812 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7813 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7814 7815 static QName* get( Reader *r, int end, Context *ctx ); 7816 static QName* getByName( const char *name ); 7817 7818 std::uint32_t getnamespaceIndex(); 7819 void setnamespaceIndex( std::uint32_t ); 7820 std::uint32_t getnameIndex(); 7821 void setnameIndex( std::uint32_t ); 7822 7823 7824 protected: 7825 std::uint32_t namespaceIndex; // u30 7826 std::uint32_t nameIndex; // u30 7827 7828 static int id; 7829 7830 }; 7831 7832 class QNameA : public MultinameConstant { 7833 public: 7834 QNameA(); 7835 virtual ~QNameA(); 7836 7837 virtual bool parse( Reader *r, int end, Context *ctx ); 7838 virtual void dump( int indent, Context *ctx ); 7839 virtual size_t calcSize( Context *ctx, int start_at ); 7840 virtual void write( Writer *w, Context *ctx ); 7841 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7842 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7843 7844 static QNameA* get( Reader *r, int end, Context *ctx ); 7845 static QNameA* getByName( const char *name ); 7846 7847 std::uint32_t getnamespaceIndex(); 7848 void setnamespaceIndex( std::uint32_t ); 7849 std::uint32_t getnameIndex(); 7850 void setnameIndex( std::uint32_t ); 7851 7852 7853 protected: 7854 std::uint32_t namespaceIndex; // u30 7855 std::uint32_t nameIndex; // u30 7856 7857 static int id; 7858 7859 }; 7860 7861 class Multiname : public MultinameConstant { 7862 public: 7863 Multiname(); 7864 virtual ~Multiname(); 7865 7866 virtual bool parse( Reader *r, int end, Context *ctx ); 7867 virtual void dump( int indent, Context *ctx ); 7868 virtual size_t calcSize( Context *ctx, int start_at ); 7869 virtual void write( Writer *w, Context *ctx ); 7870 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7871 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7872 7873 static Multiname* get( Reader *r, int end, Context *ctx ); 7874 static Multiname* getByName( const char *name ); 7875 7876 std::uint32_t getnameIndex(); 7877 void setnameIndex( std::uint32_t ); 7878 std::uint32_t getnamespaceSetIndex(); 7879 void setnamespaceSetIndex( std::uint32_t ); 7880 7881 7882 protected: 7883 std::uint32_t nameIndex; // u30 7884 std::uint32_t namespaceSetIndex; // u30 7885 7886 static int id; 7887 7888 }; 7889 7890 class MultinameA : public MultinameConstant { 7891 public: 7892 MultinameA(); 7893 virtual ~MultinameA(); 7894 7895 virtual bool parse( Reader *r, int end, Context *ctx ); 7896 virtual void dump( int indent, Context *ctx ); 7897 virtual size_t calcSize( Context *ctx, int start_at ); 7898 virtual void write( Writer *w, Context *ctx ); 7899 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7900 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7901 7902 static MultinameA* get( Reader *r, int end, Context *ctx ); 7903 static MultinameA* getByName( const char *name ); 7904 7905 std::uint32_t getnameIndex(); 7906 void setnameIndex( std::uint32_t ); 7907 std::uint32_t getnamespaceSetIndex(); 7908 void setnamespaceSetIndex( std::uint32_t ); 7909 7910 7911 protected: 7912 std::uint32_t nameIndex; // u30 7913 std::uint32_t namespaceSetIndex; // u30 7914 7915 static int id; 7916 7917 }; 7918 7919 class RTQName : public MultinameConstant { 7920 public: 7921 RTQName(); 7922 virtual ~RTQName(); 7923 7924 virtual bool parse( Reader *r, int end, Context *ctx ); 7925 virtual void dump( int indent, Context *ctx ); 7926 virtual size_t calcSize( Context *ctx, int start_at ); 7927 virtual void write( Writer *w, Context *ctx ); 7928 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7929 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7930 7931 static RTQName* get( Reader *r, int end, Context *ctx ); 7932 static RTQName* getByName( const char *name ); 7933 7934 std::uint32_t getnameIndex(); 7935 void setnameIndex( std::uint32_t ); 7936 7937 7938 protected: 7939 std::uint32_t nameIndex; // u30 7940 7941 static int id; 7942 7943 }; 7944 7945 class RTQNameA : public MultinameConstant { 7946 public: 7947 RTQNameA(); 7948 virtual ~RTQNameA(); 7949 7950 virtual bool parse( Reader *r, int end, Context *ctx ); 7951 virtual void dump( int indent, Context *ctx ); 7952 virtual size_t calcSize( Context *ctx, int start_at ); 7953 virtual void write( Writer *w, Context *ctx ); 7954 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7955 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7956 7957 static RTQNameA* get( Reader *r, int end, Context *ctx ); 7958 static RTQNameA* getByName( const char *name ); 7959 7960 std::uint32_t getnameIndex(); 7961 void setnameIndex( std::uint32_t ); 7962 7963 7964 protected: 7965 std::uint32_t nameIndex; // u30 7966 7967 static int id; 7968 7969 }; 7970 7971 class MultinameL : public MultinameConstant { 7972 public: 7973 MultinameL(); 7974 virtual ~MultinameL(); 7975 7976 virtual bool parse( Reader *r, int end, Context *ctx ); 7977 virtual void dump( int indent, Context *ctx ); 7978 virtual size_t calcSize( Context *ctx, int start_at ); 7979 virtual void write( Writer *w, Context *ctx ); 7980 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 7981 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 7982 7983 static MultinameL* get( Reader *r, int end, Context *ctx ); 7984 static MultinameL* getByName( const char *name ); 7985 7986 std::uint32_t getnamespaceSetIndex(); 7987 void setnamespaceSetIndex( std::uint32_t ); 7988 7989 7990 protected: 7991 std::uint32_t namespaceSetIndex; // u30 7992 7993 static int id; 7994 7995 }; 7996 7997 class RTQNameL : public MultinameConstant { 7998 public: 7999 RTQNameL(); 8000 virtual ~RTQNameL(); 8001 8002 virtual bool parse( Reader *r, int end, Context *ctx ); 8003 virtual void dump( int indent, Context *ctx ); 8004 virtual size_t calcSize( Context *ctx, int start_at ); 8005 virtual void write( Writer *w, Context *ctx ); 8006 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8007 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8008 8009 static RTQNameL* get( Reader *r, int end, Context *ctx ); 8010 static RTQNameL* getByName( const char *name ); 8011 8012 8013 8014 protected: 8015 8016 static int id; 8017 8018 }; 8019 8020 class RTQNameLA : public MultinameConstant { 8021 public: 8022 RTQNameLA(); 8023 virtual ~RTQNameLA(); 8024 8025 virtual bool parse( Reader *r, int end, Context *ctx ); 8026 virtual void dump( int indent, Context *ctx ); 8027 virtual size_t calcSize( Context *ctx, int start_at ); 8028 virtual void write( Writer *w, Context *ctx ); 8029 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8030 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8031 8032 static RTQNameLA* get( Reader *r, int end, Context *ctx ); 8033 static RTQNameLA* getByName( const char *name ); 8034 8035 8036 8037 protected: 8038 8039 static int id; 8040 8041 }; 8042 8043 class TypeName : public MultinameConstant { 8044 public: 8045 TypeName(); 8046 virtual ~TypeName(); 8047 8048 virtual bool parse( Reader *r, int end, Context *ctx ); 8049 virtual void dump( int indent, Context *ctx ); 8050 virtual size_t calcSize( Context *ctx, int start_at ); 8051 virtual void write( Writer *w, Context *ctx ); 8052 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8053 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8054 8055 static TypeName* get( Reader *r, int end, Context *ctx ); 8056 static TypeName* getByName( const char *name ); 8057 8058 std::uint32_t getnameIndex(); 8059 void setnameIndex( std::uint32_t ); 8060 std::uint32_t getnameCount(); 8061 void setnameCount( std::uint32_t ); 8062 List<U30> *gettypes(); 8063 8064 8065 protected: 8066 std::uint32_t nameIndex; // u30 8067 std::uint32_t nameCount; // u30 8068 List<U30> types; // list 8069 8070 static int id; 8071 8072 }; 8073 8074 class Slot : public Trait { 8075 public: 8076 Slot(); 8077 virtual ~Slot(); 8078 8079 virtual bool parse( Reader *r, int end, Context *ctx ); 8080 virtual void dump( int indent, Context *ctx ); 8081 virtual size_t calcSize( Context *ctx, int start_at ); 8082 virtual void write( Writer *w, Context *ctx ); 8083 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8084 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8085 8086 static Slot* get( Reader *r, int end, Context *ctx ); 8087 static Slot* getByName( const char *name ); 8088 8089 std::uint32_t getslotID(); 8090 void setslotID( std::uint32_t ); 8091 std::uint32_t gettypeIndex(); 8092 void settypeIndex( std::uint32_t ); 8093 std::uint32_t getvalueIndex(); 8094 void setvalueIndex( std::uint32_t ); 8095 std::uint8_t getvalueKind(); 8096 void setvalueKind( std::uint8_t ); 8097 8098 8099 protected: 8100 std::uint32_t slotID; // u30 8101 std::uint32_t typeIndex; // u30 8102 std::uint32_t valueIndex; // u30 8103 std::uint8_t valueKind; // byte 8104 8105 static int id; 8106 8107 }; 8108 8109 class Const : public Trait { 8110 public: 8111 Const(); 8112 virtual ~Const(); 8113 8114 virtual bool parse( Reader *r, int end, Context *ctx ); 8115 virtual void dump( int indent, Context *ctx ); 8116 virtual size_t calcSize( Context *ctx, int start_at ); 8117 virtual void write( Writer *w, Context *ctx ); 8118 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8119 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8120 8121 static Const* get( Reader *r, int end, Context *ctx ); 8122 static Const* getByName( const char *name ); 8123 8124 std::uint32_t getslotID(); 8125 void setslotID( std::uint32_t ); 8126 std::uint32_t gettypeIndex(); 8127 void settypeIndex( std::uint32_t ); 8128 std::uint32_t getvalueIndex(); 8129 void setvalueIndex( std::uint32_t ); 8130 std::uint8_t getvalueKind(); 8131 void setvalueKind( std::uint8_t ); 8132 8133 8134 protected: 8135 std::uint32_t slotID; // u30 8136 std::uint32_t typeIndex; // u30 8137 std::uint32_t valueIndex; // u30 8138 std::uint8_t valueKind; // byte 8139 8140 static int id; 8141 8142 }; 8143 8144 class Method : public Trait { 8145 public: 8146 Method(); 8147 virtual ~Method(); 8148 8149 virtual bool parse( Reader *r, int end, Context *ctx ); 8150 virtual void dump( int indent, Context *ctx ); 8151 virtual size_t calcSize( Context *ctx, int start_at ); 8152 virtual void write( Writer *w, Context *ctx ); 8153 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8154 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8155 8156 static Method* get( Reader *r, int end, Context *ctx ); 8157 static Method* getByName( const char *name ); 8158 8159 std::uint32_t getdispID(); 8160 void setdispID( std::uint32_t ); 8161 std::uint32_t getmethodInfo(); 8162 void setmethodInfo( std::uint32_t ); 8163 8164 8165 protected: 8166 std::uint32_t dispID; // u30 8167 std::uint32_t methodInfo; // u30 8168 8169 static int id; 8170 8171 }; 8172 8173 class Getter : public Trait { 8174 public: 8175 Getter(); 8176 virtual ~Getter(); 8177 8178 virtual bool parse( Reader *r, int end, Context *ctx ); 8179 virtual void dump( int indent, Context *ctx ); 8180 virtual size_t calcSize( Context *ctx, int start_at ); 8181 virtual void write( Writer *w, Context *ctx ); 8182 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8183 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8184 8185 static Getter* get( Reader *r, int end, Context *ctx ); 8186 static Getter* getByName( const char *name ); 8187 8188 std::uint32_t getdispID(); 8189 void setdispID( std::uint32_t ); 8190 std::uint32_t getmethodInfo(); 8191 void setmethodInfo( std::uint32_t ); 8192 8193 8194 protected: 8195 std::uint32_t dispID; // u30 8196 std::uint32_t methodInfo; // u30 8197 8198 static int id; 8199 8200 }; 8201 8202 class Setter : public Trait { 8203 public: 8204 Setter(); 8205 virtual ~Setter(); 8206 8207 virtual bool parse( Reader *r, int end, Context *ctx ); 8208 virtual void dump( int indent, Context *ctx ); 8209 virtual size_t calcSize( Context *ctx, int start_at ); 8210 virtual void write( Writer *w, Context *ctx ); 8211 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8212 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8213 8214 static Setter* get( Reader *r, int end, Context *ctx ); 8215 static Setter* getByName( const char *name ); 8216 8217 std::uint32_t getdispID(); 8218 void setdispID( std::uint32_t ); 8219 std::uint32_t getmethodInfo(); 8220 void setmethodInfo( std::uint32_t ); 8221 8222 8223 protected: 8224 std::uint32_t dispID; // u30 8225 std::uint32_t methodInfo; // u30 8226 8227 static int id; 8228 8229 }; 8230 8231 class Class : public Trait { 8232 public: 8233 Class(); 8234 virtual ~Class(); 8235 8236 virtual bool parse( Reader *r, int end, Context *ctx ); 8237 virtual void dump( int indent, Context *ctx ); 8238 virtual size_t calcSize( Context *ctx, int start_at ); 8239 virtual void write( Writer *w, Context *ctx ); 8240 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8241 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8242 8243 static Class* get( Reader *r, int end, Context *ctx ); 8244 static Class* getByName( const char *name ); 8245 8246 std::uint32_t getslotID(); 8247 void setslotID( std::uint32_t ); 8248 std::uint32_t getclassInfo(); 8249 void setclassInfo( std::uint32_t ); 8250 8251 8252 protected: 8253 std::uint32_t slotID; // u30 8254 std::uint32_t classInfo; // u30 8255 8256 static int id; 8257 8258 }; 8259 8260 class Function : public Trait { 8261 public: 8262 Function(); 8263 virtual ~Function(); 8264 8265 virtual bool parse( Reader *r, int end, Context *ctx ); 8266 virtual void dump( int indent, Context *ctx ); 8267 virtual size_t calcSize( Context *ctx, int start_at ); 8268 virtual void write( Writer *w, Context *ctx ); 8269 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8270 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8271 8272 static Function* get( Reader *r, int end, Context *ctx ); 8273 static Function* getByName( const char *name ); 8274 8275 std::uint32_t getslotID(); 8276 void setslotID( std::uint32_t ); 8277 std::uint32_t getmethodInfo(); 8278 void setmethodInfo( std::uint32_t ); 8279 8280 8281 protected: 8282 std::uint32_t slotID; // u30 8283 std::uint32_t methodInfo; // u30 8284 8285 static int id; 8286 8287 }; 8288 8289 class UnknownOpCode : public OpCode { 8290 public: 8291 UnknownOpCode(); 8292 virtual ~UnknownOpCode(); 8293 8294 virtual bool parse( Reader *r, int end, Context *ctx ); 8295 virtual void dump( int indent, Context *ctx ); 8296 virtual size_t calcSize( Context *ctx, int start_at ); 8297 virtual void write( Writer *w, Context *ctx ); 8298 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8299 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8300 8301 static UnknownOpCode* get( Reader *r, int end, Context *ctx ); 8302 static UnknownOpCode* getByName( const char *name ); 8303 8304 8305 void getdata( unsigned char **dst, int *size ); 8306 void setdata( const unsigned char *src, int size ); 8307 8308 8309 protected: 8310 unsigned char * data; // data 8311 8312 static int id; 8313 8314 }; 8315 8316 class OpBkPt : public OpCode { 8317 public: 8318 OpBkPt(); 8319 virtual ~OpBkPt(); 8320 8321 virtual bool parse( Reader *r, int end, Context *ctx ); 8322 virtual void dump( int indent, Context *ctx ); 8323 virtual size_t calcSize( Context *ctx, int start_at ); 8324 virtual void write( Writer *w, Context *ctx ); 8325 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8326 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8327 8328 static OpBkPt* get( Reader *r, int end, Context *ctx ); 8329 static OpBkPt* getByName( const char *name ); 8330 8331 8332 8333 protected: 8334 8335 static int id; 8336 8337 }; 8338 8339 class OpNop : public OpCode { 8340 public: 8341 OpNop(); 8342 virtual ~OpNop(); 8343 8344 virtual bool parse( Reader *r, int end, Context *ctx ); 8345 virtual void dump( int indent, Context *ctx ); 8346 virtual size_t calcSize( Context *ctx, int start_at ); 8347 virtual void write( Writer *w, Context *ctx ); 8348 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8349 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8350 8351 static OpNop* get( Reader *r, int end, Context *ctx ); 8352 static OpNop* getByName( const char *name ); 8353 8354 8355 8356 protected: 8357 8358 static int id; 8359 8360 }; 8361 8362 class OpThrow : public OpCode { 8363 public: 8364 OpThrow(); 8365 virtual ~OpThrow(); 8366 8367 virtual bool parse( Reader *r, int end, Context *ctx ); 8368 virtual void dump( int indent, Context *ctx ); 8369 virtual size_t calcSize( Context *ctx, int start_at ); 8370 virtual void write( Writer *w, Context *ctx ); 8371 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8372 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8373 8374 static OpThrow* get( Reader *r, int end, Context *ctx ); 8375 static OpThrow* getByName( const char *name ); 8376 8377 8378 8379 protected: 8380 8381 static int id; 8382 8383 }; 8384 8385 class OpGetSuper : public OpCode { 8386 public: 8387 OpGetSuper(); 8388 virtual ~OpGetSuper(); 8389 8390 virtual bool parse( Reader *r, int end, Context *ctx ); 8391 virtual void dump( int indent, Context *ctx ); 8392 virtual size_t calcSize( Context *ctx, int start_at ); 8393 virtual void write( Writer *w, Context *ctx ); 8394 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8395 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8396 8397 static OpGetSuper* get( Reader *r, int end, Context *ctx ); 8398 static OpGetSuper* getByName( const char *name ); 8399 8400 std::uint32_t getname(); 8401 void setname( std::uint32_t ); 8402 8403 8404 protected: 8405 std::uint32_t name; // u30 8406 8407 static int id; 8408 8409 }; 8410 8411 class OpSetSuper : public OpCode { 8412 public: 8413 OpSetSuper(); 8414 virtual ~OpSetSuper(); 8415 8416 virtual bool parse( Reader *r, int end, Context *ctx ); 8417 virtual void dump( int indent, Context *ctx ); 8418 virtual size_t calcSize( Context *ctx, int start_at ); 8419 virtual void write( Writer *w, Context *ctx ); 8420 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8421 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8422 8423 static OpSetSuper* get( Reader *r, int end, Context *ctx ); 8424 static OpSetSuper* getByName( const char *name ); 8425 8426 std::uint32_t getname(); 8427 void setname( std::uint32_t ); 8428 8429 8430 protected: 8431 std::uint32_t name; // u30 8432 8433 static int id; 8434 8435 }; 8436 8437 class OpDXNs : public OpCode { 8438 public: 8439 OpDXNs(); 8440 virtual ~OpDXNs(); 8441 8442 virtual bool parse( Reader *r, int end, Context *ctx ); 8443 virtual void dump( int indent, Context *ctx ); 8444 virtual size_t calcSize( Context *ctx, int start_at ); 8445 virtual void write( Writer *w, Context *ctx ); 8446 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8447 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8448 8449 static OpDXNs* get( Reader *r, int end, Context *ctx ); 8450 static OpDXNs* getByName( const char *name ); 8451 8452 std::uint32_t getdxns(); 8453 void setdxns( std::uint32_t ); 8454 8455 8456 protected: 8457 std::uint32_t dxns; // u30 8458 8459 static int id; 8460 8461 }; 8462 8463 class OpDXNsLate : public OpCode { 8464 public: 8465 OpDXNsLate(); 8466 virtual ~OpDXNsLate(); 8467 8468 virtual bool parse( Reader *r, int end, Context *ctx ); 8469 virtual void dump( int indent, Context *ctx ); 8470 virtual size_t calcSize( Context *ctx, int start_at ); 8471 virtual void write( Writer *w, Context *ctx ); 8472 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8473 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8474 8475 static OpDXNsLate* get( Reader *r, int end, Context *ctx ); 8476 static OpDXNsLate* getByName( const char *name ); 8477 8478 8479 8480 protected: 8481 8482 static int id; 8483 8484 }; 8485 8486 class OpKill : public OpCode { 8487 public: 8488 OpKill(); 8489 virtual ~OpKill(); 8490 8491 virtual bool parse( Reader *r, int end, Context *ctx ); 8492 virtual void dump( int indent, Context *ctx ); 8493 virtual size_t calcSize( Context *ctx, int start_at ); 8494 virtual void write( Writer *w, Context *ctx ); 8495 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8496 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8497 8498 static OpKill* get( Reader *r, int end, Context *ctx ); 8499 static OpKill* getByName( const char *name ); 8500 8501 std::uint32_t getaddress(); 8502 void setaddress( std::uint32_t ); 8503 8504 8505 protected: 8506 std::uint32_t address; // u30 8507 8508 static int id; 8509 8510 }; 8511 8512 class OpLabel : public OpCode { 8513 public: 8514 OpLabel(); 8515 virtual ~OpLabel(); 8516 8517 virtual bool parse( Reader *r, int end, Context *ctx ); 8518 virtual void dump( int indent, Context *ctx ); 8519 virtual size_t calcSize( Context *ctx, int start_at ); 8520 virtual void write( Writer *w, Context *ctx ); 8521 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8522 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8523 8524 static OpLabel* get( Reader *r, int end, Context *ctx ); 8525 static OpLabel* getByName( const char *name ); 8526 8527 8528 8529 protected: 8530 8531 static int id; 8532 8533 }; 8534 8535 class OpIfNlt : public OpCode { 8536 public: 8537 OpIfNlt(); 8538 virtual ~OpIfNlt(); 8539 8540 virtual bool parse( Reader *r, int end, Context *ctx ); 8541 virtual void dump( int indent, Context *ctx ); 8542 virtual size_t calcSize( Context *ctx, int start_at ); 8543 virtual void write( Writer *w, Context *ctx ); 8544 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8545 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8546 8547 static OpIfNlt* get( Reader *r, int end, Context *ctx ); 8548 static OpIfNlt* getByName( const char *name ); 8549 8550 std::int32_t gettarget(); 8551 void settarget( std::int32_t ); 8552 8553 8554 protected: 8555 std::int32_t target; // s24 8556 8557 static int id; 8558 8559 }; 8560 8561 class OpIfNle : public OpCode { 8562 public: 8563 OpIfNle(); 8564 virtual ~OpIfNle(); 8565 8566 virtual bool parse( Reader *r, int end, Context *ctx ); 8567 virtual void dump( int indent, Context *ctx ); 8568 virtual size_t calcSize( Context *ctx, int start_at ); 8569 virtual void write( Writer *w, Context *ctx ); 8570 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8571 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8572 8573 static OpIfNle* get( Reader *r, int end, Context *ctx ); 8574 static OpIfNle* getByName( const char *name ); 8575 8576 std::int32_t gettarget(); 8577 void settarget( std::int32_t ); 8578 8579 8580 protected: 8581 std::int32_t target; // s24 8582 8583 static int id; 8584 8585 }; 8586 8587 class OpIfNgt : public OpCode { 8588 public: 8589 OpIfNgt(); 8590 virtual ~OpIfNgt(); 8591 8592 virtual bool parse( Reader *r, int end, Context *ctx ); 8593 virtual void dump( int indent, Context *ctx ); 8594 virtual size_t calcSize( Context *ctx, int start_at ); 8595 virtual void write( Writer *w, Context *ctx ); 8596 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8597 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8598 8599 static OpIfNgt* get( Reader *r, int end, Context *ctx ); 8600 static OpIfNgt* getByName( const char *name ); 8601 8602 std::int32_t gettarget(); 8603 void settarget( std::int32_t ); 8604 8605 8606 protected: 8607 std::int32_t target; // s24 8608 8609 static int id; 8610 8611 }; 8612 8613 class OpIfNge : public OpCode { 8614 public: 8615 OpIfNge(); 8616 virtual ~OpIfNge(); 8617 8618 virtual bool parse( Reader *r, int end, Context *ctx ); 8619 virtual void dump( int indent, Context *ctx ); 8620 virtual size_t calcSize( Context *ctx, int start_at ); 8621 virtual void write( Writer *w, Context *ctx ); 8622 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8623 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8624 8625 static OpIfNge* get( Reader *r, int end, Context *ctx ); 8626 static OpIfNge* getByName( const char *name ); 8627 8628 std::int32_t gettarget(); 8629 void settarget( std::int32_t ); 8630 8631 8632 protected: 8633 std::int32_t target; // s24 8634 8635 static int id; 8636 8637 }; 8638 8639 class OpJump : public OpCode { 8640 public: 8641 OpJump(); 8642 virtual ~OpJump(); 8643 8644 virtual bool parse( Reader *r, int end, Context *ctx ); 8645 virtual void dump( int indent, Context *ctx ); 8646 virtual size_t calcSize( Context *ctx, int start_at ); 8647 virtual void write( Writer *w, Context *ctx ); 8648 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8649 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8650 8651 static OpJump* get( Reader *r, int end, Context *ctx ); 8652 static OpJump* getByName( const char *name ); 8653 8654 std::int32_t gettarget(); 8655 void settarget( std::int32_t ); 8656 8657 8658 protected: 8659 std::int32_t target; // s24 8660 8661 static int id; 8662 8663 }; 8664 8665 class OpIfTrue : public OpCode { 8666 public: 8667 OpIfTrue(); 8668 virtual ~OpIfTrue(); 8669 8670 virtual bool parse( Reader *r, int end, Context *ctx ); 8671 virtual void dump( int indent, Context *ctx ); 8672 virtual size_t calcSize( Context *ctx, int start_at ); 8673 virtual void write( Writer *w, Context *ctx ); 8674 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8675 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8676 8677 static OpIfTrue* get( Reader *r, int end, Context *ctx ); 8678 static OpIfTrue* getByName( const char *name ); 8679 8680 std::int32_t gettarget(); 8681 void settarget( std::int32_t ); 8682 8683 8684 protected: 8685 std::int32_t target; // s24 8686 8687 static int id; 8688 8689 }; 8690 8691 class OpIfFalse : public OpCode { 8692 public: 8693 OpIfFalse(); 8694 virtual ~OpIfFalse(); 8695 8696 virtual bool parse( Reader *r, int end, Context *ctx ); 8697 virtual void dump( int indent, Context *ctx ); 8698 virtual size_t calcSize( Context *ctx, int start_at ); 8699 virtual void write( Writer *w, Context *ctx ); 8700 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8701 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8702 8703 static OpIfFalse* get( Reader *r, int end, Context *ctx ); 8704 static OpIfFalse* getByName( const char *name ); 8705 8706 std::int32_t gettarget(); 8707 void settarget( std::int32_t ); 8708 8709 8710 protected: 8711 std::int32_t target; // s24 8712 8713 static int id; 8714 8715 }; 8716 8717 class OpIfEq : public OpCode { 8718 public: 8719 OpIfEq(); 8720 virtual ~OpIfEq(); 8721 8722 virtual bool parse( Reader *r, int end, Context *ctx ); 8723 virtual void dump( int indent, Context *ctx ); 8724 virtual size_t calcSize( Context *ctx, int start_at ); 8725 virtual void write( Writer *w, Context *ctx ); 8726 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8727 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8728 8729 static OpIfEq* get( Reader *r, int end, Context *ctx ); 8730 static OpIfEq* getByName( const char *name ); 8731 8732 std::int32_t gettarget(); 8733 void settarget( std::int32_t ); 8734 8735 8736 protected: 8737 std::int32_t target; // s24 8738 8739 static int id; 8740 8741 }; 8742 8743 class OpIfNe : public OpCode { 8744 public: 8745 OpIfNe(); 8746 virtual ~OpIfNe(); 8747 8748 virtual bool parse( Reader *r, int end, Context *ctx ); 8749 virtual void dump( int indent, Context *ctx ); 8750 virtual size_t calcSize( Context *ctx, int start_at ); 8751 virtual void write( Writer *w, Context *ctx ); 8752 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8753 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8754 8755 static OpIfNe* get( Reader *r, int end, Context *ctx ); 8756 static OpIfNe* getByName( const char *name ); 8757 8758 std::int32_t gettarget(); 8759 void settarget( std::int32_t ); 8760 8761 8762 protected: 8763 std::int32_t target; // s24 8764 8765 static int id; 8766 8767 }; 8768 8769 class OpIfLt : public OpCode { 8770 public: 8771 OpIfLt(); 8772 virtual ~OpIfLt(); 8773 8774 virtual bool parse( Reader *r, int end, Context *ctx ); 8775 virtual void dump( int indent, Context *ctx ); 8776 virtual size_t calcSize( Context *ctx, int start_at ); 8777 virtual void write( Writer *w, Context *ctx ); 8778 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8779 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8780 8781 static OpIfLt* get( Reader *r, int end, Context *ctx ); 8782 static OpIfLt* getByName( const char *name ); 8783 8784 std::int32_t gettarget(); 8785 void settarget( std::int32_t ); 8786 8787 8788 protected: 8789 std::int32_t target; // s24 8790 8791 static int id; 8792 8793 }; 8794 8795 class OpIfLe : public OpCode { 8796 public: 8797 OpIfLe(); 8798 virtual ~OpIfLe(); 8799 8800 virtual bool parse( Reader *r, int end, Context *ctx ); 8801 virtual void dump( int indent, Context *ctx ); 8802 virtual size_t calcSize( Context *ctx, int start_at ); 8803 virtual void write( Writer *w, Context *ctx ); 8804 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8805 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8806 8807 static OpIfLe* get( Reader *r, int end, Context *ctx ); 8808 static OpIfLe* getByName( const char *name ); 8809 8810 std::int32_t gettarget(); 8811 void settarget( std::int32_t ); 8812 8813 8814 protected: 8815 std::int32_t target; // s24 8816 8817 static int id; 8818 8819 }; 8820 8821 class OpIfGt : public OpCode { 8822 public: 8823 OpIfGt(); 8824 virtual ~OpIfGt(); 8825 8826 virtual bool parse( Reader *r, int end, Context *ctx ); 8827 virtual void dump( int indent, Context *ctx ); 8828 virtual size_t calcSize( Context *ctx, int start_at ); 8829 virtual void write( Writer *w, Context *ctx ); 8830 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8831 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8832 8833 static OpIfGt* get( Reader *r, int end, Context *ctx ); 8834 static OpIfGt* getByName( const char *name ); 8835 8836 std::int32_t gettarget(); 8837 void settarget( std::int32_t ); 8838 8839 8840 protected: 8841 std::int32_t target; // s24 8842 8843 static int id; 8844 8845 }; 8846 8847 class OpIfGe : public OpCode { 8848 public: 8849 OpIfGe(); 8850 virtual ~OpIfGe(); 8851 8852 virtual bool parse( Reader *r, int end, Context *ctx ); 8853 virtual void dump( int indent, Context *ctx ); 8854 virtual size_t calcSize( Context *ctx, int start_at ); 8855 virtual void write( Writer *w, Context *ctx ); 8856 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8857 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8858 8859 static OpIfGe* get( Reader *r, int end, Context *ctx ); 8860 static OpIfGe* getByName( const char *name ); 8861 8862 std::int32_t gettarget(); 8863 void settarget( std::int32_t ); 8864 8865 8866 protected: 8867 std::int32_t target; // s24 8868 8869 static int id; 8870 8871 }; 8872 8873 class OpIfStrictEq : public OpCode { 8874 public: 8875 OpIfStrictEq(); 8876 virtual ~OpIfStrictEq(); 8877 8878 virtual bool parse( Reader *r, int end, Context *ctx ); 8879 virtual void dump( int indent, Context *ctx ); 8880 virtual size_t calcSize( Context *ctx, int start_at ); 8881 virtual void write( Writer *w, Context *ctx ); 8882 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8883 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8884 8885 static OpIfStrictEq* get( Reader *r, int end, Context *ctx ); 8886 static OpIfStrictEq* getByName( const char *name ); 8887 8888 std::int32_t gettarget(); 8889 void settarget( std::int32_t ); 8890 8891 8892 protected: 8893 std::int32_t target; // s24 8894 8895 static int id; 8896 8897 }; 8898 8899 class OpIfStrictNe : public OpCode { 8900 public: 8901 OpIfStrictNe(); 8902 virtual ~OpIfStrictNe(); 8903 8904 virtual bool parse( Reader *r, int end, Context *ctx ); 8905 virtual void dump( int indent, Context *ctx ); 8906 virtual size_t calcSize( Context *ctx, int start_at ); 8907 virtual void write( Writer *w, Context *ctx ); 8908 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8909 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8910 8911 static OpIfStrictNe* get( Reader *r, int end, Context *ctx ); 8912 static OpIfStrictNe* getByName( const char *name ); 8913 8914 std::int32_t gettarget(); 8915 void settarget( std::int32_t ); 8916 8917 8918 protected: 8919 std::int32_t target; // s24 8920 8921 static int id; 8922 8923 }; 8924 8925 class OpLookupSwitch : public OpCode { 8926 public: 8927 OpLookupSwitch(); 8928 virtual ~OpLookupSwitch(); 8929 8930 virtual bool parse( Reader *r, int end, Context *ctx ); 8931 virtual void dump( int indent, Context *ctx ); 8932 virtual size_t calcSize( Context *ctx, int start_at ); 8933 virtual void write( Writer *w, Context *ctx ); 8934 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8935 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8936 8937 static OpLookupSwitch* get( Reader *r, int end, Context *ctx ); 8938 static OpLookupSwitch* getByName( const char *name ); 8939 8940 std::int32_t getdefaulTarget(); 8941 void setdefaulTarget( std::int32_t ); 8942 std::uint32_t getcaseCount(); 8943 void setcaseCount( std::uint32_t ); 8944 List<S24> *gettargetTable(); 8945 8946 8947 protected: 8948 std::int32_t defaulTarget; // s24 8949 std::uint32_t caseCount; // u30 8950 List<S24> targetTable; // list 8951 8952 static int id; 8953 8954 }; 8955 8956 class OpPushWith : public OpCode { 8957 public: 8958 OpPushWith(); 8959 virtual ~OpPushWith(); 8960 8961 virtual bool parse( Reader *r, int end, Context *ctx ); 8962 virtual void dump( int indent, Context *ctx ); 8963 virtual size_t calcSize( Context *ctx, int start_at ); 8964 virtual void write( Writer *w, Context *ctx ); 8965 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8966 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8967 8968 static OpPushWith* get( Reader *r, int end, Context *ctx ); 8969 static OpPushWith* getByName( const char *name ); 8970 8971 8972 8973 protected: 8974 8975 static int id; 8976 8977 }; 8978 8979 class OpPopScope : public OpCode { 8980 public: 8981 OpPopScope(); 8982 virtual ~OpPopScope(); 8983 8984 virtual bool parse( Reader *r, int end, Context *ctx ); 8985 virtual void dump( int indent, Context *ctx ); 8986 virtual size_t calcSize( Context *ctx, int start_at ); 8987 virtual void write( Writer *w, Context *ctx ); 8988 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 8989 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 8990 8991 static OpPopScope* get( Reader *r, int end, Context *ctx ); 8992 static OpPopScope* getByName( const char *name ); 8993 8994 8995 8996 protected: 8997 8998 static int id; 8999 9000 }; 9001 9002 class OpNextName : public OpCode { 9003 public: 9004 OpNextName(); 9005 virtual ~OpNextName(); 9006 9007 virtual bool parse( Reader *r, int end, Context *ctx ); 9008 virtual void dump( int indent, Context *ctx ); 9009 virtual size_t calcSize( Context *ctx, int start_at ); 9010 virtual void write( Writer *w, Context *ctx ); 9011 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9012 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9013 9014 static OpNextName* get( Reader *r, int end, Context *ctx ); 9015 static OpNextName* getByName( const char *name ); 9016 9017 9018 9019 protected: 9020 9021 static int id; 9022 9023 }; 9024 9025 class OpHasNext : public OpCode { 9026 public: 9027 OpHasNext(); 9028 virtual ~OpHasNext(); 9029 9030 virtual bool parse( Reader *r, int end, Context *ctx ); 9031 virtual void dump( int indent, Context *ctx ); 9032 virtual size_t calcSize( Context *ctx, int start_at ); 9033 virtual void write( Writer *w, Context *ctx ); 9034 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9035 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9036 9037 static OpHasNext* get( Reader *r, int end, Context *ctx ); 9038 static OpHasNext* getByName( const char *name ); 9039 9040 9041 9042 protected: 9043 9044 static int id; 9045 9046 }; 9047 9048 class OpPushNull : public OpCode { 9049 public: 9050 OpPushNull(); 9051 virtual ~OpPushNull(); 9052 9053 virtual bool parse( Reader *r, int end, Context *ctx ); 9054 virtual void dump( int indent, Context *ctx ); 9055 virtual size_t calcSize( Context *ctx, int start_at ); 9056 virtual void write( Writer *w, Context *ctx ); 9057 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9058 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9059 9060 static OpPushNull* get( Reader *r, int end, Context *ctx ); 9061 static OpPushNull* getByName( const char *name ); 9062 9063 9064 9065 protected: 9066 9067 static int id; 9068 9069 }; 9070 9071 class OpPushUndefined : public OpCode { 9072 public: 9073 OpPushUndefined(); 9074 virtual ~OpPushUndefined(); 9075 9076 virtual bool parse( Reader *r, int end, Context *ctx ); 9077 virtual void dump( int indent, Context *ctx ); 9078 virtual size_t calcSize( Context *ctx, int start_at ); 9079 virtual void write( Writer *w, Context *ctx ); 9080 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9081 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9082 9083 static OpPushUndefined* get( Reader *r, int end, Context *ctx ); 9084 static OpPushUndefined* getByName( const char *name ); 9085 9086 9087 9088 protected: 9089 9090 static int id; 9091 9092 }; 9093 9094 class OpNextValue : public OpCode { 9095 public: 9096 OpNextValue(); 9097 virtual ~OpNextValue(); 9098 9099 virtual bool parse( Reader *r, int end, Context *ctx ); 9100 virtual void dump( int indent, Context *ctx ); 9101 virtual size_t calcSize( Context *ctx, int start_at ); 9102 virtual void write( Writer *w, Context *ctx ); 9103 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9104 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9105 9106 static OpNextValue* get( Reader *r, int end, Context *ctx ); 9107 static OpNextValue* getByName( const char *name ); 9108 9109 9110 9111 protected: 9112 9113 static int id; 9114 9115 }; 9116 9117 class OpPushByte : public OpCode { 9118 public: 9119 OpPushByte(); 9120 virtual ~OpPushByte(); 9121 9122 virtual bool parse( Reader *r, int end, Context *ctx ); 9123 virtual void dump( int indent, Context *ctx ); 9124 virtual size_t calcSize( Context *ctx, int start_at ); 9125 virtual void write( Writer *w, Context *ctx ); 9126 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9127 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9128 9129 static OpPushByte* get( Reader *r, int end, Context *ctx ); 9130 static OpPushByte* getByName( const char *name ); 9131 9132 std::uint8_t getvalue(); 9133 void setvalue( std::uint8_t ); 9134 9135 9136 protected: 9137 std::uint8_t value; // byte 9138 9139 static int id; 9140 9141 }; 9142 9143 class OpPushShort : public OpCode { 9144 public: 9145 OpPushShort(); 9146 virtual ~OpPushShort(); 9147 9148 virtual bool parse( Reader *r, int end, Context *ctx ); 9149 virtual void dump( int indent, Context *ctx ); 9150 virtual size_t calcSize( Context *ctx, int start_at ); 9151 virtual void write( Writer *w, Context *ctx ); 9152 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9153 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9154 9155 static OpPushShort* get( Reader *r, int end, Context *ctx ); 9156 static OpPushShort* getByName( const char *name ); 9157 9158 std::uint32_t getvalue(); 9159 void setvalue( std::uint32_t ); 9160 9161 9162 protected: 9163 std::uint32_t value; // u30 9164 9165 static int id; 9166 9167 }; 9168 9169 class OpPushTrue : public OpCode { 9170 public: 9171 OpPushTrue(); 9172 virtual ~OpPushTrue(); 9173 9174 virtual bool parse( Reader *r, int end, Context *ctx ); 9175 virtual void dump( int indent, Context *ctx ); 9176 virtual size_t calcSize( Context *ctx, int start_at ); 9177 virtual void write( Writer *w, Context *ctx ); 9178 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9179 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9180 9181 static OpPushTrue* get( Reader *r, int end, Context *ctx ); 9182 static OpPushTrue* getByName( const char *name ); 9183 9184 9185 9186 protected: 9187 9188 static int id; 9189 9190 }; 9191 9192 class OpPushFalse : public OpCode { 9193 public: 9194 OpPushFalse(); 9195 virtual ~OpPushFalse(); 9196 9197 virtual bool parse( Reader *r, int end, Context *ctx ); 9198 virtual void dump( int indent, Context *ctx ); 9199 virtual size_t calcSize( Context *ctx, int start_at ); 9200 virtual void write( Writer *w, Context *ctx ); 9201 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9202 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9203 9204 static OpPushFalse* get( Reader *r, int end, Context *ctx ); 9205 static OpPushFalse* getByName( const char *name ); 9206 9207 9208 9209 protected: 9210 9211 static int id; 9212 9213 }; 9214 9215 class OpPushNaN : public OpCode { 9216 public: 9217 OpPushNaN(); 9218 virtual ~OpPushNaN(); 9219 9220 virtual bool parse( Reader *r, int end, Context *ctx ); 9221 virtual void dump( int indent, Context *ctx ); 9222 virtual size_t calcSize( Context *ctx, int start_at ); 9223 virtual void write( Writer *w, Context *ctx ); 9224 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9225 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9226 9227 static OpPushNaN* get( Reader *r, int end, Context *ctx ); 9228 static OpPushNaN* getByName( const char *name ); 9229 9230 9231 9232 protected: 9233 9234 static int id; 9235 9236 }; 9237 9238 class OpPop : public OpCode { 9239 public: 9240 OpPop(); 9241 virtual ~OpPop(); 9242 9243 virtual bool parse( Reader *r, int end, Context *ctx ); 9244 virtual void dump( int indent, Context *ctx ); 9245 virtual size_t calcSize( Context *ctx, int start_at ); 9246 virtual void write( Writer *w, Context *ctx ); 9247 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9248 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9249 9250 static OpPop* get( Reader *r, int end, Context *ctx ); 9251 static OpPop* getByName( const char *name ); 9252 9253 9254 9255 protected: 9256 9257 static int id; 9258 9259 }; 9260 9261 class OpDup : public OpCode { 9262 public: 9263 OpDup(); 9264 virtual ~OpDup(); 9265 9266 virtual bool parse( Reader *r, int end, Context *ctx ); 9267 virtual void dump( int indent, Context *ctx ); 9268 virtual size_t calcSize( Context *ctx, int start_at ); 9269 virtual void write( Writer *w, Context *ctx ); 9270 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9271 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9272 9273 static OpDup* get( Reader *r, int end, Context *ctx ); 9274 static OpDup* getByName( const char *name ); 9275 9276 9277 9278 protected: 9279 9280 static int id; 9281 9282 }; 9283 9284 class OpSwap : public OpCode { 9285 public: 9286 OpSwap(); 9287 virtual ~OpSwap(); 9288 9289 virtual bool parse( Reader *r, int end, Context *ctx ); 9290 virtual void dump( int indent, Context *ctx ); 9291 virtual size_t calcSize( Context *ctx, int start_at ); 9292 virtual void write( Writer *w, Context *ctx ); 9293 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9294 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9295 9296 static OpSwap* get( Reader *r, int end, Context *ctx ); 9297 static OpSwap* getByName( const char *name ); 9298 9299 9300 9301 protected: 9302 9303 static int id; 9304 9305 }; 9306 9307 class OpPushString : public OpCode { 9308 public: 9309 OpPushString(); 9310 virtual ~OpPushString(); 9311 9312 virtual bool parse( Reader *r, int end, Context *ctx ); 9313 virtual void dump( int indent, Context *ctx ); 9314 virtual size_t calcSize( Context *ctx, int start_at ); 9315 virtual void write( Writer *w, Context *ctx ); 9316 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9317 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9318 9319 static OpPushString* get( Reader *r, int end, Context *ctx ); 9320 static OpPushString* getByName( const char *name ); 9321 9322 std::uint32_t getindex(); 9323 void setindex( std::uint32_t ); 9324 9325 9326 protected: 9327 std::uint32_t index; // u30 9328 9329 static int id; 9330 9331 }; 9332 9333 class OpPushInt : public OpCode { 9334 public: 9335 OpPushInt(); 9336 virtual ~OpPushInt(); 9337 9338 virtual bool parse( Reader *r, int end, Context *ctx ); 9339 virtual void dump( int indent, Context *ctx ); 9340 virtual size_t calcSize( Context *ctx, int start_at ); 9341 virtual void write( Writer *w, Context *ctx ); 9342 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9343 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9344 9345 static OpPushInt* get( Reader *r, int end, Context *ctx ); 9346 static OpPushInt* getByName( const char *name ); 9347 9348 std::uint32_t getindex(); 9349 void setindex( std::uint32_t ); 9350 9351 9352 protected: 9353 std::uint32_t index; // u30 9354 9355 static int id; 9356 9357 }; 9358 9359 class OpPushUInt : public OpCode { 9360 public: 9361 OpPushUInt(); 9362 virtual ~OpPushUInt(); 9363 9364 virtual bool parse( Reader *r, int end, Context *ctx ); 9365 virtual void dump( int indent, Context *ctx ); 9366 virtual size_t calcSize( Context *ctx, int start_at ); 9367 virtual void write( Writer *w, Context *ctx ); 9368 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9369 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9370 9371 static OpPushUInt* get( Reader *r, int end, Context *ctx ); 9372 static OpPushUInt* getByName( const char *name ); 9373 9374 std::uint32_t getindex(); 9375 void setindex( std::uint32_t ); 9376 9377 9378 protected: 9379 std::uint32_t index; // u30 9380 9381 static int id; 9382 9383 }; 9384 9385 class OpPushDouble : public OpCode { 9386 public: 9387 OpPushDouble(); 9388 virtual ~OpPushDouble(); 9389 9390 virtual bool parse( Reader *r, int end, Context *ctx ); 9391 virtual void dump( int indent, Context *ctx ); 9392 virtual size_t calcSize( Context *ctx, int start_at ); 9393 virtual void write( Writer *w, Context *ctx ); 9394 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9395 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9396 9397 static OpPushDouble* get( Reader *r, int end, Context *ctx ); 9398 static OpPushDouble* getByName( const char *name ); 9399 9400 std::uint32_t getindex(); 9401 void setindex( std::uint32_t ); 9402 9403 9404 protected: 9405 std::uint32_t index; // u30 9406 9407 static int id; 9408 9409 }; 9410 9411 class OpPushScope : public OpCode { 9412 public: 9413 OpPushScope(); 9414 virtual ~OpPushScope(); 9415 9416 virtual bool parse( Reader *r, int end, Context *ctx ); 9417 virtual void dump( int indent, Context *ctx ); 9418 virtual size_t calcSize( Context *ctx, int start_at ); 9419 virtual void write( Writer *w, Context *ctx ); 9420 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9421 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9422 9423 static OpPushScope* get( Reader *r, int end, Context *ctx ); 9424 static OpPushScope* getByName( const char *name ); 9425 9426 9427 9428 protected: 9429 9430 static int id; 9431 9432 }; 9433 9434 class OpPushNamespace : public OpCode { 9435 public: 9436 OpPushNamespace(); 9437 virtual ~OpPushNamespace(); 9438 9439 virtual bool parse( Reader *r, int end, Context *ctx ); 9440 virtual void dump( int indent, Context *ctx ); 9441 virtual size_t calcSize( Context *ctx, int start_at ); 9442 virtual void write( Writer *w, Context *ctx ); 9443 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9444 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9445 9446 static OpPushNamespace* get( Reader *r, int end, Context *ctx ); 9447 static OpPushNamespace* getByName( const char *name ); 9448 9449 std::uint32_t getindex(); 9450 void setindex( std::uint32_t ); 9451 9452 9453 protected: 9454 std::uint32_t index; // u30 9455 9456 static int id; 9457 9458 }; 9459 9460 class OpHasNext2 : public OpCode { 9461 public: 9462 OpHasNext2(); 9463 virtual ~OpHasNext2(); 9464 9465 virtual bool parse( Reader *r, int end, Context *ctx ); 9466 virtual void dump( int indent, Context *ctx ); 9467 virtual size_t calcSize( Context *ctx, int start_at ); 9468 virtual void write( Writer *w, Context *ctx ); 9469 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9470 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9471 9472 static OpHasNext2* get( Reader *r, int end, Context *ctx ); 9473 static OpHasNext2* getByName( const char *name ); 9474 9475 std::uint32_t getobject(); 9476 void setobject( std::uint32_t ); 9477 std::uint32_t getindex(); 9478 void setindex( std::uint32_t ); 9479 9480 9481 protected: 9482 std::uint32_t object; // u30 9483 std::uint32_t index; // u30 9484 9485 static int id; 9486 9487 }; 9488 9489 class OpNewFunction : public OpCode { 9490 public: 9491 OpNewFunction(); 9492 virtual ~OpNewFunction(); 9493 9494 virtual bool parse( Reader *r, int end, Context *ctx ); 9495 virtual void dump( int indent, Context *ctx ); 9496 virtual size_t calcSize( Context *ctx, int start_at ); 9497 virtual void write( Writer *w, Context *ctx ); 9498 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9499 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9500 9501 static OpNewFunction* get( Reader *r, int end, Context *ctx ); 9502 static OpNewFunction* getByName( const char *name ); 9503 9504 std::uint32_t getindex(); 9505 void setindex( std::uint32_t ); 9506 9507 9508 protected: 9509 std::uint32_t index; // u30 9510 9511 static int id; 9512 9513 }; 9514 9515 class OpCall : public OpCode { 9516 public: 9517 OpCall(); 9518 virtual ~OpCall(); 9519 9520 virtual bool parse( Reader *r, int end, Context *ctx ); 9521 virtual void dump( int indent, Context *ctx ); 9522 virtual size_t calcSize( Context *ctx, int start_at ); 9523 virtual void write( Writer *w, Context *ctx ); 9524 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9525 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9526 9527 static OpCall* get( Reader *r, int end, Context *ctx ); 9528 static OpCall* getByName( const char *name ); 9529 9530 std::uint32_t getargc(); 9531 void setargc( std::uint32_t ); 9532 9533 9534 protected: 9535 std::uint32_t argc; // u30 9536 9537 static int id; 9538 9539 }; 9540 9541 class OpConstruct : public OpCode { 9542 public: 9543 OpConstruct(); 9544 virtual ~OpConstruct(); 9545 9546 virtual bool parse( Reader *r, int end, Context *ctx ); 9547 virtual void dump( int indent, Context *ctx ); 9548 virtual size_t calcSize( Context *ctx, int start_at ); 9549 virtual void write( Writer *w, Context *ctx ); 9550 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9551 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9552 9553 static OpConstruct* get( Reader *r, int end, Context *ctx ); 9554 static OpConstruct* getByName( const char *name ); 9555 9556 std::uint32_t getargc(); 9557 void setargc( std::uint32_t ); 9558 9559 9560 protected: 9561 std::uint32_t argc; // u30 9562 9563 static int id; 9564 9565 }; 9566 9567 class OpCallMethod : public OpCode { 9568 public: 9569 OpCallMethod(); 9570 virtual ~OpCallMethod(); 9571 9572 virtual bool parse( Reader *r, int end, Context *ctx ); 9573 virtual void dump( int indent, Context *ctx ); 9574 virtual size_t calcSize( Context *ctx, int start_at ); 9575 virtual void write( Writer *w, Context *ctx ); 9576 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9577 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9578 9579 static OpCallMethod* get( Reader *r, int end, Context *ctx ); 9580 static OpCallMethod* getByName( const char *name ); 9581 9582 std::uint32_t getdispID(); 9583 void setdispID( std::uint32_t ); 9584 std::uint32_t getargc(); 9585 void setargc( std::uint32_t ); 9586 9587 9588 protected: 9589 std::uint32_t dispID; // u30 9590 std::uint32_t argc; // u30 9591 9592 static int id; 9593 9594 }; 9595 9596 class OpCallStatic : public OpCode { 9597 public: 9598 OpCallStatic(); 9599 virtual ~OpCallStatic(); 9600 9601 virtual bool parse( Reader *r, int end, Context *ctx ); 9602 virtual void dump( int indent, Context *ctx ); 9603 virtual size_t calcSize( Context *ctx, int start_at ); 9604 virtual void write( Writer *w, Context *ctx ); 9605 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9606 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9607 9608 static OpCallStatic* get( Reader *r, int end, Context *ctx ); 9609 static OpCallStatic* getByName( const char *name ); 9610 9611 std::uint32_t getmethodID(); 9612 void setmethodID( std::uint32_t ); 9613 std::uint32_t getargc(); 9614 void setargc( std::uint32_t ); 9615 9616 9617 protected: 9618 std::uint32_t methodID; // u30 9619 std::uint32_t argc; // u30 9620 9621 static int id; 9622 9623 }; 9624 9625 class OpCallSuper : public OpCode { 9626 public: 9627 OpCallSuper(); 9628 virtual ~OpCallSuper(); 9629 9630 virtual bool parse( Reader *r, int end, Context *ctx ); 9631 virtual void dump( int indent, Context *ctx ); 9632 virtual size_t calcSize( Context *ctx, int start_at ); 9633 virtual void write( Writer *w, Context *ctx ); 9634 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9635 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9636 9637 static OpCallSuper* get( Reader *r, int end, Context *ctx ); 9638 static OpCallSuper* getByName( const char *name ); 9639 9640 std::uint32_t getname(); 9641 void setname( std::uint32_t ); 9642 std::uint32_t getargc(); 9643 void setargc( std::uint32_t ); 9644 9645 9646 protected: 9647 std::uint32_t name; // u30 9648 std::uint32_t argc; // u30 9649 9650 static int id; 9651 9652 }; 9653 9654 class OpCallProperty : public OpCode { 9655 public: 9656 OpCallProperty(); 9657 virtual ~OpCallProperty(); 9658 9659 virtual bool parse( Reader *r, int end, Context *ctx ); 9660 virtual void dump( int indent, Context *ctx ); 9661 virtual size_t calcSize( Context *ctx, int start_at ); 9662 virtual void write( Writer *w, Context *ctx ); 9663 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9664 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9665 9666 static OpCallProperty* get( Reader *r, int end, Context *ctx ); 9667 static OpCallProperty* getByName( const char *name ); 9668 9669 std::uint32_t getname(); 9670 void setname( std::uint32_t ); 9671 std::uint32_t getargc(); 9672 void setargc( std::uint32_t ); 9673 9674 9675 protected: 9676 std::uint32_t name; // u30 9677 std::uint32_t argc; // u30 9678 9679 static int id; 9680 9681 }; 9682 9683 class OpReturnVoid : public OpCode { 9684 public: 9685 OpReturnVoid(); 9686 virtual ~OpReturnVoid(); 9687 9688 virtual bool parse( Reader *r, int end, Context *ctx ); 9689 virtual void dump( int indent, Context *ctx ); 9690 virtual size_t calcSize( Context *ctx, int start_at ); 9691 virtual void write( Writer *w, Context *ctx ); 9692 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9693 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9694 9695 static OpReturnVoid* get( Reader *r, int end, Context *ctx ); 9696 static OpReturnVoid* getByName( const char *name ); 9697 9698 9699 9700 protected: 9701 9702 static int id; 9703 9704 }; 9705 9706 class OpReturnValue : public OpCode { 9707 public: 9708 OpReturnValue(); 9709 virtual ~OpReturnValue(); 9710 9711 virtual bool parse( Reader *r, int end, Context *ctx ); 9712 virtual void dump( int indent, Context *ctx ); 9713 virtual size_t calcSize( Context *ctx, int start_at ); 9714 virtual void write( Writer *w, Context *ctx ); 9715 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9716 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9717 9718 static OpReturnValue* get( Reader *r, int end, Context *ctx ); 9719 static OpReturnValue* getByName( const char *name ); 9720 9721 9722 9723 protected: 9724 9725 static int id; 9726 9727 }; 9728 9729 class OpConstructSuper : public OpCode { 9730 public: 9731 OpConstructSuper(); 9732 virtual ~OpConstructSuper(); 9733 9734 virtual bool parse( Reader *r, int end, Context *ctx ); 9735 virtual void dump( int indent, Context *ctx ); 9736 virtual size_t calcSize( Context *ctx, int start_at ); 9737 virtual void write( Writer *w, Context *ctx ); 9738 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9739 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9740 9741 static OpConstructSuper* get( Reader *r, int end, Context *ctx ); 9742 static OpConstructSuper* getByName( const char *name ); 9743 9744 std::uint32_t getargc(); 9745 void setargc( std::uint32_t ); 9746 9747 9748 protected: 9749 std::uint32_t argc; // u30 9750 9751 static int id; 9752 9753 }; 9754 9755 class OpConstructProp : public OpCode { 9756 public: 9757 OpConstructProp(); 9758 virtual ~OpConstructProp(); 9759 9760 virtual bool parse( Reader *r, int end, Context *ctx ); 9761 virtual void dump( int indent, Context *ctx ); 9762 virtual size_t calcSize( Context *ctx, int start_at ); 9763 virtual void write( Writer *w, Context *ctx ); 9764 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9765 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9766 9767 static OpConstructProp* get( Reader *r, int end, Context *ctx ); 9768 static OpConstructProp* getByName( const char *name ); 9769 9770 std::uint32_t getname(); 9771 void setname( std::uint32_t ); 9772 std::uint32_t getargc(); 9773 void setargc( std::uint32_t ); 9774 9775 9776 protected: 9777 std::uint32_t name; // u30 9778 std::uint32_t argc; // u30 9779 9780 static int id; 9781 9782 }; 9783 9784 class OpCallPropLex : public OpCode { 9785 public: 9786 OpCallPropLex(); 9787 virtual ~OpCallPropLex(); 9788 9789 virtual bool parse( Reader *r, int end, Context *ctx ); 9790 virtual void dump( int indent, Context *ctx ); 9791 virtual size_t calcSize( Context *ctx, int start_at ); 9792 virtual void write( Writer *w, Context *ctx ); 9793 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9794 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9795 9796 static OpCallPropLex* get( Reader *r, int end, Context *ctx ); 9797 static OpCallPropLex* getByName( const char *name ); 9798 9799 std::uint32_t getname(); 9800 void setname( std::uint32_t ); 9801 std::uint32_t getargc(); 9802 void setargc( std::uint32_t ); 9803 9804 9805 protected: 9806 std::uint32_t name; // u30 9807 std::uint32_t argc; // u30 9808 9809 static int id; 9810 9811 }; 9812 9813 class OpCallSuperVoid : public OpCode { 9814 public: 9815 OpCallSuperVoid(); 9816 virtual ~OpCallSuperVoid(); 9817 9818 virtual bool parse( Reader *r, int end, Context *ctx ); 9819 virtual void dump( int indent, Context *ctx ); 9820 virtual size_t calcSize( Context *ctx, int start_at ); 9821 virtual void write( Writer *w, Context *ctx ); 9822 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9823 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9824 9825 static OpCallSuperVoid* get( Reader *r, int end, Context *ctx ); 9826 static OpCallSuperVoid* getByName( const char *name ); 9827 9828 std::uint32_t getname(); 9829 void setname( std::uint32_t ); 9830 std::uint32_t getargc(); 9831 void setargc( std::uint32_t ); 9832 9833 9834 protected: 9835 std::uint32_t name; // u30 9836 std::uint32_t argc; // u30 9837 9838 static int id; 9839 9840 }; 9841 9842 class OpCallPropVoid : public OpCode { 9843 public: 9844 OpCallPropVoid(); 9845 virtual ~OpCallPropVoid(); 9846 9847 virtual bool parse( Reader *r, int end, Context *ctx ); 9848 virtual void dump( int indent, Context *ctx ); 9849 virtual size_t calcSize( Context *ctx, int start_at ); 9850 virtual void write( Writer *w, Context *ctx ); 9851 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9852 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9853 9854 static OpCallPropVoid* get( Reader *r, int end, Context *ctx ); 9855 static OpCallPropVoid* getByName( const char *name ); 9856 9857 std::uint32_t getname(); 9858 void setname( std::uint32_t ); 9859 std::uint32_t getargc(); 9860 void setargc( std::uint32_t ); 9861 9862 9863 protected: 9864 std::uint32_t name; // u30 9865 std::uint32_t argc; // u30 9866 9867 static int id; 9868 9869 }; 9870 9871 class OpApplyType : public OpCode { 9872 public: 9873 OpApplyType(); 9874 virtual ~OpApplyType(); 9875 9876 virtual bool parse( Reader *r, int end, Context *ctx ); 9877 virtual void dump( int indent, Context *ctx ); 9878 virtual size_t calcSize( Context *ctx, int start_at ); 9879 virtual void write( Writer *w, Context *ctx ); 9880 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9881 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9882 9883 static OpApplyType* get( Reader *r, int end, Context *ctx ); 9884 static OpApplyType* getByName( const char *name ); 9885 9886 std::uint32_t gettype(); 9887 void settype( std::uint32_t ); 9888 9889 9890 protected: 9891 std::uint32_t type; // u30 9892 9893 static int id; 9894 9895 }; 9896 9897 class OpNewObject : public OpCode { 9898 public: 9899 OpNewObject(); 9900 virtual ~OpNewObject(); 9901 9902 virtual bool parse( Reader *r, int end, Context *ctx ); 9903 virtual void dump( int indent, Context *ctx ); 9904 virtual size_t calcSize( Context *ctx, int start_at ); 9905 virtual void write( Writer *w, Context *ctx ); 9906 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9907 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9908 9909 static OpNewObject* get( Reader *r, int end, Context *ctx ); 9910 static OpNewObject* getByName( const char *name ); 9911 9912 std::uint32_t getargc(); 9913 void setargc( std::uint32_t ); 9914 9915 9916 protected: 9917 std::uint32_t argc; // u30 9918 9919 static int id; 9920 9921 }; 9922 9923 class OpNewArray : public OpCode { 9924 public: 9925 OpNewArray(); 9926 virtual ~OpNewArray(); 9927 9928 virtual bool parse( Reader *r, int end, Context *ctx ); 9929 virtual void dump( int indent, Context *ctx ); 9930 virtual size_t calcSize( Context *ctx, int start_at ); 9931 virtual void write( Writer *w, Context *ctx ); 9932 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9933 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9934 9935 static OpNewArray* get( Reader *r, int end, Context *ctx ); 9936 static OpNewArray* getByName( const char *name ); 9937 9938 std::uint32_t getargc(); 9939 void setargc( std::uint32_t ); 9940 9941 9942 protected: 9943 std::uint32_t argc; // u30 9944 9945 static int id; 9946 9947 }; 9948 9949 class OpNewActivation : public OpCode { 9950 public: 9951 OpNewActivation(); 9952 virtual ~OpNewActivation(); 9953 9954 virtual bool parse( Reader *r, int end, Context *ctx ); 9955 virtual void dump( int indent, Context *ctx ); 9956 virtual size_t calcSize( Context *ctx, int start_at ); 9957 virtual void write( Writer *w, Context *ctx ); 9958 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9959 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9960 9961 static OpNewActivation* get( Reader *r, int end, Context *ctx ); 9962 static OpNewActivation* getByName( const char *name ); 9963 9964 9965 9966 protected: 9967 9968 static int id; 9969 9970 }; 9971 9972 class OpNewClass : public OpCode { 9973 public: 9974 OpNewClass(); 9975 virtual ~OpNewClass(); 9976 9977 virtual bool parse( Reader *r, int end, Context *ctx ); 9978 virtual void dump( int indent, Context *ctx ); 9979 virtual size_t calcSize( Context *ctx, int start_at ); 9980 virtual void write( Writer *w, Context *ctx ); 9981 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 9982 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 9983 9984 static OpNewClass* get( Reader *r, int end, Context *ctx ); 9985 static OpNewClass* getByName( const char *name ); 9986 9987 std::uint32_t getclassIndex(); 9988 void setclassIndex( std::uint32_t ); 9989 9990 9991 protected: 9992 std::uint32_t classIndex; // u30 9993 9994 static int id; 9995 9996 }; 9997 9998 class OpGetDescendants : public OpCode { 9999 public: 10000 OpGetDescendants(); 10001 virtual ~OpGetDescendants(); 10002 10003 virtual bool parse( Reader *r, int end, Context *ctx ); 10004 virtual void dump( int indent, Context *ctx ); 10005 virtual size_t calcSize( Context *ctx, int start_at ); 10006 virtual void write( Writer *w, Context *ctx ); 10007 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10008 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10009 10010 static OpGetDescendants* get( Reader *r, int end, Context *ctx ); 10011 static OpGetDescendants* getByName( const char *name ); 10012 10013 std::uint32_t getname(); 10014 void setname( std::uint32_t ); 10015 10016 10017 protected: 10018 std::uint32_t name; // u30 10019 10020 static int id; 10021 10022 }; 10023 10024 class OpNewCatch : public OpCode { 10025 public: 10026 OpNewCatch(); 10027 virtual ~OpNewCatch(); 10028 10029 virtual bool parse( Reader *r, int end, Context *ctx ); 10030 virtual void dump( int indent, Context *ctx ); 10031 virtual size_t calcSize( Context *ctx, int start_at ); 10032 virtual void write( Writer *w, Context *ctx ); 10033 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10034 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10035 10036 static OpNewCatch* get( Reader *r, int end, Context *ctx ); 10037 static OpNewCatch* getByName( const char *name ); 10038 10039 std::uint32_t getexceptionIndex(); 10040 void setexceptionIndex( std::uint32_t ); 10041 10042 10043 protected: 10044 std::uint32_t exceptionIndex; // u30 10045 10046 static int id; 10047 10048 }; 10049 10050 class OpFindPropStrict : public OpCode { 10051 public: 10052 OpFindPropStrict(); 10053 virtual ~OpFindPropStrict(); 10054 10055 virtual bool parse( Reader *r, int end, Context *ctx ); 10056 virtual void dump( int indent, Context *ctx ); 10057 virtual size_t calcSize( Context *ctx, int start_at ); 10058 virtual void write( Writer *w, Context *ctx ); 10059 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10060 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10061 10062 static OpFindPropStrict* get( Reader *r, int end, Context *ctx ); 10063 static OpFindPropStrict* getByName( const char *name ); 10064 10065 std::uint32_t getname(); 10066 void setname( std::uint32_t ); 10067 10068 10069 protected: 10070 std::uint32_t name; // u30 10071 10072 static int id; 10073 10074 }; 10075 10076 class OpFindProperty : public OpCode { 10077 public: 10078 OpFindProperty(); 10079 virtual ~OpFindProperty(); 10080 10081 virtual bool parse( Reader *r, int end, Context *ctx ); 10082 virtual void dump( int indent, Context *ctx ); 10083 virtual size_t calcSize( Context *ctx, int start_at ); 10084 virtual void write( Writer *w, Context *ctx ); 10085 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10086 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10087 10088 static OpFindProperty* get( Reader *r, int end, Context *ctx ); 10089 static OpFindProperty* getByName( const char *name ); 10090 10091 std::uint32_t getname(); 10092 void setname( std::uint32_t ); 10093 10094 10095 protected: 10096 std::uint32_t name; // u30 10097 10098 static int id; 10099 10100 }; 10101 10102 class OpFindDef : public OpCode { 10103 public: 10104 OpFindDef(); 10105 virtual ~OpFindDef(); 10106 10107 virtual bool parse( Reader *r, int end, Context *ctx ); 10108 virtual void dump( int indent, Context *ctx ); 10109 virtual size_t calcSize( Context *ctx, int start_at ); 10110 virtual void write( Writer *w, Context *ctx ); 10111 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10112 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10113 10114 static OpFindDef* get( Reader *r, int end, Context *ctx ); 10115 static OpFindDef* getByName( const char *name ); 10116 10117 std::uint32_t getname(); 10118 void setname( std::uint32_t ); 10119 10120 10121 protected: 10122 std::uint32_t name; // u30 10123 10124 static int id; 10125 10126 }; 10127 10128 class OpGetLex : public OpCode { 10129 public: 10130 OpGetLex(); 10131 virtual ~OpGetLex(); 10132 10133 virtual bool parse( Reader *r, int end, Context *ctx ); 10134 virtual void dump( int indent, Context *ctx ); 10135 virtual size_t calcSize( Context *ctx, int start_at ); 10136 virtual void write( Writer *w, Context *ctx ); 10137 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10138 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10139 10140 static OpGetLex* get( Reader *r, int end, Context *ctx ); 10141 static OpGetLex* getByName( const char *name ); 10142 10143 std::uint32_t getname(); 10144 void setname( std::uint32_t ); 10145 10146 10147 protected: 10148 std::uint32_t name; // u30 10149 10150 static int id; 10151 10152 }; 10153 10154 class OpSetProperty : public OpCode { 10155 public: 10156 OpSetProperty(); 10157 virtual ~OpSetProperty(); 10158 10159 virtual bool parse( Reader *r, int end, Context *ctx ); 10160 virtual void dump( int indent, Context *ctx ); 10161 virtual size_t calcSize( Context *ctx, int start_at ); 10162 virtual void write( Writer *w, Context *ctx ); 10163 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10164 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10165 10166 static OpSetProperty* get( Reader *r, int end, Context *ctx ); 10167 static OpSetProperty* getByName( const char *name ); 10168 10169 std::uint32_t getname(); 10170 void setname( std::uint32_t ); 10171 10172 10173 protected: 10174 std::uint32_t name; // u30 10175 10176 static int id; 10177 10178 }; 10179 10180 class OpGetLocal : public OpCode { 10181 public: 10182 OpGetLocal(); 10183 virtual ~OpGetLocal(); 10184 10185 virtual bool parse( Reader *r, int end, Context *ctx ); 10186 virtual void dump( int indent, Context *ctx ); 10187 virtual size_t calcSize( Context *ctx, int start_at ); 10188 virtual void write( Writer *w, Context *ctx ); 10189 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10190 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10191 10192 static OpGetLocal* get( Reader *r, int end, Context *ctx ); 10193 static OpGetLocal* getByName( const char *name ); 10194 10195 std::uint32_t getaddress(); 10196 void setaddress( std::uint32_t ); 10197 10198 10199 protected: 10200 std::uint32_t address; // u30 10201 10202 static int id; 10203 10204 }; 10205 10206 class OpSetLocal : public OpCode { 10207 public: 10208 OpSetLocal(); 10209 virtual ~OpSetLocal(); 10210 10211 virtual bool parse( Reader *r, int end, Context *ctx ); 10212 virtual void dump( int indent, Context *ctx ); 10213 virtual size_t calcSize( Context *ctx, int start_at ); 10214 virtual void write( Writer *w, Context *ctx ); 10215 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10216 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10217 10218 static OpSetLocal* get( Reader *r, int end, Context *ctx ); 10219 static OpSetLocal* getByName( const char *name ); 10220 10221 std::uint32_t getaddress(); 10222 void setaddress( std::uint32_t ); 10223 10224 10225 protected: 10226 std::uint32_t address; // u30 10227 10228 static int id; 10229 10230 }; 10231 10232 class OpGetGlobalScope : public OpCode { 10233 public: 10234 OpGetGlobalScope(); 10235 virtual ~OpGetGlobalScope(); 10236 10237 virtual bool parse( Reader *r, int end, Context *ctx ); 10238 virtual void dump( int indent, Context *ctx ); 10239 virtual size_t calcSize( Context *ctx, int start_at ); 10240 virtual void write( Writer *w, Context *ctx ); 10241 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10242 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10243 10244 static OpGetGlobalScope* get( Reader *r, int end, Context *ctx ); 10245 static OpGetGlobalScope* getByName( const char *name ); 10246 10247 10248 10249 protected: 10250 10251 static int id; 10252 10253 }; 10254 10255 class OpGetScopeObject : public OpCode { 10256 public: 10257 OpGetScopeObject(); 10258 virtual ~OpGetScopeObject(); 10259 10260 virtual bool parse( Reader *r, int end, Context *ctx ); 10261 virtual void dump( int indent, Context *ctx ); 10262 virtual size_t calcSize( Context *ctx, int start_at ); 10263 virtual void write( Writer *w, Context *ctx ); 10264 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10265 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10266 10267 static OpGetScopeObject* get( Reader *r, int end, Context *ctx ); 10268 static OpGetScopeObject* getByName( const char *name ); 10269 10270 std::uint8_t getscopeIndex(); 10271 void setscopeIndex( std::uint8_t ); 10272 10273 10274 protected: 10275 std::uint8_t scopeIndex; // byte 10276 10277 static int id; 10278 10279 }; 10280 10281 class OpGetProperty : public OpCode { 10282 public: 10283 OpGetProperty(); 10284 virtual ~OpGetProperty(); 10285 10286 virtual bool parse( Reader *r, int end, Context *ctx ); 10287 virtual void dump( int indent, Context *ctx ); 10288 virtual size_t calcSize( Context *ctx, int start_at ); 10289 virtual void write( Writer *w, Context *ctx ); 10290 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10291 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10292 10293 static OpGetProperty* get( Reader *r, int end, Context *ctx ); 10294 static OpGetProperty* getByName( const char *name ); 10295 10296 std::uint32_t getname(); 10297 void setname( std::uint32_t ); 10298 10299 10300 protected: 10301 std::uint32_t name; // u30 10302 10303 static int id; 10304 10305 }; 10306 10307 class OpInitProperty : public OpCode { 10308 public: 10309 OpInitProperty(); 10310 virtual ~OpInitProperty(); 10311 10312 virtual bool parse( Reader *r, int end, Context *ctx ); 10313 virtual void dump( int indent, Context *ctx ); 10314 virtual size_t calcSize( Context *ctx, int start_at ); 10315 virtual void write( Writer *w, Context *ctx ); 10316 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10317 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10318 10319 static OpInitProperty* get( Reader *r, int end, Context *ctx ); 10320 static OpInitProperty* getByName( const char *name ); 10321 10322 std::uint32_t getname(); 10323 void setname( std::uint32_t ); 10324 10325 10326 protected: 10327 std::uint32_t name; // u30 10328 10329 static int id; 10330 10331 }; 10332 10333 class OpDeleteProperty : public OpCode { 10334 public: 10335 OpDeleteProperty(); 10336 virtual ~OpDeleteProperty(); 10337 10338 virtual bool parse( Reader *r, int end, Context *ctx ); 10339 virtual void dump( int indent, Context *ctx ); 10340 virtual size_t calcSize( Context *ctx, int start_at ); 10341 virtual void write( Writer *w, Context *ctx ); 10342 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10343 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10344 10345 static OpDeleteProperty* get( Reader *r, int end, Context *ctx ); 10346 static OpDeleteProperty* getByName( const char *name ); 10347 10348 std::uint32_t getname(); 10349 void setname( std::uint32_t ); 10350 10351 10352 protected: 10353 std::uint32_t name; // u30 10354 10355 static int id; 10356 10357 }; 10358 10359 class OpGetSlot : public OpCode { 10360 public: 10361 OpGetSlot(); 10362 virtual ~OpGetSlot(); 10363 10364 virtual bool parse( Reader *r, int end, Context *ctx ); 10365 virtual void dump( int indent, Context *ctx ); 10366 virtual size_t calcSize( Context *ctx, int start_at ); 10367 virtual void write( Writer *w, Context *ctx ); 10368 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10369 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10370 10371 static OpGetSlot* get( Reader *r, int end, Context *ctx ); 10372 static OpGetSlot* getByName( const char *name ); 10373 10374 std::uint32_t getslotID(); 10375 void setslotID( std::uint32_t ); 10376 10377 10378 protected: 10379 std::uint32_t slotID; // u30 10380 10381 static int id; 10382 10383 }; 10384 10385 class OpSetSlot : public OpCode { 10386 public: 10387 OpSetSlot(); 10388 virtual ~OpSetSlot(); 10389 10390 virtual bool parse( Reader *r, int end, Context *ctx ); 10391 virtual void dump( int indent, Context *ctx ); 10392 virtual size_t calcSize( Context *ctx, int start_at ); 10393 virtual void write( Writer *w, Context *ctx ); 10394 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10395 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10396 10397 static OpSetSlot* get( Reader *r, int end, Context *ctx ); 10398 static OpSetSlot* getByName( const char *name ); 10399 10400 std::uint32_t getslotID(); 10401 void setslotID( std::uint32_t ); 10402 10403 10404 protected: 10405 std::uint32_t slotID; // u30 10406 10407 static int id; 10408 10409 }; 10410 10411 class OpGetGlobalSlot : public OpCode { 10412 public: 10413 OpGetGlobalSlot(); 10414 virtual ~OpGetGlobalSlot(); 10415 10416 virtual bool parse( Reader *r, int end, Context *ctx ); 10417 virtual void dump( int indent, Context *ctx ); 10418 virtual size_t calcSize( Context *ctx, int start_at ); 10419 virtual void write( Writer *w, Context *ctx ); 10420 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10421 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10422 10423 static OpGetGlobalSlot* get( Reader *r, int end, Context *ctx ); 10424 static OpGetGlobalSlot* getByName( const char *name ); 10425 10426 std::uint32_t getslotID(); 10427 void setslotID( std::uint32_t ); 10428 10429 10430 protected: 10431 std::uint32_t slotID; // u30 10432 10433 static int id; 10434 10435 }; 10436 10437 class OpSetGlobalSlot : public OpCode { 10438 public: 10439 OpSetGlobalSlot(); 10440 virtual ~OpSetGlobalSlot(); 10441 10442 virtual bool parse( Reader *r, int end, Context *ctx ); 10443 virtual void dump( int indent, Context *ctx ); 10444 virtual size_t calcSize( Context *ctx, int start_at ); 10445 virtual void write( Writer *w, Context *ctx ); 10446 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10447 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10448 10449 static OpSetGlobalSlot* get( Reader *r, int end, Context *ctx ); 10450 static OpSetGlobalSlot* getByName( const char *name ); 10451 10452 std::uint32_t getslotID(); 10453 void setslotID( std::uint32_t ); 10454 10455 10456 protected: 10457 std::uint32_t slotID; // u30 10458 10459 static int id; 10460 10461 }; 10462 10463 class OpConvertS : public OpCode { 10464 public: 10465 OpConvertS(); 10466 virtual ~OpConvertS(); 10467 10468 virtual bool parse( Reader *r, int end, Context *ctx ); 10469 virtual void dump( int indent, Context *ctx ); 10470 virtual size_t calcSize( Context *ctx, int start_at ); 10471 virtual void write( Writer *w, Context *ctx ); 10472 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10473 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10474 10475 static OpConvertS* get( Reader *r, int end, Context *ctx ); 10476 static OpConvertS* getByName( const char *name ); 10477 10478 10479 10480 protected: 10481 10482 static int id; 10483 10484 }; 10485 10486 class OpEscXelem : public OpCode { 10487 public: 10488 OpEscXelem(); 10489 virtual ~OpEscXelem(); 10490 10491 virtual bool parse( Reader *r, int end, Context *ctx ); 10492 virtual void dump( int indent, Context *ctx ); 10493 virtual size_t calcSize( Context *ctx, int start_at ); 10494 virtual void write( Writer *w, Context *ctx ); 10495 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10496 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10497 10498 static OpEscXelem* get( Reader *r, int end, Context *ctx ); 10499 static OpEscXelem* getByName( const char *name ); 10500 10501 10502 10503 protected: 10504 10505 static int id; 10506 10507 }; 10508 10509 class OpEscXattr : public OpCode { 10510 public: 10511 OpEscXattr(); 10512 virtual ~OpEscXattr(); 10513 10514 virtual bool parse( Reader *r, int end, Context *ctx ); 10515 virtual void dump( int indent, Context *ctx ); 10516 virtual size_t calcSize( Context *ctx, int start_at ); 10517 virtual void write( Writer *w, Context *ctx ); 10518 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10519 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10520 10521 static OpEscXattr* get( Reader *r, int end, Context *ctx ); 10522 static OpEscXattr* getByName( const char *name ); 10523 10524 10525 10526 protected: 10527 10528 static int id; 10529 10530 }; 10531 10532 class OpConvertI : public OpCode { 10533 public: 10534 OpConvertI(); 10535 virtual ~OpConvertI(); 10536 10537 virtual bool parse( Reader *r, int end, Context *ctx ); 10538 virtual void dump( int indent, Context *ctx ); 10539 virtual size_t calcSize( Context *ctx, int start_at ); 10540 virtual void write( Writer *w, Context *ctx ); 10541 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10542 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10543 10544 static OpConvertI* get( Reader *r, int end, Context *ctx ); 10545 static OpConvertI* getByName( const char *name ); 10546 10547 10548 10549 protected: 10550 10551 static int id; 10552 10553 }; 10554 10555 class OpConvertU : public OpCode { 10556 public: 10557 OpConvertU(); 10558 virtual ~OpConvertU(); 10559 10560 virtual bool parse( Reader *r, int end, Context *ctx ); 10561 virtual void dump( int indent, Context *ctx ); 10562 virtual size_t calcSize( Context *ctx, int start_at ); 10563 virtual void write( Writer *w, Context *ctx ); 10564 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10565 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10566 10567 static OpConvertU* get( Reader *r, int end, Context *ctx ); 10568 static OpConvertU* getByName( const char *name ); 10569 10570 10571 10572 protected: 10573 10574 static int id; 10575 10576 }; 10577 10578 class OpConvertD : public OpCode { 10579 public: 10580 OpConvertD(); 10581 virtual ~OpConvertD(); 10582 10583 virtual bool parse( Reader *r, int end, Context *ctx ); 10584 virtual void dump( int indent, Context *ctx ); 10585 virtual size_t calcSize( Context *ctx, int start_at ); 10586 virtual void write( Writer *w, Context *ctx ); 10587 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10588 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10589 10590 static OpConvertD* get( Reader *r, int end, Context *ctx ); 10591 static OpConvertD* getByName( const char *name ); 10592 10593 10594 10595 protected: 10596 10597 static int id; 10598 10599 }; 10600 10601 class OpConvertB : public OpCode { 10602 public: 10603 OpConvertB(); 10604 virtual ~OpConvertB(); 10605 10606 virtual bool parse( Reader *r, int end, Context *ctx ); 10607 virtual void dump( int indent, Context *ctx ); 10608 virtual size_t calcSize( Context *ctx, int start_at ); 10609 virtual void write( Writer *w, Context *ctx ); 10610 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10611 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10612 10613 static OpConvertB* get( Reader *r, int end, Context *ctx ); 10614 static OpConvertB* getByName( const char *name ); 10615 10616 10617 10618 protected: 10619 10620 static int id; 10621 10622 }; 10623 10624 class OpConvertO : public OpCode { 10625 public: 10626 OpConvertO(); 10627 virtual ~OpConvertO(); 10628 10629 virtual bool parse( Reader *r, int end, Context *ctx ); 10630 virtual void dump( int indent, Context *ctx ); 10631 virtual size_t calcSize( Context *ctx, int start_at ); 10632 virtual void write( Writer *w, Context *ctx ); 10633 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10634 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10635 10636 static OpConvertO* get( Reader *r, int end, Context *ctx ); 10637 static OpConvertO* getByName( const char *name ); 10638 10639 10640 10641 protected: 10642 10643 static int id; 10644 10645 }; 10646 10647 class OpCheckFilter : public OpCode { 10648 public: 10649 OpCheckFilter(); 10650 virtual ~OpCheckFilter(); 10651 10652 virtual bool parse( Reader *r, int end, Context *ctx ); 10653 virtual void dump( int indent, Context *ctx ); 10654 virtual size_t calcSize( Context *ctx, int start_at ); 10655 virtual void write( Writer *w, Context *ctx ); 10656 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10657 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10658 10659 static OpCheckFilter* get( Reader *r, int end, Context *ctx ); 10660 static OpCheckFilter* getByName( const char *name ); 10661 10662 10663 10664 protected: 10665 10666 static int id; 10667 10668 }; 10669 10670 class OpCoerce : public OpCode { 10671 public: 10672 OpCoerce(); 10673 virtual ~OpCoerce(); 10674 10675 virtual bool parse( Reader *r, int end, Context *ctx ); 10676 virtual void dump( int indent, Context *ctx ); 10677 virtual size_t calcSize( Context *ctx, int start_at ); 10678 virtual void write( Writer *w, Context *ctx ); 10679 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10680 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10681 10682 static OpCoerce* get( Reader *r, int end, Context *ctx ); 10683 static OpCoerce* getByName( const char *name ); 10684 10685 std::uint32_t getname(); 10686 void setname( std::uint32_t ); 10687 10688 10689 protected: 10690 std::uint32_t name; // u30 10691 10692 static int id; 10693 10694 }; 10695 10696 class OpCoerceB : public OpCode { 10697 public: 10698 OpCoerceB(); 10699 virtual ~OpCoerceB(); 10700 10701 virtual bool parse( Reader *r, int end, Context *ctx ); 10702 virtual void dump( int indent, Context *ctx ); 10703 virtual size_t calcSize( Context *ctx, int start_at ); 10704 virtual void write( Writer *w, Context *ctx ); 10705 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10706 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10707 10708 static OpCoerceB* get( Reader *r, int end, Context *ctx ); 10709 static OpCoerceB* getByName( const char *name ); 10710 10711 10712 10713 protected: 10714 10715 static int id; 10716 10717 }; 10718 10719 class OpCoerceA : public OpCode { 10720 public: 10721 OpCoerceA(); 10722 virtual ~OpCoerceA(); 10723 10724 virtual bool parse( Reader *r, int end, Context *ctx ); 10725 virtual void dump( int indent, Context *ctx ); 10726 virtual size_t calcSize( Context *ctx, int start_at ); 10727 virtual void write( Writer *w, Context *ctx ); 10728 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10729 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10730 10731 static OpCoerceA* get( Reader *r, int end, Context *ctx ); 10732 static OpCoerceA* getByName( const char *name ); 10733 10734 10735 10736 protected: 10737 10738 static int id; 10739 10740 }; 10741 10742 class OpCoerceI : public OpCode { 10743 public: 10744 OpCoerceI(); 10745 virtual ~OpCoerceI(); 10746 10747 virtual bool parse( Reader *r, int end, Context *ctx ); 10748 virtual void dump( int indent, Context *ctx ); 10749 virtual size_t calcSize( Context *ctx, int start_at ); 10750 virtual void write( Writer *w, Context *ctx ); 10751 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10752 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10753 10754 static OpCoerceI* get( Reader *r, int end, Context *ctx ); 10755 static OpCoerceI* getByName( const char *name ); 10756 10757 10758 10759 protected: 10760 10761 static int id; 10762 10763 }; 10764 10765 class OpCoerceD : public OpCode { 10766 public: 10767 OpCoerceD(); 10768 virtual ~OpCoerceD(); 10769 10770 virtual bool parse( Reader *r, int end, Context *ctx ); 10771 virtual void dump( int indent, Context *ctx ); 10772 virtual size_t calcSize( Context *ctx, int start_at ); 10773 virtual void write( Writer *w, Context *ctx ); 10774 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10775 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10776 10777 static OpCoerceD* get( Reader *r, int end, Context *ctx ); 10778 static OpCoerceD* getByName( const char *name ); 10779 10780 10781 10782 protected: 10783 10784 static int id; 10785 10786 }; 10787 10788 class OpCoerceS : public OpCode { 10789 public: 10790 OpCoerceS(); 10791 virtual ~OpCoerceS(); 10792 10793 virtual bool parse( Reader *r, int end, Context *ctx ); 10794 virtual void dump( int indent, Context *ctx ); 10795 virtual size_t calcSize( Context *ctx, int start_at ); 10796 virtual void write( Writer *w, Context *ctx ); 10797 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10798 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10799 10800 static OpCoerceS* get( Reader *r, int end, Context *ctx ); 10801 static OpCoerceS* getByName( const char *name ); 10802 10803 10804 10805 protected: 10806 10807 static int id; 10808 10809 }; 10810 10811 class OpAsType : public OpCode { 10812 public: 10813 OpAsType(); 10814 virtual ~OpAsType(); 10815 10816 virtual bool parse( Reader *r, int end, Context *ctx ); 10817 virtual void dump( int indent, Context *ctx ); 10818 virtual size_t calcSize( Context *ctx, int start_at ); 10819 virtual void write( Writer *w, Context *ctx ); 10820 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10821 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10822 10823 static OpAsType* get( Reader *r, int end, Context *ctx ); 10824 static OpAsType* getByName( const char *name ); 10825 10826 std::uint32_t getname(); 10827 void setname( std::uint32_t ); 10828 10829 10830 protected: 10831 std::uint32_t name; // u30 10832 10833 static int id; 10834 10835 }; 10836 10837 class OpAsTypeLate : public OpCode { 10838 public: 10839 OpAsTypeLate(); 10840 virtual ~OpAsTypeLate(); 10841 10842 virtual bool parse( Reader *r, int end, Context *ctx ); 10843 virtual void dump( int indent, Context *ctx ); 10844 virtual size_t calcSize( Context *ctx, int start_at ); 10845 virtual void write( Writer *w, Context *ctx ); 10846 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10847 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10848 10849 static OpAsTypeLate* get( Reader *r, int end, Context *ctx ); 10850 static OpAsTypeLate* getByName( const char *name ); 10851 10852 10853 10854 protected: 10855 10856 static int id; 10857 10858 }; 10859 10860 class OpCoerceU : public OpCode { 10861 public: 10862 OpCoerceU(); 10863 virtual ~OpCoerceU(); 10864 10865 virtual bool parse( Reader *r, int end, Context *ctx ); 10866 virtual void dump( int indent, Context *ctx ); 10867 virtual size_t calcSize( Context *ctx, int start_at ); 10868 virtual void write( Writer *w, Context *ctx ); 10869 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10870 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10871 10872 static OpCoerceU* get( Reader *r, int end, Context *ctx ); 10873 static OpCoerceU* getByName( const char *name ); 10874 10875 10876 10877 protected: 10878 10879 static int id; 10880 10881 }; 10882 10883 class OpCoerceO : public OpCode { 10884 public: 10885 OpCoerceO(); 10886 virtual ~OpCoerceO(); 10887 10888 virtual bool parse( Reader *r, int end, Context *ctx ); 10889 virtual void dump( int indent, Context *ctx ); 10890 virtual size_t calcSize( Context *ctx, int start_at ); 10891 virtual void write( Writer *w, Context *ctx ); 10892 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10893 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10894 10895 static OpCoerceO* get( Reader *r, int end, Context *ctx ); 10896 static OpCoerceO* getByName( const char *name ); 10897 10898 10899 10900 protected: 10901 10902 static int id; 10903 10904 }; 10905 10906 class OpNegate : public OpCode { 10907 public: 10908 OpNegate(); 10909 virtual ~OpNegate(); 10910 10911 virtual bool parse( Reader *r, int end, Context *ctx ); 10912 virtual void dump( int indent, Context *ctx ); 10913 virtual size_t calcSize( Context *ctx, int start_at ); 10914 virtual void write( Writer *w, Context *ctx ); 10915 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10916 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10917 10918 static OpNegate* get( Reader *r, int end, Context *ctx ); 10919 static OpNegate* getByName( const char *name ); 10920 10921 10922 10923 protected: 10924 10925 static int id; 10926 10927 }; 10928 10929 class OpIncrement : public OpCode { 10930 public: 10931 OpIncrement(); 10932 virtual ~OpIncrement(); 10933 10934 virtual bool parse( Reader *r, int end, Context *ctx ); 10935 virtual void dump( int indent, Context *ctx ); 10936 virtual size_t calcSize( Context *ctx, int start_at ); 10937 virtual void write( Writer *w, Context *ctx ); 10938 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10939 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10940 10941 static OpIncrement* get( Reader *r, int end, Context *ctx ); 10942 static OpIncrement* getByName( const char *name ); 10943 10944 10945 10946 protected: 10947 10948 static int id; 10949 10950 }; 10951 10952 class OpIncLocal : public OpCode { 10953 public: 10954 OpIncLocal(); 10955 virtual ~OpIncLocal(); 10956 10957 virtual bool parse( Reader *r, int end, Context *ctx ); 10958 virtual void dump( int indent, Context *ctx ); 10959 virtual size_t calcSize( Context *ctx, int start_at ); 10960 virtual void write( Writer *w, Context *ctx ); 10961 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10962 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10963 10964 static OpIncLocal* get( Reader *r, int end, Context *ctx ); 10965 static OpIncLocal* getByName( const char *name ); 10966 10967 std::uint32_t getaddress(); 10968 void setaddress( std::uint32_t ); 10969 10970 10971 protected: 10972 std::uint32_t address; // u30 10973 10974 static int id; 10975 10976 }; 10977 10978 class OpDecrement : public OpCode { 10979 public: 10980 OpDecrement(); 10981 virtual ~OpDecrement(); 10982 10983 virtual bool parse( Reader *r, int end, Context *ctx ); 10984 virtual void dump( int indent, Context *ctx ); 10985 virtual size_t calcSize( Context *ctx, int start_at ); 10986 virtual void write( Writer *w, Context *ctx ); 10987 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 10988 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 10989 10990 static OpDecrement* get( Reader *r, int end, Context *ctx ); 10991 static OpDecrement* getByName( const char *name ); 10992 10993 10994 10995 protected: 10996 10997 static int id; 10998 10999 }; 11000 11001 class OpDecLocal : public OpCode { 11002 public: 11003 OpDecLocal(); 11004 virtual ~OpDecLocal(); 11005 11006 virtual bool parse( Reader *r, int end, Context *ctx ); 11007 virtual void dump( int indent, Context *ctx ); 11008 virtual size_t calcSize( Context *ctx, int start_at ); 11009 virtual void write( Writer *w, Context *ctx ); 11010 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11011 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11012 11013 static OpDecLocal* get( Reader *r, int end, Context *ctx ); 11014 static OpDecLocal* getByName( const char *name ); 11015 11016 std::uint32_t getaddress(); 11017 void setaddress( std::uint32_t ); 11018 11019 11020 protected: 11021 std::uint32_t address; // u30 11022 11023 static int id; 11024 11025 }; 11026 11027 class OpTypeOf : public OpCode { 11028 public: 11029 OpTypeOf(); 11030 virtual ~OpTypeOf(); 11031 11032 virtual bool parse( Reader *r, int end, Context *ctx ); 11033 virtual void dump( int indent, Context *ctx ); 11034 virtual size_t calcSize( Context *ctx, int start_at ); 11035 virtual void write( Writer *w, Context *ctx ); 11036 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11037 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11038 11039 static OpTypeOf* get( Reader *r, int end, Context *ctx ); 11040 static OpTypeOf* getByName( const char *name ); 11041 11042 11043 11044 protected: 11045 11046 static int id; 11047 11048 }; 11049 11050 class OpNot : public OpCode { 11051 public: 11052 OpNot(); 11053 virtual ~OpNot(); 11054 11055 virtual bool parse( Reader *r, int end, Context *ctx ); 11056 virtual void dump( int indent, Context *ctx ); 11057 virtual size_t calcSize( Context *ctx, int start_at ); 11058 virtual void write( Writer *w, Context *ctx ); 11059 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11060 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11061 11062 static OpNot* get( Reader *r, int end, Context *ctx ); 11063 static OpNot* getByName( const char *name ); 11064 11065 11066 11067 protected: 11068 11069 static int id; 11070 11071 }; 11072 11073 class OpBitNot : public OpCode { 11074 public: 11075 OpBitNot(); 11076 virtual ~OpBitNot(); 11077 11078 virtual bool parse( Reader *r, int end, Context *ctx ); 11079 virtual void dump( int indent, Context *ctx ); 11080 virtual size_t calcSize( Context *ctx, int start_at ); 11081 virtual void write( Writer *w, Context *ctx ); 11082 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11083 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11084 11085 static OpBitNot* get( Reader *r, int end, Context *ctx ); 11086 static OpBitNot* getByName( const char *name ); 11087 11088 11089 11090 protected: 11091 11092 static int id; 11093 11094 }; 11095 11096 class OpAdd : public OpCode { 11097 public: 11098 OpAdd(); 11099 virtual ~OpAdd(); 11100 11101 virtual bool parse( Reader *r, int end, Context *ctx ); 11102 virtual void dump( int indent, Context *ctx ); 11103 virtual size_t calcSize( Context *ctx, int start_at ); 11104 virtual void write( Writer *w, Context *ctx ); 11105 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11106 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11107 11108 static OpAdd* get( Reader *r, int end, Context *ctx ); 11109 static OpAdd* getByName( const char *name ); 11110 11111 11112 11113 protected: 11114 11115 static int id; 11116 11117 }; 11118 11119 class OpSubtract : public OpCode { 11120 public: 11121 OpSubtract(); 11122 virtual ~OpSubtract(); 11123 11124 virtual bool parse( Reader *r, int end, Context *ctx ); 11125 virtual void dump( int indent, Context *ctx ); 11126 virtual size_t calcSize( Context *ctx, int start_at ); 11127 virtual void write( Writer *w, Context *ctx ); 11128 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11129 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11130 11131 static OpSubtract* get( Reader *r, int end, Context *ctx ); 11132 static OpSubtract* getByName( const char *name ); 11133 11134 11135 11136 protected: 11137 11138 static int id; 11139 11140 }; 11141 11142 class OpMultiply : public OpCode { 11143 public: 11144 OpMultiply(); 11145 virtual ~OpMultiply(); 11146 11147 virtual bool parse( Reader *r, int end, Context *ctx ); 11148 virtual void dump( int indent, Context *ctx ); 11149 virtual size_t calcSize( Context *ctx, int start_at ); 11150 virtual void write( Writer *w, Context *ctx ); 11151 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11152 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11153 11154 static OpMultiply* get( Reader *r, int end, Context *ctx ); 11155 static OpMultiply* getByName( const char *name ); 11156 11157 11158 11159 protected: 11160 11161 static int id; 11162 11163 }; 11164 11165 class OpDivide : public OpCode { 11166 public: 11167 OpDivide(); 11168 virtual ~OpDivide(); 11169 11170 virtual bool parse( Reader *r, int end, Context *ctx ); 11171 virtual void dump( int indent, Context *ctx ); 11172 virtual size_t calcSize( Context *ctx, int start_at ); 11173 virtual void write( Writer *w, Context *ctx ); 11174 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11175 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11176 11177 static OpDivide* get( Reader *r, int end, Context *ctx ); 11178 static OpDivide* getByName( const char *name ); 11179 11180 11181 11182 protected: 11183 11184 static int id; 11185 11186 }; 11187 11188 class OpModulo : public OpCode { 11189 public: 11190 OpModulo(); 11191 virtual ~OpModulo(); 11192 11193 virtual bool parse( Reader *r, int end, Context *ctx ); 11194 virtual void dump( int indent, Context *ctx ); 11195 virtual size_t calcSize( Context *ctx, int start_at ); 11196 virtual void write( Writer *w, Context *ctx ); 11197 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11198 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11199 11200 static OpModulo* get( Reader *r, int end, Context *ctx ); 11201 static OpModulo* getByName( const char *name ); 11202 11203 11204 11205 protected: 11206 11207 static int id; 11208 11209 }; 11210 11211 class OpLShift : public OpCode { 11212 public: 11213 OpLShift(); 11214 virtual ~OpLShift(); 11215 11216 virtual bool parse( Reader *r, int end, Context *ctx ); 11217 virtual void dump( int indent, Context *ctx ); 11218 virtual size_t calcSize( Context *ctx, int start_at ); 11219 virtual void write( Writer *w, Context *ctx ); 11220 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11221 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11222 11223 static OpLShift* get( Reader *r, int end, Context *ctx ); 11224 static OpLShift* getByName( const char *name ); 11225 11226 11227 11228 protected: 11229 11230 static int id; 11231 11232 }; 11233 11234 class OpRShift : public OpCode { 11235 public: 11236 OpRShift(); 11237 virtual ~OpRShift(); 11238 11239 virtual bool parse( Reader *r, int end, Context *ctx ); 11240 virtual void dump( int indent, Context *ctx ); 11241 virtual size_t calcSize( Context *ctx, int start_at ); 11242 virtual void write( Writer *w, Context *ctx ); 11243 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11244 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11245 11246 static OpRShift* get( Reader *r, int end, Context *ctx ); 11247 static OpRShift* getByName( const char *name ); 11248 11249 11250 11251 protected: 11252 11253 static int id; 11254 11255 }; 11256 11257 class OpURShift : public OpCode { 11258 public: 11259 OpURShift(); 11260 virtual ~OpURShift(); 11261 11262 virtual bool parse( Reader *r, int end, Context *ctx ); 11263 virtual void dump( int indent, Context *ctx ); 11264 virtual size_t calcSize( Context *ctx, int start_at ); 11265 virtual void write( Writer *w, Context *ctx ); 11266 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11267 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11268 11269 static OpURShift* get( Reader *r, int end, Context *ctx ); 11270 static OpURShift* getByName( const char *name ); 11271 11272 11273 11274 protected: 11275 11276 static int id; 11277 11278 }; 11279 11280 class OpBitAnd : public OpCode { 11281 public: 11282 OpBitAnd(); 11283 virtual ~OpBitAnd(); 11284 11285 virtual bool parse( Reader *r, int end, Context *ctx ); 11286 virtual void dump( int indent, Context *ctx ); 11287 virtual size_t calcSize( Context *ctx, int start_at ); 11288 virtual void write( Writer *w, Context *ctx ); 11289 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11290 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11291 11292 static OpBitAnd* get( Reader *r, int end, Context *ctx ); 11293 static OpBitAnd* getByName( const char *name ); 11294 11295 11296 11297 protected: 11298 11299 static int id; 11300 11301 }; 11302 11303 class OpBitOr : public OpCode { 11304 public: 11305 OpBitOr(); 11306 virtual ~OpBitOr(); 11307 11308 virtual bool parse( Reader *r, int end, Context *ctx ); 11309 virtual void dump( int indent, Context *ctx ); 11310 virtual size_t calcSize( Context *ctx, int start_at ); 11311 virtual void write( Writer *w, Context *ctx ); 11312 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11313 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11314 11315 static OpBitOr* get( Reader *r, int end, Context *ctx ); 11316 static OpBitOr* getByName( const char *name ); 11317 11318 11319 11320 protected: 11321 11322 static int id; 11323 11324 }; 11325 11326 class OpBitXor : public OpCode { 11327 public: 11328 OpBitXor(); 11329 virtual ~OpBitXor(); 11330 11331 virtual bool parse( Reader *r, int end, Context *ctx ); 11332 virtual void dump( int indent, Context *ctx ); 11333 virtual size_t calcSize( Context *ctx, int start_at ); 11334 virtual void write( Writer *w, Context *ctx ); 11335 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11336 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11337 11338 static OpBitXor* get( Reader *r, int end, Context *ctx ); 11339 static OpBitXor* getByName( const char *name ); 11340 11341 11342 11343 protected: 11344 11345 static int id; 11346 11347 }; 11348 11349 class OpEquals : public OpCode { 11350 public: 11351 OpEquals(); 11352 virtual ~OpEquals(); 11353 11354 virtual bool parse( Reader *r, int end, Context *ctx ); 11355 virtual void dump( int indent, Context *ctx ); 11356 virtual size_t calcSize( Context *ctx, int start_at ); 11357 virtual void write( Writer *w, Context *ctx ); 11358 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11359 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11360 11361 static OpEquals* get( Reader *r, int end, Context *ctx ); 11362 static OpEquals* getByName( const char *name ); 11363 11364 11365 11366 protected: 11367 11368 static int id; 11369 11370 }; 11371 11372 class OpStrictEquals : public OpCode { 11373 public: 11374 OpStrictEquals(); 11375 virtual ~OpStrictEquals(); 11376 11377 virtual bool parse( Reader *r, int end, Context *ctx ); 11378 virtual void dump( int indent, Context *ctx ); 11379 virtual size_t calcSize( Context *ctx, int start_at ); 11380 virtual void write( Writer *w, Context *ctx ); 11381 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11382 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11383 11384 static OpStrictEquals* get( Reader *r, int end, Context *ctx ); 11385 static OpStrictEquals* getByName( const char *name ); 11386 11387 11388 11389 protected: 11390 11391 static int id; 11392 11393 }; 11394 11395 class OpLessThan : public OpCode { 11396 public: 11397 OpLessThan(); 11398 virtual ~OpLessThan(); 11399 11400 virtual bool parse( Reader *r, int end, Context *ctx ); 11401 virtual void dump( int indent, Context *ctx ); 11402 virtual size_t calcSize( Context *ctx, int start_at ); 11403 virtual void write( Writer *w, Context *ctx ); 11404 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11405 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11406 11407 static OpLessThan* get( Reader *r, int end, Context *ctx ); 11408 static OpLessThan* getByName( const char *name ); 11409 11410 11411 11412 protected: 11413 11414 static int id; 11415 11416 }; 11417 11418 class OpLessEquals : public OpCode { 11419 public: 11420 OpLessEquals(); 11421 virtual ~OpLessEquals(); 11422 11423 virtual bool parse( Reader *r, int end, Context *ctx ); 11424 virtual void dump( int indent, Context *ctx ); 11425 virtual size_t calcSize( Context *ctx, int start_at ); 11426 virtual void write( Writer *w, Context *ctx ); 11427 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11428 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11429 11430 static OpLessEquals* get( Reader *r, int end, Context *ctx ); 11431 static OpLessEquals* getByName( const char *name ); 11432 11433 11434 11435 protected: 11436 11437 static int id; 11438 11439 }; 11440 11441 class OpGreaterThan : public OpCode { 11442 public: 11443 OpGreaterThan(); 11444 virtual ~OpGreaterThan(); 11445 11446 virtual bool parse( Reader *r, int end, Context *ctx ); 11447 virtual void dump( int indent, Context *ctx ); 11448 virtual size_t calcSize( Context *ctx, int start_at ); 11449 virtual void write( Writer *w, Context *ctx ); 11450 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11451 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11452 11453 static OpGreaterThan* get( Reader *r, int end, Context *ctx ); 11454 static OpGreaterThan* getByName( const char *name ); 11455 11456 11457 11458 protected: 11459 11460 static int id; 11461 11462 }; 11463 11464 class OpGreaterEquals : public OpCode { 11465 public: 11466 OpGreaterEquals(); 11467 virtual ~OpGreaterEquals(); 11468 11469 virtual bool parse( Reader *r, int end, Context *ctx ); 11470 virtual void dump( int indent, Context *ctx ); 11471 virtual size_t calcSize( Context *ctx, int start_at ); 11472 virtual void write( Writer *w, Context *ctx ); 11473 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11474 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11475 11476 static OpGreaterEquals* get( Reader *r, int end, Context *ctx ); 11477 static OpGreaterEquals* getByName( const char *name ); 11478 11479 11480 11481 protected: 11482 11483 static int id; 11484 11485 }; 11486 11487 class OpInstanceOf : public OpCode { 11488 public: 11489 OpInstanceOf(); 11490 virtual ~OpInstanceOf(); 11491 11492 virtual bool parse( Reader *r, int end, Context *ctx ); 11493 virtual void dump( int indent, Context *ctx ); 11494 virtual size_t calcSize( Context *ctx, int start_at ); 11495 virtual void write( Writer *w, Context *ctx ); 11496 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11497 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11498 11499 static OpInstanceOf* get( Reader *r, int end, Context *ctx ); 11500 static OpInstanceOf* getByName( const char *name ); 11501 11502 11503 11504 protected: 11505 11506 static int id; 11507 11508 }; 11509 11510 class OpIsType : public OpCode { 11511 public: 11512 OpIsType(); 11513 virtual ~OpIsType(); 11514 11515 virtual bool parse( Reader *r, int end, Context *ctx ); 11516 virtual void dump( int indent, Context *ctx ); 11517 virtual size_t calcSize( Context *ctx, int start_at ); 11518 virtual void write( Writer *w, Context *ctx ); 11519 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11520 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11521 11522 static OpIsType* get( Reader *r, int end, Context *ctx ); 11523 static OpIsType* getByName( const char *name ); 11524 11525 std::uint32_t getname(); 11526 void setname( std::uint32_t ); 11527 11528 11529 protected: 11530 std::uint32_t name; // u30 11531 11532 static int id; 11533 11534 }; 11535 11536 class OpIsTypeLate : public OpCode { 11537 public: 11538 OpIsTypeLate(); 11539 virtual ~OpIsTypeLate(); 11540 11541 virtual bool parse( Reader *r, int end, Context *ctx ); 11542 virtual void dump( int indent, Context *ctx ); 11543 virtual size_t calcSize( Context *ctx, int start_at ); 11544 virtual void write( Writer *w, Context *ctx ); 11545 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11546 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11547 11548 static OpIsTypeLate* get( Reader *r, int end, Context *ctx ); 11549 static OpIsTypeLate* getByName( const char *name ); 11550 11551 11552 11553 protected: 11554 11555 static int id; 11556 11557 }; 11558 11559 class OpIn : public OpCode { 11560 public: 11561 OpIn(); 11562 virtual ~OpIn(); 11563 11564 virtual bool parse( Reader *r, int end, Context *ctx ); 11565 virtual void dump( int indent, Context *ctx ); 11566 virtual size_t calcSize( Context *ctx, int start_at ); 11567 virtual void write( Writer *w, Context *ctx ); 11568 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11569 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11570 11571 static OpIn* get( Reader *r, int end, Context *ctx ); 11572 static OpIn* getByName( const char *name ); 11573 11574 11575 11576 protected: 11577 11578 static int id; 11579 11580 }; 11581 11582 class OpIncrementI : public OpCode { 11583 public: 11584 OpIncrementI(); 11585 virtual ~OpIncrementI(); 11586 11587 virtual bool parse( Reader *r, int end, Context *ctx ); 11588 virtual void dump( int indent, Context *ctx ); 11589 virtual size_t calcSize( Context *ctx, int start_at ); 11590 virtual void write( Writer *w, Context *ctx ); 11591 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11592 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11593 11594 static OpIncrementI* get( Reader *r, int end, Context *ctx ); 11595 static OpIncrementI* getByName( const char *name ); 11596 11597 11598 11599 protected: 11600 11601 static int id; 11602 11603 }; 11604 11605 class OpDecrementI : public OpCode { 11606 public: 11607 OpDecrementI(); 11608 virtual ~OpDecrementI(); 11609 11610 virtual bool parse( Reader *r, int end, Context *ctx ); 11611 virtual void dump( int indent, Context *ctx ); 11612 virtual size_t calcSize( Context *ctx, int start_at ); 11613 virtual void write( Writer *w, Context *ctx ); 11614 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11615 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11616 11617 static OpDecrementI* get( Reader *r, int end, Context *ctx ); 11618 static OpDecrementI* getByName( const char *name ); 11619 11620 11621 11622 protected: 11623 11624 static int id; 11625 11626 }; 11627 11628 class OpIncLocalI : public OpCode { 11629 public: 11630 OpIncLocalI(); 11631 virtual ~OpIncLocalI(); 11632 11633 virtual bool parse( Reader *r, int end, Context *ctx ); 11634 virtual void dump( int indent, Context *ctx ); 11635 virtual size_t calcSize( Context *ctx, int start_at ); 11636 virtual void write( Writer *w, Context *ctx ); 11637 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11638 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11639 11640 static OpIncLocalI* get( Reader *r, int end, Context *ctx ); 11641 static OpIncLocalI* getByName( const char *name ); 11642 11643 std::uint32_t getaddress(); 11644 void setaddress( std::uint32_t ); 11645 11646 11647 protected: 11648 std::uint32_t address; // u30 11649 11650 static int id; 11651 11652 }; 11653 11654 class OpDecLocalI : public OpCode { 11655 public: 11656 OpDecLocalI(); 11657 virtual ~OpDecLocalI(); 11658 11659 virtual bool parse( Reader *r, int end, Context *ctx ); 11660 virtual void dump( int indent, Context *ctx ); 11661 virtual size_t calcSize( Context *ctx, int start_at ); 11662 virtual void write( Writer *w, Context *ctx ); 11663 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11664 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11665 11666 static OpDecLocalI* get( Reader *r, int end, Context *ctx ); 11667 static OpDecLocalI* getByName( const char *name ); 11668 11669 std::uint32_t getaddress(); 11670 void setaddress( std::uint32_t ); 11671 11672 11673 protected: 11674 std::uint32_t address; // u30 11675 11676 static int id; 11677 11678 }; 11679 11680 class OpNegateI : public OpCode { 11681 public: 11682 OpNegateI(); 11683 virtual ~OpNegateI(); 11684 11685 virtual bool parse( Reader *r, int end, Context *ctx ); 11686 virtual void dump( int indent, Context *ctx ); 11687 virtual size_t calcSize( Context *ctx, int start_at ); 11688 virtual void write( Writer *w, Context *ctx ); 11689 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11690 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11691 11692 static OpNegateI* get( Reader *r, int end, Context *ctx ); 11693 static OpNegateI* getByName( const char *name ); 11694 11695 11696 11697 protected: 11698 11699 static int id; 11700 11701 }; 11702 11703 class OpAddI : public OpCode { 11704 public: 11705 OpAddI(); 11706 virtual ~OpAddI(); 11707 11708 virtual bool parse( Reader *r, int end, Context *ctx ); 11709 virtual void dump( int indent, Context *ctx ); 11710 virtual size_t calcSize( Context *ctx, int start_at ); 11711 virtual void write( Writer *w, Context *ctx ); 11712 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11713 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11714 11715 static OpAddI* get( Reader *r, int end, Context *ctx ); 11716 static OpAddI* getByName( const char *name ); 11717 11718 11719 11720 protected: 11721 11722 static int id; 11723 11724 }; 11725 11726 class OpSubtractI : public OpCode { 11727 public: 11728 OpSubtractI(); 11729 virtual ~OpSubtractI(); 11730 11731 virtual bool parse( Reader *r, int end, Context *ctx ); 11732 virtual void dump( int indent, Context *ctx ); 11733 virtual size_t calcSize( Context *ctx, int start_at ); 11734 virtual void write( Writer *w, Context *ctx ); 11735 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11736 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11737 11738 static OpSubtractI* get( Reader *r, int end, Context *ctx ); 11739 static OpSubtractI* getByName( const char *name ); 11740 11741 11742 11743 protected: 11744 11745 static int id; 11746 11747 }; 11748 11749 class OpMultiplyI : public OpCode { 11750 public: 11751 OpMultiplyI(); 11752 virtual ~OpMultiplyI(); 11753 11754 virtual bool parse( Reader *r, int end, Context *ctx ); 11755 virtual void dump( int indent, Context *ctx ); 11756 virtual size_t calcSize( Context *ctx, int start_at ); 11757 virtual void write( Writer *w, Context *ctx ); 11758 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11759 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11760 11761 static OpMultiplyI* get( Reader *r, int end, Context *ctx ); 11762 static OpMultiplyI* getByName( const char *name ); 11763 11764 11765 11766 protected: 11767 11768 static int id; 11769 11770 }; 11771 11772 class OpGetLocal0 : public OpCode { 11773 public: 11774 OpGetLocal0(); 11775 virtual ~OpGetLocal0(); 11776 11777 virtual bool parse( Reader *r, int end, Context *ctx ); 11778 virtual void dump( int indent, Context *ctx ); 11779 virtual size_t calcSize( Context *ctx, int start_at ); 11780 virtual void write( Writer *w, Context *ctx ); 11781 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11782 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11783 11784 static OpGetLocal0* get( Reader *r, int end, Context *ctx ); 11785 static OpGetLocal0* getByName( const char *name ); 11786 11787 11788 11789 protected: 11790 11791 static int id; 11792 11793 }; 11794 11795 class OpGetLocal1 : public OpCode { 11796 public: 11797 OpGetLocal1(); 11798 virtual ~OpGetLocal1(); 11799 11800 virtual bool parse( Reader *r, int end, Context *ctx ); 11801 virtual void dump( int indent, Context *ctx ); 11802 virtual size_t calcSize( Context *ctx, int start_at ); 11803 virtual void write( Writer *w, Context *ctx ); 11804 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11805 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11806 11807 static OpGetLocal1* get( Reader *r, int end, Context *ctx ); 11808 static OpGetLocal1* getByName( const char *name ); 11809 11810 11811 11812 protected: 11813 11814 static int id; 11815 11816 }; 11817 11818 class OpGetLocal2 : public OpCode { 11819 public: 11820 OpGetLocal2(); 11821 virtual ~OpGetLocal2(); 11822 11823 virtual bool parse( Reader *r, int end, Context *ctx ); 11824 virtual void dump( int indent, Context *ctx ); 11825 virtual size_t calcSize( Context *ctx, int start_at ); 11826 virtual void write( Writer *w, Context *ctx ); 11827 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11828 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11829 11830 static OpGetLocal2* get( Reader *r, int end, Context *ctx ); 11831 static OpGetLocal2* getByName( const char *name ); 11832 11833 11834 11835 protected: 11836 11837 static int id; 11838 11839 }; 11840 11841 class OpGetLocal3 : public OpCode { 11842 public: 11843 OpGetLocal3(); 11844 virtual ~OpGetLocal3(); 11845 11846 virtual bool parse( Reader *r, int end, Context *ctx ); 11847 virtual void dump( int indent, Context *ctx ); 11848 virtual size_t calcSize( Context *ctx, int start_at ); 11849 virtual void write( Writer *w, Context *ctx ); 11850 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11851 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11852 11853 static OpGetLocal3* get( Reader *r, int end, Context *ctx ); 11854 static OpGetLocal3* getByName( const char *name ); 11855 11856 11857 11858 protected: 11859 11860 static int id; 11861 11862 }; 11863 11864 class OpSetLocal0 : public OpCode { 11865 public: 11866 OpSetLocal0(); 11867 virtual ~OpSetLocal0(); 11868 11869 virtual bool parse( Reader *r, int end, Context *ctx ); 11870 virtual void dump( int indent, Context *ctx ); 11871 virtual size_t calcSize( Context *ctx, int start_at ); 11872 virtual void write( Writer *w, Context *ctx ); 11873 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11874 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11875 11876 static OpSetLocal0* get( Reader *r, int end, Context *ctx ); 11877 static OpSetLocal0* getByName( const char *name ); 11878 11879 11880 11881 protected: 11882 11883 static int id; 11884 11885 }; 11886 11887 class OpSetLocal1 : public OpCode { 11888 public: 11889 OpSetLocal1(); 11890 virtual ~OpSetLocal1(); 11891 11892 virtual bool parse( Reader *r, int end, Context *ctx ); 11893 virtual void dump( int indent, Context *ctx ); 11894 virtual size_t calcSize( Context *ctx, int start_at ); 11895 virtual void write( Writer *w, Context *ctx ); 11896 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11897 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11898 11899 static OpSetLocal1* get( Reader *r, int end, Context *ctx ); 11900 static OpSetLocal1* getByName( const char *name ); 11901 11902 11903 11904 protected: 11905 11906 static int id; 11907 11908 }; 11909 11910 class OpSetLocal2 : public OpCode { 11911 public: 11912 OpSetLocal2(); 11913 virtual ~OpSetLocal2(); 11914 11915 virtual bool parse( Reader *r, int end, Context *ctx ); 11916 virtual void dump( int indent, Context *ctx ); 11917 virtual size_t calcSize( Context *ctx, int start_at ); 11918 virtual void write( Writer *w, Context *ctx ); 11919 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11920 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11921 11922 static OpSetLocal2* get( Reader *r, int end, Context *ctx ); 11923 static OpSetLocal2* getByName( const char *name ); 11924 11925 11926 11927 protected: 11928 11929 static int id; 11930 11931 }; 11932 11933 class OpSetLocal3 : public OpCode { 11934 public: 11935 OpSetLocal3(); 11936 virtual ~OpSetLocal3(); 11937 11938 virtual bool parse( Reader *r, int end, Context *ctx ); 11939 virtual void dump( int indent, Context *ctx ); 11940 virtual size_t calcSize( Context *ctx, int start_at ); 11941 virtual void write( Writer *w, Context *ctx ); 11942 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11943 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11944 11945 static OpSetLocal3* get( Reader *r, int end, Context *ctx ); 11946 static OpSetLocal3* getByName( const char *name ); 11947 11948 11949 11950 protected: 11951 11952 static int id; 11953 11954 }; 11955 11956 class OpDebugReg : public OpCode { 11957 public: 11958 OpDebugReg(); 11959 virtual ~OpDebugReg(); 11960 11961 virtual bool parse( Reader *r, int end, Context *ctx ); 11962 virtual void dump( int indent, Context *ctx ); 11963 virtual size_t calcSize( Context *ctx, int start_at ); 11964 virtual void write( Writer *w, Context *ctx ); 11965 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 11966 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 11967 11968 static OpDebugReg* get( Reader *r, int end, Context *ctx ); 11969 static OpDebugReg* getByName( const char *name ); 11970 11971 std::uint8_t getunknown(); 11972 void setunknown( std::uint8_t ); 11973 std::uint32_t getname(); 11974 void setname( std::uint32_t ); 11975 std::uint32_t getreg(); 11976 void setreg( std::uint32_t ); 11977 std::uint32_t getline(); 11978 void setline( std::uint32_t ); 11979 11980 11981 protected: 11982 std::uint8_t unknown; // byte 11983 std::uint32_t name; // u30 11984 std::uint32_t reg; // u30 11985 std::uint32_t line; // u30 11986 11987 static int id; 11988 11989 }; 11990 11991 class OpDebugLine : public OpCode { 11992 public: 11993 OpDebugLine(); 11994 virtual ~OpDebugLine(); 11995 11996 virtual bool parse( Reader *r, int end, Context *ctx ); 11997 virtual void dump( int indent, Context *ctx ); 11998 virtual size_t calcSize( Context *ctx, int start_at ); 11999 virtual void write( Writer *w, Context *ctx ); 12000 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 12001 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 12002 12003 static OpDebugLine* get( Reader *r, int end, Context *ctx ); 12004 static OpDebugLine* getByName( const char *name ); 12005 12006 std::uint32_t getline(); 12007 void setline( std::uint32_t ); 12008 12009 12010 protected: 12011 std::uint32_t line; // u30 12012 12013 static int id; 12014 12015 }; 12016 12017 class OpDebugFile : public OpCode { 12018 public: 12019 OpDebugFile(); 12020 virtual ~OpDebugFile(); 12021 12022 virtual bool parse( Reader *r, int end, Context *ctx ); 12023 virtual void dump( int indent, Context *ctx ); 12024 virtual size_t calcSize( Context *ctx, int start_at ); 12025 virtual void write( Writer *w, Context *ctx ); 12026 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 12027 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 12028 12029 static OpDebugFile* get( Reader *r, int end, Context *ctx ); 12030 static OpDebugFile* getByName( const char *name ); 12031 12032 std::uint32_t getfile(); 12033 void setfile( std::uint32_t ); 12034 12035 12036 protected: 12037 std::uint32_t file; // u30 12038 12039 static int id; 12040 12041 }; 12042 12043 class OpBkPtLine : public OpCode { 12044 public: 12045 OpBkPtLine(); 12046 virtual ~OpBkPtLine(); 12047 12048 virtual bool parse( Reader *r, int end, Context *ctx ); 12049 virtual void dump( int indent, Context *ctx ); 12050 virtual size_t calcSize( Context *ctx, int start_at ); 12051 virtual void write( Writer *w, Context *ctx ); 12052 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 12053 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 12054 12055 static OpBkPtLine* get( Reader *r, int end, Context *ctx ); 12056 static OpBkPtLine* getByName( const char *name ); 12057 12058 std::uint32_t getline(); 12059 void setline( std::uint32_t ); 12060 12061 12062 protected: 12063 std::uint32_t line; // u30 12064 12065 static int id; 12066 12067 }; 12068 12069 class OpTimestamp : public OpCode { 12070 public: 12071 OpTimestamp(); 12072 virtual ~OpTimestamp(); 12073 12074 virtual bool parse( Reader *r, int end, Context *ctx ); 12075 virtual void dump( int indent, Context *ctx ); 12076 virtual size_t calcSize( Context *ctx, int start_at ); 12077 virtual void write( Writer *w, Context *ctx ); 12078 virtual void writeXML( xmlNodePtr xml, Context *ctx ); 12079 virtual void parseXML( xmlNodePtr xml, Context *ctx ); 12080 12081 static OpTimestamp* get( Reader *r, int end, Context *ctx ); 12082 static OpTimestamp* getByName( const char *name ); 12083 12084 12085 12086 protected: 12087 12088 static int id; 12089 12090 }; 12091 12092 12093 } 12094 #endif 12095