#define YYBISON_VERSION "2.4"
/* Skeleton name. */
-#define YYSKELETON_NAME "yacc.c"
+#define YYSKELETON_NAME "./skeleton.m4"
/* Pure parsers. */
#define YYPURE 0
#define YYLSP_NEEDED 0
/* Substitute the variable and function names. */
-#define yyparse avm2_parse
-#define yylex avm2_lex
-#define yyerror avm2_error
-#define yylval avm2_lval
-#define yychar avm2_char
-#define yydebug avm2_debug
-#define yynerrs avm2_nerrs
+#define yyparse a3_parse
+#define yylex a3_lex
+#define yyerror a3_error
+#define yylval a3_lval
+#define yychar a3_char
+#define yydebug a3_debug
+#define yynerrs a3_nerrs
/* Copy the first part of user declarations. */
-/* Line 189 of yacc.c */
+/* Line 198 of skeleton.m4 */
#line 23 "parser.y"
#include <stdlib.h>
#include "registry.h"
#include "code.h"
#include "opcodes.h"
+#include "compiler.h"
+extern int a3_lex();
-/* Line 189 of yacc.c */
-#line 96 "parser.tab.c"
+
+/* Line 198 of skeleton.m4 */
+#line 99 "parser.tab.c"
/* Enabling traces. */
#ifndef YYDEBUG
know about them. */
enum yytokentype {
T_IDENTIFIER = 258,
- T_STRING = 259,
- T_REGEXP = 260,
- T_EMPTY = 261,
- T_INT = 262,
- T_UINT = 263,
- T_BYTE = 264,
- T_SHORT = 265,
- T_FLOAT = 266,
- T_FOR = 267,
- T_WHILE = 268,
- T_DO = 269,
- T_SWITCH = 270,
- KW_IMPLEMENTS = 271,
- KW_NAMESPACE = 272,
- KW_PACKAGE = 273,
- KW_PROTECTED = 274,
- KW_PUBLIC = 275,
- KW_PRIVATE = 276,
- KW_USE = 277,
- KW_INTERNAL = 278,
- KW_NEW = 279,
- KW_NATIVE = 280,
- KW_FUNCTION = 281,
- KW_FINALLY = 282,
- KW_UNDEFINED = 283,
- KW_CONTINUE = 284,
- KW_CLASS = 285,
- KW_CONST = 286,
- KW_CATCH = 287,
- KW_CASE = 288,
- KW_SET = 289,
- KW_VOID = 290,
- KW_THROW = 291,
- KW_STATIC = 292,
- KW_WITH = 293,
- KW_INSTANCEOF = 294,
- KW_IMPORT = 295,
- KW_RETURN = 296,
- KW_TYPEOF = 297,
- KW_INTERFACE = 298,
- KW_NULL = 299,
- KW_VAR = 300,
- KW_DYNAMIC = 301,
- KW_OVERRIDE = 302,
- KW_FINAL = 303,
- KW_EACH = 304,
- KW_GET = 305,
- KW_TRY = 306,
- KW_SUPER = 307,
- KW_EXTENDS = 308,
- KW_FALSE = 309,
- KW_TRUE = 310,
- KW_BOOLEAN = 311,
- KW_UINT = 312,
- KW_INT = 313,
- KW_NUMBER = 314,
- KW_STRING = 315,
- KW_DEFAULT = 316,
- KW_DELETE = 317,
- KW_IF = 318,
- KW_ELSE = 319,
- KW_BREAK = 320,
- KW_IS = 321,
- KW_IN = 322,
- KW_AS = 323,
- T_EQEQ = 324,
- T_EQEQEQ = 325,
- T_NE = 326,
- T_NEE = 327,
- T_LE = 328,
- T_GE = 329,
- T_ORBY = 330,
- T_DIVBY = 331,
- T_MODBY = 332,
- T_MULBY = 333,
- T_PLUSBY = 334,
- T_MINUSBY = 335,
- T_SHRBY = 336,
- T_SHLBY = 337,
- T_USHRBY = 338,
- T_OROR = 339,
- T_ANDAND = 340,
- T_COLONCOLON = 341,
- T_MINUSMINUS = 342,
- T_PLUSPLUS = 343,
- T_DOTDOT = 344,
- T_DOTDOTDOT = 345,
- T_SHL = 346,
- T_USHR = 347,
- T_SHR = 348,
- prec_none = 349,
- below_semicolon = 350,
- below_assignment = 351,
- below_minus = 354,
- minusminus_prefix = 355,
- plusplus_prefix = 356,
- below_curly = 357,
- above_identifier = 358,
- below_else = 359,
- above_function = 360
+ T_NAMESPACE = 259,
+ T_STRING = 260,
+ T_REGEXP = 261,
+ T_EMPTY = 262,
+ T_INT = 263,
+ T_UINT = 264,
+ T_BYTE = 265,
+ T_SHORT = 266,
+ T_FLOAT = 267,
+ T_FOR = 268,
+ T_WHILE = 269,
+ T_DO = 270,
+ T_SWITCH = 271,
+ KW_IMPLEMENTS = 272,
+ KW_NAMESPACE = 273,
+ KW_PACKAGE = 274,
+ KW_PROTECTED = 275,
+ KW_PUBLIC = 276,
+ KW_PRIVATE = 277,
+ KW_USE = 278,
+ KW_INTERNAL = 279,
+ KW_NEW = 280,
+ KW_NATIVE = 281,
+ KW_FUNCTION = 282,
+ KW_FINALLY = 283,
+ KW_UNDEFINED = 284,
+ KW_CONTINUE = 285,
+ KW_CLASS = 286,
+ KW_CONST = 287,
+ KW_CATCH = 288,
+ KW_CASE = 289,
+ KW_SET = 290,
+ KW_VOID = 291,
+ KW_THROW = 292,
+ KW_STATIC = 293,
+ KW_WITH = 294,
+ KW_INSTANCEOF = 295,
+ KW_IMPORT = 296,
+ KW_RETURN = 297,
+ KW_TYPEOF = 298,
+ KW_INTERFACE = 299,
+ KW_NULL = 300,
+ KW_VAR = 301,
+ KW_DYNAMIC = 302,
+ KW_OVERRIDE = 303,
+ KW_FINAL = 304,
+ KW_EACH = 305,
+ KW_GET = 306,
+ KW_TRY = 307,
+ KW_SUPER = 308,
+ KW_EXTENDS = 309,
+ KW_FALSE = 310,
+ KW_TRUE = 311,
+ KW_BOOLEAN = 312,
+ KW_UINT = 313,
+ KW_INT = 314,
+ KW_NUMBER = 315,
+ KW_STRING = 316,
+ KW_DEFAULT = 317,
+ KW_DELETE = 318,
+ KW_IF = 319,
+ KW_ELSE = 320,
+ KW_BREAK = 321,
+ KW_IS = 322,
+ KW_IN = 323,
+ KW_AS = 324,
+ T_DICTSTART = 325,
+ T_EQEQ = 326,
+ T_EQEQEQ = 327,
+ T_NE = 328,
+ T_NEE = 329,
+ T_LE = 330,
+ T_GE = 331,
+ T_ORBY = 332,
+ T_DIVBY = 333,
+ T_MODBY = 334,
+ T_MULBY = 335,
+ T_PLUSBY = 336,
+ T_MINUSBY = 337,
+ T_XORBY = 338,
+ T_SHRBY = 339,
+ T_SHLBY = 340,
+ T_USHRBY = 341,
+ T_OROR = 342,
+ T_ANDAND = 343,
+ T_COLONCOLON = 344,
+ T_MINUSMINUS = 345,
+ T_PLUSPLUS = 346,
+ T_DOTDOT = 347,
+ T_DOTDOTDOT = 348,
+ T_SHL = 349,
+ T_USHR = 350,
+ T_SHR = 351,
+ prec_none = 352,
+ below_semicolon = 353,
+ below_assignment = 354,
+ below_minus = 356,
+ minusminus_prefix = 357,
+ plusplus_prefix = 358,
+ below_curly = 359,
+ new2 = 360,
+ above_identifier = 361,
+ below_else = 362,
+ above_function = 363
};
#endif
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union
-/* Line 214 of yacc.c */
-#line 41 "parser.y"
+/* Line 223 of skeleton.m4 */
+#line 44 "parser.y"
tokenunion
{
-/* Line 214 of yacc.c */
-#line 41 "parser.y"
+/* Line 223 of skeleton.m4 */
+#line 44 "parser.y"
enum yytokentype token;
int flags;
-/* Line 214 of yacc.c */
-#line 268 "parser.tab.c"
+/* Line 223 of skeleton.m4 */
+#line 275 "parser.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
/* Copy the second part of user declarations. */
-/* Line 264 of yacc.c */
-#line 251 "parser.y"
+/* Line 273 of skeleton.m4 */
+#line 259 "parser.y"
-static int yyerror(char*s)
+static int a3_error(char*s)
{
syntaxerror("%s", s);
return 0; //make gcc happy
}
+
static char* concat2(const char* t1, const char* t2)
{
int l1 = strlen(t1);
DECLARE_LIST(import);
+DECLARE(methodstate);
+DECLARE_LIST(methodstate);
+
typedef struct _classstate {
/* class data */
classinfo_t*info;
abc_class_t*abc;
- code_t*init;
- code_t*static_init;
+
+ methodstate_t*init;
+ methodstate_t*static_init;
+ //code_t*init;
+ //code_t*static_init;
+
char has_constructor;
} classstate_t;
-typedef struct _methodstate {
+struct _methodstate {
/* method data */
- memberinfo_t*info;
+ methodinfo_t*info;
char late_binding;
char is_constructor;
char has_super;
char is_global;
+ int variable_count;
+
+ char inner;
+ abc_method_t*abc;
+ int var_index; // for inner methods
+
+ code_t*header;
abc_exception_list_t*exceptions;
-} methodstate_t;
+
+ methodstate_list_t*innerfunctions;
+};
typedef struct _state {
struct _state*old;
import_list_t*wildcard_imports;
dict_t*imports;
char has_own_imports;
+ char new_vars; // e.g. transition between two functions
classstate_t*cls;
methodstate_t*method;
typedef struct _global {
abc_file_t*file;
abc_script_t*init;
-
- int variable_count;
+ dict_t*token2info;
+ dict_t*file2token2info;
} global_t;
static global_t*global = 0;
#define MULTINAME(m,x) \
multiname_t m;\
namespace_t m##_ns;\
- registry_fill_multiname(&m, &m##_ns, x);
+ (x)->package; \
+ registry_fill_multiname(&m, &m##_ns, (slotinfo_t*)(x));
#define MEMBER_MULTINAME(m,f,n) \
multiname_t m;\
namespace_t m##_ns;\
if(f) { \
- m##_ns = flags2namespace(f->flags, ""); \
+ m##_ns.access = (f)->access; \
+ m##_ns.name = ""; \
m.type = QNAME; \
m.ns = &m##_ns; \
m.namespace_set = 0; \
state_t*leaving = state;
state = state->old;
+
+ if(as3_pass>1 && leaving->method && leaving->method != state->method && !leaving->method->inner) {
+ free(leaving->method);
+ leaving->method=0;
+ }
+ if(as3_pass>1 && leaving->cls && leaving->cls != state->cls) {
+ free(leaving->cls);
+ leaving->cls=0;
+ }
+
state_destroy(leaving);
}
-void initialize_parser()
-{
- global = rfx_calloc(sizeof(global_t));
- global->file = abc_file_new();
- global->file->flags &= ~ABCFILE_LAZY;
- global->variable_count = 1;
- global->init = abc_initscript(global->file);
- code_t*c = global->init->method->body->code;
- c = abc_getlocal_0(c);
- c = abc_pushscope(c);
- /*c = abc_findpropstrict(c, "[package]::trace");
- c = abc_pushstring(c, "[entering global init function]");
- c = abc_callpropvoid(c, "[package]::trace", 1);*/
- global->init->method->body->code = c;
-}
+static code_t* method_header(methodstate_t*m);
+static code_t* wrap_function(code_t*c,code_t*header, code_t*body);
+static void function_initvars(methodstate_t*m, params_t*params, int flags);
+
+static char* internal_filename_package = 0;
void initialize_file(char*filename)
{
+ if(state) {
+ syntaxerror("invalid call to initialize_file during parsing of another file");
+ }
new_state();
- state->package = filename;
- // needed for state->method->late_binding:
- state->method = rfx_calloc(sizeof(methodstate_t));
+ state->package = internal_filename_package = strdup(filename);
+
+ global->token2info = dict_lookup(global->file2token2info,
+ current_filename // use long version
+ );
+ if(!global->token2info) {
+ global->token2info = dict_new2(&ptr_type);
+ dict_put(global->file2token2info, current_filename, global->token2info);
+ }
+
+ if(as3_pass==1) {
+ state->method = rfx_calloc(sizeof(methodstate_t));
+ dict_put(global->token2info, (void*)(ptroff_t)as3_tokencount, state->method);
+ } else {
+ state->method = dict_lookup(global->token2info, (void*)(ptroff_t)as3_tokencount);
+ function_initvars(state->method, 0, 0);
+ global->init = abc_initscript(global->file);
+ state->method->late_binding = 1; // init scripts use getglobalscope, so we need a getlocal0/pushscope
+ }
}
+
void finish_file()
{
if(!state || state->level!=1) {
- syntaxerror("unexpected end of file");
+ syntaxerror("unexpected end of file in pass %d", as3_pass);
+ }
+
+ if(as3_pass==2) {
+ code_t*header = method_header(state->method);
+ code_t*c = wrap_function(header, 0, global->init->method->body->code);
+ global->init->method->body->code = c;
+ free(state->method);state->method=0;
}
+
+ //free(state->package);state->package=0; // used in registry
state_destroy(state);state=0;
}
+void initialize_parser()
+{
+ global = rfx_calloc(sizeof(global_t));
+ global->file = abc_file_new();
+ global->file->flags &= ~ABCFILE_LAZY;
+ global->file2token2info = dict_new();
+ global->token2info = 0;
+}
+
void* finish_parser()
{
- code_t*c = global->init->method->body->code;
- /*c = abc_findpropstrict(c, "[package]::trace");
- c = abc_pushstring(c, "[leaving global init function]");
- c = abc_callpropvoid(c, "[package]::trace", 1);*/
- c = abc_returnvoid(c);
- global->init->method->body->code = c;
+ dict_free_all(global->file2token2info, 1, (void*)dict_destroy);
+
+ global->token2info=0;
+
return global->file;
}
if(v) {
return v;
}
+ if(s->new_vars)
+ break;
s = s->old;
}
return 0;
return dict_lookup(state->vars, name)!=0;
}
code_t*defaultvalue(code_t*c, classinfo_t*type);
-static int new_variable(char*name, classinfo_t*type, char init)
+static int new_variable(const char*name, classinfo_t*type, char init)
{
NEW(variable_t, v);
- v->index = global->variable_count;
+ v->index = state->method->variable_count;
v->type = type;
v->init = init;
dict_put(state->vars, name, v);
- return global->variable_count++;
+ return state->method->variable_count++;
}
#define TEMPVARNAME "__as3_temp__"
static int gettempvar()
return c;
}
+#define parserassert(b) {if(!(b)) parsererror(__FILE__, __LINE__,__func__);}
+
+static void parsererror(const char*file, int line, const char*f)
+{
+ syntaxerror("internal error in %s, %s:%d", f, file, line);
+}
+
+
+static code_t* method_header(methodstate_t*m)
+{
+ code_t*c = 0;
+ if(m->late_binding && !m->inner) {
+ c = abc_getlocal_0(c);
+ c = abc_pushscope(c);
+ }
+ /*if(m->innerfunctions) {
+ c = abc_newactivation(c);
+ c = abc_pushscope(c);
+ }*/
+ methodstate_list_t*l = m->innerfunctions;
+ while(l) {
+ parserassert(l->methodstate->abc);
+ c = abc_newfunction(c, l->methodstate->abc);
+ c = abc_setlocal(c, l->methodstate->var_index);
+ free(l->methodstate);l->methodstate=0;
+ l = l->next;
+ }
+ if(m->header) {
+ c = code_append(c, m->header);
+ m->header = 0;
+ }
+ if(m->is_constructor && !m->has_super) {
+ // call default constructor
+ c = abc_getlocal_0(c);
+ c = abc_constructsuper(c, 0);
+ }
+ list_free(m->innerfunctions);
+ m->innerfunctions = 0;
+ return c;
+}
+
+
static code_t* wrap_function(code_t*c,code_t*header, code_t*body)
{
c = code_append(c, header);
new_state();
/*printf("entering package \"%s\"\n", name);*/
state->package = strdup(name);
- global->variable_count = 1;
}
static void endpackage()
{
old_state();
}
+#define FLAG_PUBLIC 256
+#define FLAG_PROTECTED 512
+#define FLAG_PRIVATE 1024
+#define FLAG_PACKAGEINTERNAL 2048
+#define FLAG_NAMESPACE 4096
+
+static int flags2access(int flags)
+{
+ int access = 0;
+ if(flags&FLAG_PUBLIC) {
+ if(access&(FLAG_PRIVATE|FLAG_PROTECTED|FLAG_PACKAGEINTERNAL))
+ syntaxerror("invalid combination of access levels");
+ access = ACCESS_PACKAGE;
+ } else if(flags&FLAG_PRIVATE) {
+ if(access&(FLAG_PUBLIC|FLAG_PROTECTED|FLAG_PACKAGEINTERNAL))
+ syntaxerror("invalid combination of access levels");
+ access = ACCESS_PRIVATE;
+ } else if(flags&FLAG_PROTECTED) {
+ if(access&(FLAG_PUBLIC|FLAG_PRIVATE|FLAG_PACKAGEINTERNAL))
+ syntaxerror("invalid combination of access levels");
+ access = ACCESS_PROTECTED;
+ } else {
+ access = ACCESS_PACKAGEINTERNAL;
+ }
+ return access;
+}
+
+static void function_initvars(methodstate_t*m, params_t*params, int flags)
+{
+ if(m->inner)
+ new_variable("this", 0, 0);
+ else if(!m->is_global)
+ new_variable((flags&FLAG_STATIC)?"class":"this", state->cls?state->cls->info:0, 0);
+ else
+ new_variable("globalscope", 0, 0);
+
+ if(params) {
+ param_list_t*p=0;
+ for(p=params->list;p;p=p->next) {
+ new_variable(p->param->name, p->param->type, 0);
+ }
+ }
+
+ methodstate_list_t*l = m->innerfunctions;
+ while(l) {
+ methodstate_t*m = l->methodstate;
+ m->var_index = new_variable(m->info->name, TYPE_FUNCTION(m->info), 0);
+ l = l->next;
+ }
+}
+
+
char*as3_globalclass=0;
-static void startclass(int flags, char*classname, classinfo_t*extends, classinfo_list_t*implements, char interface)
+static void startclass(int flags, char*classname, classinfo_t*extends, classinfo_list_t*implements)
{
if(state->cls) {
syntaxerror("inner classes now allowed");
}
new_state();
- global->variable_count = 1;
- state->cls = rfx_calloc(sizeof(classstate_t));
- state->method = rfx_calloc(sizeof(methodstate_t)); // method state, for static constructor
-
token_list_t*t=0;
classinfo_list_t*mlist=0;
- if(flags&~(FLAG_PACKAGEINTERNAL|FLAG_PUBLIC|FLAG_FINAL|FLAG_DYNAMIC))
+ if(flags&~(FLAG_PACKAGEINTERNAL|FLAG_PUBLIC|FLAG_FINAL|FLAG_DYNAMIC|FLAG_INTERFACE))
syntaxerror("invalid modifier(s)");
if((flags&(FLAG_PUBLIC|FLAG_PACKAGEINTERNAL)) == (FLAG_PUBLIC|FLAG_PACKAGEINTERNAL))
int access=0;
char*package=0;
- if(!(flags&FLAG_PUBLIC) && !state->package) {
- access = ACCESS_PRIVATE; package = current_filename;
- } else if(!(flags&FLAG_PUBLIC) && state->package) {
+ if(!(flags&FLAG_PUBLIC) && state->package==internal_filename_package) {
+ access = ACCESS_PRIVATE; package = internal_filename_package;
+ } else if(!(flags&FLAG_PUBLIC) && state->package!=internal_filename_package) {
access = ACCESS_PACKAGEINTERNAL; package = state->package;
- } else if(state->package) {
+ } else if(state->package!=internal_filename_package) {
access = ACCESS_PACKAGE; package = state->package;
} else {
syntaxerror("public classes only allowed inside a package");
}
- if(registry_findclass(package, classname)) {
- syntaxerror("Package \"%s\" already contains a class called \"%s\"", package, classname);
- }
-
+ if(as3_pass==1) {
+ state->cls = rfx_calloc(sizeof(classstate_t));
+ state->cls->init = rfx_calloc(sizeof(methodstate_t));
+ state->cls->static_init = rfx_calloc(sizeof(methodstate_t));
+ /* notice: we make no effort to initialize the top variable (local0) here,
+ even though it has special meaning. We just rely on the facat
+ that pass 1 won't do anything with variables */
+
+ dict_put(global->token2info, (void*)(ptroff_t)as3_tokencount, state->cls);
- /* build info struct */
- int num_interfaces = (list_length(implements));
- state->cls->info = classinfo_register(access, package, classname, num_interfaces);
- state->cls->info->superclass = extends?extends:TYPE_OBJECT;
- int pos = 0;
- classinfo_list_t*l = implements;
- for(l=implements;l;l=l->next) {
- state->cls->info->interfaces[pos++] = l->classinfo;
+ /* set current method to constructor- all code within the class-level (except
+ static variable initializations) will be executed during construction time */
+ state->method = state->cls->init;
+
+ if(registry_find(package, classname)) {
+ syntaxerror("Package \"%s\" already contains a class called \"%s\"", package, classname);
+ }
+ /* build info struct */
+ int num_interfaces = (list_length(implements));
+ state->cls->info = classinfo_register(access, package, classname, num_interfaces);
+ state->cls->info->flags |= flags & (FLAG_DYNAMIC|FLAG_INTERFACE|FLAG_FINAL);
}
- multiname_t*extends2 = sig2mname(extends);
+ if(as3_pass == 2) {
+ state->cls = dict_lookup(global->token2info, (void*)(ptroff_t)as3_tokencount);
+
+ state->method = state->cls->init;
+ parserassert(state->cls && state->cls->info);
+
+ function_initvars(state->cls->init, 0, 0);
+ function_initvars(state->cls->static_init, 0, 0);
+
+ if(extends && (extends->flags & FLAG_FINAL))
+ syntaxerror("Can't extend final class '%s'", extends->name);
+
+ /* fill out interfaces and extends (we couldn't resolve those during the first pass) */
+ state->cls->info->superclass = extends?extends:TYPE_OBJECT;
+ int pos = 0;
+ classinfo_list_t*l = implements;
+ for(l=implements;l;l=l->next) {
+ if(!(l->classinfo->flags & FLAG_INTERFACE))
+ syntaxerror("'%s' is not an interface", l->classinfo->name);
+ state->cls->info->interfaces[pos++] = l->classinfo;
+ }
- MULTINAME(classname2,state->cls->info);
+ /* generate the abc code for this class */
+ MULTINAME(classname2,state->cls->info);
+ multiname_t*extends2 = sig2mname(extends);
- /*if(extends) {
- state->cls_init = abc_getlocal_0(state->cls_init);
- state->cls_init = abc_constructsuper(state->cls_init, 0);
- }*/
+ state->cls->abc = abc_class_new(global->file, &classname2, extends2);
+ if(state->cls->info->flags&FLAG_FINAL) abc_class_final(state->cls->abc);
+ if(!(state->cls->info->flags&FLAG_DYNAMIC)) abc_class_sealed(state->cls->abc);
+ if(state->cls->info->flags&FLAG_INTERFACE) {
+ abc_class_interface(state->cls->abc);
+ }
- state->cls->abc = abc_class_new(global->file, &classname2, extends2);
- if(flags&FLAG_FINAL) abc_class_final(state->cls->abc);
- if(!(flags&FLAG_DYNAMIC)) abc_class_sealed(state->cls->abc);
- if(interface) {
- state->cls->info->flags |= CLASS_INTERFACE;
- abc_class_interface(state->cls->abc);
- }
+ abc_class_protectedNS(state->cls->abc, classname);
- abc_class_protectedNS(state->cls->abc, classname);
+ for(mlist=implements;mlist;mlist=mlist->next) {
+ MULTINAME(m, mlist->classinfo);
+ abc_class_add_interface(state->cls->abc, &m);
+ }
- for(mlist=implements;mlist;mlist=mlist->next) {
- MULTINAME(m, mlist->classinfo);
- abc_class_add_interface(state->cls->abc, &m);
- }
+ /* write the construction code for this class to the global init
+ function */
+ int slotindex = abc_initscript_addClassTrait(global->init, &classname2, state->cls->abc);
- /* now write the construction code for this class */
- int slotindex = abc_initscript_addClassTrait(global->init, &classname2, state->cls->abc);
+ abc_method_body_t*m = global->init->method->body;
+ __ getglobalscope(m);
+ classinfo_t*s = extends;
- abc_method_body_t*m = global->init->method->body;
- __ getglobalscope(m);
- classinfo_t*s = extends;
+ int count=0;
+
+ while(s) {
+ //TODO: take a look at the current scope stack, maybe
+ // we can re-use something
+ s = s->superclass;
+ if(!s)
+ break;
+
+ multiname_t*s2 = sig2mname(s);
+ __ getlex2(m, s2);
+ multiname_destroy(s2);
- int count=0;
-
- while(s) {
- //TODO: take a look at the current scope stack, maybe
- // we can re-use something
- s = s->superclass;
- if(!s)
- break;
-
- multiname_t*s2 = sig2mname(s);
- __ getlex2(m, s2);
- multiname_destroy(s2);
-
- __ pushscope(m); count++;
- m->code = m->code->prev->prev; // invert
- }
- /* continue appending after last op end */
- while(m->code && m->code->next) m->code = m->code->next;
-
- /* TODO: if this is one of *our* classes, we can also
- do a getglobalscope/getslot <nr> (which references
- the init function's slots) */
- if(extends2) {
- __ getlex2(m, extends2);
- __ dup(m);
- /* notice: we get a Verify Error #1107 if the top elemnt on the scope
- stack is not the superclass */
- __ pushscope(m);count++;
- } else {
- __ pushnull(m);
- /* notice: we get a verify error #1107 if the top element on the scope
- stack is not the global object */
- __ getlocal_0(m);
- __ pushscope(m);count++;
- }
- __ newclass(m,state->cls->abc);
- while(count--) {
- __ popscope(m);
- }
- __ setslot(m, slotindex);
-
- /* flash.display.MovieClip handling */
- if(!as3_globalclass && (flags&FLAG_PUBLIC) && classinfo_equals(registry_getMovieClip(),extends)) {
- if(state->package && state->package[0]) {
- as3_globalclass = concat3(state->package, ".", classname);
+ __ pushscope(m); count++;
+ m->code = m->code->prev->prev; // invert
+ }
+ /* continue appending after last op end */
+ while(m->code && m->code->next) m->code = m->code->next;
+
+ /* TODO: if this is one of *our* classes, we can also
+ do a getglobalscope/getslot <nr> (which references
+ the init function's slots) */
+ if(extends2) {
+ __ getlex2(m, extends2);
+ __ dup(m);
+ /* notice: we get a Verify Error #1107 if the top elemnt on the scope
+ stack is not the superclass */
+ __ pushscope(m);count++;
} else {
- as3_globalclass = strdup(classname);
+ __ pushnull(m);
+ /* notice: we get a verify error #1107 if the top element on the scope
+ stack is not the global object */
+ __ getlocal_0(m);
+ __ pushscope(m);count++;
+ }
+ __ newclass(m,state->cls->abc);
+ while(count--) {
+ __ popscope(m);
+ }
+ __ setslot(m, slotindex);
+ multiname_destroy(extends2);
+
+ /* flash.display.MovieClip handling */
+
+ if(!as3_globalclass && (flags&FLAG_PUBLIC) && slotinfo_equals((slotinfo_t*)registry_getMovieClip(),(slotinfo_t*)extends)) {
+ if(state->package && state->package[0]) {
+ as3_globalclass = concat3(state->package, ".", classname);
+ } else {
+ as3_globalclass = strdup(classname);
+ }
}
}
- multiname_destroy(extends2);
}
-static void endclass()
+static void setstaticfunction(int x)
{
- if(!state->cls->has_constructor && !(state->cls->info->flags&CLASS_INTERFACE)) {
- code_t*c = 0;
- c = abc_getlocal_0(c);
- c = abc_constructsuper(c, 0);
- state->cls->init = code_append(state->cls->init, c);
- }
- if(!state->method->late_binding) {
- // class initialization code uses late binding
- code_t*c = 0;
- c = abc_getlocal_0(c);
- c = abc_pushscope(c);
- state->cls->static_init = code_append(c, state->cls->static_init);
+ if(state->cls) {
+ if(x&FLAG_STATIC) {
+ state->method = state->cls->static_init;
+ } else {
+ state->method = state->cls->init;
+ }
+ } else {
+ parserassert(state->method);
}
+}
- if(state->cls->init) {
- abc_method_t*m = abc_class_getconstructor(state->cls->abc, 0);
- m->body->code = wrap_function(0, state->cls->init, m->body->code);
- }
- if(state->cls->static_init) {
- abc_method_t*m = abc_class_getstaticconstructor(state->cls->abc, 0);
- m->body->code = wrap_function(0, state->cls->static_init, m->body->code);
+static void endclass()
+{
+ if(as3_pass == 2) {
+ if(!state->cls->has_constructor && !(state->cls->info->flags&FLAG_INTERFACE)) {
+ code_t*c = 0;
+ c = abc_getlocal_0(c);
+ c = abc_constructsuper(c, 0);
+ state->cls->init->header = code_append(state->cls->init->header, c);
+ state->cls->has_constructor=1;
+ }
+ if(state->cls->init) {
+ if(state->cls->info->flags&FLAG_INTERFACE) {
+ if(state->cls->init->header)
+ syntaxerror("interface can not have class-level code");
+ } else {
+ abc_method_t*m = abc_class_getconstructor(state->cls->abc, 0);
+ code_t*c = method_header(state->cls->init);
+ m->body->code = wrap_function(c, 0, m->body->code);
+ }
+ }
+ if(state->cls->static_init) {
+ abc_method_t*m = abc_class_getstaticconstructor(state->cls->abc, 0);
+ code_t*c = method_header(state->cls->static_init);
+ m->body->code = wrap_function(c, 0, m->body->code);
+ }
}
- free(state->cls);state->cls=0;
- free(state->method);state->method=0;
old_state();
}
}
}
-
-static int flags2access(int flags)
+static void check_override(memberinfo_t*m, int flags)
{
- int access = 0;
- if(flags&FLAG_PUBLIC) {
- if(access&(FLAG_PRIVATE|FLAG_PROTECTED|FLAG_PACKAGEINTERNAL))
- syntaxerror("invalid combination of access levels");
- access = ACCESS_PACKAGE;
- } else if(flags&FLAG_PRIVATE) {
- if(access&(FLAG_PUBLIC|FLAG_PROTECTED|FLAG_PACKAGEINTERNAL))
- syntaxerror("invalid combination of access levels");
- access = ACCESS_PRIVATE;
- } else if(flags&FLAG_PROTECTED) {
- if(access&(FLAG_PUBLIC|FLAG_PRIVATE|FLAG_PACKAGEINTERNAL))
- syntaxerror("invalid combination of access levels");
- access = ACCESS_PROTECTED;
- } else {
- access = ACCESS_PACKAGEINTERNAL;
+ if(!m)
+ return;
+ if(m->parent == state->cls->info)
+ syntaxerror("class '%s' already contains a method/slot '%s'", m->parent->name, m->name);
+ if(!m->parent)
+ syntaxerror("internal error: overriding method %s, which doesn't have parent", m->name);
+ if(m->access==ACCESS_PRIVATE)
+ return;
+ if(m->flags & FLAG_FINAL)
+ syntaxerror("can't override final member %s", m->name);
+ if((m->flags & FLAG_STATIC) && !(flags&FLAG_STATIC))
+ syntaxerror("can't override static member %s", m->name);
+ if(!(m->flags & FLAG_STATIC) && (flags&FLAG_STATIC))
+ syntaxerror("can't override non-static member %s with static declaration", m->name);
+
+ if(!(flags&FLAG_OVERRIDE)) {
+ if(m->parent && !(m->parent->flags&FLAG_INTERFACE)) {
+ if(m->kind == INFOTYPE_METHOD)
+ syntaxerror("can't override without explicit 'override' declaration");
+ else
+ syntaxerror("can't override '%s'", m->name);
+ }
}
- return access;
}
-
-static memberinfo_t*registerfunction(enum yytokentype getset, int flags, char*name, params_t*params, classinfo_t*return_type, int slot)
+static methodinfo_t*registerfunction(enum yytokentype getset, int flags, char*name, params_t*params, classinfo_t*return_type, int slot)
{
- memberinfo_t*minfo = 0;
+ methodinfo_t*minfo = 0;
+ U8 access = flags2access(flags);
if(!state->cls) {
//package method
- minfo = memberinfo_register_global(flags2access(flags), state->package, name, MEMBER_METHOD);
+ minfo = methodinfo_register_global(access, state->package, name);
minfo->return_type = return_type;
} else if(getset != KW_GET && getset != KW_SET) {
//class method
- if((minfo = registry_findmember(state->cls->info, name, 0))) {
- if(minfo->parent == state->cls->info) {
- syntaxerror("class already contains a member/method called '%s'", name);
- } else if(!minfo->parent) {
- syntaxerror("internal error: overriding method %s, which doesn't have parent", name);
- } else {
- if(!(minfo->flags&(FLAG_STATIC|FLAG_PRIVATE)))
- syntaxerror("function %s already exists in superclass. Did you forget the 'override' keyword?");
- }
+ memberinfo_t* m = registry_findmember(state->cls->info, name, 0);
+ if(m) {
+ syntaxerror("class already contains a %s '%s'", infotypename((slotinfo_t*)m), m->name);
}
- minfo = memberinfo_register(state->cls->info, name, MEMBER_METHOD);
+ minfo = methodinfo_register_onclass(state->cls->info, access, name);
minfo->return_type = return_type;
// getslot on a member slot only returns "undefined", so no need
// to actually store these
//state->minfo->slot = state->method->abc->method->trait->slot_id;
} else {
//class getter/setter
- int gs = getset==KW_GET?MEMBER_GET:MEMBER_SET;
+ int gs = getset==KW_GET?SUBTYPE_GET:SUBTYPE_SET;
classinfo_t*type=0;
if(getset == KW_GET)
type = return_type;
- else if(params->list)
+ else if(params->list && params->list->param)
type = params->list->param->type;
// not sure wether to look into superclasses here, too
- if((minfo=registry_findmember(state->cls->info, name, 0))) {
- if(minfo->kind & ~(MEMBER_GET|MEMBER_SET))
- syntaxerror("class already contains a member or method called '%s'", name);
- if(minfo->kind & gs)
+ minfo = (methodinfo_t*)registry_findmember(state->cls->info, name, 1);
+ if(minfo) {
+ if(minfo->kind!=INFOTYPE_SLOT)
+ syntaxerror("class already contains a method called '%s'", name);
+ if(!(minfo->subtype & (SUBTYPE_GETSET)))
+ syntaxerror("class already contains a field called '%s'", name);
+ if(minfo->subtype & gs)
syntaxerror("getter/setter for '%s' already defined", name);
/* make a setter or getter into a getset */
- minfo->kind |= gs;
- if(!minfo->type)
- minfo->type = type;
- else
- if(type && minfo->type != type)
+ minfo->subtype |= gs;
+ if(!minfo->return_type) {
+ minfo->return_type = type;
+ } else {
+ if(minfo && minfo->return_type != type)
syntaxerror("different type in getter and setter");
+ }
} else {
- minfo = memberinfo_register(state->cls->info, name, gs);
- minfo->type = type;
+ minfo = methodinfo_register_onclass(state->cls->info, access, name);
+ minfo->kind = INFOTYPE_SLOT; //hack
+ minfo->subtype = gs;
+ minfo->return_type = type;
}
/* can't assign a slot as getter and setter might have different slots */
//minfo->slot = slot;
}
+ if(flags&FLAG_FINAL) minfo->flags |= FLAG_FINAL;
if(flags&FLAG_STATIC) minfo->flags |= FLAG_STATIC;
- if(flags&FLAG_PUBLIC) minfo->flags |= FLAG_PUBLIC;
- if(flags&FLAG_PRIVATE) minfo->flags |= FLAG_PRIVATE;
- if(flags&FLAG_PROTECTED) minfo->flags |= FLAG_PROTECTED;
- if(flags&FLAG_PACKAGEINTERNAL) minfo->flags |= FLAG_PACKAGEINTERNAL;
if(flags&FLAG_OVERRIDE) minfo->flags |= FLAG_OVERRIDE;
return minfo;
}
+static void innerfunction(char*name, params_t*params, classinfo_t*return_type)
+{
+ //parserassert(state->method && state->method->info);
+
+ methodstate_t*parent_method = state->method;
+
+ if(as3_pass==1) {
+ // not valid yet
+ params = 0;
+ return_type = 0;
+ }
+
+ new_state();
+ state->new_vars = 1;
+
+ if(as3_pass == 1) {
+ state->method = rfx_calloc(sizeof(methodstate_t));
+ state->method->inner = 1;
+ state->method->variable_count = 0;
+ state->method->abc = rfx_calloc(sizeof(abc_method_t));
+
+ NEW(methodinfo_t,minfo);
+ minfo->kind = INFOTYPE_METHOD;
+ minfo->access = ACCESS_PACKAGEINTERNAL;
+ minfo->name = name;
+ state->method->info = minfo;
+
+ if(parent_method)
+ list_append(parent_method->innerfunctions, state->method);
+
+ dict_put(global->token2info, (void*)(ptroff_t)as3_tokencount, state->method);
+ }
+
+ if(as3_pass == 2) {
+ state->method = dict_lookup(global->token2info, (void*)(ptroff_t)as3_tokencount);
+ parserassert(state->method);
+
+ state->method->info->return_type = return_type;
+ function_initvars(state->method, params, 0);
+ }
+}
+
static void startfunction(token_t*ns, int flags, enum yytokentype getset, char*name,
params_t*params, classinfo_t*return_type)
{
syntaxerror("not able to start another method scope");
}
new_state();
- global->variable_count = 0;
- state->method = rfx_calloc(sizeof(methodstate_t));
- state->method->has_super = 0;
+
+ if(as3_pass == 1) {
+ state->method = rfx_calloc(sizeof(methodstate_t));
+ state->method->has_super = 0;
- if(state->cls) {
- state->method->is_constructor = !strcmp(state->cls->info->name,name);
- state->cls->has_constructor |= state->method->is_constructor;
-
- new_variable((flags&FLAG_STATIC)?"class":"this", state->cls->info, 0);
- } else {
- state->method->is_global = 1;
- state->method->late_binding = 1; // for global methods, always push local_0 on the scope stack
+ if(state->cls) {
+ state->method->is_constructor = !strcmp(state->cls->info->name,name);
+ } else {
+ state->method->is_global = 1;
+ state->method->late_binding = 1; // for global methods, always push local_0 on the scope stack
+ }
+ if(state->method->is_constructor)
+ name = "__as3_constructor__";
- new_variable("globalscope", 0, 0);
+ return_type = 0;
+ state->method->info = registerfunction(getset, flags, name, params, return_type, 0);
+
+ dict_put(global->token2info, (void*)(ptroff_t)as3_tokencount, state->method);
}
- /* state->vars is initialized by state_new */
+ if(as3_pass == 2) {
+ state->method = dict_lookup(global->token2info, (void*)(ptroff_t)as3_tokencount);
+ parserassert(state->method);
- param_list_t*p=0;
- for(p=params->list;p;p=p->next) {
- new_variable(p->param->name, p->param->type, 0);
- }
- if(state->method->is_constructor)
- name = "__as3_constructor__";
- state->method->info = registerfunction(getset, flags, name, params, return_type, 0);
+ if(state->cls) {
+ memberinfo_t*m = registry_findmember(state->cls->info, name, 2);
+ check_override(m, flags);
+ }
+
+ if(state->cls) {
+ state->cls->has_constructor |= state->method->is_constructor;
+ }
+
+ state->method->info->return_type = return_type;
+ function_initvars(state->method, params, flags);
+ }
}
-static void endfunction(token_t*ns, int flags, enum yytokentype getset, char*name,
+static abc_method_t* endfunction(token_t*ns, int flags, enum yytokentype getset, char*name,
params_t*params, classinfo_t*return_type, code_t*body)
{
+ if(as3_pass==1) {
+ old_state();
+ return 0;
+ }
+
abc_method_t*f = 0;
multiname_t*type2 = sig2mname(return_type);
int slot = 0;
- if(state->method->is_constructor) {
+ if(state->method->inner) {
+ f = state->method->abc;
+ abc_method_init(f, global->file, type2, 1);
+ } else if(state->method->is_constructor) {
f = abc_class_getconstructor(state->cls->abc, type2);
} else if(!state->method->is_global) {
- namespace_t mname_ns = flags2namespace(flags, "");
+ namespace_t mname_ns = {state->method->info->access, ""};
multiname_t mname = {QNAME, &mname_ns, 0, name};
if(flags&FLAG_STATIC)
f = abc_class_method(state->cls->abc, type2, &mname);
slot = f->trait->slot_id;
} else {
- namespace_t mname_ns = flags2namespace(flags, state->package);
+ namespace_t mname_ns = {state->method->info->access, state->package};
multiname_t mname = {QNAME, &mname_ns, 0, name};
f = abc_method_new(global->file, type2, 1);
syntaxerror("interface methods can't have a method body");
}
- free(state->method);state->method=0;
old_state();
+ return f;
}
-
-
char is_subtype_of(classinfo_t*type, classinfo_t*supertype)
{
return 1; // FIXME
return c;
if(TYPE_IS_CLASS(from) && TYPE_IS_CLASS(to))
return c;
+ if(TYPE_IS_NULL(from) && !IS_NUMBER_OR_INT(to))
+ return c;
syntaxerror("can't convert type %s to %s", from->name, to->name);
return 0; // make gcc happy
}
return (c && !c->prev && !c->next && c->opcode == OPCODE_PUSHUNDEFINED);
}
-void parserassert(int b)
-{
- if(!b) syntaxerror("internal error: assertion failed");
-}
-
-static classinfo_t* find_class(char*name)
+static slotinfo_t* find_class(char*name)
{
- classinfo_t*c=0;
+ slotinfo_t*c=0;
- c = registry_findclass(state->package, name);
+ c = registry_find(state->package, name);
if(c) return c;
/* try explicit imports */
if(c) return c;
while(e) {
if(!strcmp(e->key, name)) {
- c = (classinfo_t*)e->data;
+ c = (slotinfo_t*)e->data;
if(c) return c;
}
e = e->next;
import_list_t*l = state->wildcard_imports;
while(l) {
//printf("does package %s contain a class %s?\n", l->import->package, name);
- c = registry_findclass(l->import->package, name);
+ c = registry_find(l->import->package, name);
if(c) return c;
l = l->next;
}
/* try global package */
- c = registry_findclass("", name);
+ c = registry_find("", name);
if(c) return c;
-
+
/* try local "filename" package */
- c = registry_findclass(current_filename, name);
+ c = registry_find(internal_filename_package, name);
if(c) return c;
return 0;
[prefix code] ([dup]) [read instruction] [middlepart] [setvar] [write instruction] [getvar]
*/
-
if(in && in->opcode == OPCODE_COERCE_A) {
in = code_cutlast(in);
}
c = code_append(c, write);
c = code_append(c, r);
} else {
+ code_free(r);r=0;
temp = gettempvar();
if(prefix) {
c = code_append(c, prefix);
}
}
+#define PASS1 }} if(as3_pass == 1) {{
+#define PASS1END }} if(as3_pass == 2) {{
+#define PASS2 }} if(as3_pass == 2) {{
+#define PASS12 }} {{
+#define PASS12END }} if(as3_pass == 2) {{
+
-/* Line 264 of yacc.c */
-#line 1509 "parser.tab.c"
+/* Line 273 of skeleton.m4 */
+#line 1767 "parser.tab.c"
#ifdef short
# undef short
#endif
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 119
+#define YYFINAL 145
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 2463
+#define YYLAST 2994
/* YYNTOKENS -- Number of terminals. */
-#define YYNTOKENS 130
+#define YYNTOKENS 134
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 105
+#define YYNNTS 110
/* YYNRULES -- Number of rules. */
-#define YYNRULES 285
+#define YYNRULES 303
/* YYNRULES -- Number of states. */
-#define YYNSTATES 478
+#define YYNSTATES 514
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
-#define YYMAXUTOK 360
+#define YYMAXUTOK 363
#define YYTRANSLATE(YYX) \
((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
0, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 116, 2, 2, 2, 114, 106, 2,
- 126, 129, 113, 111, 97, 110, 123, 112, 2, 2,
- 2, 2, 2, 2, 2, 2, 2, 2, 103, 96,
- 107, 99, 108, 102, 2, 2, 2, 2, 2, 2,
+ 2, 2, 2, 118, 2, 2, 2, 116, 108, 2,
+ 122, 133, 115, 113, 100, 112, 127, 114, 2, 2,
+ 2, 2, 2, 2, 2, 2, 2, 2, 105, 99,
+ 109, 102, 110, 104, 128, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 120, 2, 121, 105, 2, 2, 2, 2, 2,
+ 2, 124, 2, 125, 107, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
- 2, 2, 2, 122, 104, 128, 115, 2, 2, 2,
+ 2, 2, 2, 126, 106, 132, 117, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
85, 86, 87, 88, 89, 90, 91, 92, 93, 94,
- 95, 98, 100, 101, 109, 117, 118, 119, 124, 125,
- 127
+ 95, 96, 97, 98, 101, 103, 111, 119, 120, 121,
+ 123, 129, 130, 131
};
#if YYDEBUG
static const yytype_uint16 yyprhs[] =
{
0, 0, 3, 5, 6, 8, 10, 13, 15, 17,
- 19, 21, 23, 25, 27, 28, 30, 32, 35, 37,
- 39, 41, 43, 45, 47, 49, 50, 53, 55, 57,
- 59, 61, 63, 65, 67, 69, 71, 73, 75, 77,
- 79, 81, 83, 85, 87, 89, 91, 93, 97, 100,
- 103, 105, 107, 110, 111, 114, 117, 119, 123, 127,
- 128, 131, 132, 140, 141, 143, 145, 149, 151, 154,
- 158, 167, 174, 175, 182, 183, 191, 193, 196, 198,
- 201, 202, 204, 206, 209, 211, 214, 219, 223, 224,
- 233, 234, 244, 245, 251, 253, 256, 258, 261, 263,
- 264, 271, 274, 276, 282, 284, 286, 290, 292, 293,
- 300, 301, 307, 310, 315, 316, 318, 320, 323, 325,
- 327, 329, 331, 333, 335, 337, 339, 341, 342, 345,
- 346, 349, 350, 353, 354, 364, 365, 374, 375, 377,
- 379, 382, 384, 386, 388, 390, 391, 393, 395, 398,
- 400, 403, 412, 414, 416, 422, 423, 426, 428, 430,
- 432, 434, 436, 438, 440, 442, 443, 445, 448, 453,
- 457, 459, 464, 467, 469, 471, 472, 473, 486, 488,
- 489, 499, 501, 505, 507, 509, 511, 515, 517, 519,
- 521, 524, 525, 526, 530, 531, 533, 535, 539, 543,
- 548, 553, 556, 558, 561, 563, 565, 569, 571, 573,
- 575, 577, 579, 581, 583, 585, 587, 589, 591, 593,
- 595, 597, 599, 601, 603, 605, 609, 613, 617, 621,
- 625, 629, 633, 637, 641, 645, 648, 651, 655, 659,
- 663, 667, 671, 675, 679, 683, 687, 691, 695, 699,
- 703, 707, 711, 716, 719, 721, 725, 728, 733, 737,
- 738, 740, 744, 750, 754, 758, 762, 766, 770, 774,
- 778, 782, 786, 790, 794, 800, 803, 806, 809, 812,
- 816, 820, 822, 826, 832, 838
+ 19, 21, 23, 25, 30, 32, 33, 35, 37, 40,
+ 42, 44, 46, 48, 50, 55, 57, 59, 60, 63,
+ 65, 67, 69, 71, 73, 75, 77, 79, 81, 83,
+ 85, 87, 91, 94, 96, 98, 100, 102, 104, 106,
+ 108, 113, 115, 118, 120, 122, 126, 129, 130, 133,
+ 136, 138, 142, 146, 147, 150, 151, 159, 160, 162,
+ 164, 168, 170, 173, 177, 186, 193, 194, 201, 202,
+ 210, 212, 215, 217, 220, 221, 223, 225, 228, 230,
+ 233, 238, 242, 243, 252, 253, 263, 264, 270, 272,
+ 275, 277, 280, 282, 283, 290, 293, 295, 301, 303,
+ 305, 309, 311, 312, 319, 320, 326, 329, 334, 335,
+ 337, 339, 342, 344, 346, 348, 350, 352, 354, 356,
+ 358, 360, 362, 363, 366, 367, 370, 371, 374, 375,
+ 385, 386, 395, 396, 398, 400, 403, 405, 410, 412,
+ 414, 416, 417, 419, 421, 424, 426, 429, 438, 440,
+ 442, 443, 450, 451, 454, 456, 458, 460, 462, 464,
+ 466, 468, 470, 472, 473, 475, 478, 483, 487, 489,
+ 494, 497, 499, 501, 502, 503, 516, 518, 519, 520,
+ 531, 533, 537, 539, 541, 543, 547, 549, 551, 553,
+ 556, 557, 558, 562, 563, 565, 567, 569, 572, 575,
+ 576, 581, 586, 591, 594, 596, 599, 601, 603, 607,
+ 609, 611, 613, 615, 617, 619, 621, 623, 625, 627,
+ 629, 631, 633, 635, 637, 639, 641, 643, 647, 651,
+ 655, 659, 663, 667, 671, 675, 679, 683, 686, 689,
+ 693, 697, 701, 705, 709, 713, 717, 721, 725, 729,
+ 733, 737, 741, 745, 749, 754, 757, 759, 763, 766,
+ 771, 775, 776, 778, 782, 788, 792, 796, 800, 804,
+ 808, 812, 816, 820, 824, 828, 832, 836, 842, 845,
+ 848, 851, 854, 858, 861, 866, 872, 876, 882, 886,
+ 888, 892, 898, 904
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 131, 0, -1, 132, -1, -1, 133, -1, 134, -1,
- 133, 134, -1, 180, -1, 192, -1, 190, -1, 208,
- -1, 201, -1, 143, -1, 96, -1, -1, 136, -1,
- 137, -1, 136, 137, -1, 192, -1, 190, -1, 208,
- -1, 201, -1, 143, -1, 96, -1, 139, -1, -1,
- 139, 141, -1, 141, -1, 183, -1, 154, -1, 155,
- -1, 156, -1, 158, -1, 166, -1, 149, -1, 177,
- -1, 174, -1, 227, -1, 96, -1, 140, -1, 145,
- -1, 160, -1, 161, -1, 224, -1, 176, -1, 233,
- -1, 234, -1, 122, 139, 128, -1, 122, 128, -1,
- 141, 96, -1, 141, -1, 140, -1, 99, 225, -1,
- -1, 45, 146, -1, 31, 146, -1, 147, -1, 146,
- 97, 147, -1, 3, 217, 144, -1, -1, 64, 142,
- -1, -1, 63, 126, 150, 226, 129, 142, 148, -1,
- -1, 145, -1, 227, -1, 45, 3, 217, -1, 3,
- -1, 12, 126, -1, 12, 49, 126, -1, 153, 151,
- 96, 226, 96, 227, 129, 142, -1, 153, 152, 67,
- 226, 129, 142, -1, -1, 13, 126, 157, 226, 129,
- 142, -1, -1, 14, 159, 142, 13, 126, 226, 129,
- -1, 65, -1, 65, 3, -1, 29, -1, 29, 3,
- -1, -1, 163, -1, 165, -1, 163, 165, -1, 164,
- -1, 163, 164, -1, 33, 228, 103, 138, -1, 61,
- 103, 138, -1, -1, 15, 126, 167, 228, 129, 122,
- 162, 128, -1, -1, 32, 126, 3, 217, 129, 169,
- 122, 138, 128, -1, -1, 27, 122, 171, 138, 128,
- -1, 168, -1, 172, 168, -1, 172, -1, 172, 170,
- -1, 170, -1, -1, 51, 122, 175, 138, 128, 173,
- -1, 36, 226, -1, 36, -1, 38, 126, 226, 129,
- 142, -1, 3, -1, 18, -1, 179, 123, 178, -1,
- 178, -1, -1, 18, 179, 122, 181, 135, 128, -1,
- -1, 18, 122, 182, 135, 128, -1, 40, 214, -1,
- 40, 179, 123, 113, -1, -1, 185, -1, 186, -1,
- 185, 186, -1, 20, -1, 21, -1, 19, -1, 37,
- -1, 46, -1, 48, -1, 47, -1, 25, -1, 23,
- -1, -1, 53, 214, -1, -1, 53, 215, -1, -1,
- 16, 215, -1, -1, 184, 30, 3, 187, 189, 122,
- 191, 194, 128, -1, -1, 184, 43, 3, 188, 122,
- 193, 197, 128, -1, -1, 195, -1, 196, -1, 195,
- 196, -1, 96, -1, 201, -1, 208, -1, 140, -1,
- -1, 198, -1, 199, -1, 198, 199, -1, 96, -1,
- 45, 3, -1, 184, 26, 207, 3, 126, 204, 129,
- 217, -1, 45, -1, 31, -1, 184, 200, 3, 217,
- 144, -1, -1, 99, 203, -1, 9, -1, 7, -1,
- 8, -1, 11, -1, 4, -1, 55, -1, 54, -1,
- 44, -1, -1, 205, -1, 90, 206, -1, 205, 97,
- 90, 206, -1, 205, 97, 206, -1, 206, -1, 3,
- 103, 216, 202, -1, 3, 202, -1, 50, -1, 34,
- -1, -1, -1, 184, 26, 207, 3, 126, 204, 129,
- 217, 122, 209, 138, 128, -1, 3, -1, -1, 26,
- 210, 126, 204, 129, 217, 122, 138, 128, -1, 3,
- -1, 179, 123, 3, -1, 213, -1, 212, -1, 214,
- -1, 215, 97, 214, -1, 214, -1, 113, -1, 35,
- -1, 103, 216, -1, -1, -1, 126, 219, 129, -1,
- -1, 220, -1, 225, -1, 220, 97, 225, -1, 24,
- 212, 218, -1, 228, 126, 219, 129, -1, 52, 126,
- 219, 129, -1, 62, 228, -1, 41, -1, 41, 226,
- -1, 228, -1, 228, -1, 226, 97, 228, -1, 226,
- -1, 211, -1, 229, -1, 232, -1, 221, -1, 223,
- -1, 5, -1, 9, -1, 10, -1, 7, -1, 8,
- -1, 11, -1, 4, -1, 28, -1, 55, -1, 54,
- -1, 44, -1, 222, -1, 228, 107, 228, -1, 228,
- 108, 228, -1, 228, 73, 228, -1, 228, 74, 228,
- -1, 228, 69, 228, -1, 228, 70, 228, -1, 228,
- 72, 228, -1, 228, 71, 228, -1, 228, 84, 228,
- -1, 228, 85, 228, -1, 116, 228, -1, 115, 228,
- -1, 228, 106, 228, -1, 228, 105, 228, -1, 228,
- 104, 228, -1, 228, 93, 228, -1, 228, 92, 228,
- -1, 228, 91, 228, -1, 228, 112, 228, -1, 228,
- 114, 228, -1, 228, 111, 228, -1, 228, 110, 228,
- -1, 228, 113, 228, -1, 228, 67, 228, -1, 228,
- 68, 228, -1, 228, 39, 228, -1, 228, 66, 228,
- -1, 42, 126, 228, 129, -1, 35, 228, -1, 35,
- -1, 126, 226, 129, -1, 110, 228, -1, 228, 120,
- 228, 121, -1, 120, 219, 121, -1, -1, 231, -1,
- 225, 103, 225, -1, 231, 97, 225, 103, 225, -1,
- 122, 230, 128, -1, 228, 78, 228, -1, 228, 77,
- 228, -1, 228, 82, 228, -1, 228, 81, 228, -1,
- 228, 83, 228, -1, 228, 76, 228, -1, 228, 75,
- 228, -1, 228, 79, 228, -1, 228, 80, 228, -1,
- 228, 99, 228, -1, 228, 102, 228, 103, 228, -1,
- 228, 88, -1, 228, 87, -1, 88, 228, -1, 87,
- 228, -1, 52, 123, 3, -1, 228, 123, 3, -1,
- 3, -1, 184, 17, 3, -1, 184, 17, 3, 99,
- 3, -1, 184, 17, 3, 99, 4, -1, 22, 17,
- 3, -1
+ 135, 0, -1, 136, -1, -1, 137, -1, 138, -1,
+ 137, 138, -1, 185, -1, 197, -1, 195, -1, 214,
+ -1, 206, -1, 147, -1, 148, 126, 136, 132, -1,
+ 99, -1, -1, 140, -1, 141, -1, 140, 141, -1,
+ 197, -1, 195, -1, 214, -1, 206, -1, 147, -1,
+ 148, 126, 139, 132, -1, 99, -1, 143, -1, -1,
+ 143, 145, -1, 145, -1, 188, -1, 159, -1, 160,
+ -1, 161, -1, 163, -1, 171, -1, 154, -1, 182,
+ -1, 179, -1, 236, -1, 243, -1, 126, 143, 132,
+ -1, 126, 132, -1, 99, -1, 144, -1, 150, -1,
+ 165, -1, 166, -1, 233, -1, 181, -1, 148, 126,
+ 143, 132, -1, 242, -1, 145, 99, -1, 145, -1,
+ 144, -1, 3, 89, 3, -1, 102, 234, -1, -1,
+ 46, 151, -1, 32, 151, -1, 152, -1, 151, 100,
+ 152, -1, 3, 224, 149, -1, -1, 65, 146, -1,
+ -1, 64, 122, 155, 235, 133, 146, 153, -1, -1,
+ 150, -1, 236, -1, 46, 3, 224, -1, 3, -1,
+ 13, 122, -1, 13, 50, 122, -1, 158, 156, 99,
+ 235, 99, 236, 133, 146, -1, 158, 157, 68, 235,
+ 133, 146, -1, -1, 14, 122, 162, 235, 133, 146,
+ -1, -1, 15, 164, 146, 14, 122, 235, 133, -1,
+ 66, -1, 66, 3, -1, 30, -1, 30, 3, -1,
+ -1, 168, -1, 170, -1, 168, 170, -1, 169, -1,
+ 168, 169, -1, 34, 237, 105, 142, -1, 62, 105,
+ 142, -1, -1, 16, 122, 172, 237, 133, 126, 167,
+ 132, -1, -1, 33, 122, 3, 224, 133, 174, 126,
+ 142, 132, -1, -1, 28, 126, 176, 142, 132, -1,
+ 173, -1, 177, 173, -1, 177, -1, 177, 175, -1,
+ 175, -1, -1, 52, 126, 180, 142, 132, 178, -1,
+ 37, 235, -1, 37, -1, 39, 122, 235, 133, 146,
+ -1, 3, -1, 19, -1, 184, 127, 183, -1, 183,
+ -1, -1, 19, 184, 126, 186, 139, 132, -1, -1,
+ 19, 126, 187, 139, 132, -1, 41, 220, -1, 41,
+ 184, 127, 115, -1, -1, 190, -1, 191, -1, 190,
+ 191, -1, 21, -1, 22, -1, 20, -1, 38, -1,
+ 47, -1, 49, -1, 48, -1, 26, -1, 24, -1,
+ 4, -1, -1, 54, 221, -1, -1, 54, 222, -1,
+ -1, 17, 222, -1, -1, 189, 31, 3, 192, 194,
+ 126, 196, 199, 132, -1, -1, 189, 44, 3, 193,
+ 126, 198, 202, 132, -1, -1, 200, -1, 201, -1,
+ 200, 201, -1, 99, -1, 148, 126, 199, 132, -1,
+ 206, -1, 214, -1, 144, -1, -1, 203, -1, 204,
+ -1, 203, 204, -1, 99, -1, 46, 3, -1, 189,
+ 27, 213, 3, 122, 210, 133, 224, -1, 46, -1,
+ 32, -1, -1, 189, 205, 3, 207, 224, 149, -1,
+ -1, 102, 209, -1, 10, -1, 8, -1, 9, -1,
+ 12, -1, 5, -1, 56, -1, 55, -1, 45, -1,
+ 3, -1, -1, 211, -1, 93, 212, -1, 211, 100,
+ 93, 212, -1, 211, 100, 212, -1, 212, -1, 3,
+ 105, 223, 208, -1, 3, 208, -1, 51, -1, 35,
+ -1, -1, -1, 189, 27, 213, 3, 122, 210, 133,
+ 224, 126, 215, 142, 132, -1, 3, -1, -1, -1,
+ 27, 216, 122, 210, 133, 224, 126, 218, 142, 132,
+ -1, 3, -1, 184, 127, 3, -1, 220, -1, 219,
+ -1, 221, -1, 222, 100, 221, -1, 221, -1, 115,
+ -1, 36, -1, 105, 223, -1, -1, -1, 122, 226,
+ 133, -1, -1, 227, -1, 228, -1, 234, -1, 227,
+ 100, -1, 228, 234, -1, -1, 25, 237, 229, 225,
+ -1, 237, 122, 226, 133, -1, 53, 122, 226, 133,
+ -1, 63, 237, -1, 42, -1, 42, 235, -1, 237,
+ -1, 237, -1, 235, 100, 237, -1, 235, -1, 217,
+ -1, 238, -1, 241, -1, 230, -1, 232, -1, 231,
+ -1, 6, -1, 10, -1, 11, -1, 8, -1, 9,
+ -1, 12, -1, 5, -1, 29, -1, 56, -1, 55,
+ -1, 45, -1, 237, 109, 237, -1, 237, 110, 237,
+ -1, 237, 75, 237, -1, 237, 76, 237, -1, 237,
+ 71, 237, -1, 237, 72, 237, -1, 237, 74, 237,
+ -1, 237, 73, 237, -1, 237, 87, 237, -1, 237,
+ 88, 237, -1, 118, 237, -1, 117, 237, -1, 237,
+ 108, 237, -1, 237, 107, 237, -1, 237, 106, 237,
+ -1, 237, 96, 237, -1, 237, 95, 237, -1, 237,
+ 94, 237, -1, 237, 114, 237, -1, 237, 116, 237,
+ -1, 237, 113, 237, -1, 237, 112, 237, -1, 237,
+ 115, 237, -1, 237, 68, 237, -1, 237, 69, 237,
+ -1, 237, 40, 237, -1, 237, 67, 237, -1, 43,
+ 122, 237, 133, -1, 36, 237, -1, 36, -1, 122,
+ 235, 133, -1, 112, 237, -1, 237, 124, 237, 125,
+ -1, 124, 226, 125, -1, -1, 240, -1, 234, 105,
+ 234, -1, 240, 100, 234, 105, 234, -1, 70, 239,
+ 132, -1, 237, 80, 237, -1, 237, 79, 237, -1,
+ 237, 85, 237, -1, 237, 84, 237, -1, 237, 86,
+ 237, -1, 237, 78, 237, -1, 237, 77, 237, -1,
+ 237, 83, 237, -1, 237, 81, 237, -1, 237, 82,
+ 237, -1, 237, 102, 237, -1, 237, 104, 237, 105,
+ 237, -1, 237, 91, -1, 237, 90, -1, 91, 237,
+ -1, 90, 237, -1, 53, 127, 3, -1, 128, 3,
+ -1, 237, 127, 128, 3, -1, 237, 127, 3, 89,
+ 3, -1, 237, 92, 3, -1, 237, 127, 122, 237,
+ 133, -1, 237, 127, 3, -1, 3, -1, 189, 18,
+ 3, -1, 189, 18, 3, 102, 3, -1, 189, 18,
+ 3, 102, 5, -1, 23, 18, 3, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1484, 1484, 1486, 1486, 1487, 1488, 1490, 1491, 1492,
- 1493, 1494, 1495, 1496, 1498, 1498, 1499, 1500, 1502, 1503,
- 1504, 1505, 1506, 1507, 1509, 1510, 1512, 1513, 1516, 1517,
- 1518, 1519, 1520, 1521, 1522, 1523, 1524, 1525, 1528, 1529,
- 1530, 1531, 1532, 1533, 1534, 1536, 1537, 1539, 1540, 1541,
- 1542, 1546, 1553, 1554, 1558, 1559, 1561, 1562, 1564, 1605,
- 1606, 1609, 1609, 1628, 1629, 1630, 1633, 1636, 1640, 1641,
- 1643, 1663, 1706, 1706, 1725, 1725, 1740, 1743, 1746, 1749,
- 1753, 1754, 1755, 1756, 1757, 1758, 1760, 1771, 1774, 1774,
- 1803, 1803, 1823, 1823, 1840, 1841, 1842, 1843, 1851, 1860,
- 1860, 1905, 1909, 1920, 1929, 1930, 1932, 1933, 1935, 1935,
- 1936, 1936, 1938, 1946, 1956, 1957, 1958, 1959, 1961, 1962,
- 1963, 1964, 1965, 1966, 1967, 1968, 1969, 1971, 1972, 1974,
- 1975, 1977, 1978, 1982, 1980, 1988, 1986, 1994, 1995, 1996,
- 1997, 1998, 1999, 2000, 2002, 2008, 2009, 2010, 2011, 2012,
- 2013, 2016, 2027, 2027, 2029, 2087, 2088, 2090, 2091, 2092,
- 2093, 2094, 2096, 2097, 2098, 2103, 2106, 2111, 2116, 2123,
- 2127, 2132, 2138, 2144, 2145, 2146, 2149, 2148, 2166, 2167,
- 2168, 2176, 2183, 2189, 2190, 2192, 2193, 2195, 2196, 2197,
- 2206, 2207, 2211, 2212, 2214, 2215, 2216, 2219, 2224, 2248,
- 2296, 2316, 2337, 2340, 2347, 2348, 2349, 2355, 2361, 2363,
- 2365, 2367, 2369, 2371, 2388, 2393, 2396, 2399, 2402, 2405,
- 2408, 2411, 2414, 2417, 2421, 2422, 2425, 2428, 2431, 2434,
- 2437, 2440, 2443, 2447, 2458, 2476, 2481, 2486, 2491, 2496,
- 2501, 2505, 2509, 2514, 2518, 2522, 2531, 2540, 2550, 2555,
- 2567, 2573, 2578, 2584, 2590, 2594, 2596, 2607, 2616, 2623,
- 2624, 2626, 2632, 2641, 2648, 2660, 2666, 2672, 2678, 2684,
- 2690, 2696, 2709, 2720, 2727, 2740, 2767, 2781, 2795, 2809,
- 2824, 2858, 2956, 2957, 2958, 2960
+ 0, 1742, 1742, 1744, 1744, 1745, 1746, 1748, 1749, 1750,
+ 1751, 1752, 1753, 1754, 1755, 1757, 1757, 1758, 1759, 1761,
+ 1762, 1763, 1764, 1765, 1766, 1767, 1769, 1770, 1772, 1773,
+ 1776, 1777, 1778, 1779, 1780, 1781, 1782, 1783, 1784, 1785,
+ 1786, 1787, 1788, 1791, 1792, 1793, 1794, 1795, 1796, 1797,
+ 1798, 1800, 1804, 1805, 1809, 1816, 1820, 1821, 1825, 1826,
+ 1828, 1829, 1831, 1874, 1875, 1878, 1878, 1897, 1898, 1899,
+ 1902, 1905, 1909, 1910, 1912, 1932, 1975, 1975, 1994, 1994,
+ 2009, 2012, 2015, 2018, 2022, 2023, 2024, 2025, 2026, 2027,
+ 2029, 2040, 2043, 2043, 2072, 2072, 2092, 2092, 2109, 2110,
+ 2111, 2112, 2120, 2129, 2129, 2174, 2178, 2189, 2198, 2199,
+ 2201, 2202, 2204, 2204, 2206, 2206, 2209, 2223, 2239, 2240,
+ 2241, 2242, 2244, 2245, 2246, 2247, 2248, 2249, 2250, 2251,
+ 2252, 2253, 2255, 2256, 2258, 2259, 2261, 2262, 2266, 2264,
+ 2272, 2270, 2278, 2279, 2280, 2281, 2282, 2283, 2284, 2285,
+ 2287, 2293, 2294, 2295, 2296, 2297, 2298, 2301, 2314, 2314,
+ 2316, 2316, 2389, 2390, 2392, 2393, 2394, 2395, 2396, 2398,
+ 2399, 2400, 2401, 2410, 2414, 2420, 2426, 2434, 2439, 2445,
+ 2453, 2461, 2462, 2463, 2466, 2465, 2480, 2481, 2483, 2482,
+ 2504, 2513, 2526, 2527, 2529, 2530, 2532, 2533, 2534, 2543,
+ 2544, 2548, 2549, 2551, 2552, 2553, 2555, 2559, 2560, 2565,
+ 2566, 2602, 2648, 2669, 2690, 2693, 2700, 2701, 2702, 2708,
+ 2714, 2716, 2718, 2720, 2722, 2724, 2726, 2743, 2748, 2751,
+ 2754, 2757, 2760, 2763, 2766, 2769, 2772, 2776, 2779, 2782,
+ 2785, 2788, 2791, 2794, 2797, 2801, 2812, 2830, 2835, 2840,
+ 2845, 2850, 2855, 2859, 2863, 2868, 2872, 2876, 2885, 2894,
+ 2904, 2909, 2921, 2927, 2932, 2938, 2944, 2948, 2950, 2961,
+ 2970, 2977, 2978, 2980, 2986, 2995, 3002, 3014, 3020, 3026,
+ 3032, 3038, 3044, 3050, 3056, 3069, 3080, 3087, 3100, 3127,
+ 3141, 3155, 3169, 3184, 3191, 3198, 3205, 3212, 3223, 3257,
+ 3359, 3360, 3361, 3363
};
#endif
First, the terminals, then, starting at YYNTOKENS, nonterminals. */
static const char *const yytname[] =
{
- "$end", "error", "$undefined", "T_IDENTIFIER", "T_STRING", "T_REGEXP",
- "T_EMPTY", "T_INT", "T_UINT", "T_BYTE", "T_SHORT", "T_FLOAT", "\"for\"",
- "\"while\"", "\"do\"", "\"switch\"", "\"implements\"", "\"namespace\"",
- "\"package\"", "\"protected\"", "\"public\"", "\"private\"", "\"use\"",
- "\"internal\"", "\"new\"", "\"native\"", "\"function\"", "\"finally\"",
- "\"undefined\"", "\"continue\"", "\"class\"", "\"const\"", "\"catch\"",
- "\"case\"", "\"set\"", "\"void\"", "\"throw\"", "\"static\"", "\"with\"",
+ "$end", "error", "$undefined", "T_IDENTIFIER", "T_NAMESPACE",
+ "T_STRING", "T_REGEXP", "T_EMPTY", "T_INT", "T_UINT", "T_BYTE",
+ "T_SHORT", "T_FLOAT", "\"for\"", "\"while\"", "\"do\"", "\"switch\"",
+ "\"implements\"", "\"namespace\"", "\"package\"", "\"protected\"",
+ "\"public\"", "\"private\"", "\"use\"", "\"internal\"", "\"new\"",
+ "\"native\"", "\"function\"", "\"finally\"", "\"undefined\"",
+ "\"continue\"", "\"class\"", "\"const\"", "\"catch\"", "\"case\"",
+ "\"set\"", "\"void\"", "\"throw\"", "\"static\"", "\"with\"",
"\"instanceof\"", "\"import\"", "\"return\"", "\"typeof\"",
"\"interface\"", "\"null\"", "\"var\"", "\"dynamic\"", "\"override\"",
"\"final\"", "\"each\"", "\"get\"", "\"try\"", "\"super\"",
"\"extends\"", "\"false\"", "\"true\"", "\"Boolean\"", "\"uint\"",
"\"int\"", "\"Number\"", "\"String\"", "\"default\"", "\"delete\"",
"\"if\"", "\"else\"", "\"break\"", "\"is\"", "\"in\"", "\"as\"",
- "\"==\"", "\"===\"", "\"!=\"", "\"!==\"", "\"<=\"", "\">=\"", "\"|=\"",
- "\"/=\"", "\"%=\"", "\"*=\"", "\"+=\"", "\"-=\"", "\">>=\"", "\"<<=\"",
- "\">>>=\"", "\"||\"", "\"&&\"", "\"::\"", "\"--\"", "\"++\"", "\"..\"",
- "\"...\"", "\"<<\"", "\">>>\"", "\">>\"", "prec_none", "below_semicolon",
- "';'", "','", "below_assignment", "'='", "\"&=\"", "\"^=\"", "'?'",
- "':'", "'|'", "'^'", "'&'", "'<'", "'>'", "below_minus", "'-'", "'+'",
- "'/'", "'*'", "'%'", "'~'", "'!'", "minusminus_prefix",
- "plusplus_prefix", "below_curly", "'['", "']'", "'{'", "'.'",
- "above_identifier", "below_else", "'('", "above_function", "'}'", "')'",
- "$accept", "PROGRAM", "MAYBE_PROGRAM_CODE_LIST", "PROGRAM_CODE_LIST",
- "PROGRAM_CODE", "MAYBE_INPACKAGE_CODE_LIST", "INPACKAGE_CODE_LIST",
- "INPACKAGE_CODE", "MAYBECODE", "CODE", "CODE_STATEMENT", "CODEPIECE",
- "CODEBLOCK", "PACKAGE_INITCODE", "MAYBEEXPRESSION",
- "VARIABLE_DECLARATION", "VARIABLE_LIST", "ONE_VARIABLE", "MAYBEELSE",
- "IF", "$@1", "FOR_INIT", "FOR_IN_INIT", "FOR_START", "FOR", "FOR_IN",
- "WHILE", "$@2", "DO_WHILE", "$@3", "BREAK", "CONTINUE",
- "MAYBE_CASE_LIST", "CASE_LIST", "CASE", "DEFAULT", "SWITCH", "$@4",
- "CATCH", "$@5", "FINALLY", "$@6", "CATCH_LIST", "CATCH_FINALLY_LIST",
- "TRY", "$@7", "THROW", "WITH", "X_IDENTIFIER", "PACKAGE",
- "PACKAGE_DECLARATION", "$@8", "$@9", "IMPORT", "MAYBE_MODIFIERS",
- "MODIFIER_LIST", "MODIFIER", "EXTENDS", "EXTENDS_LIST",
- "IMPLEMENTS_LIST", "CLASS_DECLARATION", "$@10", "INTERFACE_DECLARATION",
- "$@11", "MAYBE_CLASS_BODY", "CLASS_BODY", "CLASS_BODY_ITEM",
- "MAYBE_INTERFACE_BODY", "INTERFACE_BODY", "IDECLARATION", "VARCONST",
- "SLOT_DECLARATION", "MAYBESTATICCONSTANT", "STATICCONSTANT",
- "MAYBE_PARAM_LIST", "PARAM_LIST", "PARAM", "GETSET",
- "FUNCTION_DECLARATION", "$@12", "MAYBE_IDENTIFIER", "INNERFUNCTION",
- "CLASS", "PACKAGEANDCLASS", "QNAME", "QNAME_LIST", "TYPE", "MAYBETYPE",
- "MAYBE_PARAM_VALUES", "MAYBE_EXPRESSION_LIST", "EXPRESSION_LIST", "NEW",
- "FUNCTIONCALL", "DELETE", "RETURN", "NONCOMMAEXPRESSION", "EXPRESSION",
- "VOIDEXPRESSION", "E", "CONSTANT", "MAYBE_EXPRPAIR_LIST",
- "EXPRPAIR_LIST", "VAR_READ", "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0
+ "\"{ (dictionary)\"", "\"==\"", "\"===\"", "\"!=\"", "\"!==\"", "\"<=\"",
+ "\">=\"", "\"|=\"", "\"/=\"", "\"%=\"", "\"*=\"", "\"+=\"", "\"-=\"",
+ "\"^=\"", "\">>=\"", "\"<<=\"", "\">>>=\"", "\"||\"", "\"&&\"", "\"::\"",
+ "\"--\"", "\"++\"", "\"..\"", "\"...\"", "\"<<\"", "\">>>\"", "\">>\"",
+ "prec_none", "below_semicolon", "';'", "','", "below_assignment", "'='",
+ "\"&=\"", "'?'", "':'", "'|'", "'^'", "'&'", "'<'", "'>'", "below_minus",
+ "'-'", "'+'", "'/'", "'*'", "'%'", "'~'", "'!'", "minusminus_prefix",
+ "plusplus_prefix", "below_curly", "'('", "new2", "'['", "']'", "'{'",
+ "'.'", "'@'", "above_identifier", "below_else", "above_function", "'}'",
+ "')'", "$accept", "PROGRAM", "MAYBE_PROGRAM_CODE_LIST",
+ "PROGRAM_CODE_LIST", "PROGRAM_CODE", "MAYBE_INPACKAGE_CODE_LIST",
+ "INPACKAGE_CODE_LIST", "INPACKAGE_CODE", "MAYBECODE", "CODE",
+ "CODE_STATEMENT", "CODEPIECE", "CODEBLOCK", "PACKAGE_INITCODE",
+ "CONDITIONAL_COMPILATION", "MAYBEEXPRESSION", "VARIABLE_DECLARATION",
+ "VARIABLE_LIST", "ONE_VARIABLE", "MAYBEELSE", "IF", "$@1", "FOR_INIT",
+ "FOR_IN_INIT", "FOR_START", "FOR", "FOR_IN", "WHILE", "$@2", "DO_WHILE",
+ "$@3", "BREAK", "CONTINUE", "MAYBE_CASE_LIST", "CASE_LIST", "CASE",
+ "DEFAULT", "SWITCH", "$@4", "CATCH", "$@5", "FINALLY", "$@6",
+ "CATCH_LIST", "CATCH_FINALLY_LIST", "TRY", "$@7", "THROW", "WITH",
+ "X_IDENTIFIER", "PACKAGE", "PACKAGE_DECLARATION", "$@8", "$@9", "IMPORT",
+ "MAYBE_MODIFIERS", "MODIFIER_LIST", "MODIFIER", "EXTENDS",
+ "EXTENDS_LIST", "IMPLEMENTS_LIST", "CLASS_DECLARATION", "$@10",
+ "INTERFACE_DECLARATION", "$@11", "MAYBE_CLASS_BODY", "CLASS_BODY",
+ "CLASS_BODY_ITEM", "MAYBE_INTERFACE_BODY", "INTERFACE_BODY",
+ "IDECLARATION", "VARCONST", "SLOT_DECLARATION", "$@12",
+ "MAYBESTATICCONSTANT", "STATICCONSTANT", "MAYBE_PARAM_LIST",
+ "PARAM_LIST", "PARAM", "GETSET", "FUNCTION_DECLARATION", "$@13",
+ "MAYBE_IDENTIFIER", "INNERFUNCTION", "$@14", "CLASS", "PACKAGEANDCLASS",
+ "CLASS_SPEC", "CLASS_SPEC_LIST", "TYPE", "MAYBETYPE",
+ "MAYBE_PARAM_VALUES", "MAYBE_EXPRESSION_LIST", "EXPRESSION_LIST",
+ "EXPRESSION_LIST_AND_COMMA", "XX", "NEW", "FUNCTIONCALL", "DELETE",
+ "RETURN", "NONCOMMAEXPRESSION", "EXPRESSION", "VOIDEXPRESSION", "E",
+ "CONSTANT", "MAYBE_EXPRPAIR_LIST", "EXPRPAIR_LIST", "VAR_READ",
+ "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0
};
#endif
315, 316, 317, 318, 319, 320, 321, 322, 323, 324,
325, 326, 327, 328, 329, 330, 331, 332, 333, 334,
335, 336, 337, 338, 339, 340, 341, 342, 343, 344,
- 345, 346, 347, 348, 349, 350, 59, 44, 351, 61,
- 352, 353, 63, 58, 124, 94, 38, 60, 62, 354,
- 45, 43, 47, 42, 37, 126, 33, 355, 356, 357,
- 91, 93, 123, 46, 358, 359, 40, 360, 125, 41
+ 345, 346, 347, 348, 349, 350, 351, 352, 353, 59,
+ 44, 354, 61, 355, 63, 58, 124, 94, 38, 60,
+ 62, 356, 45, 43, 47, 42, 37, 126, 33, 357,
+ 358, 359, 40, 360, 91, 93, 123, 46, 64, 361,
+ 362, 363, 125, 41
};
# endif
/* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
static const yytype_uint8 yyr1[] =
{
- 0, 130, 131, 132, 132, 133, 133, 134, 134, 134,
- 134, 134, 134, 134, 135, 135, 136, 136, 137, 137,
- 137, 137, 137, 137, 138, 138, 139, 139, 140, 140,
- 140, 140, 140, 140, 140, 140, 140, 140, 141, 141,
- 141, 141, 141, 141, 141, 141, 141, 142, 142, 142,
- 142, 143, 144, 144, 145, 145, 146, 146, 147, 148,
- 148, 150, 149, 151, 151, 151, 152, 152, 153, 153,
- 154, 155, 157, 156, 159, 158, 160, 160, 161, 161,
- 162, 162, 162, 162, 163, 163, 164, 165, 167, 166,
- 169, 168, 171, 170, 172, 172, 173, 173, 173, 175,
- 174, 176, 176, 177, 178, 178, 179, 179, 181, 180,
- 182, 180, 183, 183, 184, 184, 185, 185, 186, 186,
- 186, 186, 186, 186, 186, 186, 186, 187, 187, 188,
- 188, 189, 189, 191, 190, 193, 192, 194, 194, 195,
- 195, 196, 196, 196, 196, 197, 197, 198, 198, 199,
- 199, 199, 200, 200, 201, 202, 202, 203, 203, 203,
- 203, 203, 203, 203, 203, 204, 204, 204, 204, 205,
- 205, 206, 206, 207, 207, 207, 209, 208, 210, 210,
- 211, 212, 213, 214, 214, 215, 215, 216, 216, 216,
- 217, 217, 218, 218, 219, 219, 220, 220, 221, 222,
- 222, 223, 224, 224, 225, 226, 226, 227, 228, 228,
- 228, 228, 228, 228, 229, 229, 229, 229, 229, 229,
- 229, 229, 229, 229, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 230,
- 230, 231, 231, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 232, 233, 233, 233, 234
+ 0, 134, 135, 136, 136, 137, 137, 138, 138, 138,
+ 138, 138, 138, 138, 138, 139, 139, 140, 140, 141,
+ 141, 141, 141, 141, 141, 141, 142, 142, 143, 143,
+ 144, 144, 144, 144, 144, 144, 144, 144, 144, 144,
+ 144, 144, 144, 145, 145, 145, 145, 145, 145, 145,
+ 145, 145, 146, 146, 147, 148, 149, 149, 150, 150,
+ 151, 151, 152, 153, 153, 155, 154, 156, 156, 156,
+ 157, 157, 158, 158, 159, 160, 162, 161, 164, 163,
+ 165, 165, 166, 166, 167, 167, 167, 167, 168, 168,
+ 169, 170, 172, 171, 174, 173, 176, 175, 177, 177,
+ 178, 178, 178, 180, 179, 181, 181, 182, 183, 183,
+ 184, 184, 186, 185, 187, 185, 188, 188, 189, 189,
+ 190, 190, 191, 191, 191, 191, 191, 191, 191, 191,
+ 191, 191, 192, 192, 193, 193, 194, 194, 196, 195,
+ 198, 197, 199, 199, 200, 200, 201, 201, 201, 201,
+ 201, 202, 202, 203, 203, 204, 204, 204, 205, 205,
+ 207, 206, 208, 208, 209, 209, 209, 209, 209, 209,
+ 209, 209, 209, 210, 210, 210, 210, 211, 211, 212,
+ 212, 213, 213, 213, 215, 214, 216, 216, 218, 217,
+ 219, 220, 221, 221, 222, 222, 223, 223, 223, 224,
+ 224, 225, 225, 226, 226, 226, 227, 228, 227, 229,
+ 230, 231, 231, 232, 233, 233, 234, 235, 235, 236,
+ 237, 237, 237, 237, 237, 237, 237, 238, 238, 238,
+ 238, 238, 238, 238, 238, 238, 238, 237, 237, 237,
+ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
+ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
+ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
+ 237, 239, 239, 240, 240, 237, 237, 237, 237, 237,
+ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
+ 237, 237, 237, 237, 237, 237, 237, 237, 237, 241,
+ 242, 242, 242, 243
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
static const yytype_uint8 yyr2[] =
{
0, 2, 1, 0, 1, 1, 2, 1, 1, 1,
- 1, 1, 1, 1, 0, 1, 1, 2, 1, 1,
- 1, 1, 1, 1, 1, 0, 2, 1, 1, 1,
+ 1, 1, 1, 4, 1, 0, 1, 1, 2, 1,
+ 1, 1, 1, 1, 4, 1, 1, 0, 2, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 3, 2, 2,
- 1, 1, 2, 0, 2, 2, 1, 3, 3, 0,
- 2, 0, 7, 0, 1, 1, 3, 1, 2, 3,
- 8, 6, 0, 6, 0, 7, 1, 2, 1, 2,
- 0, 1, 1, 2, 1, 2, 4, 3, 0, 8,
- 0, 9, 0, 5, 1, 2, 1, 2, 1, 0,
- 6, 2, 1, 5, 1, 1, 3, 1, 0, 6,
- 0, 5, 2, 4, 0, 1, 1, 2, 1, 1,
- 1, 1, 1, 1, 1, 1, 1, 0, 2, 0,
- 2, 0, 2, 0, 9, 0, 8, 0, 1, 1,
- 2, 1, 1, 1, 1, 0, 1, 1, 2, 1,
- 2, 8, 1, 1, 5, 0, 2, 1, 1, 1,
- 1, 1, 1, 1, 1, 0, 1, 2, 4, 3,
- 1, 4, 2, 1, 1, 0, 0, 12, 1, 0,
- 9, 1, 3, 1, 1, 1, 3, 1, 1, 1,
- 2, 0, 0, 3, 0, 1, 1, 3, 3, 4,
- 4, 2, 1, 2, 1, 1, 3, 1, 1, 1,
+ 1, 3, 2, 1, 1, 1, 1, 1, 1, 1,
+ 4, 1, 2, 1, 1, 3, 2, 0, 2, 2,
+ 1, 3, 3, 0, 2, 0, 7, 0, 1, 1,
+ 3, 1, 2, 3, 8, 6, 0, 6, 0, 7,
+ 1, 2, 1, 2, 0, 1, 1, 2, 1, 2,
+ 4, 3, 0, 8, 0, 9, 0, 5, 1, 2,
+ 1, 2, 1, 0, 6, 2, 1, 5, 1, 1,
+ 3, 1, 0, 6, 0, 5, 2, 4, 0, 1,
+ 1, 2, 1, 1, 1, 1, 1, 1, 1, 1,
+ 1, 1, 0, 2, 0, 2, 0, 2, 0, 9,
+ 0, 8, 0, 1, 1, 2, 1, 4, 1, 1,
+ 1, 0, 1, 1, 2, 1, 2, 8, 1, 1,
+ 0, 6, 0, 2, 1, 1, 1, 1, 1, 1,
+ 1, 1, 1, 0, 1, 2, 4, 3, 1, 4,
+ 2, 1, 1, 0, 0, 12, 1, 0, 0, 10,
+ 1, 3, 1, 1, 1, 3, 1, 1, 1, 2,
+ 0, 0, 3, 0, 1, 1, 1, 2, 2, 0,
+ 4, 4, 4, 2, 1, 2, 1, 1, 3, 1,
1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 2, 2, 3, 3, 3,
+ 1, 1, 1, 1, 1, 1, 1, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 2, 2, 3,
3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 4, 2, 1, 3, 2, 4, 3, 0,
- 1, 3, 5, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 5, 2, 2, 2, 2, 3,
- 3, 1, 3, 5, 5, 3
+ 3, 3, 3, 3, 4, 2, 1, 3, 2, 4,
+ 3, 0, 1, 3, 5, 3, 3, 3, 3, 3,
+ 3, 3, 3, 3, 3, 3, 3, 5, 2, 2,
+ 2, 2, 3, 2, 4, 5, 3, 5, 3, 1,
+ 3, 5, 5, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 114, 281, 219, 213, 216, 217, 214, 215, 218, 0,
- 0, 74, 0, 0, 120, 118, 119, 126, 0, 125,
- 179, 220, 254, 121, 0, 0, 0, 223, 122, 124,
- 123, 0, 0, 222, 221, 0, 0, 0, 0, 13,
- 0, 0, 0, 194, 259, 0, 0, 2, 114, 5,
- 51, 12, 34, 63, 29, 30, 31, 32, 33, 36,
- 35, 7, 28, 0, 115, 116, 9, 8, 11, 10,
- 208, 211, 224, 212, 207, 37, 205, 209, 210, 0,
- 68, 72, 114, 88, 104, 105, 110, 107, 0, 181,
- 192, 178, 0, 253, 0, 181, 0, 184, 183, 112,
- 0, 99, 0, 194, 201, 61, 278, 277, 256, 236,
- 235, 0, 195, 196, 204, 0, 0, 260, 0, 1,
- 6, 281, 0, 0, 64, 0, 0, 65, 175, 0,
- 153, 0, 152, 0, 117, 0, 0, 0, 0, 0,
+ 118, 299, 131, 232, 226, 229, 230, 227, 228, 231,
+ 0, 0, 78, 0, 0, 124, 122, 123, 0, 130,
+ 0, 129, 187, 233, 266, 125, 0, 0, 0, 236,
+ 126, 128, 127, 0, 0, 235, 234, 0, 0, 271,
+ 0, 0, 14, 0, 0, 0, 0, 203, 118, 0,
+ 0, 2, 118, 5, 54, 12, 0, 36, 67, 31,
+ 32, 33, 34, 35, 38, 37, 7, 30, 0, 119,
+ 120, 9, 8, 11, 10, 220, 223, 225, 224, 219,
+ 39, 217, 221, 222, 40, 0, 0, 72, 76, 118,
+ 92, 108, 109, 114, 111, 0, 0, 299, 209, 186,
+ 0, 265, 0, 0, 116, 0, 103, 203, 0, 213,
+ 65, 0, 216, 0, 272, 291, 290, 268, 248, 247,
+ 0, 0, 204, 205, 206, 82, 0, 106, 214, 0,
+ 80, 43, 42, 118, 44, 29, 0, 45, 46, 47,
+ 49, 0, 48, 51, 293, 1, 6, 118, 299, 0,
+ 68, 0, 0, 69, 183, 0, 159, 0, 158, 0,
+ 121, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 276, 275, 0,
+ 0, 0, 0, 0, 289, 288, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 194, 69, 0, 0,
- 78, 102, 202, 0, 76, 38, 114, 39, 50, 0,
- 40, 41, 42, 44, 0, 43, 45, 46, 0, 114,
- 108, 0, 194, 198, 165, 0, 0, 0, 25, 279,
- 0, 0, 258, 0, 0, 263, 0, 255, 191, 55,
- 56, 191, 54, 0, 0, 174, 173, 0, 127, 129,
- 191, 206, 250, 251, 248, 249, 229, 230, 232, 231,
- 227, 228, 270, 269, 265, 264, 271, 272, 267, 266,
- 268, 233, 234, 242, 241, 240, 273, 0, 239, 238,
- 237, 225, 226, 246, 245, 243, 247, 244, 0, 280,
- 0, 0, 0, 79, 101, 203, 77, 48, 114, 27,
- 205, 49, 0, 0, 0, 23, 0, 114, 16, 22,
- 19, 18, 21, 20, 114, 106, 0, 155, 0, 0,
- 166, 170, 114, 182, 113, 252, 0, 24, 200, 0,
- 197, 261, 0, 0, 53, 0, 53, 0, 0, 0,
- 0, 131, 0, 0, 53, 0, 257, 199, 114, 285,
- 47, 26, 0, 282, 0, 111, 17, 0, 193, 0,
- 0, 172, 167, 191, 0, 103, 0, 114, 0, 189,
- 188, 0, 187, 190, 0, 58, 57, 0, 114, 165,
- 128, 0, 0, 185, 130, 135, 154, 274, 73, 0,
- 0, 80, 109, 161, 158, 159, 157, 160, 164, 163,
- 162, 156, 155, 0, 0, 169, 0, 0, 94, 98,
- 96, 100, 59, 262, 0, 52, 0, 71, 0, 132,
- 133, 0, 114, 75, 283, 284, 0, 0, 0, 81,
- 84, 82, 171, 25, 168, 92, 0, 95, 97, 114,
- 62, 114, 191, 114, 186, 0, 149, 0, 0, 114,
- 147, 0, 25, 89, 85, 83, 0, 25, 191, 60,
- 70, 0, 141, 144, 0, 0, 114, 139, 142, 143,
- 150, 175, 136, 148, 25, 87, 180, 0, 0, 176,
- 134, 140, 0, 86, 93, 90, 25, 0, 0, 0,
- 165, 25, 177, 0, 0, 191, 91, 151
+ 0, 0, 203, 0, 0, 55, 73, 0, 53, 0,
+ 0, 118, 112, 0, 303, 201, 173, 0, 0, 0,
+ 27, 0, 292, 0, 0, 275, 0, 267, 270, 207,
+ 208, 83, 200, 59, 60, 105, 215, 58, 81, 41,
+ 28, 118, 0, 0, 200, 0, 0, 182, 181, 0,
+ 132, 134, 160, 218, 262, 263, 260, 261, 241, 242,
+ 244, 243, 239, 240, 282, 281, 277, 276, 284, 285,
+ 283, 279, 278, 280, 245, 246, 296, 254, 253, 252,
+ 286, 0, 251, 250, 249, 237, 238, 258, 257, 255,
+ 259, 256, 0, 0, 298, 0, 0, 0, 52, 0,
+ 0, 25, 0, 118, 17, 23, 0, 20, 19, 22,
+ 21, 118, 110, 203, 210, 162, 0, 0, 174, 178,
+ 118, 191, 117, 264, 0, 26, 212, 0, 273, 0,
+ 0, 57, 0, 118, 300, 13, 57, 0, 0, 0,
+ 0, 136, 0, 0, 200, 0, 211, 269, 0, 0,
+ 294, 118, 0, 0, 115, 18, 118, 0, 0, 0,
+ 0, 180, 175, 200, 0, 107, 0, 118, 0, 190,
+ 198, 197, 0, 193, 192, 196, 199, 0, 62, 61,
+ 50, 0, 0, 118, 173, 133, 0, 0, 194, 135,
+ 140, 57, 287, 295, 297, 77, 0, 84, 0, 113,
+ 202, 172, 168, 165, 166, 164, 167, 171, 170, 169,
+ 163, 162, 0, 0, 177, 0, 0, 98, 102, 100,
+ 104, 63, 274, 0, 56, 301, 302, 0, 75, 0,
+ 137, 138, 0, 118, 161, 79, 0, 0, 0, 85,
+ 88, 86, 24, 179, 188, 176, 96, 0, 99, 101,
+ 118, 66, 118, 200, 118, 195, 0, 155, 0, 0,
+ 118, 153, 0, 27, 93, 89, 87, 27, 27, 200,
+ 64, 74, 0, 146, 150, 0, 0, 0, 118, 144,
+ 148, 149, 156, 183, 141, 154, 27, 91, 0, 0,
+ 0, 184, 118, 139, 145, 0, 90, 189, 97, 94,
+ 27, 0, 0, 0, 0, 147, 173, 27, 185, 0,
+ 0, 200, 95, 157
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 46, 47, 48, 49, 286, 287, 288, 306, 307,
- 187, 279, 189, 289, 355, 190, 222, 220, 420, 52,
- 211, 125, 126, 53, 54, 55, 56, 178, 57, 82,
- 191, 192, 408, 409, 410, 411, 58, 198, 388, 468,
- 389, 437, 390, 391, 59, 208, 193, 60, 87, 351,
- 61, 294, 199, 62, 194, 64, 65, 321, 323, 362,
- 290, 423, 291, 402, 445, 446, 447, 428, 429, 430,
- 133, 292, 341, 381, 299, 300, 301, 227, 293, 466,
- 92, 70, 97, 98, 352, 364, 353, 314, 203, 111,
- 112, 71, 72, 73, 195, 113, 74, 75, 76, 77,
- 116, 117, 78, 196, 197
+ -1, 50, 51, 52, 53, 302, 303, 304, 324, 325,
+ 134, 135, 209, 305, 136, 378, 137, 237, 234, 451,
+ 57, 223, 151, 152, 58, 59, 60, 61, 207, 62,
+ 89, 138, 139, 438, 439, 440, 441, 63, 210, 417,
+ 503, 418, 468, 419, 420, 64, 220, 140, 65, 94,
+ 372, 66, 311, 211, 67, 141, 69, 70, 341, 343,
+ 387, 307, 454, 308, 433, 477, 478, 479, 459, 460,
+ 461, 159, 309, 344, 361, 410, 317, 318, 319, 249,
+ 310, 500, 100, 75, 467, 373, 374, 375, 389, 376,
+ 331, 314, 121, 122, 123, 215, 76, 77, 78, 142,
+ 124, 79, 80, 81, 82, 113, 114, 83, 143, 84
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -308
+#define YYPACT_NINF -374
static const yytype_int16 yypact[] =
{
- 349, -308, -308, -308, -308, -308, -308, -308, -308, -38,
- -86, -308, -72, 35, -308, -308, -308, -308, 30, -308,
- 97, -308, 52, -308, -14, 18, 36, -308, -308, -308,
- -308, 57, 44, -308, -308, 1538, 40, 1538, 1538, -308,
- 1538, 1538, 1538, 1538, 1538, 1538, 102, -308, 473, -308,
- -308, -308, -308, 211, -308, -308, -308, -308, -308, -308,
- -308, -308, -308, 275, 640, -308, -308, -308, -308, -308,
- -308, -308, -308, -308, 96, -308, 1971, -308, -308, 82,
- -308, -308, 1469, -308, -308, -308, -308, -308, -32, -308,
- 83, -308, 84, 104, 1538, 88, 89, -308, -308, -308,
- 1538, -308, 186, 1538, 104, -308, 104, 104, 163, 104,
- 104, 108, 116, -308, 1971, 114, 105, 128, -88, -308,
- -308, 165, 231, 233, -308, 144, 174, -308, -5, 240,
- -308, 241, -308, 244, -308, 1538, 1538, 1538, 1538, 1538,
- 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
- 1538, 1538, 1538, 1538, 1538, 1538, 1538, -308, -308, 1538,
- 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538, 1538,
- 1538, 1538, 1538, 1538, 1538, 245, 1538, -308, 1538, 232,
- 255, 1538, 1538, 231, 256, -308, 593, -308, 164, 248,
- -308, -308, -308, -308, 247, -308, -308, -308, 1538, 845,
- -308, 90, 1538, -308, 9, -82, 68, 1599, 1349, -308,
- 138, 1538, -308, 1538, 1538, -308, 1538, -308, 166, 171,
- -308, 166, 171, 1538, 1538, -308, -308, 267, 219, 221,
- 166, 1971, 962, 836, 836, 836, 2337, 2337, 2337, 2337,
- 962, 962, 1971, 1971, 1971, 1971, 1971, 1971, 1971, 1971,
- 1971, 2032, 2093, 340, 340, 340, 1971, 1727, 2154, 2215,
- 2276, 962, 962, 163, 163, 104, 104, 104, 1788, -308,
- 149, -62, 276, -308, 96, 96, -308, -308, 719, -308,
- 1849, -308, 154, 278, 1663, -308, 156, 971, -308, -308,
- -308, -308, -308, -308, 845, -308, 161, -69, 282, 167,
- 195, -308, 1469, 88, -308, -308, 169, 1349, -308, -55,
- -308, -308, 190, 63, 204, 231, -24, 86, 74, 178,
- 18, 292, 18, 187, 204, 1538, -308, -308, 1469, -308,
- -308, -308, 1538, 213, 188, -308, -308, 185, -308, 61,
- 63, -308, -308, 166, 11, -308, 62, 1469, 1538, -308,
- -308, 191, -308, -308, 1538, -308, -308, 1538, 1469, 9,
- -308, 18, 194, -308, 220, -308, -308, 1971, -308, 76,
- 182, 136, -308, -308, -308, -308, -308, -308, -308, -308,
- -308, -308, 224, 197, 282, -308, 202, 199, -308, -308,
- 62, -308, 265, -308, 92, -308, 203, -308, 205, 220,
- -308, 18, 394, -308, -308, -308, 1538, 235, 207, 136,
- -308, -308, -308, 1349, -308, -308, 336, -308, -308, 1469,
- -308, 1469, 166, 1097, -308, 337, -308, 316, 216, 529,
- -308, 1910, 1349, -308, -308, -308, 218, 1349, 166, -308,
- -308, 225, -308, -308, 66, 222, 1223, -308, -308, -308,
- -308, -5, -308, -308, 1349, -308, -308, 223, 226, -308,
- -308, -308, 345, -308, -308, -308, 1349, 239, 249, 238,
- 9, 1349, -308, 246, 250, 166, -308, -308
+ 1667, -68, -374, -374, -374, -374, -374, -374, -374, -374,
+ -30, -97, -374, -57, 20, -374, -374, -374, 49, -374,
+ 2087, -374, 71, -374, 2157, -374, -37, 85, -35, -374,
+ -374, -374, -374, 6, 8, -374, -374, 2087, 14, 2087,
+ 2087, 2087, -374, 2087, 2087, 2087, 2087, 2087, 627, 88,
+ 177, -374, 497, -374, -374, -374, 81, -374, 2017, -374,
+ -374, -374, -374, -374, -374, -374, -374, -374, 308, 298,
+ -374, -374, -374, -374, -374, -374, -374, -374, -374, 79,
+ -374, 2562, -374, -374, -374, 197, 86, -374, -374, 1919,
+ -374, -374, -374, -374, -374, -18, 206, -374, -46, -374,
+ 93, 133, 2087, 83, -374, 2087, -374, 2087, 215, 133,
+ -374, 117, 2562, 94, 127, 133, 133, 201, 133, 133,
+ -53, 103, 129, 2087, -374, 227, 228, 2087, 2087, 228,
+ 232, -374, -374, 757, -374, -374, 107, -374, -374, -374,
+ -374, 219, -374, -374, -374, -374, -374, 1017, 170, 236,
+ -374, 141, 176, -374, 70, 242, -374, 243, -374, 244,
+ -374, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087,
+ 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087,
+ 2087, 2087, 2087, 2087, -374, -374, 245, 2087, 2087, 2087,
+ 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087, 2087,
+ 2087, 2087, 2087, 2087, 11, -374, -374, 2087, 159, 247,
+ 2087, 1147, -374, 85, -374, 137, 24, -49, 16, 2182,
+ 1793, 130, -374, 2087, 2087, -374, 2087, -374, -374, -374,
+ -374, -374, 157, 164, -374, 79, 79, 164, -374, -374,
+ -374, 1919, 262, 134, 157, 2087, 2087, -374, -374, 269,
+ 226, 231, -374, 2562, 1009, 489, 489, 489, 2867, 2867,
+ 2867, 2867, 1009, 1009, 2562, 2562, 2562, 2562, 2562, 2562,
+ 2562, 2562, 2562, 2562, 304, 2623, -374, 349, 349, 349,
+ 2562, 2379, 2684, 2745, 2806, 1009, 1009, 201, 201, 133,
+ 133, 133, 148, 2440, 193, 2087, 281, -40, -374, 167,
+ 2253, -374, 154, 1277, -374, -374, 168, -374, -374, -374,
+ -374, 1147, -374, 2087, -374, 96, 287, 174, 200, -374,
+ 1919, 181, -374, -374, 169, 1793, -374, -36, -374, 204,
+ 26, 208, 228, 887, 212, -374, -20, 53, -31, 199,
+ 125, 309, 125, 205, 157, 2087, -374, -374, 324, 2316,
+ -374, 1919, 2087, 207, -374, -374, 1147, 202, 209, 67,
+ 26, -374, -374, 157, 25, -374, 110, 1919, 2087, 181,
+ -374, -374, 210, -374, -374, -374, -374, 2087, -374, -374,
+ -374, 39, 2087, 1919, 24, -374, 125, 217, -374, 251,
+ -374, 208, 2562, -374, -374, -374, -14, 27, 221, -374,
+ -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+ -374, 253, 233, 287, -374, 234, 241, -374, -374, 110,
+ -374, 267, -374, 126, -374, -374, -374, 250, -374, 252,
+ 251, -374, 125, 230, -374, -374, 2087, 259, 235, 27,
+ -374, -374, -374, -374, -374, -374, -374, 362, -374, -374,
+ 1919, -374, 1919, 157, 1407, -374, 366, -374, 347, 254,
+ 249, -374, 2501, 1793, -374, -374, -374, 1793, 1793, 157,
+ -374, -374, 256, -374, -374, 258, 74, 255, 1537, -374,
+ -374, -374, -374, 70, -374, -374, 1793, -374, 257, 261,
+ 264, -374, 1407, -374, -374, 385, -374, -374, -374, -374,
+ 1793, 270, 268, 265, 271, -374, 24, 1793, -374, 272,
+ 274, 157, -374, -374
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -308, -308, -308, -308, 328, 85, -308, 93, -209, 196,
- 1, -76, -244, 16, 59, 332, 268, 77, -308, -308,
- -308, -308, -308, -308, -308, -308, -308, -308, -308, -308,
- -308, -308, -308, -308, -15, -11, -308, -308, 15, -308,
- 17, -308, -308, -308, -308, -308, -308, -308, -193, 19,
- -308, -308, -308, -308, 0, -308, 335, -308, -308, -308,
- 31, -308, 39, -308, -308, -308, -40, -308, -308, -21,
- -308, 2, 27, -308, -307, -308, -271, -41, 3, -308,
- -308, -308, 398, -308, -20, 60, 78, -184, -308, -93,
- -308, -308, -308, -308, -308, -26, -17, -46, -18, -308,
- -308, -308, -308, -308, -308
+ -374, -374, 260, -374, 352, -285, -374, 98, -373, -39,
+ 1, -84, -310, 31, 2, 17, 351, 289, 89, -374,
+ -374, -374, -374, -374, -374, -374, -374, -374, -374, -374,
+ -374, -374, -374, -374, -374, -17, -16, -374, -374, 5,
+ -374, 13, -374, -374, -374, -374, -374, -374, -374, -202,
+ 36, -374, -374, -374, -374, 0, -374, 356, -374, -374,
+ -374, 58, -374, 59, -374, -65, -374, -48, -374, -374,
+ -26, -374, 3, -374, 32, -374, -369, -374, -298, -47,
+ 4, -374, -374, -374, -374, -374, 408, -318, 51, 78,
+ -237, -374, -99, -374, -374, -374, -374, -374, -374, -374,
+ -27, -3, -52, -7, -374, -374, -374, -374, -374, -374
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
positive, shift that token. If negative, reduce the rule which
number is the opposite. If zero, do what YYDEFACT says.
If YYTABLE_NINF, syntax error. */
-#define YYTABLE_NINF -205
+#define YYTABLE_NINF -153
static const yytype_int16 yytable[] =
{
- 63, 50, 68, 69, 93, 99, 188, 127, 295, 135,
- 210, 79, 297, 295, 297, 135, 51, 104, 115, 106,
- 107, 95, 108, 109, 110, 114, 114, 342, 118, 225,
- 339, 66, 88, 89, 340, 135, 85, 316, 84, 67,
- 81, 217, 135, -66, 96, 226, 324, 302, 63, 50,
- 68, 69, 398, 85, 83, 1, 2, 3, 345, 4,
- 5, 6, 7, 8, 51, 373, 95, 328, 374, 375,
- 376, 303, 377, 385, 347, 354, 18, 205, 20, 66,
- 21, 85, 207, 270, 368, 114, 85, 67, 80, 386,
- 200, 201, 128, 84, 387, 303, 27, 130, 349, 298,
- 91, 384, 119, 392, 32, 378, 33, 34, 85, 296,
- 85, 132, 94, 414, 397, 379, 380, 231, 232, 233,
- 234, 235, 236, 237, 238, 239, 240, 241, 242, 243,
- 244, 245, 246, 247, 248, 249, 250, 251, 252, 37,
- 38, 253, 254, 255, 256, 257, 258, 259, 260, 261,
- 262, 263, 264, 265, 266, 267, 268, 86, 114, 383,
- 115, 271, 100, 473, 274, 275, 105, 102, 280, 406,
- 103, 135, 43, 135, 44, 439, 350, 440, 45, 101,
- 284, 304, 357, 135, 114, 404, 405, 310, 311, 209,
- 312, 157, 158, 135, 309, 114, 114, 407, 114, 63,
- 50, 295, 331, 358, 436, 403, 317, 318, 177, 202,
- 204, -104, 206, 213, 121, 2, 3, 214, 4, 5,
- 6, 7, 8, 455, 174, 216, 188, 175, 457, 212,
- 176, 331, -67, 215, 218, 18, 221, 20, 441, 21,
- 223, 224, 122, 228, 229, 463, 22, 230, 269, 272,
- 157, 158, 188, 26, 458, 27, 123, 469, 273, 276,
- 281, 282, 474, 32, 283, 33, 34, 308, 315, 313,
- 319, 188, 320, 35, 322, 171, 172, 173, 327, 329,
- 332, 333, 188, 174, 335, 297, 175, 63, 50, 176,
- 338, 477, 344, 348, 63, 50, 343, 346, 37, 38,
- 360, 128, 363, 354, 359, 129, 130, 367, 361, 365,
- 371, 396, 370, 372, 394, 369, 400, 401, 131, 413,
- 132, 40, 393, 339, 415, 416, 41, 42, 395, 419,
- 114, 43, 421, 44, 422, 433, 114, 45, 432, 438,
- 450, 363, 451, 188, 452, 188, 456, 459, 467, -3,
- 460, 464, 1, 2, 3, 465, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 470, 472, 13, 14, 15,
- 16, 471, 17, 18, 19, 475, 120, 21, 476, 337,
- 336, 424, 278, 366, 22, 124, 23, 24, 431, 25,
- 219, 26, 356, 27, 434, 28, 29, 30, 435, 134,
- 31, 32, 427, 33, 34, 417, 461, 418, 453, 412,
- 462, 35, 36, 14, 15, 16, 90, 17, 382, 19,
- 0, 399, 0, 444, 443, 448, 449, 157, 158, 427,
- 0, 23, 0, 0, 0, 0, 37, 38, 0, 425,
- 28, 29, 30, 0, 0, 39, 444, 443, 448, 449,
- 169, 170, 171, 172, 173, 0, 0, 0, 0, 40,
- 174, 0, 0, 175, 41, 42, 176, 0, 0, 43,
- 0, 44, 0, -4, 0, 45, 1, 2, 3, 0,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 0,
- 426, 13, 14, 15, 16, 0, 17, 18, 19, 0,
- 0, 21, 0, 0, 0, 0, 0, 0, 22, 0,
- 23, 24, 0, 25, 0, 26, 0, 27, 0, 28,
- 29, 30, -145, 0, 31, 32, 0, 33, 34, 0,
- 0, 0, 0, 0, 0, 35, 36, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 14, 15,
- 16, 0, 17, 0, 19, 0, 0, 0, 0, 0,
- 37, 38, 0, 0, 0, 0, 23, 0, 0, 39,
- 0, 0, 0, 0, 425, 28, 29, 30, 0, 0,
- 0, 0, 0, 40, 0, 0, 0, 0, 41, 42,
- 0, 0, 0, 43, 0, 44, 1, 2, 3, 45,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 0,
- 0, 0, 14, 15, 16, 179, 17, 18, 19, 20,
- 0, 21, 180, 0, 122, 426, 0, 0, 22, 181,
- 23, 24, 0, 25, 182, 26, 0, 27, 183, 28,
- 29, 30, 0, 0, 31, 32, 0, 33, 34, 0,
- 0, 0, 0, 0, 0, 35, 36, -146, 184, 14,
- 15, 16, 0, 17, 0, 19, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 23, 0, 0,
- 37, 38, 0, 0, 0, 0, 28, 29, 30, 185,
+ 68, 54, 56, 73, 74, 208, 153, 336, 221, 133,
+ 365, 312, 111, 98, 294, 429, 312, 101, 362, 321,
+ 86, 85, 385, 91, 388, 88, 357, 315, 315, 369,
+ 109, 55, 112, 115, 116, 92, 117, 118, 119, 92,
+ 112, 395, 425, 120, 426, 92, 186, 161, -70, 240,
+ 95, 161, 68, 54, 56, 73, 74, 421, 71, 72,
+ 161, 436, 370, 103, 161, 90, 414, 96, 388, 161,
+ 401, 398, 402, 428, 99, 403, 404, 405, 203, 406,
+ 227, 204, 377, 55, 320, 102, 161, 105, 91, 437,
+ 487, 144, 87, 351, 488, 489, 230, 367, 219, 217,
+ 112, 154, 383, 292, 92, 247, 156, 391, 212, 213,
+ 71, 72, 407, 496, 455, 445, 112, 316, 413, 435,
+ 158, 248, 408, 409, 235, 236, 412, 504, 369, 321,
+ 107, 322, 106, 295, 510, 108, 110, 509, 415, 296,
+ 470, 371, 471, 416, 92, 92, 93, 68, 54, 56,
+ 73, 74, 382, 161, 253, 254, 255, 256, 257, 258,
+ 259, 260, 261, 262, 263, 264, 265, 266, 267, 268,
+ 269, 270, 271, 272, 273, 274, 275, 145, 55, 161,
+ 277, 278, 279, 280, 281, 282, 283, 284, 285, 286,
+ 287, 288, 289, 290, 291, 112, 293, 328, 359, 329,
+ 205, 360, 333, 300, 297, 71, 72, 147, 206, 214,
+ 218, 68, 54, 306, 358, 216, 472, 112, 222, 112,
+ 327, 312, 224, 184, 185, 186, 225, 226, 228, 229,
+ 231, 232, 490, 241, 2, 238, 208, 242, -71, 244,
+ 245, 240, 337, 338, 246, 250, 251, 252, 276, 240,
+ 15, 16, 17, 2, 19, 202, 21, 203, 298, 313,
+ 204, 299, 330, 326, 332, 334, 335, 208, 25, 15,
+ 16, 17, 339, 19, 513, 21, 456, 30, 31, 32,
+ 340, 346, 348, 208, 350, 342, 354, 25, 349, 352,
+ 315, 184, 185, 186, 356, 456, 30, 31, 32, 208,
+ 364, 366, 2, 68, 54, 306, 112, 363, -108, 368,
+ 377, 68, 54, 306, 381, 199, 200, 201, 15, 16,
+ 17, 384, 19, 202, 21, 203, 386, 393, 204, 457,
+ 427, 390, 450, 397, 399, 154, 25, 423, 392, 155,
+ 156, 422, 400, 431, 162, 30, 31, 32, 457, 396,
+ 424, 432, 157, 442, 158, 359, 68, 54, 306, 444,
+ 446, 112, -151, 447, 463, 469, 208, 464, 208, 482,
+ 112, 163, 164, 165, 483, 166, 167, 168, 169, 170,
+ 171, -152, 491, 452, 492, 453, 484, 493, 502, 497,
+ 506, 507, 183, 498, 184, 185, 186, 499, 187, 188,
+ 189, 355, 505, 508, 146, 511, 512, 243, 434, 150,
+ 192, 193, 194, 195, 196, 233, 197, 198, 199, 200,
+ 201, 379, 465, 466, 448, 160, 202, 501, 203, 462,
+ 494, 204, 449, 458, 485, 104, 495, 430, 411, 184,
+ 185, 186, 0, 443, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 476, 474, 475, 480, 481, 0,
+ 458, 197, 198, 199, 200, 201, 0, 0, 0, 0,
+ 0, 202, 0, 203, 0, 0, 204, 0, 476, 474,
+ 475, 480, 481, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 476, 474, 475, 480, 481, -4, 0, 0,
+ 1, 2, 3, 4, 0, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 0, 0, 14, 15, 16, 17,
+ 18, 19, 20, 21, 0, 0, 23, 0, 0, 162,
+ 0, 0, 0, 24, 0, 25, 26, 0, 27, 0,
+ 28, 0, 29, 0, 30, 31, 32, 0, 0, 33,
+ 34, 0, 35, 36, 0, 0, -153, -153, -153, 0,
+ 37, 38, 0, 0, 170, 171, 0, 39, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 184,
+ 185, 186, 0, 187, 188, 189, 0, 40, 41, 0,
+ 0, 0, 0, 0, 0, 0, 42, 0, 195, 196,
+ 0, 197, 198, 199, 200, 201, 0, 0, 0, 43,
+ 0, 202, 0, 203, 44, 45, 204, 0, 0, 46,
+ 0, 47, 0, 48, 0, 49, 0, 0, 0, -4,
+ 1, 2, 3, 4, 0, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 0, 0, 0, 15, 16, 17,
+ 18, 19, 20, 21, 22, 0, 23, 125, 0, 126,
+ 0, 0, 0, 24, 127, 25, 26, 0, 27, 128,
+ 28, 0, 29, 129, 30, 31, 32, 0, 0, 33,
+ 34, 0, 35, 36, 0, 0, 0, 0, 0, 0,
+ 37, 38, 0, 130, 0, 0, 0, 39, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 40, 0, 0, 0, 0, 41, 42,
- 0, 0, 0, 43, 0, 44, 0, 0, 0, 45,
- 0, 277, 1, 2, 3, 0, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 0, 0, 0, 14, 15,
- 16, 179, 17, 18, 19, 20, 0, 21, 180, 0,
- 122, 0, 0, 0, 22, 181, 23, 24, 0, 25,
- 182, 26, 0, 27, 183, 28, 29, 30, 0, 0,
- 31, 32, 0, 33, 34, 0, 0, 0, 0, 0,
- 0, 35, 36, 0, 184, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
+ 0, 0, 0, 0, 0, 0, 131, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
+ 0, 0, 0, 0, 44, 45, 0, 0, 0, 46,
+ 0, 47, 0, 48, 0, 49, 0, 0, 0, 132,
+ 1, 2, 3, 4, 0, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 0, 0, 0, 15, 16, 17,
+ 18, 19, 20, 21, 22, 0, 23, 125, 0, 126,
+ 0, 0, 0, 24, 127, 25, 26, 0, 27, 128,
+ 28, 0, 29, 129, 30, 31, 32, 0, 0, 33,
+ 34, 0, 35, 36, 0, 0, 0, 0, 0, 0,
+ 37, 38, 0, 130, 0, 0, 0, 39, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 37, 38, 0, 0,
- 0, 0, 0, 0, 0, 185, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
- 0, 0, 0, 0, 41, 42, 0, 0, 0, 43,
- 0, 44, 0, 0, 0, 45, 0, 330, 1, 2,
- 3, 0, 4, 5, 6, 7, 8, 9, 10, 11,
- 12, 0, 0, 0, 14, 15, 16, 0, 17, 18,
- 19, 0, 0, 21, 0, 136, 0, 0, 0, 0,
- 22, 0, 23, 24, 0, 25, 0, 26, 0, 27,
- 0, 28, 29, 30, 0, 0, 31, 32, 0, 33,
- 34, 0, -205, -205, -205, 0, 0, 35, 36, 144,
- 145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 157, 158, 0, 0, 159, 160, 161,
- 0, 0, 37, 38, 0, 0, 0, 0, 0, 0,
- 0, 285, 0, 167, 168, 0, 169, 170, 171, 172,
- 173, 0, 0, 0, 0, 40, 174, 0, 0, 175,
- 41, 42, 176, 0, 0, 43, 0, 44, 0, 0,
- 0, 45, 0, -14, 1, 2, 3, 0, 4, 5,
- 6, 7, 8, 9, 10, 11, 12, 0, 0, 0,
- 14, 15, 16, 0, 17, 18, 19, 0, 0, 21,
- 0, -205, 0, 0, 0, 0, 22, 0, 23, 24,
- 0, 25, 0, 26, 0, 27, 0, 28, 29, 30,
- 0, 0, 31, 32, 0, 33, 34, 0, 0, 0,
- 0, 0, 0, 35, 36, -205, -205, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 157,
- 158, 0, 0, 159, 160, 161, 0, 0, 37, 38,
- 0, 0, 0, 0, 0, 0, 0, 285, 0, -205,
- -205, 0, 169, 170, 171, 172, 173, 0, 0, 0,
- 0, 40, 174, 0, 0, 175, 41, 42, 176, 0,
- 0, 43, 0, 44, 0, 0, 0, 45, 0, -15,
- 1, 2, 3, 0, 4, 5, 6, 7, 8, 9,
- 10, 11, 12, 0, 0, 0, 14, 15, 16, 0,
- 17, 18, 19, 0, 0, 21, 0, 0, 0, 0,
- 0, 0, 22, 0, 23, 24, 0, 25, 0, 26,
- 0, 27, 0, 28, 29, 30, 0, 0, 31, 32,
- 0, 33, 34, 0, 0, 0, 0, 0, 0, 35,
- 36, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
+ 0, 0, 0, 0, 0, 0, 131, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
+ 0, 0, 0, 0, 44, 45, 0, 0, 0, 46,
+ 0, 47, 0, 48, 0, 49, 0, 0, 0, 239,
+ 1, 2, 3, 4, 0, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 0, 0, 0, 15, 16, 17,
+ 18, 19, 20, 21, 22, 0, 23, 125, 0, 126,
+ 0, 0, 0, 24, 127, 25, 26, 0, 27, 128,
+ 28, 0, 29, 129, 30, 31, 32, 0, 0, 33,
+ 34, 0, 35, 36, 0, 0, 0, 0, 0, 0,
+ 37, 38, 0, 130, 0, 0, 0, 39, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 37, 38, 0, 0, 0, 0,
- 0, 0, 0, 442, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 40, 0, 0,
- 0, 0, 41, 42, 0, 0, 0, 43, 0, 44,
- 0, 0, 0, 45, 0, -137, 1, 2, 3, 0,
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 0,
- 0, 0, 14, 15, 16, 0, 17, 18, 19, 0,
- 0, 21, 0, 0, 0, 0, 0, 0, 22, 0,
- 23, 24, 0, 25, 0, 26, 0, 27, 0, 28,
- 29, 30, 0, 0, 31, 32, 0, 33, 34, 0,
- 0, 0, 0, 0, 0, 35, 36, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
+ 0, 0, 0, 0, 0, 0, 131, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
+ 0, 0, 0, 0, 44, 45, 0, 0, 0, 46,
+ 0, 47, 0, 48, 0, 49, 0, 0, 0, 380,
+ 1, 2, 3, 4, 0, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 0, 0, 14, 15, 16, 17,
+ 18, 19, 20, 21, 0, 0, 23, 0, 0, -153,
+ 0, 0, 0, 24, 0, 25, 26, 0, 27, 0,
+ 28, 0, 29, 0, 30, 31, 32, 0, 0, 33,
+ 34, 0, 35, 36, 0, 0, 0, 0, 0, 0,
+ 37, 38, 0, 0, -153, -153, 0, 39, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 184,
+ 185, 186, 0, 187, 188, 189, 0, 40, 41, 0,
+ 0, 0, 0, 0, 0, 0, 42, 0, -153, -153,
+ 0, 197, 198, 199, 200, 201, 0, 0, 0, 43,
+ 0, 202, 0, 203, 44, 45, 204, 0, 0, 46,
+ 0, 47, 0, 48, 0, 49, 0, 0, 0, -3,
+ 1, 2, 3, 4, 0, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 0, 0, 0, 15, 16, 17,
+ 18, 19, 20, 21, 0, 0, 23, 0, 0, 0,
+ 0, 0, 0, 24, 0, 25, 26, 0, 27, 0,
+ 28, 0, 29, 0, 30, 31, 32, 0, 0, 33,
+ 34, 0, 35, 36, 0, 0, 0, 0, 0, 0,
+ 37, 38, 0, 0, 0, 0, 0, 39, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
+ 0, 0, 0, 0, 0, 0, 301, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
+ 0, 0, 0, 0, 44, 45, 0, 0, 0, 46,
+ 0, 47, 0, 48, 0, 49, 0, 0, 0, -15,
+ 1, 2, 3, 4, 0, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 0, 0, 0, 15, 16, 17,
+ 18, 19, 20, 21, 0, 0, 23, 0, 0, 0,
+ 0, 0, 0, 24, 0, 25, 26, 0, 27, 0,
+ 28, 0, 29, 0, 30, 31, 32, 0, 0, 33,
+ 34, 0, 35, 36, 0, 0, 0, 0, 0, 0,
+ 37, 38, 0, 0, 0, 0, 0, 39, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 37, 38, 0, 0, 0, 0, 0, 0, 0, 442,
+ 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
+ 0, 0, 0, 0, 0, 0, 301, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
+ 0, 0, 0, 0, 44, 45, 0, 0, 0, 46,
+ 0, 47, 0, 48, 0, 49, 0, 0, 0, -16,
+ 1, 2, 3, 4, 0, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 0, 0, 0, 15, 16, 17,
+ 18, 19, 20, 21, 0, 0, 23, 0, 0, 0,
+ 0, 0, 0, 24, 0, 25, 26, 0, 27, 0,
+ 28, 0, 29, 0, 30, 31, 32, 0, 0, 33,
+ 34, 0, 35, 36, 0, 0, 0, 0, 0, 0,
+ 37, 38, 0, 0, 0, 0, 0, 39, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 40, 0, 0, 0, 0, 41, 42,
- 0, 0, 0, 43, 0, 44, 0, 0, 0, 45,
- 0, -138, 1, 2, 3, 0, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 0, -114, 0, 14, 15,
- 16, 179, 17, 18, 19, 20, 0, 21, 180, 0,
- 122, 0, 0, 0, 22, 181, 23, 24, 0, 25,
- 182, 26, 0, 27, 183, 28, 29, 30, 0, 0,
- 31, 32, 0, 33, 34, 0, 0, 0, 0, 0,
- 0, 35, 36, 0, 184, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
+ 0, 0, 0, 0, 0, 0, 473, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
+ 0, 0, 0, 0, 44, 45, 0, 0, 0, 46,
+ 0, 47, 0, 48, 0, 49, 0, 0, 0, -142,
+ 1, 2, 3, 4, 0, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 0, 0, 0, 15, 16, 17,
+ 18, 19, 20, 21, 0, 0, 23, 0, 0, 0,
+ 0, 0, 0, 24, 0, 25, 26, 0, 27, 0,
+ 28, 0, 29, 0, 30, 31, 32, 0, 0, 33,
+ 34, 0, 35, 36, 0, 0, 0, 0, 0, 0,
+ 37, 38, 0, 0, 0, 0, 0, 39, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 37, 38, 0, 0,
- 0, 0, 0, 0, 0, 185, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
- 0, 0, 0, 0, 41, 42, 0, 0, 0, 43,
- 0, 44, 1, 2, 3, 45, 4, 5, 6, 7,
- 8, 9, 10, 11, 12, 0, 0, 0, 14, 15,
- 16, 179, 17, 18, 19, 20, 0, 21, 180, 0,
- 122, 0, 0, 0, 22, 181, 23, 24, 0, 25,
- 182, 26, 0, 27, 183, 28, 29, 30, 0, 0,
- 31, 32, 0, 33, 34, 0, 0, 0, 0, 0,
- 0, 35, 36, 0, 184, 0, 0, 0, 0, 0,
- 0, 1, 2, 3, 0, 4, 5, 6, 7, 8,
- 0, 0, 0, 0, 0, 0, 37, 38, 0, 0,
- 0, 0, 18, 0, 20, 185, 21, 0, 0, 0,
- 0, 0, 0, 22, 0, 0, 0, 0, 0, 40,
- 26, 0, 27, 0, 41, 42, 0, 0, 0, 43,
- 32, 186, 33, 34, 0, 45, 0, 0, 0, 0,
- 35, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
+ 0, 0, 0, 0, 0, 0, 473, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
+ 0, 0, 0, 0, 44, 45, 0, 0, 0, 46,
+ 0, 47, 0, 48, 0, 49, 0, -3, 0, -143,
+ 1, 2, 3, 4, 0, 5, 6, 7, 8, 9,
+ 10, 11, 12, 13, 0, 0, 14, 15, 16, 17,
+ 18, 19, 20, 21, 0, 0, 23, 0, 0, 0,
+ 0, 0, 0, 24, 0, 25, 26, 0, 27, 0,
+ 28, 0, 29, 0, 30, 31, 32, 0, 0, 33,
+ 34, 0, 35, 36, 0, 0, 0, 0, 0, 0,
+ 37, 38, 0, 0, 0, 0, 0, 39, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 37, 38, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 136, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 40, 0,
- 0, 0, 0, 41, 42, 0, 0, 0, 43, 0,
- 44, 0, 0, 0, 45, 137, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 0, 157, 158, 0, 0,
- 159, 160, 161, 0, 0, 0, 0, 0, 162, 0,
- 0, 163, 136, 164, 165, 166, 167, 168, 0, 169,
- 170, 171, 172, 173, 0, 0, 0, 0, 0, 174,
- 0, 0, 175, 0, 0, 176, 0, 0, 305, 137,
- 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
- 148, 149, 150, 151, 152, 153, 154, 155, 156, 0,
- 157, 158, 0, 0, 159, 160, 161, 0, 0, 0,
- 0, 0, 162, 0, 0, 163, 136, 164, 165, 166,
- 167, 168, 0, 169, 170, 171, 172, 173, 0, 0,
- 0, 0, 0, 174, 0, 0, 175, 0, 0, 176,
- 0, 0, 334, 137, 138, 139, 140, 141, 142, 143,
- 144, 145, 146, 147, 148, 149, 150, 151, 152, 153,
- 154, 155, 156, 0, 157, 158, 0, 0, 159, 160,
- 161, 0, 0, 0, 0, 0, 162, 136, 0, 163,
- 325, 164, 165, 166, 167, 168, 0, 169, 170, 171,
- 172, 173, 0, 0, 0, 0, 0, 174, 0, 0,
- 175, 0, 0, 176, 137, 138, 139, 140, 141, 142,
- 143, 144, 145, 146, 147, 148, 149, 150, 151, 152,
- 153, 154, 155, 156, 0, 157, 158, 0, 0, 159,
- 160, 161, 0, 0, 0, 0, 0, 162, 136, 0,
- 163, 0, 164, 165, 166, 167, 168, 0, 169, 170,
- 171, 172, 173, 0, 0, 0, 0, 0, 174, 326,
- 0, 175, 0, 0, 176, 137, 138, 139, 140, 141,
- 142, 143, 144, 145, 146, 147, 148, 149, 150, 151,
- 152, 153, 154, 155, 156, 0, 157, 158, 0, 0,
- 159, 160, 161, 0, 0, 0, 0, 0, 162, 136,
- 0, 163, -204, 164, 165, 166, 167, 168, 0, 169,
- 170, 171, 172, 173, 0, 0, 0, 0, 0, 174,
- 0, 0, 175, 0, 0, 176, 137, 138, 139, 140,
- 141, 142, 143, 144, 145, 146, 147, 148, 149, 150,
- 151, 152, 153, 154, 155, 156, 0, 157, 158, 0,
- 0, 159, 160, 161, 0, 0, 0, 0, 0, 162,
- 136, 0, 163, 454, 164, 165, 166, 167, 168, 0,
- 169, 170, 171, 172, 173, 0, 0, 0, 0, 0,
- 174, 0, 0, 175, 0, 0, 176, 137, 138, 139,
- 140, 141, 142, 143, 144, 145, 146, 147, 148, 149,
- 150, 151, 152, 153, 154, 155, 156, 0, 157, 158,
- 0, 0, 159, 160, 161, 0, 0, 0, 0, 0,
- 162, 136, 0, 163, 0, 164, 165, 166, 167, 168,
- 0, 169, 170, 171, 172, 173, 0, 0, 0, 0,
- 0, 174, 0, 0, 175, 0, 0, 176, 137, 138,
- 139, 140, 141, 142, 143, 144, 145, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 156, 0, 157,
- 158, 0, 0, 159, 160, 161, 0, 0, 0, 0,
- 0, 0, 136, 0, 0, 0, 164, 165, 166, 167,
- 168, 0, 169, 170, 171, 172, 173, 0, 0, 0,
- 0, 0, 174, 0, 0, 175, 0, 0, 176, 137,
- 138, 139, 140, 141, 142, 143, 144, 145, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
+ 0, 0, 0, 0, 0, 0, 42, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
+ 0, 0, 0, 0, 44, 45, 0, 0, 0, 46,
+ 0, 47, 0, 48, 0, 49, 1, 2, 3, 4,
+ 0, 5, 6, 7, 8, 9, 10, 11, 12, 13,
+ 0, -118, 0, 15, 16, 17, 18, 19, 20, 21,
+ 22, 0, 23, 125, 0, 126, 0, 0, 0, 24,
+ 127, 25, 26, 0, 27, 128, 28, 0, 29, 129,
+ 30, 31, 32, 0, 0, 33, 34, 0, 35, 36,
+ 0, 0, 0, 0, 0, 0, 37, 38, 0, 130,
+ 0, 0, 0, 39, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 157, 158, 0, 0, 159, 160, 161, 0, 0, 0,
- 0, 0, 0, 136, 0, 0, 0, 164, 165, 166,
- 167, 168, 0, 169, 170, 171, 172, 173, 0, 0,
- 0, 0, 0, 174, 0, 0, 175, 0, 0, 176,
- 137, 138, 139, 140, 141, 142, 143, 144, 145, 0,
+ 0, 0, 0, 40, 41, 0, 0, 0, 0, 0,
+ 0, 0, 131, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 43, 0, 0, 0, 0,
+ 44, 45, 0, 0, 0, 46, 0, 47, 0, 48,
+ 0, 49, 1, 2, 3, 4, 0, 5, 6, 7,
+ 8, 9, 10, 11, 12, 13, 0, 0, 0, 15,
+ 16, 17, 18, 19, 20, 21, 22, 0, 23, 125,
+ 0, 126, 0, 0, 0, 24, 127, 25, 26, 0,
+ 27, 128, 28, 0, 29, 129, 30, 31, 32, 0,
+ 0, 33, 34, 0, 35, 36, 0, 0, 0, 0,
+ 0, 0, 37, 38, 0, 130, 0, 0, 0, 39,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 157, 158, 0, 0, 159, 160, 161, 0, 0,
- 0, 0, 0, 0, 136, 0, 0, 0, 0, 165,
- 166, 167, 168, 0, 169, 170, 171, 172, 173, 0,
- 0, 0, 0, 0, 174, 0, 0, 175, 0, 0,
- 176, 137, 138, 139, 140, 141, 142, 143, 144, 145,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 40,
+ 41, 0, 0, 0, 0, 0, 0, 0, 131, 0,
+ 148, 0, 3, 4, 0, 5, 6, 7, 8, 9,
+ 0, 43, 0, 0, 0, 0, 44, 45, 0, 0,
+ 0, 46, 20, 47, 22, 48, 23, 49, 0, 126,
+ 0, 0, 0, 24, 0, 0, 0, 0, 0, 0,
+ 28, 0, 29, 149, 0, 0, 0, 0, 0, 0,
+ 34, 0, 35, 36, 0, 0, 0, 0, 0, 0,
+ 37, 0, 0, 0, 0, 0, 0, 39, 0, 0,
+ 97, 0, 3, 4, 0, 5, 6, 7, 8, 9,
+ 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
+ 0, 0, 20, 0, 22, 0, 23, 0, 0, 0,
+ 0, 0, 0, 24, 0, 0, 0, 0, 0, 43,
+ 28, 0, 29, 0, 44, 45, 0, 0, 0, 46,
+ 34, 47, 35, 36, 0, 49, 0, 0, 0, 0,
+ 37, 0, 0, 0, 0, 0, 0, 39, 0, 0,
+ 97, 0, 3, 4, 0, 5, 6, 7, 8, 9,
+ 0, 0, 0, 0, 0, 0, 0, 40, 41, 0,
+ 0, 0, 20, 0, 22, 0, 23, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 43,
+ 0, 0, 29, 0, 44, 45, 0, 0, 0, 46,
+ 34, 47, 35, 36, 0, 49, 0, 0, 0, 0,
+ 0, 0, 162, 0, 0, 0, 0, 39, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 40, 41, 163,
+ 164, 165, 0, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 0, 184, 185, 186, 0, 187, 188, 189, 46,
+ 0, 47, 0, 0, 190, 49, 191, 0, 192, 193,
+ 194, 195, 196, 162, 197, 198, 199, 200, 201, 0,
+ 0, 0, 0, 0, 202, 0, 203, 0, 0, 204,
+ 0, 0, 0, 0, 0, 323, 0, 0, 0, 0,
+ 163, 164, 165, 0, 166, 167, 168, 169, 170, 171,
+ 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 0, 184, 185, 186, 0, 187, 188, 189,
+ 0, 0, 0, 0, 0, 190, 162, 191, 0, 192,
+ 193, 194, 195, 196, 0, 197, 198, 199, 200, 201,
+ 0, 0, 0, 0, 0, 202, 0, 203, 0, 0,
+ 204, 0, 0, 163, 164, 165, 353, 166, 167, 168,
+ 169, 170, 171, 172, 173, 174, 175, 176, 177, 178,
+ 179, 180, 181, 182, 183, 0, 184, 185, 186, 0,
+ 187, 188, 189, 0, 0, 0, 0, 0, 190, 162,
+ 191, 0, 192, 193, 194, 195, 196, 0, 197, 198,
+ 199, 200, 201, 0, 0, 0, 0, 0, 202, 0,
+ 203, 0, 0, 204, 0, 0, 163, 164, 165, 394,
+ 166, 167, 168, 169, 170, 171, 172, 173, 174, 175,
+ 176, 177, 178, 179, 180, 181, 182, 183, 0, 184,
+ 185, 186, 0, 187, 188, 189, 0, 0, 0, 0,
+ 162, 190, 0, 191, 345, 192, 193, 194, 195, 196,
+ 0, 197, 198, 199, 200, 201, 0, 0, 0, 0,
+ 0, 202, 0, 203, 0, 0, 204, 163, 164, 165,
+ 0, 166, 167, 168, 169, 170, 171, 172, 173, 174,
+ 175, 176, 177, 178, 179, 180, 181, 182, 183, 0,
+ 184, 185, 186, 0, 187, 188, 189, 0, 0, 0,
+ 0, 162, 190, 0, 191, 0, 192, 193, 194, 195,
+ 196, 0, 197, 198, 199, 200, 201, 0, 0, 0,
+ 0, 0, 202, 0, 203, 347, 0, 204, 163, 164,
+ 165, 0, 166, 167, 168, 169, 170, 171, 172, 173,
+ 174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
+ 0, 184, 185, 186, 0, 187, 188, 189, 0, 0,
+ 0, 0, 162, 190, 0, 191, 486, 192, 193, 194,
+ 195, 196, 0, 197, 198, 199, 200, 201, 0, 0,
+ 0, 0, 0, 202, 0, 203, 0, 0, 204, 163,
+ 164, 165, 0, 166, 167, 168, 169, 170, 171, 172,
+ 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 0, 184, 185, 186, 0, 187, 188, 189, 0,
+ 0, 0, 0, 162, 190, 0, 191, 0, 192, 193,
+ 194, 195, 196, 0, 197, 198, 199, 200, 201, 0,
+ 0, 0, 0, 0, 202, 0, 203, 0, 0, 204,
+ 163, 164, 165, 0, 166, 167, 168, 169, 170, 171,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 157, 158, 0, 0, 159, 160, 161, 0,
- 0, 0, 0, 0, 0, 136, 0, 0, 0, 0,
- 0, 166, 167, 168, 0, 169, 170, 171, 172, 173,
- 0, 0, 0, 0, 0, 174, 0, 0, 175, 0,
- 0, 176, 137, 138, 139, 140, 141, 142, 143, 144,
- 145, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 157, 158, 0, 0, 159, 160, 161,
- 0, 0, 0, 0, 0, 0, 136, 0, 0, 0,
- 0, 0, -205, 167, 168, 0, 169, 170, 171, 172,
- 173, 0, 0, 0, 0, 0, 174, 0, 0, 175,
- 0, 0, 176, 137, 138, 139, -205, -205, -205, -205,
- 144, 145, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 157, 158, 0, 0, 159, 160,
- 161, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 167, 168, 0, 169, 170, 171,
- 172, 173, 0, 0, 0, 0, 0, 174, 0, 0,
- 175, 0, 0, 176
+ 0, 0, 0, 184, 185, 186, 0, 187, 188, 189,
+ 0, 0, 0, 0, 162, 0, 0, 0, 0, 192,
+ 193, 194, 195, 196, 0, 197, 198, 199, 200, 201,
+ 0, 0, 0, 0, 0, 202, 0, 203, 0, 0,
+ 204, 163, 164, 165, 0, 166, 167, 168, 169, 170,
+ 171, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 184, 185, 186, 0, 187, 188,
+ 189, 0, 0, 0, 0, 162, 0, 0, 0, 0,
+ 0, 193, 194, 195, 196, 0, 197, 198, 199, 200,
+ 201, 0, 0, 0, 0, 0, 202, 0, 203, 0,
+ 0, 204, 163, 164, 165, 0, 166, 167, 168, 169,
+ 170, 171, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 184, 185, 186, 0, 187,
+ 188, 189, 0, 0, 0, 0, 162, 0, 0, 0,
+ 0, 0, 0, 194, 195, 196, 0, 197, 198, 199,
+ 200, 201, 0, 0, 0, 0, 0, 202, 0, 203,
+ 0, 0, 204, 163, 164, 165, 0, 166, 167, 168,
+ 169, 170, 171, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 184, 185, 186, 0,
+ 187, 188, 189, 0, 0, 0, 0, 162, 0, 0,
+ 0, 0, 0, 0, -153, 195, 196, 0, 197, 198,
+ 199, 200, 201, 0, 0, 0, 0, 0, 202, 0,
+ 203, 0, 0, 204, 163, 164, 165, 0, -153, -153,
+ -153, -153, 170, 171, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 184, 185, 186,
+ 0, 187, 188, 189, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 195, 196, 0, 197,
+ 198, 199, 200, 201, 0, 0, 0, 0, 0, 202,
+ 0, 203, 0, 0, 204
};
static const yytype_int16 yycheck[] =
{
- 0, 0, 0, 0, 22, 25, 82, 53, 201, 97,
- 103, 49, 3, 206, 3, 97, 0, 35, 44, 37,
- 38, 3, 40, 41, 42, 43, 44, 298, 45, 34,
- 99, 0, 13, 3, 103, 97, 18, 221, 3, 0,
- 126, 129, 97, 67, 25, 50, 230, 129, 48, 48,
- 48, 48, 359, 18, 126, 3, 4, 5, 302, 7,
- 8, 9, 10, 11, 48, 4, 3, 129, 7, 8,
- 9, 3, 11, 344, 129, 99, 24, 94, 26, 48,
- 28, 18, 100, 176, 328, 103, 18, 48, 126, 27,
- 122, 123, 26, 3, 32, 3, 44, 31, 35, 90,
- 3, 90, 0, 347, 52, 44, 54, 55, 18, 202,
- 18, 45, 126, 384, 358, 54, 55, 135, 136, 137,
- 138, 139, 140, 141, 142, 143, 144, 145, 146, 147,
- 148, 149, 150, 151, 152, 153, 154, 155, 156, 87,
- 88, 159, 160, 161, 162, 163, 164, 165, 166, 167,
- 168, 169, 170, 171, 172, 173, 174, 122, 176, 343,
- 186, 178, 126, 470, 181, 182, 126, 123, 186, 33,
- 126, 97, 120, 97, 122, 419, 113, 421, 126, 122,
- 198, 113, 96, 97, 202, 3, 4, 213, 214, 3,
- 216, 87, 88, 97, 211, 213, 214, 61, 216, 199,
- 199, 394, 278, 129, 413, 129, 223, 224, 126, 126,
- 126, 123, 123, 97, 3, 4, 5, 103, 7, 8,
- 9, 10, 11, 432, 120, 97, 302, 123, 437, 121,
- 126, 307, 67, 128, 3, 24, 3, 26, 422, 28,
- 96, 67, 31, 3, 3, 454, 35, 3, 3, 17,
- 87, 88, 328, 42, 438, 44, 45, 466, 3, 3,
- 96, 13, 471, 52, 17, 54, 55, 129, 97, 103,
- 3, 347, 53, 62, 53, 112, 113, 114, 129, 3,
- 126, 3, 358, 120, 128, 3, 123, 287, 287, 126,
- 129, 475, 97, 103, 294, 294, 129, 128, 87, 88,
- 320, 26, 322, 99, 126, 30, 31, 325, 16, 122,
- 122, 357, 99, 128, 123, 332, 122, 97, 43, 122,
- 45, 110, 348, 99, 122, 126, 115, 116, 354, 64,
- 348, 120, 129, 122, 129, 128, 354, 126, 103, 3,
- 3, 361, 26, 419, 128, 421, 128, 122, 3, 0,
- 128, 128, 3, 4, 5, 129, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, 126, 128, 18, 19, 20,
- 21, 122, 23, 24, 25, 129, 48, 28, 128, 294,
- 287, 401, 186, 324, 35, 53, 37, 38, 406, 40,
- 122, 42, 315, 44, 409, 46, 47, 48, 409, 64,
- 51, 52, 402, 54, 55, 390, 446, 390, 429, 382,
- 451, 62, 63, 19, 20, 21, 18, 23, 340, 25,
- -1, 361, -1, 423, 423, 423, 423, 87, 88, 429,
- -1, 37, -1, -1, -1, -1, 87, 88, -1, 45,
- 46, 47, 48, -1, -1, 96, 446, 446, 446, 446,
- 110, 111, 112, 113, 114, -1, -1, -1, -1, 110,
- 120, -1, -1, 123, 115, 116, 126, -1, -1, 120,
- -1, 122, -1, 0, -1, 126, 3, 4, 5, -1,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, -1,
- 96, 18, 19, 20, 21, -1, 23, 24, 25, -1,
- -1, 28, -1, -1, -1, -1, -1, -1, 35, -1,
- 37, 38, -1, 40, -1, 42, -1, 44, -1, 46,
- 47, 48, 128, -1, 51, 52, -1, 54, 55, -1,
- -1, -1, -1, -1, -1, 62, 63, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 19, 20,
- 21, -1, 23, -1, 25, -1, -1, -1, -1, -1,
- 87, 88, -1, -1, -1, -1, 37, -1, -1, 96,
- -1, -1, -1, -1, 45, 46, 47, 48, -1, -1,
- -1, -1, -1, 110, -1, -1, -1, -1, 115, 116,
- -1, -1, -1, 120, -1, 122, 3, 4, 5, 126,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, -1,
- -1, -1, 19, 20, 21, 22, 23, 24, 25, 26,
- -1, 28, 29, -1, 31, 96, -1, -1, 35, 36,
- 37, 38, -1, 40, 41, 42, -1, 44, 45, 46,
- 47, 48, -1, -1, 51, 52, -1, 54, 55, -1,
- -1, -1, -1, -1, -1, 62, 63, 128, 65, 19,
- 20, 21, -1, 23, -1, 25, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 37, -1, -1,
- 87, 88, -1, -1, -1, -1, 46, 47, 48, 96,
+ 0, 0, 0, 0, 0, 89, 58, 244, 107, 48,
+ 320, 213, 39, 20, 3, 384, 218, 24, 316, 3,
+ 50, 89, 340, 3, 342, 122, 311, 3, 3, 3,
+ 37, 0, 39, 40, 41, 19, 43, 44, 45, 19,
+ 47, 351, 3, 46, 5, 19, 92, 100, 68, 133,
+ 14, 100, 52, 52, 52, 52, 52, 367, 0, 0,
+ 100, 34, 36, 27, 100, 122, 364, 18, 386, 100,
+ 3, 356, 5, 383, 3, 8, 9, 10, 124, 12,
+ 133, 127, 102, 52, 133, 122, 100, 122, 3, 62,
+ 463, 3, 122, 133, 467, 468, 123, 133, 105, 102,
+ 107, 27, 133, 202, 19, 35, 32, 344, 126, 127,
+ 52, 52, 45, 486, 432, 413, 123, 93, 93, 133,
+ 46, 51, 55, 56, 127, 128, 363, 500, 3, 3,
+ 122, 115, 126, 122, 507, 127, 122, 506, 28, 128,
+ 450, 115, 452, 33, 19, 19, 126, 147, 147, 147,
+ 147, 147, 99, 100, 161, 162, 163, 164, 165, 166,
+ 167, 168, 169, 170, 171, 172, 173, 174, 175, 176,
+ 177, 178, 179, 180, 181, 182, 183, 0, 147, 100,
+ 187, 188, 189, 190, 191, 192, 193, 194, 195, 196,
+ 197, 198, 199, 200, 201, 202, 203, 224, 102, 226,
+ 3, 105, 241, 210, 207, 147, 147, 126, 122, 3,
+ 127, 211, 211, 211, 313, 122, 453, 224, 3, 226,
+ 223, 423, 105, 90, 91, 92, 132, 100, 125, 100,
+ 3, 3, 469, 126, 4, 3, 320, 18, 68, 3,
+ 99, 325, 245, 246, 68, 3, 3, 3, 3, 333,
+ 20, 21, 22, 4, 24, 122, 26, 124, 99, 122,
+ 127, 14, 105, 133, 100, 3, 132, 351, 38, 20,
+ 21, 22, 3, 24, 511, 26, 46, 47, 48, 49,
+ 54, 133, 89, 367, 3, 54, 132, 38, 295, 122,
+ 3, 90, 91, 92, 126, 46, 47, 48, 49, 383,
+ 100, 132, 4, 303, 303, 303, 313, 133, 127, 105,
+ 102, 311, 311, 311, 102, 114, 115, 116, 20, 21,
+ 22, 122, 24, 122, 26, 124, 17, 3, 127, 99,
+ 382, 126, 65, 126, 132, 27, 38, 127, 345, 31,
+ 32, 368, 133, 126, 40, 47, 48, 49, 99, 352,
+ 377, 100, 44, 132, 46, 102, 356, 356, 356, 126,
+ 126, 368, 132, 122, 105, 3, 450, 132, 452, 3,
+ 377, 67, 68, 69, 27, 71, 72, 73, 74, 75,
+ 76, 132, 126, 133, 126, 133, 132, 132, 3, 132,
+ 122, 126, 88, 132, 90, 91, 92, 133, 94, 95,
+ 96, 303, 132, 132, 52, 133, 132, 147, 391, 58,
+ 106, 107, 108, 109, 110, 126, 112, 113, 114, 115,
+ 116, 332, 439, 439, 419, 69, 122, 492, 124, 436,
+ 478, 127, 419, 433, 460, 27, 483, 386, 360, 90,
+ 91, 92, -1, 411, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 454, 454, 454, 454, 454, -1,
+ 460, 112, 113, 114, 115, 116, -1, -1, -1, -1,
+ -1, 122, -1, 124, -1, -1, 127, -1, 478, 478,
+ 478, 478, 478, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, 492, 492, 492, 492, 492, 0, -1, -1,
+ 3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, -1, 19, 20, 21, 22,
+ 23, 24, 25, 26, -1, -1, 29, -1, -1, 40,
+ -1, -1, -1, 36, -1, 38, 39, -1, 41, -1,
+ 43, -1, 45, -1, 47, 48, 49, -1, -1, 52,
+ 53, -1, 55, 56, -1, -1, 67, 68, 69, -1,
+ 63, 64, -1, -1, 75, 76, -1, 70, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
+ 91, 92, -1, 94, 95, 96, -1, 90, 91, -1,
+ -1, -1, -1, -1, -1, -1, 99, -1, 109, 110,
+ -1, 112, 113, 114, 115, 116, -1, -1, -1, 112,
+ -1, 122, -1, 124, 117, 118, 127, -1, -1, 122,
+ -1, 124, -1, 126, -1, 128, -1, -1, -1, 132,
+ 3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, -1, 32,
+ -1, -1, -1, 36, 37, 38, 39, -1, 41, 42,
+ 43, -1, 45, 46, 47, 48, 49, -1, -1, 52,
+ 53, -1, 55, 56, -1, -1, -1, -1, -1, -1,
+ 63, 64, -1, 66, -1, -1, -1, 70, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 110, -1, -1, -1, -1, 115, 116,
- -1, -1, -1, 120, -1, 122, -1, -1, -1, 126,
- -1, 128, 3, 4, 5, -1, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, 24, 25, 26, -1, 28, 29, -1,
- 31, -1, -1, -1, 35, 36, 37, 38, -1, 40,
- 41, 42, -1, 44, 45, 46, 47, 48, -1, -1,
- 51, 52, -1, 54, 55, -1, -1, -1, -1, -1,
- -1, 62, 63, -1, 65, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
+ -1, -1, -1, -1, -1, -1, 99, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
+ -1, -1, -1, -1, 117, 118, -1, -1, -1, 122,
+ -1, 124, -1, 126, -1, 128, -1, -1, -1, 132,
+ 3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, -1, 32,
+ -1, -1, -1, 36, 37, 38, 39, -1, 41, 42,
+ 43, -1, 45, 46, 47, 48, 49, -1, -1, 52,
+ 53, -1, 55, 56, -1, -1, -1, -1, -1, -1,
+ 63, 64, -1, 66, -1, -1, -1, 70, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 87, 88, -1, -1,
- -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 110,
- -1, -1, -1, -1, 115, 116, -1, -1, -1, 120,
- -1, 122, -1, -1, -1, 126, -1, 128, 3, 4,
- 5, -1, 7, 8, 9, 10, 11, 12, 13, 14,
- 15, -1, -1, -1, 19, 20, 21, -1, 23, 24,
- 25, -1, -1, 28, -1, 39, -1, -1, -1, -1,
- 35, -1, 37, 38, -1, 40, -1, 42, -1, 44,
- -1, 46, 47, 48, -1, -1, 51, 52, -1, 54,
- 55, -1, 66, 67, 68, -1, -1, 62, 63, 73,
- 74, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 87, 88, -1, -1, 91, 92, 93,
- -1, -1, 87, 88, -1, -1, -1, -1, -1, -1,
- -1, 96, -1, 107, 108, -1, 110, 111, 112, 113,
- 114, -1, -1, -1, -1, 110, 120, -1, -1, 123,
- 115, 116, 126, -1, -1, 120, -1, 122, -1, -1,
- -1, 126, -1, 128, 3, 4, 5, -1, 7, 8,
- 9, 10, 11, 12, 13, 14, 15, -1, -1, -1,
- 19, 20, 21, -1, 23, 24, 25, -1, -1, 28,
- -1, 39, -1, -1, -1, -1, 35, -1, 37, 38,
- -1, 40, -1, 42, -1, 44, -1, 46, 47, 48,
- -1, -1, 51, 52, -1, 54, 55, -1, -1, -1,
- -1, -1, -1, 62, 63, 73, 74, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 87,
- 88, -1, -1, 91, 92, 93, -1, -1, 87, 88,
- -1, -1, -1, -1, -1, -1, -1, 96, -1, 107,
- 108, -1, 110, 111, 112, 113, 114, -1, -1, -1,
- -1, 110, 120, -1, -1, 123, 115, 116, 126, -1,
- -1, 120, -1, 122, -1, -1, -1, 126, -1, 128,
- 3, 4, 5, -1, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, -1, -1, -1, 19, 20, 21, -1,
- 23, 24, 25, -1, -1, 28, -1, -1, -1, -1,
- -1, -1, 35, -1, 37, 38, -1, 40, -1, 42,
- -1, 44, -1, 46, 47, 48, -1, -1, 51, 52,
- -1, 54, 55, -1, -1, -1, -1, -1, -1, 62,
- 63, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
+ -1, -1, -1, -1, -1, -1, 99, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
+ -1, -1, -1, -1, 117, 118, -1, -1, -1, 122,
+ -1, 124, -1, 126, -1, 128, -1, -1, -1, 132,
+ 3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, 27, -1, 29, 30, -1, 32,
+ -1, -1, -1, 36, 37, 38, 39, -1, 41, 42,
+ 43, -1, 45, 46, 47, 48, 49, -1, -1, 52,
+ 53, -1, 55, 56, -1, -1, -1, -1, -1, -1,
+ 63, 64, -1, 66, -1, -1, -1, 70, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 87, 88, -1, -1, -1, -1,
- -1, -1, -1, 96, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 110, -1, -1,
- -1, -1, 115, 116, -1, -1, -1, 120, -1, 122,
- -1, -1, -1, 126, -1, 128, 3, 4, 5, -1,
- 7, 8, 9, 10, 11, 12, 13, 14, 15, -1,
- -1, -1, 19, 20, 21, -1, 23, 24, 25, -1,
- -1, 28, -1, -1, -1, -1, -1, -1, 35, -1,
- 37, 38, -1, 40, -1, 42, -1, 44, -1, 46,
- 47, 48, -1, -1, 51, 52, -1, 54, 55, -1,
- -1, -1, -1, -1, -1, 62, 63, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
+ -1, -1, -1, -1, -1, -1, 99, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
+ -1, -1, -1, -1, 117, 118, -1, -1, -1, 122,
+ -1, 124, -1, 126, -1, 128, -1, -1, -1, 132,
+ 3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, -1, 19, 20, 21, 22,
+ 23, 24, 25, 26, -1, -1, 29, -1, -1, 40,
+ -1, -1, -1, 36, -1, 38, 39, -1, 41, -1,
+ 43, -1, 45, -1, 47, 48, 49, -1, -1, 52,
+ 53, -1, 55, 56, -1, -1, -1, -1, -1, -1,
+ 63, 64, -1, -1, 75, 76, -1, 70, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
+ 91, 92, -1, 94, 95, 96, -1, 90, 91, -1,
+ -1, -1, -1, -1, -1, -1, 99, -1, 109, 110,
+ -1, 112, 113, 114, 115, 116, -1, -1, -1, 112,
+ -1, 122, -1, 124, 117, 118, 127, -1, -1, 122,
+ -1, 124, -1, 126, -1, 128, -1, -1, -1, 132,
+ 3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, -1, -1, 29, -1, -1, -1,
+ -1, -1, -1, 36, -1, 38, 39, -1, 41, -1,
+ 43, -1, 45, -1, 47, 48, 49, -1, -1, 52,
+ 53, -1, 55, 56, -1, -1, -1, -1, -1, -1,
+ 63, 64, -1, -1, -1, -1, -1, 70, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
+ -1, -1, -1, -1, -1, -1, 99, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
+ -1, -1, -1, -1, 117, 118, -1, -1, -1, 122,
+ -1, 124, -1, 126, -1, 128, -1, -1, -1, 132,
+ 3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, -1, -1, 29, -1, -1, -1,
+ -1, -1, -1, 36, -1, 38, 39, -1, 41, -1,
+ 43, -1, 45, -1, 47, 48, 49, -1, -1, 52,
+ 53, -1, 55, 56, -1, -1, -1, -1, -1, -1,
+ 63, 64, -1, -1, -1, -1, -1, 70, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 87, 88, -1, -1, -1, -1, -1, -1, -1, 96,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
+ -1, -1, -1, -1, -1, -1, 99, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
+ -1, -1, -1, -1, 117, 118, -1, -1, -1, 122,
+ -1, 124, -1, 126, -1, 128, -1, -1, -1, 132,
+ 3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, -1, -1, 29, -1, -1, -1,
+ -1, -1, -1, 36, -1, 38, 39, -1, 41, -1,
+ 43, -1, 45, -1, 47, 48, 49, -1, -1, 52,
+ 53, -1, 55, 56, -1, -1, -1, -1, -1, -1,
+ 63, 64, -1, -1, -1, -1, -1, 70, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 110, -1, -1, -1, -1, 115, 116,
- -1, -1, -1, 120, -1, 122, -1, -1, -1, 126,
- -1, 128, 3, 4, 5, -1, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, -1, 17, -1, 19, 20,
- 21, 22, 23, 24, 25, 26, -1, 28, 29, -1,
- 31, -1, -1, -1, 35, 36, 37, 38, -1, 40,
- 41, 42, -1, 44, 45, 46, 47, 48, -1, -1,
- 51, 52, -1, 54, 55, -1, -1, -1, -1, -1,
- -1, 62, 63, -1, 65, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
+ -1, -1, -1, -1, -1, -1, 99, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
+ -1, -1, -1, -1, 117, 118, -1, -1, -1, 122,
+ -1, 124, -1, 126, -1, 128, -1, -1, -1, 132,
+ 3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, -1, -1, 20, 21, 22,
+ 23, 24, 25, 26, -1, -1, 29, -1, -1, -1,
+ -1, -1, -1, 36, -1, 38, 39, -1, 41, -1,
+ 43, -1, 45, -1, 47, 48, 49, -1, -1, 52,
+ 53, -1, 55, 56, -1, -1, -1, -1, -1, -1,
+ 63, 64, -1, -1, -1, -1, -1, 70, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 87, 88, -1, -1,
- -1, -1, -1, -1, -1, 96, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 110,
- -1, -1, -1, -1, 115, 116, -1, -1, -1, 120,
- -1, 122, 3, 4, 5, 126, 7, 8, 9, 10,
- 11, 12, 13, 14, 15, -1, -1, -1, 19, 20,
- 21, 22, 23, 24, 25, 26, -1, 28, 29, -1,
- 31, -1, -1, -1, 35, 36, 37, 38, -1, 40,
- 41, 42, -1, 44, 45, 46, 47, 48, -1, -1,
- 51, 52, -1, 54, 55, -1, -1, -1, -1, -1,
- -1, 62, 63, -1, 65, -1, -1, -1, -1, -1,
- -1, 3, 4, 5, -1, 7, 8, 9, 10, 11,
- -1, -1, -1, -1, -1, -1, 87, 88, -1, -1,
- -1, -1, 24, -1, 26, 96, 28, -1, -1, -1,
- -1, -1, -1, 35, -1, -1, -1, -1, -1, 110,
- 42, -1, 44, -1, 115, 116, -1, -1, -1, 120,
- 52, 122, 54, 55, -1, 126, -1, -1, -1, -1,
- 62, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
+ -1, -1, -1, -1, -1, -1, 99, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
+ -1, -1, -1, -1, 117, 118, -1, -1, -1, 122,
+ -1, 124, -1, 126, -1, 128, -1, 0, -1, 132,
+ 3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, -1, -1, 19, 20, 21, 22,
+ 23, 24, 25, 26, -1, -1, 29, -1, -1, -1,
+ -1, -1, -1, 36, -1, 38, 39, -1, 41, -1,
+ 43, -1, 45, -1, 47, 48, 49, -1, -1, 52,
+ 53, -1, 55, 56, -1, -1, -1, -1, -1, -1,
+ 63, 64, -1, -1, -1, -1, -1, 70, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 87, 88, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 39, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 110, -1,
- -1, -1, -1, 115, 116, -1, -1, -1, 120, -1,
- 122, -1, -1, -1, 126, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, -1, 87, 88, -1, -1,
- 91, 92, 93, -1, -1, -1, -1, -1, 99, -1,
- -1, 102, 39, 104, 105, 106, 107, 108, -1, 110,
- 111, 112, 113, 114, -1, -1, -1, -1, -1, 120,
- -1, -1, 123, -1, -1, 126, -1, -1, 129, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 83, 84, 85, -1,
- 87, 88, -1, -1, 91, 92, 93, -1, -1, -1,
- -1, -1, 99, -1, -1, 102, 39, 104, 105, 106,
- 107, 108, -1, 110, 111, 112, 113, 114, -1, -1,
- -1, -1, -1, 120, -1, -1, 123, -1, -1, 126,
- -1, -1, 129, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, 75, 76, 77, 78, 79, 80, 81, 82,
- 83, 84, 85, -1, 87, 88, -1, -1, 91, 92,
- 93, -1, -1, -1, -1, -1, 99, 39, -1, 102,
- 103, 104, 105, 106, 107, 108, -1, 110, 111, 112,
- 113, 114, -1, -1, -1, -1, -1, 120, -1, -1,
- 123, -1, -1, 126, 66, 67, 68, 69, 70, 71,
- 72, 73, 74, 75, 76, 77, 78, 79, 80, 81,
- 82, 83, 84, 85, -1, 87, 88, -1, -1, 91,
- 92, 93, -1, -1, -1, -1, -1, 99, 39, -1,
- 102, -1, 104, 105, 106, 107, 108, -1, 110, 111,
- 112, 113, 114, -1, -1, -1, -1, -1, 120, 121,
- -1, 123, -1, -1, 126, 66, 67, 68, 69, 70,
- 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
- 81, 82, 83, 84, 85, -1, 87, 88, -1, -1,
- 91, 92, 93, -1, -1, -1, -1, -1, 99, 39,
- -1, 102, 103, 104, 105, 106, 107, 108, -1, 110,
- 111, 112, 113, 114, -1, -1, -1, -1, -1, 120,
- -1, -1, 123, -1, -1, 126, 66, 67, 68, 69,
- 70, 71, 72, 73, 74, 75, 76, 77, 78, 79,
- 80, 81, 82, 83, 84, 85, -1, 87, 88, -1,
- -1, 91, 92, 93, -1, -1, -1, -1, -1, 99,
- 39, -1, 102, 103, 104, 105, 106, 107, 108, -1,
- 110, 111, 112, 113, 114, -1, -1, -1, -1, -1,
- 120, -1, -1, 123, -1, -1, 126, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, -1, 87, 88,
- -1, -1, 91, 92, 93, -1, -1, -1, -1, -1,
- 99, 39, -1, 102, -1, 104, 105, 106, 107, 108,
- -1, 110, 111, 112, 113, 114, -1, -1, -1, -1,
- -1, 120, -1, -1, 123, -1, -1, 126, 66, 67,
- 68, 69, 70, 71, 72, 73, 74, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 85, -1, 87,
- 88, -1, -1, 91, 92, 93, -1, -1, -1, -1,
- -1, -1, 39, -1, -1, -1, 104, 105, 106, 107,
- 108, -1, 110, 111, 112, 113, 114, -1, -1, -1,
- -1, -1, 120, -1, -1, 123, -1, -1, 126, 66,
- 67, 68, 69, 70, 71, 72, 73, 74, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
+ -1, -1, -1, -1, -1, -1, 99, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
+ -1, -1, -1, -1, 117, 118, -1, -1, -1, 122,
+ -1, 124, -1, 126, -1, 128, 3, 4, 5, 6,
+ -1, 8, 9, 10, 11, 12, 13, 14, 15, 16,
+ -1, 18, -1, 20, 21, 22, 23, 24, 25, 26,
+ 27, -1, 29, 30, -1, 32, -1, -1, -1, 36,
+ 37, 38, 39, -1, 41, 42, 43, -1, 45, 46,
+ 47, 48, 49, -1, -1, 52, 53, -1, 55, 56,
+ -1, -1, -1, -1, -1, -1, 63, 64, -1, 66,
+ -1, -1, -1, 70, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 87, 88, -1, -1, 91, 92, 93, -1, -1, -1,
- -1, -1, -1, 39, -1, -1, -1, 104, 105, 106,
- 107, 108, -1, 110, 111, 112, 113, 114, -1, -1,
- -1, -1, -1, 120, -1, -1, 123, -1, -1, 126,
- 66, 67, 68, 69, 70, 71, 72, 73, 74, -1,
+ -1, -1, -1, 90, 91, -1, -1, -1, -1, -1,
+ -1, -1, 99, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 112, -1, -1, -1, -1,
+ 117, 118, -1, -1, -1, 122, -1, 124, -1, 126,
+ -1, 128, 3, 4, 5, 6, -1, 8, 9, 10,
+ 11, 12, 13, 14, 15, 16, -1, -1, -1, 20,
+ 21, 22, 23, 24, 25, 26, 27, -1, 29, 30,
+ -1, 32, -1, -1, -1, 36, 37, 38, 39, -1,
+ 41, 42, 43, -1, 45, 46, 47, 48, 49, -1,
+ -1, 52, 53, -1, 55, 56, -1, -1, -1, -1,
+ -1, -1, 63, 64, -1, 66, -1, -1, -1, 70,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, 87, 88, -1, -1, 91, 92, 93, -1, -1,
- -1, -1, -1, -1, 39, -1, -1, -1, -1, 105,
- 106, 107, 108, -1, 110, 111, 112, 113, 114, -1,
- -1, -1, -1, -1, 120, -1, -1, 123, -1, -1,
- 126, 66, 67, 68, 69, 70, 71, 72, 73, 74,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
+ 91, -1, -1, -1, -1, -1, -1, -1, 99, -1,
+ 3, -1, 5, 6, -1, 8, 9, 10, 11, 12,
+ -1, 112, -1, -1, -1, -1, 117, 118, -1, -1,
+ -1, 122, 25, 124, 27, 126, 29, 128, -1, 32,
+ -1, -1, -1, 36, -1, -1, -1, -1, -1, -1,
+ 43, -1, 45, 46, -1, -1, -1, -1, -1, -1,
+ 53, -1, 55, 56, -1, -1, -1, -1, -1, -1,
+ 63, -1, -1, -1, -1, -1, -1, 70, -1, -1,
+ 3, -1, 5, 6, -1, 8, 9, 10, 11, 12,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
+ -1, -1, 25, -1, 27, -1, 29, -1, -1, -1,
+ -1, -1, -1, 36, -1, -1, -1, -1, -1, 112,
+ 43, -1, 45, -1, 117, 118, -1, -1, -1, 122,
+ 53, 124, 55, 56, -1, 128, -1, -1, -1, -1,
+ 63, -1, -1, -1, -1, -1, -1, 70, -1, -1,
+ 3, -1, 5, 6, -1, 8, 9, 10, 11, 12,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, -1,
+ -1, -1, 25, -1, 27, -1, 29, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 112,
+ -1, -1, 45, -1, 117, 118, -1, -1, -1, 122,
+ 53, 124, 55, 56, -1, 128, -1, -1, -1, -1,
+ -1, -1, 40, -1, -1, -1, -1, 70, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 87, 88, -1, -1, 91, 92, 93, -1,
- -1, -1, -1, -1, -1, 39, -1, -1, -1, -1,
- -1, 106, 107, 108, -1, 110, 111, 112, 113, 114,
- -1, -1, -1, -1, -1, 120, -1, -1, 123, -1,
- -1, 126, 66, 67, 68, 69, 70, 71, 72, 73,
- 74, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, 87, 88, -1, -1, 91, 92, 93,
- -1, -1, -1, -1, -1, -1, 39, -1, -1, -1,
- -1, -1, 106, 107, 108, -1, 110, 111, 112, 113,
- 114, -1, -1, -1, -1, -1, 120, -1, -1, 123,
- -1, -1, 126, 66, 67, 68, 69, 70, 71, 72,
- 73, 74, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 87, 88, -1, -1, 91, 92,
- 93, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 107, 108, -1, 110, 111, 112,
- 113, 114, -1, -1, -1, -1, -1, 120, -1, -1,
- 123, -1, -1, 126
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, 67,
+ 68, 69, -1, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, -1, 90, 91, 92, -1, 94, 95, 96, 122,
+ -1, 124, -1, -1, 102, 128, 104, -1, 106, 107,
+ 108, 109, 110, 40, 112, 113, 114, 115, 116, -1,
+ -1, -1, -1, -1, 122, -1, 124, -1, -1, 127,
+ -1, -1, -1, -1, -1, 133, -1, -1, -1, -1,
+ 67, 68, 69, -1, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 83, 84, 85, 86,
+ 87, 88, -1, 90, 91, 92, -1, 94, 95, 96,
+ -1, -1, -1, -1, -1, 102, 40, 104, -1, 106,
+ 107, 108, 109, 110, -1, 112, 113, 114, 115, 116,
+ -1, -1, -1, -1, -1, 122, -1, 124, -1, -1,
+ 127, -1, -1, 67, 68, 69, 133, 71, 72, 73,
+ 74, 75, 76, 77, 78, 79, 80, 81, 82, 83,
+ 84, 85, 86, 87, 88, -1, 90, 91, 92, -1,
+ 94, 95, 96, -1, -1, -1, -1, -1, 102, 40,
+ 104, -1, 106, 107, 108, 109, 110, -1, 112, 113,
+ 114, 115, 116, -1, -1, -1, -1, -1, 122, -1,
+ 124, -1, -1, 127, -1, -1, 67, 68, 69, 133,
+ 71, 72, 73, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82, 83, 84, 85, 86, 87, 88, -1, 90,
+ 91, 92, -1, 94, 95, 96, -1, -1, -1, -1,
+ 40, 102, -1, 104, 105, 106, 107, 108, 109, 110,
+ -1, 112, 113, 114, 115, 116, -1, -1, -1, -1,
+ -1, 122, -1, 124, -1, -1, 127, 67, 68, 69,
+ -1, 71, 72, 73, 74, 75, 76, 77, 78, 79,
+ 80, 81, 82, 83, 84, 85, 86, 87, 88, -1,
+ 90, 91, 92, -1, 94, 95, 96, -1, -1, -1,
+ -1, 40, 102, -1, 104, -1, 106, 107, 108, 109,
+ 110, -1, 112, 113, 114, 115, 116, -1, -1, -1,
+ -1, -1, 122, -1, 124, 125, -1, 127, 67, 68,
+ 69, -1, 71, 72, 73, 74, 75, 76, 77, 78,
+ 79, 80, 81, 82, 83, 84, 85, 86, 87, 88,
+ -1, 90, 91, 92, -1, 94, 95, 96, -1, -1,
+ -1, -1, 40, 102, -1, 104, 105, 106, 107, 108,
+ 109, 110, -1, 112, 113, 114, 115, 116, -1, -1,
+ -1, -1, -1, 122, -1, 124, -1, -1, 127, 67,
+ 68, 69, -1, 71, 72, 73, 74, 75, 76, 77,
+ 78, 79, 80, 81, 82, 83, 84, 85, 86, 87,
+ 88, -1, 90, 91, 92, -1, 94, 95, 96, -1,
+ -1, -1, -1, 40, 102, -1, 104, -1, 106, 107,
+ 108, 109, 110, -1, 112, 113, 114, 115, 116, -1,
+ -1, -1, -1, -1, 122, -1, 124, -1, -1, 127,
+ 67, 68, 69, -1, 71, 72, 73, 74, 75, 76,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, 90, 91, 92, -1, 94, 95, 96,
+ -1, -1, -1, -1, 40, -1, -1, -1, -1, 106,
+ 107, 108, 109, 110, -1, 112, 113, 114, 115, 116,
+ -1, -1, -1, -1, -1, 122, -1, 124, -1, -1,
+ 127, 67, 68, 69, -1, 71, 72, 73, 74, 75,
+ 76, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, 90, 91, 92, -1, 94, 95,
+ 96, -1, -1, -1, -1, 40, -1, -1, -1, -1,
+ -1, 107, 108, 109, 110, -1, 112, 113, 114, 115,
+ 116, -1, -1, -1, -1, -1, 122, -1, 124, -1,
+ -1, 127, 67, 68, 69, -1, 71, 72, 73, 74,
+ 75, 76, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, 90, 91, 92, -1, 94,
+ 95, 96, -1, -1, -1, -1, 40, -1, -1, -1,
+ -1, -1, -1, 108, 109, 110, -1, 112, 113, 114,
+ 115, 116, -1, -1, -1, -1, -1, 122, -1, 124,
+ -1, -1, 127, 67, 68, 69, -1, 71, 72, 73,
+ 74, 75, 76, -1, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 90, 91, 92, -1,
+ 94, 95, 96, -1, -1, -1, -1, 40, -1, -1,
+ -1, -1, -1, -1, 108, 109, 110, -1, 112, 113,
+ 114, 115, 116, -1, -1, -1, -1, -1, 122, -1,
+ 124, -1, -1, 127, 67, 68, 69, -1, 71, 72,
+ 73, 74, 75, 76, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 90, 91, 92,
+ -1, 94, 95, 96, -1, -1, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 109, 110, -1, 112,
+ 113, 114, 115, 116, -1, -1, -1, -1, -1, 122,
+ -1, 124, -1, -1, 127
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint8 yystos[] =
{
- 0, 3, 4, 5, 7, 8, 9, 10, 11, 12,
- 13, 14, 15, 18, 19, 20, 21, 23, 24, 25,
- 26, 28, 35, 37, 38, 40, 42, 44, 46, 47,
- 48, 51, 52, 54, 55, 62, 63, 87, 88, 96,
- 110, 115, 116, 120, 122, 126, 131, 132, 133, 134,
- 140, 143, 149, 153, 154, 155, 156, 158, 166, 174,
- 177, 180, 183, 184, 185, 186, 190, 192, 201, 208,
- 211, 221, 222, 223, 226, 227, 228, 229, 232, 49,
- 126, 126, 159, 126, 3, 18, 122, 178, 179, 3,
- 212, 3, 210, 228, 126, 3, 179, 212, 213, 214,
- 126, 122, 123, 126, 228, 126, 228, 228, 228, 228,
- 228, 219, 220, 225, 228, 225, 230, 231, 226, 0,
- 134, 3, 31, 45, 145, 151, 152, 227, 26, 30,
- 31, 43, 45, 200, 186, 97, 39, 66, 67, 68,
- 69, 70, 71, 72, 73, 74, 75, 76, 77, 78,
- 79, 80, 81, 82, 83, 84, 85, 87, 88, 91,
- 92, 93, 99, 102, 104, 105, 106, 107, 108, 110,
- 111, 112, 113, 114, 120, 123, 126, 126, 157, 22,
- 29, 36, 41, 45, 65, 96, 122, 140, 141, 142,
- 145, 160, 161, 176, 184, 224, 233, 234, 167, 182,
- 122, 123, 126, 218, 126, 226, 123, 228, 175, 3,
- 219, 150, 121, 97, 103, 128, 97, 129, 3, 146,
- 147, 3, 146, 96, 67, 34, 50, 207, 3, 3,
- 3, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 228,
- 228, 228, 228, 228, 228, 228, 228, 228, 228, 3,
- 219, 226, 17, 3, 226, 226, 3, 128, 139, 141,
- 228, 96, 13, 17, 228, 96, 135, 136, 137, 143,
- 190, 192, 201, 208, 181, 178, 219, 3, 90, 204,
- 205, 206, 129, 3, 113, 129, 138, 139, 129, 226,
- 225, 225, 225, 103, 217, 97, 217, 226, 226, 3,
- 53, 187, 53, 188, 217, 103, 121, 129, 129, 3,
- 128, 141, 126, 3, 129, 128, 137, 135, 129, 99,
- 103, 202, 206, 129, 97, 142, 128, 129, 103, 35,
- 113, 179, 214, 216, 99, 144, 147, 96, 129, 126,
- 214, 16, 189, 214, 215, 122, 144, 228, 142, 226,
- 99, 122, 128, 4, 7, 8, 9, 11, 44, 54,
- 55, 203, 216, 217, 90, 206, 27, 32, 168, 170,
- 172, 173, 142, 225, 123, 225, 227, 142, 204, 215,
- 122, 97, 193, 129, 3, 4, 33, 61, 162, 163,
- 164, 165, 202, 122, 206, 122, 126, 168, 170, 64,
- 148, 129, 129, 191, 214, 45, 96, 184, 197, 198,
- 199, 228, 103, 128, 164, 165, 138, 171, 3, 142,
- 142, 217, 96, 140, 184, 194, 195, 196, 201, 208,
- 3, 26, 128, 199, 103, 138, 128, 138, 217, 122,
- 128, 196, 207, 138, 128, 129, 209, 3, 169, 138,
- 126, 122, 128, 204, 138, 129, 128, 217
+ 0, 3, 4, 5, 6, 8, 9, 10, 11, 12,
+ 13, 14, 15, 16, 19, 20, 21, 22, 23, 24,
+ 25, 26, 27, 29, 36, 38, 39, 41, 43, 45,
+ 47, 48, 49, 52, 53, 55, 56, 63, 64, 70,
+ 90, 91, 99, 112, 117, 118, 122, 124, 126, 128,
+ 135, 136, 137, 138, 144, 147, 148, 154, 158, 159,
+ 160, 161, 163, 171, 179, 182, 185, 188, 189, 190,
+ 191, 195, 197, 206, 214, 217, 230, 231, 232, 235,
+ 236, 237, 238, 241, 243, 89, 50, 122, 122, 164,
+ 122, 3, 19, 126, 183, 184, 18, 3, 237, 3,
+ 216, 237, 122, 184, 220, 122, 126, 122, 127, 237,
+ 122, 234, 237, 239, 240, 237, 237, 237, 237, 237,
+ 235, 226, 227, 228, 234, 30, 32, 37, 42, 46,
+ 66, 99, 132, 143, 144, 145, 148, 150, 165, 166,
+ 181, 189, 233, 242, 3, 0, 138, 126, 3, 46,
+ 150, 156, 157, 236, 27, 31, 32, 44, 46, 205,
+ 191, 100, 40, 67, 68, 69, 71, 72, 73, 74,
+ 75, 76, 77, 78, 79, 80, 81, 82, 83, 84,
+ 85, 86, 87, 88, 90, 91, 92, 94, 95, 96,
+ 102, 104, 106, 107, 108, 109, 110, 112, 113, 114,
+ 115, 116, 122, 124, 127, 3, 122, 162, 145, 146,
+ 172, 187, 126, 127, 3, 229, 122, 235, 127, 237,
+ 180, 226, 3, 155, 105, 132, 100, 133, 125, 100,
+ 234, 3, 3, 151, 152, 235, 235, 151, 3, 132,
+ 145, 126, 18, 136, 3, 99, 68, 35, 51, 213,
+ 3, 3, 3, 237, 237, 237, 237, 237, 237, 237,
+ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
+ 237, 237, 237, 237, 237, 237, 3, 237, 237, 237,
+ 237, 237, 237, 237, 237, 237, 237, 237, 237, 237,
+ 237, 237, 226, 237, 3, 122, 128, 235, 99, 14,
+ 237, 99, 139, 140, 141, 147, 148, 195, 197, 206,
+ 214, 186, 183, 122, 225, 3, 93, 210, 211, 212,
+ 133, 3, 115, 133, 142, 143, 133, 235, 234, 234,
+ 105, 224, 100, 143, 3, 132, 224, 235, 235, 3,
+ 54, 192, 54, 193, 207, 105, 133, 125, 89, 237,
+ 3, 133, 122, 133, 132, 141, 126, 139, 226, 102,
+ 105, 208, 212, 133, 100, 146, 132, 133, 105, 3,
+ 36, 115, 184, 219, 220, 221, 223, 102, 149, 152,
+ 132, 102, 99, 133, 122, 221, 17, 194, 221, 222,
+ 126, 224, 237, 3, 133, 146, 235, 126, 139, 132,
+ 133, 3, 5, 8, 9, 10, 12, 45, 55, 56,
+ 209, 223, 224, 93, 212, 28, 33, 173, 175, 177,
+ 178, 146, 234, 127, 234, 3, 5, 236, 146, 210,
+ 222, 126, 100, 198, 149, 133, 34, 62, 167, 168,
+ 169, 170, 132, 208, 126, 212, 126, 122, 173, 175,
+ 65, 153, 133, 133, 196, 221, 46, 99, 189, 202,
+ 203, 204, 237, 105, 132, 169, 170, 218, 176, 3,
+ 146, 146, 224, 99, 144, 148, 189, 199, 200, 201,
+ 206, 214, 3, 27, 132, 204, 105, 142, 142, 142,
+ 224, 126, 126, 132, 201, 213, 142, 132, 132, 133,
+ 215, 199, 3, 174, 142, 132, 122, 126, 132, 210,
+ 142, 133, 132, 224
};
#define yyerrok (yyerrstatus = 0)
YY_REDUCE_PRINT (yyn);
switch (yyn)
{
- case 24:
+
+ case 26:
+ if(as3_pass==2) {
-/* Line 1455 of yacc.c */
-#line 1509 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (1)].code);;}
+/* Line 1464 of skeleton.m4 */
+#line 1769 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 25:
-
-/* Line 1455 of yacc.c */
-#line 1510 "parser.y"
- {(yyval.code)=code_new();;}
- break;
- case 26:
+
+ case 27:
+ if(as3_pass==2) {
-/* Line 1455 of yacc.c */
-#line 1512 "parser.y"
- {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));;}
+/* Line 1464 of skeleton.m4 */
+#line 1770 "parser.y"
+ {(yyval.code)=code_new();}
+ }
break;
- case 27:
-/* Line 1455 of yacc.c */
-#line 1513 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (1)].code);;}
+
+ case 28:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1772 "parser.y"
+ {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));}
+ }
break;
- case 38:
-/* Line 1455 of yacc.c */
-#line 1528 "parser.y"
- {(yyval.code)=0;;}
+
+ case 29:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1773 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 45:
-/* Line 1455 of yacc.c */
-#line 1536 "parser.y"
- {/*TODO*/(yyval.code)=0;;}
+
+ case 41:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1787 "parser.y"
+ {(yyval.code)=(yyvsp[(2) - (3)].code);}
+ }
break;
- case 46:
-/* Line 1455 of yacc.c */
-#line 1537 "parser.y"
- {/*TODO*/(yyval.code)=0;;}
+
+ case 42:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1788 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 47:
-/* Line 1455 of yacc.c */
-#line 1539 "parser.y"
- {(yyval.code)=(yyvsp[(2) - (3)].code);;}
+
+ case 43:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1791 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 48:
-/* Line 1455 of yacc.c */
-#line 1540 "parser.y"
- {(yyval.code)=0;;}
+
+ case 50:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1798 "parser.y"
+ {(yyval.code)=(yyvsp[(3) - (4)].code);}
+ }
break;
- case 49:
-/* Line 1455 of yacc.c */
-#line 1541 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (2)].code);;}
+
+ case 51:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1800 "parser.y"
+ {/*TODO*/(yyval.code)=0;}
+ }
break;
- case 50:
-/* Line 1455 of yacc.c */
-#line 1542 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (1)].code);;}
+
+ case 52:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1804 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (2)].code);}
+ }
+ break;
+
+
+
+ case 53:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1805 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 51:
-/* Line 1455 of yacc.c */
-#line 1546 "parser.y"
+
+ case 54:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1809 "parser.y"
{
code_t**cc = &global->init->method->body->code;
*cc = code_append(*cc, (yyvsp[(1) - (1)].code));
-;}
+}
+ }
break;
- case 52:
-/* Line 1455 of yacc.c */
-#line 1553 "parser.y"
- {(yyval.value)=(yyvsp[(2) - (2)].value);;}
+
+ case 56:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1820 "parser.y"
+ {(yyval.value)=(yyvsp[(2) - (2)].value);}
+ }
break;
- case 53:
-/* Line 1455 of yacc.c */
-#line 1554 "parser.y"
+
+ case 57:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1821 "parser.y"
{(yyval.value).c=abc_pushundefined(0);
(yyval.value).t=TYPE_ANY;
- ;}
+ }
+ }
break;
- case 54:
-/* Line 1455 of yacc.c */
-#line 1558 "parser.y"
- {(yyval.code)=(yyvsp[(2) - (2)].code);;}
+
+ case 58:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1825 "parser.y"
+ {(yyval.code)=(yyvsp[(2) - (2)].code);}
+ }
break;
- case 55:
-/* Line 1455 of yacc.c */
-#line 1559 "parser.y"
- {(yyval.code)=(yyvsp[(2) - (2)].code);;}
+
+ case 59:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1826 "parser.y"
+ {(yyval.code)=(yyvsp[(2) - (2)].code);}
+ }
break;
- case 56:
-/* Line 1455 of yacc.c */
-#line 1561 "parser.y"
- {(yyval.code) = (yyvsp[(1) - (1)].code);;}
+
+ case 60:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1828 "parser.y"
+ {(yyval.code) = (yyvsp[(1) - (1)].code);}
+ }
break;
- case 57:
-/* Line 1455 of yacc.c */
-#line 1562 "parser.y"
- {(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));;}
+
+ case 61:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1829 "parser.y"
+ {(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
+ }
break;
- case 58:
-/* Line 1455 of yacc.c */
-#line 1565 "parser.y"
+
+ case 62:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1832 "parser.y"
{
if(variable_exists((yyvsp[(1) - (3)].id)))
syntaxerror("Variable %s already defined", (yyvsp[(1) - (3)].id));
(yyval.code) = converttype((yyval.code), (yyvsp[(3) - (3)].value).t, (yyvsp[(2) - (3)].classinfo));
(yyval.code) = abc_setlocal((yyval.code), index);
} else {
+ code_free((yyvsp[(3) - (3)].value).c);
(yyval.code) = defaultvalue(0, (yyvsp[(2) - (3)].classinfo));
(yyval.code) = abc_setlocal((yyval.code), index);
}
(yyval.code) = abc_coerce_a((yyval.code));
(yyval.code) = abc_setlocal((yyval.code), index);
} else {
+ code_free((yyvsp[(3) - (3)].value).c);
(yyval.code) = code_new();
}
}
state->method->initcode = abc_setlocal(state->method->initcode, index);
}*/
//printf("variable %s -> %d (%s)\n", $2->text, index, $4.t?$4.t->name:"");
-;}
+}
+ }
break;
- case 59:
-/* Line 1455 of yacc.c */
-#line 1605 "parser.y"
- {(yyval.code) = code_new();;}
+
+ case 63:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1874 "parser.y"
+ {(yyval.code) = code_new();}
+ }
break;
- case 60:
-/* Line 1455 of yacc.c */
-#line 1606 "parser.y"
- {(yyval.code)=(yyvsp[(2) - (2)].code);;}
+
+ case 64:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1875 "parser.y"
+ {(yyval.code)=(yyvsp[(2) - (2)].code);}
+ }
break;
- case 61:
-/* Line 1455 of yacc.c */
-#line 1609 "parser.y"
- {new_state();;}
+
+ case 65:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1878 "parser.y"
+ {new_state();}
+ }
break;
- case 62:
-/* Line 1455 of yacc.c */
-#line 1609 "parser.y"
+
+ case 66:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1878 "parser.y"
{
(yyval.code) = code_new();
}
(yyval.code) = var_block((yyval.code));
old_state();
-;}
+}
+ }
break;
- case 63:
-/* Line 1455 of yacc.c */
-#line 1628 "parser.y"
- {(yyval.code)=code_new();;}
+
+ case 67:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1897 "parser.y"
+ {(yyval.code)=code_new();}
+ }
break;
- case 66:
-/* Line 1455 of yacc.c */
-#line 1633 "parser.y"
+
+ case 70:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1902 "parser.y"
{
(yyval.id)=(yyvsp[(2) - (3)].id);new_variable((yyvsp[(2) - (3)].id),(yyvsp[(3) - (3)].classinfo),1);
-;}
+}
+ }
break;
- case 67:
-/* Line 1455 of yacc.c */
-#line 1636 "parser.y"
+
+ case 71:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1905 "parser.y"
{
(yyval.id)=(yyvsp[(1) - (1)].id);
-;}
+}
+ }
break;
- case 68:
-/* Line 1455 of yacc.c */
-#line 1640 "parser.y"
- {new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;;}
+
+ case 72:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1909 "parser.y"
+ {new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;}
+ }
break;
- case 69:
-/* Line 1455 of yacc.c */
-#line 1641 "parser.y"
- {new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;;}
+
+ case 73:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1910 "parser.y"
+ {new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;}
+ }
break;
- case 70:
-/* Line 1455 of yacc.c */
-#line 1643 "parser.y"
+
+ case 74:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1912 "parser.y"
{
if((yyvsp[(1) - (8)].for_start).each) syntaxerror("invalid syntax: ; not allowed in for each statement");
(yyval.code) = code_new();
(yyval.code) = var_block((yyval.code));
old_state();
-;}
+}
+ }
break;
- case 71:
-/* Line 1455 of yacc.c */
-#line 1663 "parser.y"
+
+ case 75:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1932 "parser.y"
{
variable_t*var = find_variable((yyvsp[(2) - (6)].id));
char*tmp1name = concat2((yyvsp[(2) - (6)].id), "__tmp1__");
free(tmp1name);
free(tmp2name);
-;}
+}
+ }
break;
- case 72:
-/* Line 1455 of yacc.c */
-#line 1706 "parser.y"
- {new_state();;}
+
+ case 76:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1975 "parser.y"
+ {new_state();}
+ }
break;
- case 73:
-/* Line 1455 of yacc.c */
-#line 1706 "parser.y"
+
+ case 77:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1975 "parser.y"
{
(yyval.code) = code_new();
(yyval.code) = var_block((yyval.code));
old_state();
-;}
+}
+ }
break;
- case 74:
-/* Line 1455 of yacc.c */
-#line 1725 "parser.y"
- {new_state();;}
+
+ case 78:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1994 "parser.y"
+ {new_state();}
+ }
break;
- case 75:
-/* Line 1455 of yacc.c */
-#line 1725 "parser.y"
+
+ case 79:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 1994 "parser.y"
{
(yyval.code) = code_new();
code_t*loopstart = (yyval.code) = abc_label((yyval.code));
(yyval.code) = var_block((yyval.code));
old_state();
-;}
+}
+ }
break;
- case 76:
-/* Line 1455 of yacc.c */
-#line 1740 "parser.y"
+
+ case 80:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2009 "parser.y"
{
(yyval.code) = abc___break__(0, "");
-;}
+}
+ }
break;
- case 77:
-/* Line 1455 of yacc.c */
-#line 1743 "parser.y"
+
+ case 81:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2012 "parser.y"
{
(yyval.code) = abc___break__(0, (yyvsp[(2) - (2)].id));
-;}
+}
+ }
break;
- case 78:
-/* Line 1455 of yacc.c */
-#line 1746 "parser.y"
+
+ case 82:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2015 "parser.y"
{
(yyval.code) = abc___continue__(0, "");
-;}
+}
+ }
break;
- case 79:
-/* Line 1455 of yacc.c */
-#line 1749 "parser.y"
+
+ case 83:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2018 "parser.y"
{
(yyval.code) = abc___continue__(0, (yyvsp[(2) - (2)].id));
-;}
+}
+ }
break;
- case 80:
-/* Line 1455 of yacc.c */
-#line 1753 "parser.y"
- {(yyval.code)=0;;}
+
+ case 84:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2022 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 81:
-/* Line 1455 of yacc.c */
-#line 1754 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (1)].code);;}
+
+ case 85:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2023 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 82:
-/* Line 1455 of yacc.c */
-#line 1755 "parser.y"
- {(yyval.code)=(yyvsp[(1) - (1)].code);;}
+
+ case 86:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2024 "parser.y"
+ {(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 83:
-/* Line 1455 of yacc.c */
-#line 1756 "parser.y"
- {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));;}
+
+ case 87:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2025 "parser.y"
+ {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));}
+ }
break;
- case 84:
-/* Line 1455 of yacc.c */
-#line 1757 "parser.y"
+
+ case 88:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2026 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
+ }
break;
- case 85:
-/* Line 1455 of yacc.c */
-#line 1758 "parser.y"
- {(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));;}
+
+ case 89:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2027 "parser.y"
+ {(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));}
+ }
break;
- case 86:
-/* Line 1455 of yacc.c */
-#line 1760 "parser.y"
+
+ case 90:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2029 "parser.y"
{
(yyval.code) = abc_dup(0);
(yyval.code) = code_append((yyval.code), (yyvsp[(2) - (4)].value).c);
}
code_t*e = (yyval.code) = abc_nop((yyval.code));
j->branch = e;
-;}
+}
+ }
break;
- case 87:
-/* Line 1455 of yacc.c */
-#line 1771 "parser.y"
+
+ case 91:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2040 "parser.y"
{
(yyval.code) = (yyvsp[(3) - (3)].code);
-;}
+}
+ }
break;
- case 88:
-/* Line 1455 of yacc.c */
-#line 1774 "parser.y"
- {new_state();;}
+
+ case 92:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2043 "parser.y"
+ {new_state();}
+ }
break;
- case 89:
-/* Line 1455 of yacc.c */
-#line 1774 "parser.y"
+
+ case 93:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2043 "parser.y"
{
(yyval.code)=(yyvsp[(4) - (8)].value).c;
(yyval.code) = code_append((yyval.code), (yyvsp[(7) - (8)].code));
(yyval.code) = var_block((yyval.code));
old_state();
-;}
+}
+ }
break;
- case 90:
-/* Line 1455 of yacc.c */
-#line 1803 "parser.y"
- {new_state();state->exception_name=(yyvsp[(3) - (5)].id);new_variable((yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].classinfo), 0);;}
+
+ case 94:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2072 "parser.y"
+ {new_state();state->exception_name=(yyvsp[(3) - (5)].id);new_variable((yyvsp[(3) - (5)].id), (yyvsp[(4) - (5)].classinfo), 0);}
+ }
break;
- case 91:
-/* Line 1455 of yacc.c */
-#line 1804 "parser.y"
+
+ case 95:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2073 "parser.y"
{
namespace_t name_ns = {ACCESS_PACKAGE, ""};
multiname_t name = {QNAME, &name_ns, 0, (yyvsp[(3) - (9)].id)};
c = var_block(c);
old_state();
-;}
+}
+ }
break;
- case 92:
-/* Line 1455 of yacc.c */
-#line 1823 "parser.y"
- {new_state();state->exception_name=0;;}
+
+ case 96:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2092 "parser.y"
+ {new_state();state->exception_name=0;}
+ }
break;
- case 93:
-/* Line 1455 of yacc.c */
-#line 1823 "parser.y"
+
+ case 97:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2092 "parser.y"
{
(yyvsp[(4) - (5)].code) = var_block((yyvsp[(4) - (5)].code));
if(!(yyvsp[(4) - (5)].code)) {
old_state();
(yyval.exception) = e;
}
-;}
+}
+ }
break;
- case 94:
-/* Line 1455 of yacc.c */
-#line 1840 "parser.y"
- {(yyval.catch_list).l=list_new();(yyval.catch_list).finally=0;list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));;}
+
+ case 98:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2109 "parser.y"
+ {(yyval.catch_list).l=list_new();(yyval.catch_list).finally=0;list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));}
+ }
break;
- case 95:
-/* Line 1455 of yacc.c */
-#line 1841 "parser.y"
- {(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));;}
+
+ case 99:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2110 "parser.y"
+ {(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));}
+ }
break;
- case 96:
-/* Line 1455 of yacc.c */
-#line 1842 "parser.y"
+
+ case 100:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2111 "parser.y"
{(yyval.catch_list)=(yyvsp[(1) - (1)].catch_list);}
+ }
break;
- case 97:
-/* Line 1455 of yacc.c */
-#line 1843 "parser.y"
+
+ case 101:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2112 "parser.y"
{
(yyval.catch_list) = (yyvsp[(1) - (2)].catch_list);
(yyval.catch_list).finally = 0;
list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));
(yyval.catch_list).finally = (yyvsp[(2) - (2)].exception)->to;(yyvsp[(2) - (2)].exception)->to=0;
}
-;}
+}
+ }
break;
- case 98:
-/* Line 1455 of yacc.c */
-#line 1851 "parser.y"
+
+ case 102:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2120 "parser.y"
{
(yyval.catch_list).l=list_new();
(yyval.catch_list).finally = 0;
list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));
(yyval.catch_list).finally = (yyvsp[(1) - (1)].exception)->to;(yyvsp[(1) - (1)].exception)->to=0;
}
-;}
+}
+ }
break;
- case 99:
-/* Line 1455 of yacc.c */
-#line 1860 "parser.y"
- {new_state();;}
+
+ case 103:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2129 "parser.y"
+ {new_state();}
+ }
break;
- case 100:
-/* Line 1455 of yacc.c */
-#line 1860 "parser.y"
+
+ case 104:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2129 "parser.y"
{
code_t*out = abc_nop(0);
(yyval.code) = var_block((yyval.code));
old_state();
-;}
+}
+ }
break;
- case 101:
-/* Line 1455 of yacc.c */
-#line 1905 "parser.y"
+
+ case 105:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2174 "parser.y"
{
(yyval.code)=(yyvsp[(2) - (2)].value).c;
(yyval.code)=abc_throw((yyval.code));
-;}
+}
+ }
break;
- case 102:
-/* Line 1455 of yacc.c */
-#line 1909 "parser.y"
+
+ case 106:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2178 "parser.y"
{
if(!state->exception_name)
syntaxerror("re-throw only possible within a catch block");
(yyval.code)=code_new();
(yyval.code)=abc_getlocal((yyval.code), v->index);
(yyval.code)=abc_throw((yyval.code));
-;}
+}
+ }
break;
- case 103:
-/* Line 1455 of yacc.c */
-#line 1920 "parser.y"
+
+ case 107:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2189 "parser.y"
{
(yyval.code) = (yyvsp[(3) - (5)].value).c;
(yyval.code) = abc_pushscope((yyval.code));
(yyval.code) = code_append((yyval.code), (yyvsp[(5) - (5)].code));
(yyval.code) = abc_popscope((yyval.code));
-;}
+}
+ }
break;
- case 105:
-/* Line 1455 of yacc.c */
-#line 1930 "parser.y"
- {(yyval.id)="package";;}
+
+ case 109:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2199 "parser.y"
+ {PASS12 (yyval.id)="package";}
+ }
break;
- case 106:
-/* Line 1455 of yacc.c */
-#line 1932 "parser.y"
- {(yyval.id) = concat3((yyvsp[(1) - (3)].id),".",(yyvsp[(3) - (3)].id));free((yyvsp[(1) - (3)].id));(yyvsp[(1) - (3)].id)=0;;}
+
+ case 110:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2201 "parser.y"
+ {PASS12 (yyval.id) = concat3((yyvsp[(1) - (3)].id),".",(yyvsp[(3) - (3)].id));free((yyvsp[(1) - (3)].id));(yyvsp[(1) - (3)].id)=0;}
+ }
break;
- case 107:
-/* Line 1455 of yacc.c */
-#line 1933 "parser.y"
- {(yyval.id)=strdup((yyvsp[(1) - (1)].id));;}
+
+ case 111:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2202 "parser.y"
+ {PASS12 (yyval.id)=strdup((yyvsp[(1) - (1)].id));}
+ }
break;
- case 108:
-/* Line 1455 of yacc.c */
-#line 1935 "parser.y"
- {startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;;}
+
+ case 112:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2204 "parser.y"
+ {PASS12 startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;}
+ }
break;
- case 109:
-/* Line 1455 of yacc.c */
-#line 1935 "parser.y"
- {endpackage();(yyval.code)=0;;}
+
+ case 113:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2205 "parser.y"
+ {PASS12 endpackage();(yyval.code)=0;}
+ }
break;
- case 110:
-/* Line 1455 of yacc.c */
-#line 1936 "parser.y"
- {startpackage("");}
+
+ case 114:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2206 "parser.y"
+ {PASS12 startpackage("");}
+ }
break;
- case 111:
-/* Line 1455 of yacc.c */
-#line 1936 "parser.y"
- {endpackage();(yyval.code)=0;;}
+
+ case 115:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2207 "parser.y"
+ {PASS12 endpackage();(yyval.code)=0;}
+ }
break;
- case 112:
-/* Line 1455 of yacc.c */
-#line 1938 "parser.y"
+
+ case 116:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2209 "parser.y"
{
+ PASS1
+ if(!registry_find((yyvsp[(2) - (2)].classinfo)->package, (yyvsp[(2) - (2)].classinfo)->name)) {
+ as3_schedule_class((yyvsp[(2) - (2)].classinfo)->package, (yyvsp[(2) - (2)].classinfo)->name);
+ }
+
+ PASS2
classinfo_t*c = (yyvsp[(2) - (2)].classinfo);
if(!c)
syntaxerror("Couldn't import class\n");
state_has_imports();
dict_put(state->imports, c->name, c);
(yyval.code)=0;
-;}
+}
+ }
break;
- case 113:
-/* Line 1455 of yacc.c */
-#line 1946 "parser.y"
+
+ case 117:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2223 "parser.y"
{
+ PASS1
+ if(strncmp("flash.", (yyvsp[(2) - (4)].id), 6)) {
+ as3_schedule_package((yyvsp[(2) - (4)].id));
+ }
+
+ PASS2
NEW(import_t,i);
i->package = (yyvsp[(2) - (4)].id);
state_has_imports();
list_append(state->wildcard_imports, i);
(yyval.code)=0;
-;}
+}
+ }
break;
- case 114:
-/* Line 1455 of yacc.c */
-#line 1956 "parser.y"
- {(yyval.flags)=0;;}
- break;
-
- case 115:
+
+ case 118:
+ if(as3_pass==2) {
-/* Line 1455 of yacc.c */
-#line 1957 "parser.y"
- {(yyval.flags)=(yyvsp[(1) - (1)].flags);}
+/* Line 1464 of skeleton.m4 */
+#line 2239 "parser.y"
+ {PASS12 (yyval.flags)=0;}
+ }
break;
- case 116:
-/* Line 1455 of yacc.c */
-#line 1958 "parser.y"
- {(yyval.flags)=(yyvsp[(1) - (1)].token);;}
- break;
-
- case 117:
+
+ case 119:
+ if(as3_pass==2) {
-/* Line 1455 of yacc.c */
-#line 1959 "parser.y"
- {(yyval.flags)=(yyvsp[(1) - (2)].flags)|(yyvsp[(2) - (2)].token);;}
+/* Line 1464 of skeleton.m4 */
+#line 2240 "parser.y"
+ {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);}
+ }
break;
- case 118:
-/* Line 1455 of yacc.c */
-#line 1961 "parser.y"
- {(yyval.token)=FLAG_PUBLIC;;}
- break;
-
- case 119:
+
+ case 120:
+ if(as3_pass==2) {
-/* Line 1455 of yacc.c */
-#line 1962 "parser.y"
- {(yyval.token)=FLAG_PRIVATE;;}
+/* Line 1464 of skeleton.m4 */
+#line 2241 "parser.y"
+ {PASS12 (yyval.flags)=(yyvsp[(1) - (1)].token);}
+ }
break;
- case 120:
-/* Line 1455 of yacc.c */
-#line 1963 "parser.y"
- {(yyval.token)=FLAG_PROTECTED;;}
- break;
-
- case 121:
+
+ case 121:
+ if(as3_pass==2) {
-/* Line 1455 of yacc.c */
-#line 1964 "parser.y"
- {(yyval.token)=FLAG_STATIC;;}
+/* Line 1464 of skeleton.m4 */
+#line 2242 "parser.y"
+ {PASS12 (yyval.flags)=(yyvsp[(1) - (2)].flags)|(yyvsp[(2) - (2)].token);}
+ }
break;
- case 122:
-/* Line 1455 of yacc.c */
-#line 1965 "parser.y"
- {(yyval.token)=FLAG_DYNAMIC;;}
- break;
-
- case 123:
+
+ case 122:
+ if(as3_pass==2) {
-/* Line 1455 of yacc.c */
-#line 1966 "parser.y"
- {(yyval.token)=FLAG_FINAL;;}
+/* Line 1464 of skeleton.m4 */
+#line 2244 "parser.y"
+ {PASS12 (yyval.token)=FLAG_PUBLIC;}
+ }
break;
- case 124:
-/* Line 1455 of yacc.c */
-#line 1967 "parser.y"
- {(yyval.token)=FLAG_OVERRIDE;;}
+
+ case 123:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2245 "parser.y"
+ {PASS12 (yyval.token)=FLAG_PRIVATE;}
+ }
break;
- case 125:
-/* Line 1455 of yacc.c */
-#line 1968 "parser.y"
- {(yyval.token)=FLAG_NATIVE;;}
+
+ case 124:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2246 "parser.y"
+ {PASS12 (yyval.token)=FLAG_PROTECTED;}
+ }
break;
- case 126:
-/* Line 1455 of yacc.c */
-#line 1969 "parser.y"
- {(yyval.token)=FLAG_PACKAGEINTERNAL;;}
+
+ case 125:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2247 "parser.y"
+ {PASS12 (yyval.token)=FLAG_STATIC;}
+ }
break;
- case 127:
-/* Line 1455 of yacc.c */
-#line 1971 "parser.y"
- {(yyval.classinfo)=registry_getobjectclass();;}
+
+ case 126:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2248 "parser.y"
+ {PASS12 (yyval.token)=FLAG_DYNAMIC;}
+ }
break;
- case 128:
-/* Line 1455 of yacc.c */
-#line 1972 "parser.y"
- {(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);;}
+
+ case 127:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2249 "parser.y"
+ {PASS12 (yyval.token)=FLAG_FINAL;}
+ }
break;
- case 129:
-/* Line 1455 of yacc.c */
-#line 1974 "parser.y"
- {(yyval.classinfo_list)=list_new();;}
+
+ case 128:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2250 "parser.y"
+ {PASS12 (yyval.token)=FLAG_OVERRIDE;}
+ }
break;
- case 130:
-/* Line 1455 of yacc.c */
-#line 1975 "parser.y"
- {(yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);;}
+
+ case 129:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2251 "parser.y"
+ {PASS12 (yyval.token)=FLAG_NATIVE;}
+ }
break;
- case 131:
-/* Line 1455 of yacc.c */
-#line 1977 "parser.y"
- {(yyval.classinfo_list)=list_new();;}
+
+ case 130:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2252 "parser.y"
+ {PASS12 (yyval.token)=FLAG_PACKAGEINTERNAL;}
+ }
break;
- case 132:
-/* Line 1455 of yacc.c */
-#line 1978 "parser.y"
- {(yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);;}
+
+ case 131:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2253 "parser.y"
+ {PASS12 (yyval.token)=FLAG_NAMESPACE;}
+ }
break;
- case 133:
-/* Line 1455 of yacc.c */
-#line 1982 "parser.y"
- {startclass((yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list), 0);;}
+
+ case 132:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2255 "parser.y"
+ {(yyval.classinfo)=registry_getobjectclass();}
+ }
+ break;
+
+
+
+ case 133:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2256 "parser.y"
+ {(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);}
+ }
+ break;
+
+
+
+ case 134:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2258 "parser.y"
+ {PASS12 (yyval.classinfo_list)=list_new();}
+ }
break;
- case 134:
-/* Line 1455 of yacc.c */
-#line 1984 "parser.y"
- {endclass();(yyval.code)=0;;}
+
+ case 135:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2259 "parser.y"
+ {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);}
+ }
break;
- case 135:
-/* Line 1455 of yacc.c */
-#line 1988 "parser.y"
- {startclass((yyvsp[(1) - (5)].flags),(yyvsp[(3) - (5)].id),0,(yyvsp[(4) - (5)].classinfo_list),1);;}
+
+ case 136:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2261 "parser.y"
+ {PASS12 (yyval.classinfo_list)=list_new();}
+ }
break;
- case 136:
-/* Line 1455 of yacc.c */
-#line 1990 "parser.y"
- {endclass();(yyval.code)=0;;}
+
+ case 137:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2262 "parser.y"
+ {PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);}
+ }
break;
- case 144:
-/* Line 1455 of yacc.c */
-#line 2002 "parser.y"
+
+ case 138:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2266 "parser.y"
+ {PASS12 startclass((yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list));}
+ }
+ break;
+
+
+
+ case 139:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2268 "parser.y"
+ {PASS12 endclass();(yyval.code)=0;}
+ }
+ break;
+
+
+
+ case 140:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2272 "parser.y"
+ {PASS12 startclass((yyvsp[(1) - (5)].flags)|FLAG_INTERFACE,(yyvsp[(3) - (5)].id),0,(yyvsp[(4) - (5)].classinfo_list));}
+ }
+ break;
+
+
+
+ case 141:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2274 "parser.y"
+ {PASS12 endclass();(yyval.code)=0;}
+ }
+ break;
+
+
+
+ case 150:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2287 "parser.y"
{
- code_t*c = state->cls->static_init;
+ code_t*c = state->cls->static_init->header;
c = code_append(c, (yyvsp[(1) - (1)].code));
- state->cls->static_init = c;
-;}
+ state->cls->static_init->header = c;
+}
+ }
break;
- case 150:
-/* Line 1455 of yacc.c */
-#line 2013 "parser.y"
+
+ case 156:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2298 "parser.y"
{
syntaxerror("variable declarations not allowed in interfaces");
-;}
+}
+ }
break;
- case 151:
-/* Line 1455 of yacc.c */
-#line 2016 "parser.y"
+
+ case 157:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2301 "parser.y"
{
+ PASS12
(yyvsp[(1) - (8)].flags) |= FLAG_PUBLIC;
if((yyvsp[(1) - (8)].flags)&(FLAG_PRIVATE|FLAG_PACKAGEINTERNAL|FLAG_PROTECTED)) {
syntaxerror("invalid method modifiers: interface methods always need to be public");
}
startfunction(0,(yyvsp[(1) - (8)].flags),(yyvsp[(3) - (8)].token),(yyvsp[(4) - (8)].id),&(yyvsp[(6) - (8)].params),(yyvsp[(8) - (8)].classinfo));
endfunction(0,(yyvsp[(1) - (8)].flags),(yyvsp[(3) - (8)].token),(yyvsp[(4) - (8)].id),&(yyvsp[(6) - (8)].params),(yyvsp[(8) - (8)].classinfo), 0);
-;}
+ list_deep_free((yyvsp[(6) - (8)].params).list);
+}
+ }
break;
- case 154:
-/* Line 1455 of yacc.c */
-#line 2029 "parser.y"
+
+ case 160:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2316 "parser.y"
+ {setstaticfunction((yyvsp[(1) - (3)].flags));}
+ }
+ break;
+
+
+
+ case 161:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2316 "parser.y"
{
- int flags = (yyvsp[(1) - (5)].flags);
- memberinfo_t* info = state->cls?
- memberinfo_register(state->cls->info, (yyvsp[(3) - (5)].id), MEMBER_SLOT):
- memberinfo_register_global(flags2access((yyvsp[(1) - (5)].flags)), state->package, (yyvsp[(3) - (5)].id), MEMBER_SLOT);
+ int flags = (yyvsp[(1) - (6)].flags);
+ U8 access = flags2access((yyvsp[(1) - (6)].flags));
+
+ varinfo_t* info = 0;
+ if(state->cls) {
+ memberinfo_t*i = registry_findmember(state->cls->info, (yyvsp[(3) - (6)].id), 1);
+ if(i) {
+ check_override(i, flags);
+ }
+ info = varinfo_register_onclass(state->cls->info, access, (yyvsp[(3) - (6)].id));
+ } else {
+ slotinfo_t*i = registry_find(state->package, (yyvsp[(3) - (6)].id));
+ if(i) {
+ syntaxerror("package %s already contains '%s'", state->package, (yyvsp[(3) - (6)].id));
+ }
+ info = varinfo_register_global(access, state->package, (yyvsp[(3) - (6)].id));
+ }
- info->type = (yyvsp[(4) - (5)].classinfo);
+ info->type = (yyvsp[(5) - (6)].classinfo);
info->flags = flags;
/* slot name */
- namespace_t mname_ns = {flags2access(flags), ""};
- multiname_t mname = {QNAME, &mname_ns, 0, (yyvsp[(3) - (5)].id)};
+ namespace_t mname_ns = {access, ""};
+ multiname_t mname = {QNAME, &mname_ns, 0, (yyvsp[(3) - (6)].id)};
trait_list_t**traits;
code_t**code;
if(!state->cls) {
// global variable
+ mname_ns.name = state->package;
traits = &global->init->traits;
code = &global->init->method->body->code;
} else if(flags&FLAG_STATIC) {
// static variable
traits = &state->cls->abc->static_traits;
- code = &state->cls->static_init;
+ code = &state->cls->static_init->header;
} else {
// instance variable
traits = &state->cls->abc->traits;
- code = &state->cls->init;
+ code = &state->cls->init->header;
}
trait_t*t=0;
- if((yyvsp[(4) - (5)].classinfo)) {
- MULTINAME(m, (yyvsp[(4) - (5)].classinfo));
+ if((yyvsp[(5) - (6)].classinfo)) {
+ MULTINAME(m, (yyvsp[(5) - (6)].classinfo));
t = trait_new_member(traits, multiname_clone(&m), multiname_clone(&mname), 0);
} else {
t = trait_new_member(traits, 0, multiname_clone(&mname), 0);
/* initalization code (if needed) */
code_t*c = 0;
- if((yyvsp[(5) - (5)].value).c && !is_pushundefined((yyvsp[(5) - (5)].value).c)) {
+ if((yyvsp[(6) - (6)].value).c && !is_pushundefined((yyvsp[(6) - (6)].value).c)) {
c = abc_getlocal_0(c);
- c = code_append(c, (yyvsp[(5) - (5)].value).c);
- c = converttype(c, (yyvsp[(5) - (5)].value).t, (yyvsp[(4) - (5)].classinfo));
+ c = code_append(c, (yyvsp[(6) - (6)].value).c);
+ c = converttype(c, (yyvsp[(6) - (6)].value).t, (yyvsp[(5) - (6)].classinfo));
c = abc_setslot(c, t->slot_id);
}
*code = code_append(*code, c);
- if((yyvsp[(2) - (5)].token)==KW_CONST) {
+ if((yyvsp[(2) - (6)].token)==KW_CONST) {
t->kind= TRAIT_CONST;
}
(yyval.code)=0;
-;}
+ setstaticfunction(0);
+}
+ }
+ break;
+
+
+
+ case 162:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2389 "parser.y"
+ {(yyval.constant)=0;}
+ }
break;
- case 155:
-/* Line 1455 of yacc.c */
-#line 2087 "parser.y"
- {(yyval.constant)=0;;}
+
+ case 163:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2390 "parser.y"
+ {(yyval.constant)=(yyvsp[(2) - (2)].constant);}
+ }
break;
- case 156:
-/* Line 1455 of yacc.c */
-#line 2088 "parser.y"
- {(yyval.constant)=(yyvsp[(2) - (2)].constant);;}
+
+ case 164:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2392 "parser.y"
+ {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_uint));}
+ }
break;
- case 157:
-/* Line 1455 of yacc.c */
-#line 2090 "parser.y"
- {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_uint));;}
+
+ case 165:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2393 "parser.y"
+ {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));}
+ }
break;
- case 158:
-/* Line 1455 of yacc.c */
-#line 2091 "parser.y"
- {(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));;}
+
+ case 166:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2394 "parser.y"
+ {(yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint));}
+ }
break;
- case 159:
-/* Line 1455 of yacc.c */
-#line 2092 "parser.y"
- {(yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint));;}
+
+ case 167:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2395 "parser.y"
+ {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));}
+ }
break;
- case 160:
-/* Line 1455 of yacc.c */
-#line 2093 "parser.y"
- {(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));;}
+
+ case 168:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2396 "parser.y"
+ {(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);free((char*)(yyvsp[(1) - (1)].str).str);}
+ }
break;
- case 161:
-/* Line 1455 of yacc.c */
-#line 2094 "parser.y"
- {(yyval.constant) = constant_new_string2((yyvsp[(1) - (1)].str).str,(yyvsp[(1) - (1)].str).len);;}
+
+ case 169:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2398 "parser.y"
+ {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));}
+ }
break;
- case 162:
-/* Line 1455 of yacc.c */
-#line 2096 "parser.y"
- {(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));;}
+
+ case 170:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2399 "parser.y"
+ {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));}
+ }
break;
- case 163:
-/* Line 1455 of yacc.c */
-#line 2097 "parser.y"
- {(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));;}
+
+ case 171:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2400 "parser.y"
+ {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));}
+ }
break;
- case 164:
-/* Line 1455 of yacc.c */
-#line 2098 "parser.y"
- {(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));;}
+
+ case 172:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2401 "parser.y"
+ {
+ // TODO
+ as3_warning("Couldn't resolve %s", (yyvsp[(1) - (1)].id));
+ (yyval.constant) = constant_new_null((yyvsp[(1) - (1)].id));
+}
+ }
break;
- case 165:
-/* Line 1455 of yacc.c */
-#line 2103 "parser.y"
+
+ case 173:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2410 "parser.y"
{
+ PASS12
memset(&(yyval.params),0,sizeof((yyval.params)));
-;}
+}
+ }
break;
- case 166:
-/* Line 1455 of yacc.c */
-#line 2106 "parser.y"
+
+ case 174:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2414 "parser.y"
{
+ PASS12
(yyval.params)=(yyvsp[(1) - (1)].params);
-;}
+}
+ }
break;
- case 167:
-/* Line 1455 of yacc.c */
-#line 2111 "parser.y"
+
+ case 175:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2420 "parser.y"
{
+ PASS12
memset(&(yyval.params),0,sizeof((yyval.params)));
(yyval.params).varargs=1;
list_append((yyval.params).list, (yyvsp[(2) - (2)].param));
-;}
+}
+ }
break;
- case 168:
-/* Line 1455 of yacc.c */
-#line 2116 "parser.y"
+
+ case 176:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2426 "parser.y"
{
+ PASS12
(yyval.params) =(yyvsp[(1) - (4)].params);
(yyval.params).varargs=1;
list_append((yyval.params).list, (yyvsp[(4) - (4)].param));
-;}
+}
+ }
break;
- case 169:
-/* Line 1455 of yacc.c */
-#line 2123 "parser.y"
+
+ case 177:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2434 "parser.y"
{
+ PASS12
(yyval.params) = (yyvsp[(1) - (3)].params);
list_append((yyval.params).list, (yyvsp[(3) - (3)].param));
-;}
+}
+ }
break;
- case 170:
-/* Line 1455 of yacc.c */
-#line 2127 "parser.y"
+
+ case 178:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2439 "parser.y"
{
+ PASS12
memset(&(yyval.params),0,sizeof((yyval.params)));
list_append((yyval.params).list, (yyvsp[(1) - (1)].param));
-;}
+}
+ }
break;
- case 171:
-/* Line 1455 of yacc.c */
-#line 2132 "parser.y"
+
+ case 179:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2445 "parser.y"
{
+ PASS1 (yyval.param)=0;
+ PASS2
(yyval.param) = malloc(sizeof(param_t));
(yyval.param)->name=(yyvsp[(1) - (4)].id);
(yyval.param)->type = (yyvsp[(3) - (4)].classinfo);
(yyval.param)->value = (yyvsp[(4) - (4)].constant);
-;}
+}
+ }
break;
- case 172:
-/* Line 1455 of yacc.c */
-#line 2138 "parser.y"
+
+ case 180:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2453 "parser.y"
{
+ PASS1 (yyval.param)=0;
+ PASS2
(yyval.param) = malloc(sizeof(param_t));
(yyval.param)->name=(yyvsp[(1) - (2)].id);
(yyval.param)->type = TYPE_ANY;
(yyval.param)->value = (yyvsp[(2) - (2)].constant);
-;}
+}
+ }
break;
- case 173:
-/* Line 1455 of yacc.c */
-#line 2144 "parser.y"
- {(yyval.token)=(yyvsp[(1) - (1)].token);;}
+
+ case 181:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2461 "parser.y"
+ {(yyval.token)=(yyvsp[(1) - (1)].token);}
+ }
break;
- case 174:
-/* Line 1455 of yacc.c */
-#line 2145 "parser.y"
- {(yyval.token)=(yyvsp[(1) - (1)].token);;}
+
+ case 182:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2462 "parser.y"
+ {(yyval.token)=(yyvsp[(1) - (1)].token);}
+ }
break;
- case 175:
-/* Line 1455 of yacc.c */
-#line 2146 "parser.y"
- {(yyval.token)=0;;}
+
+ case 183:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2463 "parser.y"
+ {(yyval.token)=0;}
+ }
break;
- case 176:
-/* Line 1455 of yacc.c */
-#line 2149 "parser.y"
- {startfunction(0,(yyvsp[(1) - (9)].flags),(yyvsp[(3) - (9)].token),(yyvsp[(4) - (9)].id),&(yyvsp[(6) - (9)].params),(yyvsp[(8) - (9)].classinfo));}
+
+ case 184:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2466 "parser.y"
+ {PASS12 startfunction(0,(yyvsp[(1) - (9)].flags),(yyvsp[(3) - (9)].token),(yyvsp[(4) - (9)].id),&(yyvsp[(6) - (9)].params),(yyvsp[(8) - (9)].classinfo));}
+ }
break;
- case 177:
-/* Line 1455 of yacc.c */
-#line 2150 "parser.y"
+
+ case 185:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2467 "parser.y"
{
- code_t*c = 0;
- if(state->method->late_binding) {
- c = abc_getlocal_0(c);
- c = abc_pushscope(c);
- }
- if(state->method->is_constructor && !state->method->has_super) {
- // call default constructor
- c = abc_getlocal_0(c);
- c = abc_constructsuper(c, 0);
- }
+ PASS1 old_state();list_deep_free((yyvsp[(6) - (12)].params).list);
+ PASS2
+ if(!state->method->info) syntaxerror("internal error");
+
+ code_t*c = method_header(state->method);
c = wrap_function(c, 0, (yyvsp[(11) - (12)].code));
+
endfunction(0,(yyvsp[(1) - (12)].flags),(yyvsp[(3) - (12)].token),(yyvsp[(4) - (12)].id),&(yyvsp[(6) - (12)].params),(yyvsp[(8) - (12)].classinfo),c);
+ list_deep_free((yyvsp[(6) - (12)].params).list);
(yyval.code)=0;
-;}
+}
+ }
break;
- case 179:
-/* Line 1455 of yacc.c */
-#line 2167 "parser.y"
- {(yyval.id)=0;;}
+
+ case 187:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2481 "parser.y"
+ {PASS12 (yyval.id)=0;}
+ }
break;
- case 180:
-/* Line 1455 of yacc.c */
-#line 2169 "parser.y"
- {
- syntaxerror("nested functions not supported yet");
-;}
+
+ case 188:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2483 "parser.y"
+ {PASS12 innerfunction((yyvsp[(2) - (7)].id),&(yyvsp[(4) - (7)].params),(yyvsp[(6) - (7)].classinfo));}
+ }
break;
- case 181:
-/* Line 1455 of yacc.c */
-#line 2176 "parser.y"
+
+ case 189:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2484 "parser.y"
{
+ PASS1 old_state();list_deep_free((yyvsp[(4) - (10)].params).list);
+ PASS2
+ methodinfo_t*f = state->method->info;
+ if(!f || !f->kind) syntaxerror("internal error");
+
+ code_t*c = method_header(state->method);
+ c = wrap_function(c, 0, (yyvsp[(9) - (10)].code));
+ int index = state->method->var_index;
+ endfunction(0,0,0,(yyvsp[(2) - (10)].id),&(yyvsp[(4) - (10)].params),(yyvsp[(6) - (10)].classinfo),c);
+ list_deep_free((yyvsp[(4) - (10)].params).list);
+
+ (yyval.value).c = abc_getlocal(0, index);
+ (yyval.value).t = TYPE_FUNCTION(f);
+}
+ }
+ break;
+
+
+
+ case 190:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2504 "parser.y"
+ {
+ PASS1 (yyval.classinfo)=0;
+ PASS2
/* try current package */
- (yyval.classinfo) = find_class((yyvsp[(1) - (1)].id));
- if(!(yyval.classinfo)) syntaxerror("Could not find class %s\n", (yyvsp[(1) - (1)].id));
-;}
+ slotinfo_t*s = find_class((yyvsp[(1) - (1)].id));
+ if(!s) syntaxerror("Could not find class/method %s\n", (yyvsp[(1) - (1)].id));
+ (yyval.classinfo) = (classinfo_t*)s;
+}
+ }
break;
- case 182:
-/* Line 1455 of yacc.c */
-#line 2183 "parser.y"
+
+ case 191:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2513 "parser.y"
{
- (yyval.classinfo) = registry_findclass((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].id));
- if(!(yyval.classinfo)) syntaxerror("Couldn't find class %s.%s\n", (yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].id));
+ PASS1 static classinfo_t c;
+ memset(&c, 0, sizeof(c));
+ c.package = (yyvsp[(1) - (3)].id);
+ c.name = (yyvsp[(3) - (3)].id);
+ (yyval.classinfo)=&c;
+ PASS2
+ slotinfo_t*s = registry_find((yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].id));
+ if(!s) syntaxerror("Couldn't find class/method %s.%s\n", (yyvsp[(1) - (3)].id), (yyvsp[(3) - (3)].id));
free((yyvsp[(1) - (3)].id));(yyvsp[(1) - (3)].id)=0;
-;}
+ (yyval.classinfo) = (classinfo_t*)s;
+}
+ }
break;
- case 185:
-/* Line 1455 of yacc.c */
-#line 2192 "parser.y"
- {(yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));;}
+
+ case 194:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2529 "parser.y"
+ {PASS12 (yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));}
+ }
break;
- case 186:
-/* Line 1455 of yacc.c */
-#line 2193 "parser.y"
- {(yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));;}
+
+ case 195:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2530 "parser.y"
+ {PASS12 (yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));}
+ }
break;
- case 187:
-/* Line 1455 of yacc.c */
-#line 2195 "parser.y"
- {(yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);;}
+
+ case 196:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2532 "parser.y"
+ {(yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);}
+ }
break;
- case 188:
-/* Line 1455 of yacc.c */
-#line 2196 "parser.y"
- {(yyval.classinfo)=registry_getanytype();;}
+
+ case 197:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2533 "parser.y"
+ {(yyval.classinfo)=registry_getanytype();}
+ }
break;
- case 189:
-/* Line 1455 of yacc.c */
-#line 2197 "parser.y"
- {(yyval.classinfo)=registry_getanytype();;}
+
+ case 198:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2534 "parser.y"
+ {(yyval.classinfo)=registry_getanytype();}
+ }
break;
- case 190:
-/* Line 1455 of yacc.c */
-#line 2206 "parser.y"
- {(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);;}
+
+ case 199:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2543 "parser.y"
+ {(yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);}
+ }
break;
- case 191:
-/* Line 1455 of yacc.c */
-#line 2207 "parser.y"
- {(yyval.classinfo)=0;;}
+
+ case 200:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2544 "parser.y"
+ {(yyval.classinfo)=0;}
+ }
break;
- case 192:
-/* Line 1455 of yacc.c */
-#line 2211 "parser.y"
- {(yyval.value_list).cc=0;(yyval.value_list).len=0;;}
+
+ case 201:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2548 "parser.y"
+ {(yyval.value_list).cc=0;(yyval.value_list).len=0;}
+ }
break;
- case 193:
-/* Line 1455 of yacc.c */
-#line 2212 "parser.y"
+
+ case 202:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2549 "parser.y"
{(yyval.value_list)=(yyvsp[(2) - (3)].value_list);}
+ }
break;
- case 194:
-/* Line 1455 of yacc.c */
-#line 2214 "parser.y"
- {(yyval.value_list).cc=0;(yyval.value_list).len=0;;}
+
+ case 203:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2551 "parser.y"
+ {(yyval.value_list).cc=0;(yyval.value_list).len=0;}
+ }
break;
- case 196:
-/* Line 1455 of yacc.c */
-#line 2216 "parser.y"
+
+ case 206:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2555 "parser.y"
{(yyval.value_list).len=1;
(yyval.value_list).cc = (yyvsp[(1) - (1)].value).c;
- ;}
+ }
+ }
break;
- case 197:
-/* Line 1455 of yacc.c */
-#line 2219 "parser.y"
- {
- (yyval.value_list).len= (yyvsp[(1) - (3)].value_list).len+1;
- (yyval.value_list).cc = code_append((yyvsp[(1) - (3)].value_list).cc, (yyvsp[(3) - (3)].value).c);
- ;}
+
+ case 207:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2559 "parser.y"
+ {(yyval.value_list) = (yyvsp[(1) - (2)].value_list);}
+ }
break;
- case 198:
-/* Line 1455 of yacc.c */
-#line 2224 "parser.y"
- {
- MULTINAME(m, (yyvsp[(2) - (3)].classinfo));
- (yyval.value).c = code_new();
+
+ case 208:
+ if(as3_pass==2) {
- if((yyvsp[(2) - (3)].classinfo)->slot) {
- (yyval.value).c = abc_getglobalscope((yyval.value).c);
- (yyval.value).c = abc_getslot((yyval.value).c, (yyvsp[(2) - (3)].classinfo)->slot);
- } else {
- (yyval.value).c = abc_findpropstrict2((yyval.value).c, &m);
+/* Line 1464 of skeleton.m4 */
+#line 2560 "parser.y"
+ {
+ (yyval.value_list).len= (yyvsp[(1) - (2)].value_list).len+1;
+ (yyval.value_list).cc = code_append((yyvsp[(1) - (2)].value_list).cc, (yyvsp[(2) - (2)].value).c);
+ }
}
+ break;
- (yyval.value).c = code_append((yyval.value).c, (yyvsp[(3) - (3)].value_list).cc);
- if((yyvsp[(2) - (3)].classinfo)->slot)
- (yyval.value).c = abc_construct((yyval.value).c, (yyvsp[(3) - (3)].value_list).len);
- else
- (yyval.value).c = abc_constructprop2((yyval.value).c, &m, (yyvsp[(3) - (3)].value_list).len);
- (yyval.value).t = (yyvsp[(2) - (3)].classinfo);
-;}
+
+ case 210:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2566 "parser.y"
+ {
+ (yyval.value).c = (yyvsp[(2) - (4)].value).c;
+ if((yyval.value).c->opcode == OPCODE_COERCE_A) (yyval.value).c = code_cutlast((yyval.value).c);
+
+ code_t*paramcode = (yyvsp[(4) - (4)].value_list).cc;
+ if((yyval.value).c->opcode == OPCODE_GETPROPERTY) {
+ multiname_t*name = (yyval.value).c->data[0];(yyval.value).c->data[0]=0;
+ (yyval.value).c = code_cutlast((yyval.value).c);
+ (yyval.value).c = code_append((yyval.value).c, paramcode);
+ (yyval.value).c = abc_constructprop2((yyval.value).c, name, (yyvsp[(4) - (4)].value_list).len);
+ multiname_destroy(name);
+ } else if((yyval.value).c->opcode == OPCODE_GETSLOT) {
+ int slot = (int)(ptroff_t)(yyval.value).c->data[0];
+ trait_t*t = abc_class_find_slotid(state->cls->abc,slot);//FIXME
+ multiname_t*name = t->name;
+ (yyval.value).c = code_cutlast((yyval.value).c);
+ (yyval.value).c = code_append((yyval.value).c, paramcode);
+ (yyval.value).c = abc_constructprop2((yyval.value).c, name, (yyvsp[(4) - (4)].value_list).len);
+ } else {
+ (yyval.value).c = code_append((yyval.value).c, paramcode);
+ (yyval.value).c = abc_construct((yyval.value).c, (yyvsp[(4) - (4)].value_list).len);
+ }
+
+ (yyval.value).t = TYPE_ANY;
+ if(TYPE_IS_CLASS((yyvsp[(2) - (4)].value).t) && (yyvsp[(2) - (4)].value).t->data) {
+ (yyval.value).t = (yyvsp[(2) - (4)].value).t->data;
+ } else {
+ (yyval.value).c = abc_coerce_a((yyval.value).c);
+ (yyval.value).t = TYPE_ANY;
+ }
+}
+ }
break;
- case 199:
-/* Line 1455 of yacc.c */
-#line 2248 "parser.y"
+
+ case 211:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2602 "parser.y"
{
(yyval.value).c = (yyvsp[(1) - (4)].value).c;
(yyval.value).c = abc_callsuper2((yyval.value).c, name, (yyvsp[(3) - (4)].value_list).len);
multiname_destroy(name);
} else {
- (yyval.value).c = abc_getlocal_0((yyval.value).c);
+ (yyval.value).c = abc_getglobalscope((yyval.value).c);
(yyval.value).c = code_append((yyval.value).c, paramcode);
(yyval.value).c = abc_call((yyval.value).c, (yyvsp[(3) - (4)].value_list).len);
}
- memberinfo_t*f = 0;
-
- if(TYPE_IS_FUNCTION((yyvsp[(1) - (4)].value).t) && (yyvsp[(1) - (4)].value).t->function) {
- (yyval.value).t = (yyvsp[(1) - (4)].value).t->function->return_type;
+ if(TYPE_IS_FUNCTION((yyvsp[(1) - (4)].value).t) && (yyvsp[(1) - (4)].value).t->data) {
+ (yyval.value).t = ((methodinfo_t*)((yyvsp[(1) - (4)].value).t->data))->return_type;
} else {
(yyval.value).c = abc_coerce_a((yyval.value).c);
(yyval.value).t = TYPE_ANY;
}
-
-;}
+}
+ }
break;
- case 200:
-/* Line 1455 of yacc.c */
-#line 2296 "parser.y"
+
+ case 212:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2648 "parser.y"
{
if(!state->cls) syntaxerror("super() not allowed outside of a class");
if(!state->method) syntaxerror("super() not allowed outside of a function");
syntaxerror("constructor may call super() only once");
*/
state->method->has_super = 1;
+
(yyval.value).c = abc_constructsuper((yyval.value).c, (yyvsp[(3) - (4)].value_list).len);
(yyval.value).c = abc_pushundefined((yyval.value).c);
(yyval.value).t = TYPE_ANY;
-;}
+}
+ }
break;
- case 201:
-/* Line 1455 of yacc.c */
-#line 2316 "parser.y"
+
+ case 213:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2669 "parser.y"
{
(yyval.value).c = (yyvsp[(2) - (2)].value).c;
if((yyval.value).c->opcode == OPCODE_COERCE_A) {
(yyval.value).c = abc_deleteproperty2((yyval.value).c, &m);
}
(yyval.value).t = TYPE_BOOLEAN;
-;}
+}
+ }
break;
- case 202:
-/* Line 1455 of yacc.c */
-#line 2337 "parser.y"
+
+ case 214:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2690 "parser.y"
{
(yyval.code) = abc_returnvoid(0);
-;}
+}
+ }
break;
- case 203:
-/* Line 1455 of yacc.c */
-#line 2340 "parser.y"
+
+ case 215:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2693 "parser.y"
{
(yyval.code) = (yyvsp[(2) - (2)].value).c;
(yyval.code) = abc_returnvalue((yyval.code));
-;}
+}
+ }
break;
- case 204:
-/* Line 1455 of yacc.c */
-#line 2347 "parser.y"
- {(yyval.value)=(yyvsp[(1) - (1)].value);;}
+
+ case 216:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2700 "parser.y"
+ {(yyval.value)=(yyvsp[(1) - (1)].value);}
+ }
break;
- case 205:
-/* Line 1455 of yacc.c */
-#line 2348 "parser.y"
- {(yyval.value) = (yyvsp[(1) - (1)].value);;}
+
+ case 217:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2701 "parser.y"
+ {(yyval.value) = (yyvsp[(1) - (1)].value);}
+ }
break;
- case 206:
-/* Line 1455 of yacc.c */
-#line 2349 "parser.y"
+
+ case 218:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2702 "parser.y"
{
(yyval.value).c = (yyvsp[(1) - (3)].value).c;
(yyval.value).c = cut_last_push((yyval.value).c);
(yyval.value).c = code_append((yyval.value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).t = (yyvsp[(3) - (3)].value).t;
-;}
+}
+ }
break;
- case 207:
-/* Line 1455 of yacc.c */
-#line 2355 "parser.y"
+
+ case 219:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2708 "parser.y"
{
(yyval.code)=cut_last_push((yyvsp[(1) - (1)].value).c);
-;}
+}
+ }
break;
- case 208:
-/* Line 1455 of yacc.c */
-#line 2361 "parser.y"
- {(yyval.value) = (yyvsp[(1) - (1)].value);;}
+
+ case 220:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2714 "parser.y"
+ {(yyval.value) = (yyvsp[(1) - (1)].value);}
+ }
break;
- case 210:
-/* Line 1455 of yacc.c */
-#line 2365 "parser.y"
- {(yyval.value) = (yyvsp[(1) - (1)].value);;}
+
+ case 222:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2718 "parser.y"
+ {(yyval.value) = (yyvsp[(1) - (1)].value);}
+ }
break;
- case 211:
-/* Line 1455 of yacc.c */
-#line 2367 "parser.y"
- {(yyval.value) = (yyvsp[(1) - (1)].value);;}
+
+ case 223:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2720 "parser.y"
+ {(yyval.value) = (yyvsp[(1) - (1)].value);}
+ }
break;
- case 212:
-/* Line 1455 of yacc.c */
-#line 2369 "parser.y"
- {(yyval.value) = (yyvsp[(1) - (1)].value);;}
+
+ case 224:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2722 "parser.y"
+ {(yyval.value) = (yyvsp[(1) - (1)].value);}
+ }
break;
- case 213:
-/* Line 1455 of yacc.c */
-#line 2371 "parser.y"
+
+ case 226:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2726 "parser.y"
{
(yyval.value).c = 0;
namespace_t ns = {ACCESS_PACKAGE, ""};
(yyval.value).c = abc_construct((yyval.value).c, 2);
}
(yyval.value).t = TYPE_REGEXP;
-;}
+}
+ }
break;
- case 214:
-/* Line 1455 of yacc.c */
-#line 2388 "parser.y"
+
+ case 227:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2743 "parser.y"
{(yyval.value).c = abc_pushbyte(0, (yyvsp[(1) - (1)].number_uint));
//MULTINAME(m, registry_getintclass());
//$$.c = abc_coerce2($$.c, &m); // FIXME
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 215:
-/* Line 1455 of yacc.c */
-#line 2393 "parser.y"
+
+ case 228:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2748 "parser.y"
{(yyval.value).c = abc_pushshort(0, (yyvsp[(1) - (1)].number_uint));
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 216:
-/* Line 1455 of yacc.c */
-#line 2396 "parser.y"
+
+ case 229:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2751 "parser.y"
{(yyval.value).c = abc_pushint(0, (yyvsp[(1) - (1)].number_int));
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 217:
-/* Line 1455 of yacc.c */
-#line 2399 "parser.y"
+
+ case 230:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2754 "parser.y"
{(yyval.value).c = abc_pushuint(0, (yyvsp[(1) - (1)].number_uint));
(yyval.value).t = TYPE_UINT;
- ;}
+ }
+ }
break;
- case 218:
-/* Line 1455 of yacc.c */
-#line 2402 "parser.y"
+
+ case 231:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2757 "parser.y"
{(yyval.value).c = abc_pushdouble(0, (yyvsp[(1) - (1)].number_float));
(yyval.value).t = TYPE_FLOAT;
- ;}
+ }
+ }
break;
- case 219:
-/* Line 1455 of yacc.c */
-#line 2405 "parser.y"
- {(yyval.value).c = abc_pushstring2(0, &(yyvsp[(1) - (1)].str));
+
+ case 232:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2760 "parser.y"
+ {(yyval.value).c = abc_pushstring2(0, &(yyvsp[(1) - (1)].str));free((char*)(yyvsp[(1) - (1)].str).str);
(yyval.value).t = TYPE_STRING;
- ;}
+ }
+ }
break;
- case 220:
-/* Line 1455 of yacc.c */
-#line 2408 "parser.y"
+
+ case 233:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2763 "parser.y"
{(yyval.value).c = abc_pushundefined(0);
(yyval.value).t = TYPE_ANY;
- ;}
+ }
+ }
break;
- case 221:
-/* Line 1455 of yacc.c */
-#line 2411 "parser.y"
+
+ case 234:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2766 "parser.y"
{(yyval.value).c = abc_pushtrue(0);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 222:
-/* Line 1455 of yacc.c */
-#line 2414 "parser.y"
+
+ case 235:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2769 "parser.y"
{(yyval.value).c = abc_pushfalse(0);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 223:
-/* Line 1455 of yacc.c */
-#line 2417 "parser.y"
+
+ case 236:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2772 "parser.y"
{(yyval.value).c = abc_pushnull(0);
(yyval.value).t = TYPE_NULL;
- ;}
+ }
+ }
break;
- case 225:
-/* Line 1455 of yacc.c */
-#line 2422 "parser.y"
+
+ case 237:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2776 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterequals((yyval.value).c);(yyval.value).c=abc_not((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 226:
-/* Line 1455 of yacc.c */
-#line 2425 "parser.y"
+
+ case 238:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2779 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterthan((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 227:
-/* Line 1455 of yacc.c */
-#line 2428 "parser.y"
+
+ case 239:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2782 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterthan((yyval.value).c);(yyval.value).c=abc_not((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 228:
-/* Line 1455 of yacc.c */
-#line 2431 "parser.y"
+
+ case 240:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2785 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_greaterequals((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 229:
-/* Line 1455 of yacc.c */
-#line 2434 "parser.y"
+
+ case 241:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2788 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_equals((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 230:
-/* Line 1455 of yacc.c */
-#line 2437 "parser.y"
+
+ case 242:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2791 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_strictequals((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 231:
-/* Line 1455 of yacc.c */
-#line 2440 "parser.y"
+
+ case 243:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2794 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_strictequals((yyval.value).c);(yyval.value).c = abc_not((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 232:
-/* Line 1455 of yacc.c */
-#line 2443 "parser.y"
+
+ case 244:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2797 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);(yyval.value).c = abc_equals((yyval.value).c);(yyval.value).c = abc_not((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 233:
-/* Line 1455 of yacc.c */
-#line 2447 "parser.y"
+
+ case 245:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2801 "parser.y"
{(yyval.value).t = join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'O');
(yyval.value).c = (yyvsp[(1) - (3)].value).c;
(yyval.value).c = converttype((yyval.value).c, (yyvsp[(1) - (3)].value).t, (yyval.value).t);
(yyval.value).c = converttype((yyval.value).c, (yyvsp[(3) - (3)].value).t, (yyval.value).t);
code_t*label = (yyval.value).c = abc_label((yyval.value).c);
jmp->branch = label;
- ;}
+ }
+ }
break;
- case 234:
-/* Line 1455 of yacc.c */
-#line 2458 "parser.y"
+
+ case 246:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2812 "parser.y"
{
(yyval.value).t = join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'A');
/*printf("%08x:\n",$1.t);
(yyval.value).c = converttype((yyval.value).c, (yyvsp[(3) - (3)].value).t, (yyval.value).t);
code_t*label = (yyval.value).c = abc_label((yyval.value).c);
jmp->branch = label;
- ;}
+ }
+ }
break;
- case 235:
-/* Line 1455 of yacc.c */
-#line 2476 "parser.y"
+
+ case 247:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2830 "parser.y"
{(yyval.value).c=(yyvsp[(2) - (2)].value).c;
(yyval.value).c = abc_not((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 236:
-/* Line 1455 of yacc.c */
-#line 2481 "parser.y"
+
+ case 248:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2835 "parser.y"
{(yyval.value).c=(yyvsp[(2) - (2)].value).c;
(yyval.value).c = abc_bitnot((yyval.value).c);
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 237:
-/* Line 1455 of yacc.c */
-#line 2486 "parser.y"
+
+ case 249:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2840 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_bitand((yyval.value).c);
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 238:
-/* Line 1455 of yacc.c */
-#line 2491 "parser.y"
+
+ case 250:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2845 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_bitxor((yyval.value).c);
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 239:
-/* Line 1455 of yacc.c */
-#line 2496 "parser.y"
+
+ case 251:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2850 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_bitor((yyval.value).c);
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 240:
-/* Line 1455 of yacc.c */
-#line 2501 "parser.y"
+
+ case 252:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2855 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_rshift((yyval.value).c);
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 241:
-/* Line 1455 of yacc.c */
-#line 2505 "parser.y"
+
+ case 253:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2859 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_urshift((yyval.value).c);
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 242:
-/* Line 1455 of yacc.c */
-#line 2509 "parser.y"
+
+ case 254:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2863 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_lshift((yyval.value).c);
(yyval.value).t = TYPE_INT;
- ;}
+ }
+ }
break;
- case 243:
-/* Line 1455 of yacc.c */
-#line 2514 "parser.y"
+
+ case 255:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2868 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_divide((yyval.value).c);
(yyval.value).t = TYPE_NUMBER;
- ;}
+ }
+ }
break;
- case 244:
-/* Line 1455 of yacc.c */
-#line 2518 "parser.y"
+
+ case 256:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2872 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_modulo((yyval.value).c);
(yyval.value).t = TYPE_NUMBER;
- ;}
+ }
+ }
break;
- case 245:
-/* Line 1455 of yacc.c */
-#line 2522 "parser.y"
+
+ case 257:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2876 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
if(BOTH_INT((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t)) {
(yyval.value).c = abc_add_i((yyval.value).c);
(yyval.value).c = abc_add((yyval.value).c);
(yyval.value).t = join_types((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t,'+');
}
- ;}
+ }
+ }
break;
- case 246:
-/* Line 1455 of yacc.c */
-#line 2531 "parser.y"
+
+ case 258:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2885 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) {
(yyval.value).c = abc_subtract_i((yyval.value).c);
(yyval.value).c = abc_subtract((yyval.value).c);
(yyval.value).t = TYPE_NUMBER;
}
- ;}
+ }
+ }
break;
- case 247:
-/* Line 1455 of yacc.c */
-#line 2540 "parser.y"
+
+ case 259:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2894 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) {
(yyval.value).c = abc_multiply_i((yyval.value).c);
(yyval.value).c = abc_multiply((yyval.value).c);
(yyval.value).t = TYPE_NUMBER;
}
- ;}
+ }
+ }
break;
- case 248:
-/* Line 1455 of yacc.c */
-#line 2550 "parser.y"
+
+ case 260:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2904 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c,(yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_in((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 249:
-/* Line 1455 of yacc.c */
-#line 2555 "parser.y"
+
+ case 261:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2909 "parser.y"
{char use_astype=0; // flash player's astype works differently than astypelate
- if(use_astype && TYPE_IS_CLASS((yyvsp[(3) - (3)].value).t)) {
- MULTINAME(m,(yyvsp[(3) - (3)].value).t->cls);
+ if(use_astype && TYPE_IS_CLASS((yyvsp[(3) - (3)].value).t) && (yyvsp[(3) - (3)].value).t->data) {
+ MULTINAME(m, (classinfo_t*)((yyvsp[(3) - (3)].value).t->data));
(yyval.value).c = abc_astype2((yyvsp[(1) - (3)].value).c, &m);
- (yyval.value).t = (yyvsp[(3) - (3)].value).t->cls;
+ (yyval.value).t = (yyvsp[(3) - (3)].value).t->data;
} else {
(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c, (yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_astypelate((yyval.value).c);
(yyval.value).t = TYPE_ANY;
}
- ;}
+ }
+ }
break;
- case 250:
-/* Line 1455 of yacc.c */
-#line 2568 "parser.y"
+
+ case 262:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2922 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c, (yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_instanceof((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 251:
-/* Line 1455 of yacc.c */
-#line 2573 "parser.y"
+
+ case 263:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2927 "parser.y"
{(yyval.value).c = code_append((yyvsp[(1) - (3)].value).c, (yyvsp[(3) - (3)].value).c);
(yyval.value).c = abc_istypelate((yyval.value).c);
(yyval.value).t = TYPE_BOOLEAN;
- ;}
+ }
+ }
break;
- case 252:
-/* Line 1455 of yacc.c */
-#line 2578 "parser.y"
+
+ case 264:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2932 "parser.y"
{
(yyval.value).c = (yyvsp[(3) - (4)].value).c;
(yyval.value).c = abc_typeof((yyval.value).c);
(yyval.value).t = TYPE_STRING;
- ;}
+ }
+ }
break;
- case 253:
-/* Line 1455 of yacc.c */
-#line 2584 "parser.y"
+
+ case 265:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2938 "parser.y"
{
(yyval.value).c = cut_last_push((yyvsp[(2) - (2)].value).c);
(yyval.value).c = abc_pushundefined((yyval.value).c);
(yyval.value).t = TYPE_ANY;
- ;}
+ }
+ }
break;
- case 254:
-/* Line 1455 of yacc.c */
-#line 2590 "parser.y"
+
+ case 266:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2944 "parser.y"
{ (yyval.value).c = abc_pushundefined(0);
(yyval.value).t = TYPE_ANY;
- ;}
+ }
+ }
break;
- case 255:
-/* Line 1455 of yacc.c */
-#line 2594 "parser.y"
- {(yyval.value)=(yyvsp[(2) - (3)].value);;}
+
+ case 267:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2948 "parser.y"
+ {(yyval.value)=(yyvsp[(2) - (3)].value);}
+ }
break;
- case 256:
-/* Line 1455 of yacc.c */
-#line 2596 "parser.y"
+
+ case 268:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2950 "parser.y"
{
(yyval.value)=(yyvsp[(2) - (2)].value);
if(IS_INT((yyvsp[(2) - (2)].value).t)) {
(yyval.value).c=abc_negate((yyval.value).c);
(yyval.value).t = TYPE_NUMBER;
}
-;}
+}
+ }
break;
- case 257:
-/* Line 1455 of yacc.c */
-#line 2607 "parser.y"
+
+ case 269:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2961 "parser.y"
{
(yyval.value).c = (yyvsp[(1) - (4)].value).c;
(yyval.value).c = code_append((yyval.value).c, (yyvsp[(3) - (4)].value).c);
-
+
MULTINAME_LATE(m, (yyvsp[(1) - (4)].value).t?(yyvsp[(1) - (4)].value).t->access:ACCESS_PACKAGE, "");
(yyval.value).c = abc_getproperty2((yyval.value).c, &m);
(yyval.value).t = 0; // array elements have unknown type
-;}
+}
+ }
break;
- case 258:
-/* Line 1455 of yacc.c */
-#line 2616 "parser.y"
+
+ case 270:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2970 "parser.y"
{
(yyval.value).c = code_new();
(yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc);
(yyval.value).c = abc_newarray((yyval.value).c, (yyvsp[(2) - (3)].value_list).len);
(yyval.value).t = registry_getarrayclass();
-;}
+}
+ }
break;
- case 259:
-/* Line 1455 of yacc.c */
-#line 2623 "parser.y"
- {(yyval.value_list).cc=0;(yyval.value_list).len=0;;}
+
+ case 271:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2977 "parser.y"
+ {(yyval.value_list).cc=0;(yyval.value_list).len=0;}
+ }
break;
- case 260:
-/* Line 1455 of yacc.c */
-#line 2624 "parser.y"
+
+ case 272:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2978 "parser.y"
{(yyval.value_list)=(yyvsp[(1) - (1)].value_list);}
+ }
break;
- case 261:
-/* Line 1455 of yacc.c */
-#line 2626 "parser.y"
+
+ case 273:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2980 "parser.y"
{
(yyval.value_list).cc = 0;
(yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(1) - (3)].value).c);
(yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(3) - (3)].value).c);
(yyval.value_list).len = 2;
-;}
+}
+ }
break;
- case 262:
-/* Line 1455 of yacc.c */
-#line 2632 "parser.y"
+
+ case 274:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2986 "parser.y"
{
(yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc;
(yyval.value_list).len = (yyvsp[(1) - (5)].value_list).len+2;
(yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(3) - (5)].value).c);
(yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(5) - (5)].value).c);
-;}
+}
+ }
break;
- case 263:
-/* Line 1455 of yacc.c */
-#line 2641 "parser.y"
+
+ case 275:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 2995 "parser.y"
{
(yyval.value).c = code_new();
(yyval.value).c = code_append((yyval.value).c, (yyvsp[(2) - (3)].value_list).cc);
(yyval.value).c = abc_newobject((yyval.value).c, (yyvsp[(2) - (3)].value_list).len/2);
(yyval.value).t = registry_getobjectclass();
-;}
+}
+ }
break;
- case 264:
-/* Line 1455 of yacc.c */
-#line 2648 "parser.y"
+
+ case 276:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3002 "parser.y"
{
code_t*c = (yyvsp[(3) - (3)].value).c;
if(BOTH_INT((yyvsp[(1) - (3)].value).t,(yyvsp[(3) - (3)].value).t)) {
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '*'), (yyvsp[(1) - (3)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 265:
-/* Line 1455 of yacc.c */
-#line 2660 "parser.y"
+
+ case 277:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3014 "parser.y"
{
code_t*c = abc_modulo((yyvsp[(3) - (3)].value).c);
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '%'), (yyvsp[(1) - (3)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 266:
-/* Line 1455 of yacc.c */
-#line 2666 "parser.y"
+
+ case 278:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3020 "parser.y"
{
code_t*c = abc_lshift((yyvsp[(3) - (3)].value).c);
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '<'), (yyvsp[(1) - (3)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 267:
-/* Line 1455 of yacc.c */
-#line 2672 "parser.y"
+
+ case 279:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3026 "parser.y"
{
code_t*c = abc_rshift((yyvsp[(3) - (3)].value).c);
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '>'), (yyvsp[(1) - (3)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 268:
-/* Line 1455 of yacc.c */
-#line 2678 "parser.y"
+
+ case 280:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3032 "parser.y"
{
code_t*c = abc_urshift((yyvsp[(3) - (3)].value).c);
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, 'U'), (yyvsp[(1) - (3)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 269:
-/* Line 1455 of yacc.c */
-#line 2684 "parser.y"
+
+ case 281:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3038 "parser.y"
{
code_t*c = abc_divide((yyvsp[(3) - (3)].value).c);
c=converttype(c, join_types((yyvsp[(1) - (3)].value).t, (yyvsp[(3) - (3)].value).t, '/'), (yyvsp[(1) - (3)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 270:
-/* Line 1455 of yacc.c */
-#line 2690 "parser.y"
+
+ case 282:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3044 "parser.y"
{
code_t*c = abc_bitor((yyvsp[(3) - (3)].value).c);
c=converttype(c, TYPE_INT, (yyvsp[(1) - (3)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
+ break;
+
+
+
+ case 283:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3050 "parser.y"
+ {
+ code_t*c = abc_bitxor((yyvsp[(3) - (3)].value).c);
+ c=converttype(c, TYPE_INT, (yyvsp[(1) - (3)].value).t);
+ (yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
+ (yyval.value).t = (yyvsp[(1) - (3)].value).t;
+ }
+ }
break;
- case 271:
-/* Line 1455 of yacc.c */
-#line 2696 "parser.y"
+
+ case 284:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3056 "parser.y"
{
code_t*c = (yyvsp[(3) - (3)].value).c;
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 272:
-/* Line 1455 of yacc.c */
-#line 2709 "parser.y"
+
+ case 285:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3069 "parser.y"
{ code_t*c = (yyvsp[(3) - (3)].value).c;
if(TYPE_IS_INT((yyvsp[(1) - (3)].value).t)) {
c=abc_subtract_i(c);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 273:
-/* Line 1455 of yacc.c */
-#line 2720 "parser.y"
+
+ case 286:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3080 "parser.y"
{ code_t*c = 0;
c = code_append(c, (yyvsp[(3) - (3)].value).c);
c = converttype(c, (yyvsp[(3) - (3)].value).t, (yyvsp[(1) - (3)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (3)].value).c, c, 1, 0);
(yyval.value).t = (yyvsp[(1) - (3)].value).t;
- ;}
+ }
+ }
break;
- case 274:
-/* Line 1455 of yacc.c */
-#line 2727 "parser.y"
+
+ case 287:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3087 "parser.y"
{
(yyval.value).t = join_types((yyvsp[(3) - (5)].value).t,(yyvsp[(5) - (5)].value).t,'?');
(yyval.value).c = (yyvsp[(1) - (5)].value).c;
(yyval.value).c = code_append((yyval.value).c, (yyvsp[(5) - (5)].value).c);
(yyval.value).c = converttype((yyval.value).c, (yyvsp[(3) - (5)].value).t, (yyval.value).t);
(yyval.value).c = j2->branch = abc_label((yyval.value).c);
- ;}
+ }
+ }
break;
- case 275:
-/* Line 1455 of yacc.c */
-#line 2740 "parser.y"
+
+ case 288:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3100 "parser.y"
{ code_t*c = 0;
classinfo_t*type = (yyvsp[(1) - (2)].value).t;
if((is_getlocal((yyvsp[(1) - (2)].value).c) && TYPE_IS_INT((yyvsp[(1) - (2)].value).t)) || TYPE_IS_NUMBER((yyvsp[(1) - (2)].value).t)) {
(yyval.value).c = toreadwrite((yyvsp[(1) - (2)].value).c, c, 0, 1);
(yyval.value).t = (yyvsp[(1) - (2)].value).t;
}
- ;}
+ }
+ }
break;
- case 276:
-/* Line 1455 of yacc.c */
-#line 2767 "parser.y"
+
+ case 289:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3127 "parser.y"
{ code_t*c = 0;
classinfo_t*type = (yyvsp[(1) - (2)].value).t;
if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) {
c=converttype(c, type, (yyvsp[(1) - (2)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(1) - (2)].value).c, c, 0, 1);
(yyval.value).t = (yyvsp[(1) - (2)].value).t;
- ;}
+ }
+ }
break;
- case 277:
-/* Line 1455 of yacc.c */
-#line 2781 "parser.y"
+
+ case 290:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3141 "parser.y"
{ code_t*c = 0;
classinfo_t*type = (yyvsp[(2) - (2)].value).t;
if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) {
c=converttype(c, type, (yyvsp[(2) - (2)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(2) - (2)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(2) - (2)].value).t;
- ;}
+ }
+ }
break;
- case 278:
-/* Line 1455 of yacc.c */
-#line 2795 "parser.y"
+
+ case 291:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3155 "parser.y"
{ code_t*c = 0;
classinfo_t*type = (yyvsp[(2) - (2)].value).t;
if(TYPE_IS_INT(type) || TYPE_IS_UINT(type)) {
c=converttype(c, type, (yyvsp[(2) - (2)].value).t);
(yyval.value).c = toreadwrite((yyvsp[(2) - (2)].value).c, c, 0, 0);
(yyval.value).t = (yyvsp[(2) - (2)].value).t;
- ;}
+ }
+ }
break;
- case 279:
-/* Line 1455 of yacc.c */
-#line 2810 "parser.y"
+
+ case 292:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3170 "parser.y"
{ if(!state->cls->info)
syntaxerror("super keyword not allowed outside a class");
classinfo_t*t = state->cls->info->superclass;
if(!t) t = TYPE_OBJECT;
memberinfo_t*f = registry_findmember(t, (yyvsp[(3) - (3)].id), 1);
- namespace_t ns = flags2namespace(f->flags, "");
+ namespace_t ns = {f->access, ""};
MEMBER_MULTINAME(m, f, (yyvsp[(3) - (3)].id));
(yyval.value).c = 0;
(yyval.value).c = abc_getlocal_0((yyval.value).c);
(yyval.value).c = abc_getsuper2((yyval.value).c, &m);
- (yyval.value).t = memberinfo_gettype(f);
- ;}
+ (yyval.value).t = slotinfo_gettype((slotinfo_t*)f);
+ }
+ }
break;
- case 280:
-/* Line 1455 of yacc.c */
-#line 2825 "parser.y"
+
+ case 293:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3184 "parser.y"
+ {
+ // attribute TODO
+ (yyval.value).c = abc_pushundefined(0);
+ (yyval.value).t = 0;
+ as3_warning("ignored @ operator");
+ }
+ }
+ break;
+
+
+
+ case 294:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3191 "parser.y"
+ {
+ // child attribute TODO
+ (yyval.value).c = abc_pushundefined(0);
+ (yyval.value).t = 0;
+ as3_warning("ignored .@ operator");
+ }
+ }
+ break;
+
+
+
+ case 295:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3198 "parser.y"
+ {
+ // namespace declaration TODO
+ (yyval.value).c = abc_pushundefined(0);
+ (yyval.value).t = 0;
+ as3_warning("ignored :: operator");
+ }
+ }
+ break;
+
+
+
+ case 296:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3205 "parser.y"
+ {
+ // descendants TODO
+ (yyval.value).c = abc_pushundefined(0);
+ (yyval.value).t = 0;
+ as3_warning("ignored .. operator");
+ }
+ }
+ break;
+
+
+
+ case 297:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3212 "parser.y"
+ {
+ // filter TODO
+ (yyval.value).c = abc_pushundefined(0);
+ (yyval.value).t = 0;
+ as3_warning("ignored .() operator");
+ }
+ }
+ break;
+
+
+
+ case 298:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3224 "parser.y"
{(yyval.value).c = (yyvsp[(1) - (3)].value).c;
classinfo_t*t = (yyvsp[(1) - (3)].value).t;
char is_static = 0;
- if(TYPE_IS_CLASS(t) && t->cls) {
- t = t->cls;
+ if(TYPE_IS_CLASS(t) && t->data) {
+ t = t->data;
is_static = 1;
}
if(t) {
(yyval.value).c = abc_getproperty2((yyval.value).c, &m);
}
/* determine type */
- (yyval.value).t = memberinfo_gettype(f);
+ (yyval.value).t = slotinfo_gettype((slotinfo_t*)f);
if(!(yyval.value).t)
(yyval.value).c = abc_coerce_a((yyval.value).c);
} else {
(yyval.value).c = abc_coerce_a((yyval.value).c);
(yyval.value).t = registry_getanytype();
}
- ;}
+ }
+ }
break;
- case 281:
-/* Line 1455 of yacc.c */
-#line 2858 "parser.y"
+
+ case 299:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3257 "parser.y"
{
(yyval.value).t = 0;
(yyval.value).c = 0;
- classinfo_t*a = 0;
+ slotinfo_t*a = 0;
memberinfo_t*f = 0;
variable_t*v;
// $1 is a function in this class
int var_is_static = (f->flags&FLAG_STATIC);
- if(f->kind == MEMBER_METHOD) {
+ if(f->kind == INFOTYPE_METHOD) {
(yyval.value).t = TYPE_FUNCTION(f);
} else {
(yyval.value).t = f->type;
static properties of a class */
state->method->late_binding = 1;
(yyval.value).t = f->type;
- namespace_t ns = {flags2access(f->flags), ""};
+ namespace_t ns = {f->access, ""};
multiname_t m = {QNAME, &ns, 0, (yyvsp[(1) - (1)].id)};
(yyval.value).c = abc_findpropstrict2((yyval.value).c, &m);
(yyval.value).c = abc_getproperty2((yyval.value).c, &m);
(yyval.value).c = abc_getslot((yyval.value).c, f->slot);
break;
} else {
- namespace_t ns = {flags2access(f->flags), ""};
+ namespace_t ns = {f->access, ""};
multiname_t m = {QNAME, &ns, 0, (yyvsp[(1) - (1)].id)};
(yyval.value).c = abc_getlocal_0((yyval.value).c);
(yyval.value).c = abc_getproperty2((yyval.value).c, &m);
/* look at actual classes, in the current package and imported */
if((a = find_class((yyvsp[(1) - (1)].id)))) {
- if(a->flags & FLAG_METHOD) {
+ if(a->access == ACCESS_PACKAGEINTERNAL &&
+ strcmp(a->package, state->package) &&
+ strcmp(a->package, internal_filename_package)
+ )
+ syntaxerror("Can't access internal %s %s in package '%s' from package '%s'",
+ infotypename(a),(yyvsp[(1) - (1)].id), a->package, state->package);
+
+ if(a->kind != INFOTYPE_CLASS) {
MULTINAME(m, a);
(yyval.value).c = abc_findpropstrict2((yyval.value).c, &m);
(yyval.value).c = abc_getproperty2((yyval.value).c, &m);
- if(a->function->kind == MEMBER_METHOD) {
- (yyval.value).t = TYPE_FUNCTION(a->function);
+ if(a->kind == INFOTYPE_METHOD) {
+ methodinfo_t*f = (methodinfo_t*)a;
+ (yyval.value).t = TYPE_FUNCTION(f);
} else {
- (yyval.value).t = a->function->type;
+ varinfo_t*v = (varinfo_t*)a;
+ (yyval.value).t = v->type;
}
} else {
- if(a->slot) {
+ classinfo_t*c = (classinfo_t*)a;
+ if(c->slot) {
(yyval.value).c = abc_getglobalscope((yyval.value).c);
- (yyval.value).c = abc_getslot((yyval.value).c, a->slot);
+ (yyval.value).c = abc_getslot((yyval.value).c, c->slot);
} else {
- MULTINAME(m, a);
+ MULTINAME(m, c);
(yyval.value).c = abc_getlex2((yyval.value).c, &m);
}
- (yyval.value).t = TYPE_CLASS(a);
+ (yyval.value).t = TYPE_CLASS(c);
}
break;
}
/* unknown object, let the avm2 resolve it */
if(1) {
- if(strcmp((yyvsp[(1) - (1)].id),"trace"))
- as3_softwarning("Couldn't resolve '%s', doing late binding", (yyvsp[(1) - (1)].id));
+ as3_softwarning("Couldn't resolve '%s', doing late binding", (yyvsp[(1) - (1)].id));
state->method->late_binding = 1;
multiname_t m = {MULTINAME, 0, &nopackage_namespace_set, (yyvsp[(1) - (1)].id)};
(yyval.value).c = abc_findpropstrict2((yyval.value).c, &m);
(yyval.value).c = abc_getproperty2((yyval.value).c, &m);
}
-;}
+}
+ }
break;
- case 282:
-/* Line 1455 of yacc.c */
-#line 2956 "parser.y"
- {(yyval.code)=0;;}
+
+ case 300:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3359 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 283:
-/* Line 1455 of yacc.c */
-#line 2957 "parser.y"
- {(yyval.code)=0;;}
+
+ case 301:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3360 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 284:
-/* Line 1455 of yacc.c */
-#line 2958 "parser.y"
- {(yyval.code)=0;;}
+
+ case 302:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3361 "parser.y"
+ {(yyval.code)=0;}
+ }
break;
- case 285:
-/* Line 1455 of yacc.c */
-#line 2960 "parser.y"
- {(yyval.token)=0;;}
+
+ case 303:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3363 "parser.y"
+ {
+ PASS12
+ tokenizer_register_namespace((yyvsp[(3) - (3)].id));
+ (yyval.code)=0;
+}
+ }
break;
-/* Line 1455 of yacc.c */
-#line 6181 "parser.tab.c"
+
+/* Line 1464 of skeleton.m4 */
+#line 7705 "parser.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);