root/src/abctypes.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


/*
    Ming, an SWF output library
    Copyright (C) 2007 Klaus Rechert

    This library is free software; you can redistribute it and/or
    modify it under the terms of the GNU Lesser General Public
    License as published by the Free Software Foundation; either
    version 2.1 of the License, or (at your option) any later version.

    This library is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    Lesser General Public License for more details.

    You should have received a copy of the GNU Lesser General Public
    License along with this library; if not, write to the Free Software
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
*/

#ifndef __ABCTYPES_H_
#define __ABCTYPES_H_

typedef enum {
        __add           = 0xa0,
        __add_i         = 0xc5,
        __astype        = 0x86,
        __astypelate    = 0x87,
        __bitand        = 0xa8,
        __bitnot        = 0x97,
        __bitor         = 0xa9,
        __bitxor        = 0xaa,
        __call          = 0x41,
        __callmethod    = 0x43,
        __callproperty  = 0x46,
        __callproplex   = 0x4c,
        __callpropvoid  = 0x4f,
        __callstatic    = 0x44,
        __callsuper     = 0x45,
        __callsupervoid = 0x4e,
        __checkfilter   = 0x78,
        __coerce        = 0x80,
        __coerce_a      = 0x82,
        __coerce_s      = 0x85,
        __construct     = 0x42,
        __constructprop = 0x4a,
        __constructsuper= 0x49,
        __convert_b     = 0x76,
        __convert_i     = 0x73,
        __convert_d     = 0x75,
        __convert_o     = 0x77,
        __convert_u     = 0x74,
        __convert_s     = 0x70,
        __debug         = 0xef,
        __debugfile     = 0xf1,
        __debugline     = 0xf0,
        __declocal      = 0x94,
        __declocal_i    = 0xc3,
        __decrement     = 0x93,
        __decrement_i   = 0xc1,
        __deleteproperty= 0x6a,
        __divide        = 0xa3,
        __dup           = 0x2a,
        __dxns          = 0x06,
        __dxnslate      = 0x07,
        __equals        = 0xab,
        __esc_xattr     = 0x72,
        __esc_xelem     = 0x71,
        __findproperty  = 0x5d,
        __getdescendants= 0x59,
        __getglobalscope= 0x64,
        __getglobalslot = 0x6e,
        __getlex        = 0x60,
        __getlocal      = 0x62,
        __getlocal_1    = 0xd0,
        __getlocal_2    = 0xd1,
        __getlocal_3    = 0xd2,
        __getlocal_4    = 0xd3,
        __getproperty   = 0x66,
        __getscopeobject= 0x65,
        __getslot       = 0x6c,
        __getsuper      = 0x04,
        __greaterequals = 0x00, /* unknow */
        __greaterthan   = 0xaf, 
        __hasnext       = 0x1f,
        __hasnext2      = 0x32,
        __ifeq          = 0x13,
        __iffalse       = 0x12,
        __ifge          = 0x18,
        __ifgt          = 0x17,
        __ifle          = 0x16,
        __iflt          = 0x15,
        __ifnge         = 0x0f,
        __ifngt         = 0x0e,
        __ifnle         = 0x0d,
        __ifnlt         = 0x0c,
        __ifne          = 0x14,
        __ifstricteq    = 0x19,
        __ifstrictne    = 0x1a,
        __iftrue        = 0x11,
        __in            = 0xb4,
        __inclocal      = 0x92,
        __inclocal_i    = 0xc2,
        __increment     = 0x91,
        __increment_i   = 0xc0,
        __initproperty  = 0x68,
        __instanceof    = 0xb1,
        __istype        = 0xb2,
        __istypelate    = 0xb3,
        __jump          = 0x10,
        __kill          = 0x08,
        __label         = 0x09,
        __lessequals    = 0xae,
        __lessthan      = 0xad,
        __lookupswitch  = 0x1b,
        __lsshift       = 0xa5,
        __modulo        = 0xa4,
        __multiply      = 0xa2,
        __multiply_i    = 0xc7,
        __negate        = 0x90,
        __negate_i      = 0xc4,
        __newactivation = 0x57,
        __newarray      = 0x56,
        __newcatch      = 0x5a,
        __newclass      = 0x58,
        __newfunction   = 0x40,
        __newobject     = 0x55,
        __nextname      = 0x1e,
        __nextvalue     = 0x23,
        __nop           = 0x02,
        __not           = 0x96,
        __pop           = 0x29,
        __popscope      = 0x1d,
        __pushbyte      = 0x24,
        __pushdouble    = 0x2f,
        __pushfalse     = 0x27,
        __pushint       = 0x2d,
        __pushnamespace = 0x31,
        __pushnan       = 0x28,
        __pushnull      = 0x20,
        __pushscope     = 0x30,
        __pushshort     = 0x25,
        __pushstring    = 0x2c,
        __pushtrue      = 0x26,
        __pushuint      = 0x2e,
        __pushundefined = 0x21,
        __pushwith      = 0x1c,
        __returnvalue   = 0x48,
        __returnvoid    = 0x47,
        __rshift        = 0xa6,
        __setlocal      = 0x63,
        __setlocal_0    = 0xd4,
        __setlocal_1    = 0xd5,
        __setlocal_2    = 0xd6,
        __setlocal_3    = 0xd7,
        __setglobalslot = 0x6f,
        __setproperty   = 0x61,
        __setslot       = 0x6d,
        __setsuper      = 0x05,
        __strictequals  = 0xac,
        __subtract      = 0xa1,
        __subtract_i    = 0xc6,
        __swap          = 0x2b,
        __throw         = 0x03,
        __abc_typeof    = 0x95,
        __urshift       = 0xa7,
} SWFAbcOpCode;

/* ABC Constants */
#define ABC_CONST_QNAME         0x07
#define ABC_CONST_QNAME_A       0x0D
#define ABC_CONST_RTQNAME       0x0F
#define ABC_CONST_RTQNAME_A     0x10
#define ABC_CONST_RTQNAME_L     0x11
#define ABC_CONST_RTQNAME_LA    0x12
#define ABC_CONST_MULTINAME     0x09
#define ABC_CONST_MULTINAME_A   0x0E
#define ABC_CONST_MULTINAME_L   0x1B
#define ABC_CONST_MULTINAME_LA  0x1C
#define ABC_INT                 0x03
#define ABC_UINT                0x04
#define ABC_DOUBLE              0x06
#define ABC_UTF8                0x01
#define ABC_TRUE                0x0B
#define ABC_FALSE               0x0A
#define ABC_NULL                0x0C
#define ABC_UNDEF               0x00
#define ABC_NAMESPACE           0x08
#define ABC_PACKAGE_NS          0x16
#define ABC_PACKAGE_INTERNAL_NS 0x17
#define ABC_PROTECTED_NS        0x18
#define ABC_EXPLICIT_NS         0x19
#define ABC_STATIC_PROTECTED_NS 0x1A
#define ABC_PRIVATE_NS          0x05

/* method_info flags */
#define ABC_METHOD_NEED_ARGS            0x01
#define ABC_METHOD_NEED_ACTIVATION      0x02
#define ABC_METHOD_NEED_REST            0x04
#define ABC_METHOD_HAS_OPTIONAL         0x08
#define ABC_METHOD_SET_DXNS             0x40
#define ABC_METHOD_HAS_PARAM_NAMES      0x80

/* instance_info flags */
#define ABC_CLASS_SEALED                0x01
#define ABC_CLASS_FINAL                 0x02
#define ABC_CLASS_INTERFACE             0x04
#define ABC_CLASS_PROTECTED_NS          0x08

/* Trait Constants */
#define ABC_CONST_TRAIT_SLOT            0x00
#define ABC_CONST_TRAIT_METHOD          0x01
#define ABC_CONST_TRAIT_GETTER          0x02
#define ABC_CONST_TRAIT_SETTER          0x03
#define ABC_CONST_TRAIT_CLASS           0x04
#define ABC_CONST_TRAIT_FUNCTION        0x05
#define ABC_CONST_TRAIT_CONST           0x06

#define ABC_TRAIT_ATTR_FINAL            0x01
#define ABC_TRAIT_ATTR_OVERRIDE         0x02
#define ABC_TRAIT_ATTR_METADATA         0x04

#endif

/* [<][>][^][v][top][bottom][index][help] */