3 import flash.utils.ByteArray;
5 public class OpWriter {
6 public function OpWriter() : void {
9 protected var o : Output;
10 protected function _int(i : int) : void {
13 protected function b(v : int) : void {
16 protected function reg(v : int) : void {
19 protected function idx(i : Index) : void {
23 var i1 : int = $e.params[0];
29 protected function jumpCode(j : JumpStyle) : int {
30 return function($this:OpWriter) : int {
101 protected function operationCode(o : Operation) : int {
102 return function($this:OpWriter) : int {
237 public function write(op : OpCode) : void {
238 var $e : enum = (op);
253 var v : Index = $e.params[0];
259 var v2 : Index = $e.params[0];
265 var r : int = $e.params[0];
275 var delta : int = $e.params[1], j : JumpStyle = $e.params[0];
277 this.b(this.jumpCode(j));
278 this.o.writeInt24(delta);
281 var deltas : Array = $e.params[1], def : int = $e.params[0];
284 this.o.writeInt24(def);
285 this._int(deltas.length - 1);
288 while(_g < deltas.length) {
289 var d : int = deltas[_g];
291 this.o.writeInt24(d);
324 var v3 : int = $e.params[0];
327 this.o.writeInt8(v3);
330 var v4 : int = $e.params[0];
360 var v5 : Index = $e.params[0];
366 var v6 : Index = $e.params[0];
372 var v7 : Index = $e.params[0];
382 var v8 : Index = $e.params[0];
388 var r2 : int = $e.params[1], r1 : int = $e.params[0];
395 var f : Index = $e.params[0];
401 var n : int = $e.params[0];
407 var n2 : int = $e.params[0];
413 var n3 : int = $e.params[1], s : int = $e.params[0];
420 var n4 : int = $e.params[1], m : Index = $e.params[0];
427 var n5 : int = $e.params[1], p : Index = $e.params[0];
434 var n6 : int = $e.params[1], p2 : Index = $e.params[0];
449 var n7 : int = $e.params[0];
455 var n8 : int = $e.params[1], p3 : Index = $e.params[0];
462 var n9 : int = $e.params[1], p4 : Index = $e.params[0];
469 var n10 : int = $e.params[1], p5 : Index = $e.params[0];
476 var n11 : int = $e.params[1], p6 : Index = $e.params[0];
483 var n12 : int = $e.params[0];
489 var n13 : int = $e.params[0];
499 var c : Index = $e.params[0];
505 var c2 : int = $e.params[0];
511 var p7 : Index = $e.params[0];
517 var p8 : Index = $e.params[0];
523 var d2 : Index = $e.params[0];
529 var p9 : Index = $e.params[0];
535 var p10 : Index = $e.params[0];
541 var r3 : int = $e.params[0];
563 var r4 : int = $e.params[0];
589 var n14 : int = $e.params[0];
595 var p11 : Index = $e.params[0];
601 var p12 : Index = $e.params[0];
607 var p13 : Index = $e.params[0];
613 var s2 : int = $e.params[0];
619 var s3 : int = $e.params[0];
661 var t : Index = $e.params[0];
675 var t2 : Index = $e.params[0];
685 var r5 : int = $e.params[0];
691 var r6 : int = $e.params[0];
705 var t3 : Index = $e.params[0];
711 var r7 : int = $e.params[0];
717 var r8 : int = $e.params[0];
731 var line : int = $e.params[2], r9 : int = $e.params[1], name : Index = $e.params[0];
739 var line2 : int = $e.params[0];
745 var file : Index = $e.params[0];
751 var n15 : int = $e.params[0];
761 var op1 : Operation = $e.params[0];
763 this.b(this.operationCode(op1));
766 var byte : int = $e.params[0];
772 public function getBytes() : ByteArray {
773 return this.o.getBytes();
775 static public function writeInt(o : Output,n : int) : void {
776 var e : int = n >>> 28;
777 var d : int = (n >> 21) & 127;
778 var c : int = (n >> 14) & 127;
779 var b : int = (n >> 7) & 127;
780 var a : int = n & 127;
781 if(b != 0 || c != 0 || d != 0 || e != 0) {
782 o.writeChar(a | 128);
783 if(c != 0 || d != 0 || e != 0) {
784 o.writeChar(b | 128);
785 if(d != 0 || e != 0) {
786 o.writeChar(c | 128);
788 o.writeChar(d | 128);