-DECLARE(abc_multiname);
-DECLARE(abc_namespace);
-
-DECLARE_LIST(abc_multiname);
-
-typedef struct _abc_method {
- abc_multiname_t*return_type;
- abc_multiname_list_t*parameters;
+DECLARE(abc_class);
+DECLARE(abc_exception);
+DECLARE(abc_asset);
+DECLARE(asset_dependency);
+DECLARE(asset_tag);
+DECLARE_LIST(abc_asset);
+DECLARE_LIST(asset_dependency);
+DECLARE_LIST(asset_tag);
+DECLARE_LIST(abc_exception);
+DECLARE_LIST(TAG);
+
+#include "code.h"
+#include "opcodes.h"
+
+DECLARE(trait);
+
+
+#define METHOD_NEED_ARGUMENTS 1
+#define METHOD_NEED_ACTIVATION 2
+#define METHOD_NEED_REST 4
+#define METHOD_HAS_OPTIONAL 8
+#define METHOD_SET_DXNS 0x40
+#define METHOD_HAS_PARAM_NAMES 0x80
+
+struct _abc_method {
+ multiname_t*return_type;
+ multiname_list_t*parameters;
+ constant_list_t*optional_parameters;