#include "opcodes.h"
#include "compiler.h"
#include "expr.h"
+#include "initcode.h"
extern int a3_lex();
/* Line 198 of skeleton.m4 */
-#line 101 "parser.tab.c"
+#line 102 "parser.tab.c"
/* Enabling traces. */
#ifndef YYDEBUG
#if ! defined YYSTYPE && ! defined YYSTYPE_IS_DECLARED
typedef union
/* Line 223 of skeleton.m4 */
-#line 46 "parser.y"
+#line 47 "parser.y"
tokenunion
{
/* Line 223 of skeleton.m4 */
-#line 46 "parser.y"
+#line 47 "parser.y"
enum yytokentype token;
/* Line 223 of skeleton.m4 */
-#line 281 "parser.tab.c"
+#line 282 "parser.tab.c"
} YYSTYPE;
# define YYSTYPE_IS_TRIVIAL 1
# define yystype YYSTYPE /* obsolescent; will be withdrawn */
/* Copy the second part of user declarations. */
/* Line 273 of skeleton.m4 */
-#line 269 "parser.y"
+#line 273 "parser.y"
static int a3_error(char*s)
int switch_var;
dict_t*vars;
+ dict_t*allvars; // also contains variables from sublevels
} state_t;
typedef struct _global {
abc_file_t*file;
- abc_script_t*init;
+
+ parsedclass_list_t*classes;
+ abc_script_t*classinit;
+
+ abc_script_t*init; //package-level code
+
dict_t*token2info;
dict_t*file2token2info;
} global_t;
DECLARE_LIST(state);
-#define MULTINAME(m,x) \
- multiname_t m;\
- namespace_t m##_ns;\
- (x)->package; \
- registry_fill_multiname(&m, &m##_ns, (slotinfo_t*)(x));
-
#define MEMBER_MULTINAME(m,f,n) \
multiname_t m;\
namespace_t m##_ns;\
dict_destroy(state->imports);state->imports=0;
}
if(state->vars) {
- int t;
- for(t=0;t<state->vars->hashsize;t++) {
- dictentry_t*e =state->vars->slots[t];
- while(e) {
- free(e->data);e->data=0;
- e = e->next;
- }
- }
dict_destroy(state->vars);state->vars=0;
}
+ if(state->new_vars && state->allvars) {
+ parserassert(!state->old || state->old->allvars != state->allvars);
+ DICT_ITERATE_DATA(state->allvars, void*, data) {
+ free(data);
+ }
+ dict_destroy(state->allvars);
+ }
list_free(state->active_namespace_urls)
state->active_namespace_urls = 0;
new_state();
state->package = internal_filename_package = strdup(filename);
+ state->allvars = dict_new();
global->token2info = dict_lookup(global->file2token2info,
current_filename // use long version
if(!state->method)
syntaxerror("internal error: skewed tokencount");
function_initvars(state->method, 0, 0, 1);
+ global->classinit = abc_initscript(global->file);
global->init = abc_initscript(global->file);
}
}
{
dict_free_all(global->file2token2info, 1, (void*)dict_destroy);
global->token2info=0;
+
+ initcode_add_classlist(global->classinit, global->classes);
+
return global->file;
}
static variable_t* find_variable(state_t*s, char*name)
{
+ state_t*top = s;
while(s) {
variable_t*v = 0;
v = dict_lookup(s->vars, name);
if(s->new_vars) break;
s = s->old;
}
- return 0;
+ return dict_lookup(top->allvars, name);
}
static variable_t* find_slot(state_t*s, const char*name)
{
v->type = type;
v->init = init;
- if(name)
+ if(name) {
dict_put(state->vars, name, v);
+ dict_put(state->allvars, name, v);
+ }
return v;
}
int gettempvar()
{
variable_t*v = find_variable(state, TEMPVARNAME);
+ int i;
if(v)
- return v->index;
- return new_variable(TEMPVARNAME, 0, 0, 0);
+ i = v->index;
+ else
+ i = new_variable(TEMPVARNAME, 0, 0, 0);
+ parserassert(i);
+ return i;
}
static code_t* var_block(code_t*body)
index = new_variable((flags&FLAG_STATIC)?"class":"this", state->cls?state->cls->info:0, 0, 0);
else
index = new_variable("globalscope", 0, 0, 0);
- if(index)
- *(int*)0=0;
parserassert(!index);
}
state->cls = rfx_calloc(sizeof(classstate_t));
state->cls->init = rfx_calloc(sizeof(methodstate_t));
state->cls->static_init = rfx_calloc(sizeof(methodstate_t));
+ state->cls->static_init->variable_count=1;
/* 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 */
int num_interfaces = (list_length(implements));
state->cls->info = classinfo_register(access, package, classname, num_interfaces);
state->cls->info->flags |= mod->flags & (FLAG_DYNAMIC|FLAG_INTERFACE|FLAG_FINAL);
+ state->cls->info->superclass = extends;
int pos = 0;
classinfo_list_t*l = implements;
pos++;
}
- /* fill out interfaces and extends (we couldn't resolve those during the first pass) */
- state->cls->info->superclass = extends;
-
/* generate the abc code for this class */
MULTINAME(classname2,state->cls->info);
multiname_t*extends2 = sig2mname(extends);
-
state->cls->abc = abc_class_new(global->file, &classname2, extends2);
+ multiname_destroy(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_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);
-
- 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);
-
- __ 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);
- multiname_destroy(extends2);
+ NEW(parsedclass_t,p);
+ p->cls = state->cls->info;
+ p->abc = state->cls->abc;
+ list_append(global->classes, p);
/* flash.display.MovieClip handling */
-
if(!as3_globalclass && (mod->flags&FLAG_PUBLIC) && slotinfo_equals((slotinfo_t*)registry_getMovieClip(),(slotinfo_t*)extends)) {
if(state->package && state->package[0]) {
as3_globalclass = concat3(state->package, ".", classname);
if(!state->cls) {
//package method
minfo = methodinfo_register_global(ns.access, state->package, name);
- minfo->return_type = 0; // save this for pass 2
+ minfo->return_type = return_type;
} else if(getset != KW_GET && getset != KW_SET) {
//class method
memberinfo_t* m = registry_findmember(state->cls->info, ns.name, name, 0);
syntaxerror("class already contains a %s '%s'", infotypename((slotinfo_t*)m), m->name);
}
minfo = methodinfo_register_onclass(state->cls->info, ns.access, ns.name, name);
- minfo->return_type = 0; // save this for pass 2
+ 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;
// not sure wether to look into superclasses here, too
minfo = (methodinfo_t*)registry_findmember(state->cls->info, ns.name, name, 1);
if(minfo) {
- if(minfo->kind!=INFOTYPE_SLOT)
+ if(minfo->kind!=INFOTYPE_VAR)
syntaxerror("class already contains a method called '%s'", name);
if(!(minfo->subtype & (SUBTYPE_GETSET)))
syntaxerror("class already contains a field called '%s'", name);
}*/
} else {
minfo = methodinfo_register_onclass(state->cls->info, ns.access, ns.name, name);
- minfo->kind = INFOTYPE_SLOT; //hack
+ minfo->kind = INFOTYPE_VAR; //hack
minfo->subtype = gs;
- minfo->return_type = 0;
+ minfo->return_type = return_type;
}
+
/* can't assign a slot as getter and setter might have different slots */
//minfo->slot = slot;
}
new_state();
state->new_vars = 1;
+ state->allvars = dict_new();
if(as3_pass == 1) {
state->method = rfx_calloc(sizeof(methodstate_t));
}
new_state();
state->new_vars = 1;
-
+ state->allvars = dict_new();
+
if(as3_pass == 1) {
state->method = rfx_calloc(sizeof(methodstate_t));
state->method->has_super = 0;
state->cls->has_constructor |= state->method->is_constructor;
}
- state->method->info->return_type = return_type;
function_initvars(state->method, params, mod->flags, 1);
}
}
}
state->method->uses_slots = i;
dict_destroy(state->vars);state->vars = 0;
+ parserassert(state->new_vars);
+ dict_destroy(state->allvars);state->allvars = 0;
}
old_state();
return 0;
/* Line 273 of skeleton.m4 */
-#line 1899 "parser.tab.c"
+#line 1867 "parser.tab.c"
/* Unqualified %code blocks. */
/* Line 274 of skeleton.m4 */
-#line 1963 "parser.y"
+#line 1944 "parser.y"
char is_subtype_of(classinfo_t*type, classinfo_t*supertype)
{
/* Line 274 of skeleton.m4 */
-#line 2415 "parser.y"
+#line 2393 "parser.y"
static void state_has_imports()
{
/* Line 274 of skeleton.m4 */
-#line 2548 "parser.y"
+#line 2526 "parser.y"
static int slotstate_varconst = 0;
static modifiers_t*slotstate_flags = 0;
/* Line 274 of skeleton.m4 */
-#line 3392 "parser.y"
+#line 3414 "parser.y"
void add_active_url(const char*url)
{
/* Line 274 of skeleton.m4 */
-#line 1968 "parser.tab.c"
+#line 1936 "parser.tab.c"
#ifdef short
# undef short
#endif
/* YYFINAL -- State number of the termination state. */
-#define YYFINAL 147
+#define YYFINAL 149
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 3105
+#define YYLAST 3107
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 133
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 115
+#define YYNNTS 116
/* YYNRULES -- Number of rules. */
-#define YYNRULES 303
+#define YYNRULES 305
/* YYNRULES -- Number of states. */
-#define YYNSTATES 517
+#define YYNSTATES 519
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
555, 559, 561, 563, 565, 568, 569, 570, 574, 575,
577, 579, 581, 584, 587, 588, 593, 598, 603, 606,
608, 611, 613, 615, 617, 621, 623, 627, 628, 630,
- 634, 640, 642, 644, 646, 648, 650, 652, 654, 656,
- 660, 664, 668, 672, 676, 680, 684, 688, 692, 696,
- 700, 704, 707, 710, 714, 718, 722, 726, 730, 734,
- 738, 742, 746, 750, 754, 758, 762, 766, 770, 775,
- 778, 780, 784, 787, 792, 796, 800, 804, 808, 812,
- 816, 820, 824, 828, 832, 836, 840, 846, 849, 852,
- 855, 858, 862, 865, 870, 876, 880, 886, 890, 892,
- 895, 900, 905, 908
+ 632, 634, 638, 644, 646, 648, 650, 652, 654, 656,
+ 658, 660, 664, 668, 672, 676, 680, 684, 688, 692,
+ 696, 700, 704, 708, 711, 714, 718, 722, 726, 730,
+ 734, 738, 742, 746, 750, 754, 758, 762, 766, 770,
+ 774, 779, 782, 784, 788, 791, 796, 800, 804, 808,
+ 812, 816, 820, 824, 828, 832, 836, 840, 844, 850,
+ 853, 856, 859, 862, 866, 869, 874, 880, 884, 890,
+ 894, 896, 899, 904, 909, 912
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
147, 125, 138, 131, -1, 99, -1, 142, -1, -1,
142, 144, -1, 144, -1, 188, -1, 158, -1, 159,
-1, 160, -1, 162, -1, 170, -1, 153, -1, 182,
- -1, 178, -1, 239, -1, 247, -1, 246, -1, 125,
+ -1, 178, -1, 239, -1, 248, -1, 247, -1, 125,
142, 131, -1, 125, 131, -1, 99, -1, 143, -1,
149, -1, 164, -1, 165, -1, 235, -1, 180, -1,
147, 125, 142, 131, -1, 144, 99, -1, 144, -1,
- 143, -1, 3, 89, 3, -1, 102, 236, -1, -1,
+ 143, -1, 3, 89, 3, -1, 102, 243, -1, -1,
45, 150, -1, 31, 150, -1, 151, -1, 150, 100,
151, -1, 3, 226, 148, -1, -1, 64, 145, -1,
-1, 63, 121, 154, 237, 132, 145, 152, -1, -1,
-1, -1, 13, 163, 145, 12, 121, 237, 132, -1,
65, -1, 65, 3, -1, 29, -1, 29, 3, -1,
-1, 167, -1, 169, -1, 167, 169, -1, 168, -1,
- 167, 168, -1, 33, 242, 104, 141, -1, 61, 104,
- 141, -1, -1, 14, 121, 171, 242, 132, 125, 166,
+ 167, 168, -1, 33, 243, 104, 141, -1, 61, 104,
+ 141, -1, -1, 14, 121, 171, 243, 132, 125, 166,
131, -1, -1, 32, 121, 3, 226, 132, 173, 125,
141, 131, -1, -1, 26, 125, 175, 141, 131, -1,
172, -1, 176, 172, -1, 176, -1, 176, 174, -1,
45, 3, -1, 189, 25, 215, 3, 121, 212, 132,
226, -1, 45, -1, 31, -1, -1, 189, 205, 207,
208, -1, 209, -1, 208, 100, 209, -1, 3, 226,
- 148, -1, -1, 102, 211, -1, 8, -1, 9, -1,
+ 148, -1, -1, 102, 243, -1, 8, -1, 9, -1,
10, -1, 5, -1, 55, -1, 54, -1, 44, -1,
27, -1, 28, -1, -1, 213, -1, 93, 214, -1,
213, 100, 93, 214, -1, 213, 100, 214, -1, 214,
-1, 221, -1, 223, -1, 224, 100, 223, -1, 223,
-1, 114, -1, 35, -1, 104, 225, -1, -1, -1,
121, 228, 132, -1, -1, 229, -1, 230, -1, 236,
- -1, 229, 100, -1, 230, 236, -1, -1, 23, 242,
- 231, 227, -1, 242, 121, 228, 132, -1, 52, 121,
- 228, 132, -1, 62, 242, -1, 41, -1, 41, 237,
- -1, 242, -1, 238, -1, 242, -1, 238, 100, 242,
- -1, 242, -1, 239, 100, 242, -1, -1, 241, -1,
- 236, 104, 236, -1, 241, 100, 236, 104, 236, -1,
- 219, -1, 244, -1, 243, -1, 232, -1, 234, -1,
- 233, -1, 211, -1, 6, -1, 123, 228, 124, -1,
- 69, 240, 131, -1, 242, 108, 242, -1, 242, 109,
- 242, -1, 242, 74, 242, -1, 242, 75, 242, -1,
- 242, 70, 242, -1, 242, 71, 242, -1, 242, 73,
- 242, -1, 242, 72, 242, -1, 242, 87, 242, -1,
- 242, 88, 242, -1, 117, 242, -1, 116, 242, -1,
- 242, 107, 242, -1, 242, 106, 242, -1, 242, 105,
- 242, -1, 242, 96, 242, -1, 242, 95, 242, -1,
- 242, 94, 242, -1, 242, 113, 242, -1, 242, 115,
- 242, -1, 242, 112, 242, -1, 242, 111, 242, -1,
- 242, 114, 242, -1, 242, 67, 242, -1, 242, 68,
- 242, -1, 242, 39, 242, -1, 242, 66, 242, -1,
- 42, 121, 242, 132, -1, 35, 242, -1, 35, -1,
- 121, 238, 132, -1, 111, 242, -1, 242, 123, 242,
- 124, -1, 242, 79, 242, -1, 242, 78, 242, -1,
- 242, 85, 242, -1, 242, 84, 242, -1, 242, 86,
- 242, -1, 242, 77, 242, -1, 242, 76, 242, -1,
- 242, 83, 242, -1, 242, 80, 242, -1, 242, 81,
- 242, -1, 242, 82, 242, -1, 242, 102, 242, -1,
- 242, 103, 242, 104, 242, -1, 242, 91, -1, 242,
- 90, -1, 91, 242, -1, 90, 242, -1, 52, 126,
- 3, -1, 127, 3, -1, 242, 126, 127, 3, -1,
- 242, 126, 3, 89, 3, -1, 242, 92, 3, -1,
- 242, 126, 121, 242, 132, -1, 242, 126, 3, -1,
- 3, -1, 16, 3, -1, 16, 3, 102, 3, -1,
- 16, 3, 102, 5, -1, 189, 245, -1, 21, 16,
- 223, -1
+ -1, 229, 100, -1, 230, 236, -1, -1, 23, 243,
+ 231, 227, -1, 243, 121, 228, 132, -1, 52, 121,
+ 228, 132, -1, 62, 243, -1, 41, -1, 41, 237,
+ -1, 243, -1, 238, -1, 243, -1, 238, 100, 243,
+ -1, 243, -1, 239, 100, 243, -1, -1, 242, -1,
+ 3, -1, 5, -1, 241, 104, 236, -1, 242, 100,
+ 241, 104, 236, -1, 219, -1, 244, -1, 232, -1,
+ 234, -1, 233, -1, 245, -1, 211, -1, 6, -1,
+ 123, 228, 124, -1, 69, 240, 131, -1, 243, 108,
+ 243, -1, 243, 109, 243, -1, 243, 74, 243, -1,
+ 243, 75, 243, -1, 243, 70, 243, -1, 243, 71,
+ 243, -1, 243, 73, 243, -1, 243, 72, 243, -1,
+ 243, 87, 243, -1, 243, 88, 243, -1, 117, 243,
+ -1, 116, 243, -1, 243, 107, 243, -1, 243, 106,
+ 243, -1, 243, 105, 243, -1, 243, 96, 243, -1,
+ 243, 95, 243, -1, 243, 94, 243, -1, 243, 113,
+ 243, -1, 243, 115, 243, -1, 243, 112, 243, -1,
+ 243, 111, 243, -1, 243, 114, 243, -1, 243, 67,
+ 243, -1, 243, 68, 243, -1, 243, 39, 243, -1,
+ 243, 66, 243, -1, 42, 121, 243, 132, -1, 35,
+ 243, -1, 35, -1, 121, 238, 132, -1, 111, 243,
+ -1, 243, 123, 243, 124, -1, 243, 79, 243, -1,
+ 243, 78, 243, -1, 243, 85, 243, -1, 243, 84,
+ 243, -1, 243, 86, 243, -1, 243, 77, 243, -1,
+ 243, 76, 243, -1, 243, 83, 243, -1, 243, 80,
+ 243, -1, 243, 81, 243, -1, 243, 82, 243, -1,
+ 243, 102, 243, -1, 243, 103, 243, 104, 243, -1,
+ 243, 91, -1, 243, 90, -1, 91, 243, -1, 90,
+ 243, -1, 52, 126, 3, -1, 127, 3, -1, 243,
+ 126, 127, 3, -1, 243, 126, 3, 89, 3, -1,
+ 243, 92, 3, -1, 243, 126, 121, 243, 132, -1,
+ 243, 126, 3, -1, 3, -1, 16, 3, -1, 16,
+ 3, 102, 3, -1, 16, 3, 102, 5, -1, 189,
+ 246, -1, 21, 16, 223, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
static const yytype_uint16 yyrline[] =
{
- 0, 1878, 1878, 1880, 1880, 1881, 1882, 1884, 1885, 1886,
- 1887, 1888, 1889, 1890, 1891, 1893, 1893, 1894, 1895, 1897,
- 1898, 1899, 1900, 1901, 1902, 1903, 1905, 1906, 1908, 1909,
- 1912, 1913, 1914, 1915, 1916, 1917, 1918, 1919, 1920, 1921,
- 1922, 1923, 1924, 1925, 1928, 1929, 1930, 1931, 1932, 1933,
- 1934, 1935, 1939, 1940, 1944, 1951, 1970, 1971, 1975, 1976,
- 1978, 1979, 1981, 2042, 2043, 2046, 2046, 2065, 2066, 2067,
- 2072, 2076, 2081, 2082, 2084, 2104, 2152, 2152, 2171, 2171,
- 2186, 2189, 2192, 2195, 2199, 2200, 2201, 2202, 2203, 2204,
- 2206, 2217, 2220, 2220, 2251, 2251, 2276, 2276, 2292, 2293,
- 2294, 2295, 2303, 2312, 2312, 2361, 2365, 2376, 2386, 2403,
- 2404, 2405, 2407, 2408, 2410, 2410, 2412, 2412, 2435, 2449,
- 2465, 2466, 2467, 2468, 2475, 2476, 2477, 2478, 2479, 2480,
- 2481, 2482, 2483, 2484, 2488, 2489, 2491, 2492, 2494, 2495,
- 2499, 2497, 2505, 2503, 2512, 2513, 2514, 2515, 2516, 2517,
- 2518, 2519, 2521, 2527, 2528, 2529, 2530, 2531, 2532, 2535,
- 2567, 2567, 2569, 2569, 2571, 2572, 2574, 2659, 2660, 2663,
- 2664, 2667, 2668, 2669, 2670, 2671, 2672, 2673, 2688, 2692,
- 2698, 2704, 2712, 2717, 2723, 2731, 2739, 2740, 2741, 2744,
- 2743, 2760, 2761, 2763, 2762, 2786, 2805, 2819, 2820, 2822,
- 2823, 2825, 2826, 2827, 2836, 2837, 2841, 2842, 2844, 2845,
- 2846, 2848, 2852, 2853, 2858, 2859, 2896, 2943, 2964, 2986,
- 2989, 2996, 2999, 3002, 3005, 3008, 3011, 3016, 3017, 3019,
- 3025, 3034, 3035, 3036, 3037, 3038, 3039, 3041, 3046, 3066,
- 3076, 3085, 3086, 3087, 3088, 3089, 3090, 3091, 3092, 3093,
- 3094, 3095, 3096, 3097, 3098, 3099, 3100, 3101, 3102, 3103,
- 3104, 3105, 3106, 3107, 3108, 3109, 3110, 3111, 3112, 3113,
- 3114, 3115, 3116, 3117, 3118, 3119, 3120, 3121, 3122, 3123,
- 3124, 3125, 3126, 3127, 3128, 3129, 3130, 3132, 3133, 3134,
- 3135, 3137, 3152, 3158, 3164, 3170, 3176, 3189, 3247, 3356,
- 3363, 3370, 3377, 3401
+ 0, 1849, 1849, 1851, 1851, 1852, 1853, 1855, 1856, 1857,
+ 1858, 1859, 1860, 1861, 1862, 1864, 1864, 1865, 1866, 1868,
+ 1869, 1870, 1871, 1872, 1873, 1874, 1876, 1877, 1879, 1882,
+ 1885, 1886, 1887, 1888, 1889, 1890, 1891, 1892, 1893, 1894,
+ 1895, 1896, 1897, 1898, 1901, 1902, 1903, 1904, 1905, 1906,
+ 1907, 1908, 1920, 1921, 1925, 1932, 1951, 1952, 1954, 1955,
+ 1957, 1958, 1960, 2020, 2021, 2024, 2024, 2043, 2044, 2045,
+ 2050, 2054, 2059, 2060, 2062, 2082, 2130, 2130, 2149, 2149,
+ 2164, 2167, 2170, 2173, 2177, 2178, 2179, 2180, 2181, 2182,
+ 2184, 2195, 2198, 2198, 2229, 2229, 2254, 2254, 2270, 2271,
+ 2272, 2273, 2281, 2290, 2290, 2339, 2343, 2354, 2364, 2381,
+ 2382, 2383, 2385, 2386, 2388, 2388, 2390, 2390, 2413, 2427,
+ 2443, 2444, 2445, 2446, 2453, 2454, 2455, 2456, 2457, 2458,
+ 2459, 2460, 2461, 2462, 2466, 2467, 2469, 2470, 2472, 2473,
+ 2477, 2475, 2483, 2481, 2490, 2491, 2492, 2493, 2494, 2495,
+ 2496, 2497, 2499, 2505, 2506, 2507, 2508, 2509, 2510, 2513,
+ 2545, 2545, 2547, 2547, 2549, 2550, 2552, 2646, 2647, 2655,
+ 2656, 2659, 2660, 2661, 2662, 2663, 2664, 2665, 2680, 2684,
+ 2690, 2696, 2704, 2709, 2715, 2723, 2731, 2732, 2733, 2736,
+ 2735, 2752, 2753, 2755, 2754, 2778, 2797, 2811, 2812, 2814,
+ 2815, 2817, 2818, 2819, 2828, 2829, 2833, 2834, 2836, 2837,
+ 2838, 2840, 2844, 2845, 2850, 2851, 2888, 2938, 2959, 2981,
+ 2984, 2991, 2994, 2997, 3000, 3003, 3006, 3011, 3012, 3014,
+ 3015, 3017, 3023, 3032, 3033, 3034, 3035, 3036, 3037, 3039,
+ 3044, 3064, 3074, 3083, 3084, 3085, 3086, 3087, 3088, 3089,
+ 3090, 3091, 3092, 3093, 3094, 3095, 3096, 3097, 3098, 3099,
+ 3100, 3101, 3102, 3103, 3104, 3105, 3106, 3107, 3108, 3109,
+ 3110, 3111, 3112, 3113, 3114, 3115, 3116, 3117, 3118, 3119,
+ 3120, 3121, 3122, 3123, 3124, 3125, 3126, 3127, 3128, 3130,
+ 3131, 3132, 3133, 3135, 3150, 3156, 3162, 3168, 3174, 3187,
+ 3245, 3378, 3385, 3392, 3399, 3423
};
#endif
"TYPE", "MAYBETYPE", "MAYBE_PARAM_VALUES", "MAYBE_EXPRESSION_LIST",
"EXPRESSION_LIST", "EXPRESSION_LIST_AND_COMMA", "XX", "NEW",
"FUNCTIONCALL", "DELETE", "RETURN", "NONCOMMAEXPRESSION", "EXPRESSION",
- "COMMA_EXPRESSION", "VOIDEXPRESSION", "MAYBE_EXPRPAIR_LIST",
- "EXPRPAIR_LIST", "E", "MEMBER", "VAR_READ", "NAMESPACE_ID",
- "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0
+ "COMMA_EXPRESSION", "VOIDEXPRESSION", "MAYBE_DICT_EXPRPAIR_LIST",
+ "DICTLH", "DICT_EXPRPAIR_LIST", "E", "MEMBER", "VAR_READ",
+ "NAMESPACE_ID", "NAMESPACE_DECLARATION", "USE_NAMESPACE", 0
};
#endif
224, 225, 225, 225, 226, 226, 227, 227, 228, 228,
228, 229, 230, 229, 231, 232, 233, 233, 234, 235,
235, 236, 237, 238, 238, 239, 239, 240, 240, 241,
- 241, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 243, 244, 245,
- 245, 245, 246, 247
+ 241, 242, 242, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 244,
+ 245, 246, 246, 246, 247, 248
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
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, 1, 3, 1, 3, 0, 1, 3,
- 5, 1, 1, 1, 1, 1, 1, 1, 1, 3,
+ 2, 1, 1, 1, 3, 1, 3, 0, 1, 1,
+ 1, 3, 5, 1, 1, 1, 1, 1, 1, 1,
+ 1, 3, 3, 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, 3, 3,
- 3, 2, 2, 3, 3, 3, 3, 3, 3, 3,
- 3, 3, 3, 3, 3, 3, 3, 3, 4, 2,
- 1, 3, 2, 4, 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, 2,
- 4, 4, 2, 3
+ 4, 2, 1, 3, 2, 4, 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, 2, 4, 4, 2, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 120, 298, 133, 172, 238, 169, 170, 171, 0, 0,
+ 120, 300, 133, 172, 240, 169, 170, 171, 0, 0,
78, 0, 0, 126, 124, 125, 0, 132, 0, 131,
- 192, 176, 177, 270, 127, 0, 0, 0, 175, 128,
+ 192, 176, 177, 272, 127, 0, 0, 0, 175, 128,
130, 129, 0, 0, 174, 173, 0, 0, 227, 0,
0, 14, 0, 0, 0, 0, 208, 120, 0, 0,
2, 120, 5, 54, 12, 0, 36, 67, 31, 32,
33, 34, 35, 38, 120, 37, 7, 30, 0, 121,
- 122, 9, 8, 11, 237, 10, 231, 234, 236, 235,
- 39, 225, 233, 232, 41, 40, 0, 0, 72, 76,
- 120, 92, 109, 111, 110, 116, 113, 0, 0, 298,
- 214, 191, 0, 269, 0, 0, 118, 0, 103, 208,
- 0, 218, 65, 0, 0, 228, 221, 290, 289, 272,
- 252, 251, 0, 223, 0, 209, 210, 211, 82, 0,
- 106, 219, 0, 80, 44, 43, 120, 45, 29, 0,
- 46, 47, 48, 50, 0, 49, 292, 1, 6, 120,
- 298, 0, 68, 0, 0, 69, 53, 108, 0, 188,
- 0, 161, 0, 160, 162, 302, 123, 0, 0, 0,
+ 122, 9, 8, 11, 239, 10, 233, 235, 237, 236,
+ 39, 225, 234, 238, 41, 40, 0, 0, 72, 76,
+ 120, 92, 109, 111, 110, 116, 113, 0, 0, 300,
+ 214, 191, 0, 271, 0, 0, 118, 0, 103, 208,
+ 0, 218, 65, 229, 230, 0, 0, 228, 292, 291,
+ 274, 254, 253, 0, 223, 0, 209, 210, 211, 221,
+ 82, 0, 106, 219, 0, 80, 44, 43, 120, 45,
+ 29, 0, 46, 47, 48, 50, 0, 49, 294, 1,
+ 6, 120, 300, 0, 68, 0, 0, 69, 53, 108,
+ 0, 188, 0, 161, 0, 160, 162, 304, 123, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 290, 289, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 288, 287, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 208,
- 0, 0, 55, 73, 0, 0, 0, 120, 114, 0,
- 195, 0, 198, 197, 303, 206, 178, 0, 222, 0,
- 0, 27, 0, 291, 0, 0, 240, 0, 0, 271,
- 239, 212, 213, 83, 205, 59, 60, 105, 220, 58,
- 81, 42, 28, 120, 0, 205, 0, 0, 52, 299,
- 187, 186, 0, 134, 136, 0, 226, 266, 267, 264,
- 265, 245, 246, 248, 247, 243, 244, 280, 279, 275,
- 274, 282, 283, 284, 281, 277, 276, 278, 249, 250,
- 295, 258, 257, 256, 285, 0, 255, 254, 253, 241,
- 242, 262, 261, 259, 263, 260, 0, 0, 297, 0,
- 0, 0, 0, 0, 25, 0, 120, 17, 23, 0,
- 20, 19, 22, 21, 120, 112, 0, 208, 215, 167,
- 0, 0, 179, 183, 107, 119, 196, 268, 0, 26,
- 217, 0, 229, 0, 224, 0, 57, 0, 120, 13,
- 57, 0, 0, 0, 0, 0, 138, 0, 0, 205,
- 163, 164, 0, 216, 273, 0, 0, 293, 120, 0,
- 0, 117, 18, 120, 0, 0, 0, 0, 185, 180,
- 205, 0, 0, 120, 0, 203, 202, 201, 204, 0,
- 62, 61, 51, 0, 120, 300, 301, 178, 135, 0,
- 0, 199, 137, 142, 57, 0, 286, 294, 296, 77,
- 0, 84, 0, 115, 207, 168, 167, 0, 0, 182,
- 0, 0, 98, 102, 100, 104, 63, 230, 56, 0,
- 75, 0, 139, 140, 0, 120, 166, 165, 79, 0,
- 0, 0, 85, 88, 86, 24, 184, 193, 181, 96,
- 0, 99, 101, 120, 66, 120, 205, 120, 200, 0,
- 157, 0, 0, 120, 155, 0, 27, 93, 89, 87,
- 27, 27, 205, 64, 74, 0, 148, 152, 0, 0,
- 0, 120, 146, 150, 151, 158, 188, 143, 156, 27,
- 91, 0, 0, 0, 189, 120, 141, 147, 0, 90,
- 194, 97, 94, 27, 0, 0, 0, 0, 149, 178,
- 27, 190, 0, 0, 205, 95, 159
+ 0, 208, 0, 0, 55, 73, 0, 0, 0, 120,
+ 114, 0, 195, 0, 198, 197, 305, 206, 178, 0,
+ 222, 0, 0, 27, 0, 293, 0, 242, 0, 0,
+ 0, 273, 241, 212, 213, 83, 205, 59, 60, 105,
+ 220, 58, 81, 42, 28, 120, 0, 205, 0, 0,
+ 52, 301, 187, 186, 0, 134, 136, 0, 226, 268,
+ 269, 266, 267, 247, 248, 250, 249, 245, 246, 282,
+ 281, 277, 276, 284, 285, 286, 283, 279, 278, 280,
+ 251, 252, 297, 260, 259, 258, 287, 0, 257, 256,
+ 255, 243, 244, 264, 263, 261, 265, 262, 0, 0,
+ 299, 0, 0, 0, 0, 0, 25, 0, 120, 17,
+ 23, 0, 20, 19, 22, 21, 120, 112, 0, 208,
+ 215, 167, 0, 0, 179, 183, 107, 119, 196, 270,
+ 0, 26, 217, 0, 231, 0, 224, 0, 57, 0,
+ 120, 13, 57, 0, 0, 0, 0, 0, 138, 0,
+ 0, 205, 163, 164, 0, 216, 275, 0, 0, 295,
+ 120, 0, 0, 117, 18, 120, 0, 0, 0, 0,
+ 185, 180, 205, 0, 0, 120, 0, 203, 202, 201,
+ 204, 0, 62, 61, 51, 0, 120, 302, 303, 178,
+ 135, 0, 0, 199, 137, 142, 57, 0, 288, 296,
+ 298, 77, 0, 84, 0, 115, 207, 168, 167, 0,
+ 0, 182, 0, 0, 98, 102, 100, 104, 63, 232,
+ 56, 0, 75, 0, 139, 140, 0, 120, 166, 165,
+ 79, 0, 0, 0, 85, 88, 86, 24, 184, 193,
+ 181, 96, 0, 99, 101, 120, 66, 120, 205, 120,
+ 200, 0, 157, 0, 0, 120, 155, 0, 27, 93,
+ 89, 87, 27, 27, 205, 64, 74, 0, 148, 152,
+ 0, 0, 0, 120, 146, 150, 151, 158, 188, 143,
+ 156, 27, 91, 0, 0, 0, 189, 120, 141, 147,
+ 0, 90, 194, 97, 94, 27, 0, 0, 0, 0,
+ 149, 178, 27, 190, 0, 0, 205, 95, 159
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
- -1, 49, 50, 51, 52, 315, 316, 317, 338, 339,
- 137, 138, 157, 318, 139, 390, 140, 249, 246, 454,
- 56, 234, 153, 154, 57, 58, 59, 60, 214, 61,
- 90, 141, 142, 441, 442, 443, 444, 62, 216, 422,
- 506, 423, 471, 424, 425, 63, 231, 143, 64, 65,
- 220, 221, 66, 324, 217, 67, 144, 69, 70, 356,
- 358, 400, 320, 457, 321, 435, 480, 481, 482, 462,
- 463, 464, 164, 322, 265, 360, 361, 378, 74, 331,
- 332, 333, 262, 323, 503, 102, 76, 470, 222, 223,
- 387, 402, 388, 346, 328, 124, 125, 126, 225, 77,
- 78, 79, 145, 127, 227, 228, 80, 114, 115, 81,
- 82, 83, 165, 84, 85
+ -1, 49, 50, 51, 52, 317, 318, 319, 340, 341,
+ 139, 140, 159, 320, 141, 392, 142, 251, 248, 456,
+ 56, 236, 155, 156, 57, 58, 59, 60, 216, 61,
+ 90, 143, 144, 443, 444, 445, 446, 62, 218, 424,
+ 508, 425, 473, 426, 427, 63, 233, 145, 64, 65,
+ 222, 223, 66, 326, 219, 67, 146, 69, 70, 358,
+ 360, 402, 322, 459, 323, 437, 482, 483, 484, 464,
+ 465, 466, 166, 324, 267, 362, 363, 380, 74, 333,
+ 334, 335, 264, 325, 505, 102, 76, 472, 224, 225,
+ 389, 404, 390, 348, 330, 125, 126, 127, 227, 77,
+ 78, 79, 147, 128, 229, 230, 80, 115, 116, 117,
+ 81, 82, 83, 167, 84, 85
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -406
+#define YYPACT_NINF -400
static const yytype_int16 yypact[] =
{
- 1661, -65, -406, -406, -406, -406, -406, -406, -10, -85,
- -406, -59, 54, -406, -406, -406, 66, -406, 2104, -406,
- 101, -406, -406, 2159, -406, -9, 89, -6, -406, -406,
- -406, -406, -3, -51, -406, -406, 2104, 7, 2104, 2104,
- 2104, -406, 2104, 2104, 2104, 2104, 2104, 629, 120, 130,
- -406, 500, -406, -406, -406, -1, -406, 2034, -406, -406,
- -406, -406, -406, -406, 1911, -406, -406, -406, 244, 364,
- -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
- 31, 2613, -406, -406, -406, -406, 129, 12, -406, -406,
- 1911, -406, -406, -406, -406, -406, -406, -81, 89, -406,
- -54, -406, 18, 119, 2104, 8, -406, 2104, -406, 2104,
- 132, 119, -406, 36, 5, 43, 2613, 119, 119, 595,
- 119, 119, -53, 2613, 21, 46, 2104, -406, 144, 145,
- 2104, 2104, 145, 177, -406, -406, 758, -406, -406, 77,
- -406, -406, -406, -406, 188, -406, -406, -406, -406, 1016,
- 140, 209, -406, 115, 148, 31, 117, -406, 217, 14,
- 223, -406, 224, -406, -406, -406, -406, 2104, 2104, 2104,
- 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104,
- 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104,
- 2104, -406, -406, 227, 2104, 2104, 2104, 2104, 2104, 2104,
- 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104, 2104,
- 2104, 17, -406, -406, 2104, 219, 2104, 1145, -406, 89,
- 107, 108, -406, -406, -406, 118, 15, 104, 141, 64,
- 2217, 1786, 116, -406, 2104, 2104, -406, 2104, 2104, -406,
- -406, -406, -406, -406, 143, 156, -406, -406, -406, 156,
- -406, -406, -406, 1911, 126, 143, 2104, 2104, -406, 157,
- -406, -406, 255, 208, 211, 259, 2613, 492, 328, 328,
- 328, 2979, 2979, 2979, 2979, 492, 492, 2613, 2613, 2613,
- 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2613, 2674, 2735,
- -406, 354, 354, 354, 2613, 2430, 2796, 2857, 2918, 492,
- 492, 595, 595, 119, 119, 119, 135, 2491, 181, 2104,
- 269, 149, 152, 2288, -406, 151, 1274, -406, -406, 155,
- -406, -406, -406, -406, 1145, -406, 89, 2104, -406, -19,
- 281, 154, 191, -406, -406, -406, 162, -406, 163, 1786,
- -406, 161, -406, 193, 2613, 86, 196, 145, 887, -406,
- -24, 200, 169, 124, 174, 89, 287, 89, 178, 143,
- 213, -406, 2104, -406, -406, 306, 2359, -406, 1911, 2104,
- 190, -406, -406, 1145, 189, 187, 32, 86, -406, -406,
- 143, 16, 94, 1911, 2104, -406, -406, -406, -406, 2104,
- -406, -406, -406, 2104, 1911, -406, -406, 15, -406, 89,
- 197, -406, 228, -406, 196, 259, 2613, -406, -406, -406,
- 204, 13, 198, -406, -406, -406, 235, 214, 281, -406,
- 215, 220, -406, -406, 94, -406, 257, -406, -406, -37,
- -406, 212, 228, -406, 89, 231, -406, -406, -406, 2104,
- 239, 222, 13, -406, -406, -406, -406, -406, -406, -406,
- 342, -406, -406, 1911, -406, 1911, 143, 1403, -406, 343,
- -406, 323, 226, 286, -406, 2552, 1786, -406, -406, -406,
- 1786, 1786, 143, -406, -406, 225, -406, -406, 229, 221,
- 230, 1532, -406, -406, -406, -406, 14, -406, -406, 1786,
- -406, 232, 233, 234, -406, 1403, -406, -406, 348, -406,
- -406, -406, -406, 1786, 238, 237, 240, 246, -406, 15,
- 1786, -406, 247, 249, 143, -406, -406
+ 1663, -67, -400, -400, -400, -400, -400, -400, -10, -17,
+ -400, -16, 21, -400, -400, -400, 92, -400, 2106, -400,
+ 62, -400, -400, 2161, -400, 5, 125, 13, -400, -400,
+ -400, -400, -3, -60, -400, -400, 2106, 22, 90, 2106,
+ 2106, -400, 2106, 2106, 2106, 2106, 2106, 631, 122, 137,
+ -400, 502, -400, -400, -400, 19, -400, 2036, -400, -400,
+ -400, -400, -400, -400, 1913, -400, -400, -400, 186, 40,
+ -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
+ 38, 2615, -400, -400, -400, -400, 142, 26, -400, -400,
+ 1913, -400, -400, -400, -400, -400, -400, -84, 125, -400,
+ -2, -400, 27, -45, 2106, 23, -400, 2106, -400, 2106,
+ 147, -45, -400, -400, -400, 51, 76, 104, -45, -45,
+ 356, -45, -45, -57, 2615, 82, 108, 2106, -400, 2615,
+ 207, 210, 2106, 2106, 210, 211, -400, -400, 760, -400,
+ -400, 93, -400, -400, -400, -400, 199, -400, -400, -400,
+ -400, 1018, 155, 221, -400, 134, 167, 38, 138, -400,
+ 235, 33, 236, -400, 239, -400, -400, -400, -400, 2106,
+ 2106, 2106, 2106, 2106, 2106, 2106, 2106, 2106, 2106, 2106,
+ 2106, 2106, 2106, 2106, 2106, 2106, 2106, 2106, 2106, 2106,
+ 2106, 2106, 2106, -400, -400, 240, 2106, 2106, 2106, 2106,
+ 2106, 2106, 2106, 2106, 2106, 2106, 2106, 2106, 2106, 2106,
+ 2106, 2106, 2106, 14, -400, -400, 2106, 232, 2106, 1147,
+ -400, 125, 130, 131, -400, -400, -400, 127, 16, 126,
+ 154, 95, 2219, 1788, 132, -400, 2106, -400, 2106, 90,
+ 2106, -400, -400, -400, -400, -400, 156, 159, -400, -400,
+ -400, 159, -400, -400, -400, 1913, 135, 156, 2106, 2106,
+ -400, 160, -400, -400, 260, 219, 220, 266, 2615, 494,
+ 330, 330, 330, 2981, 2981, 2981, 2981, 494, 494, 2615,
+ 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615, 2615,
+ 2676, 2737, -400, 269, 269, 269, 2615, 2432, 2798, 2859,
+ 2920, 494, 494, 356, 356, -45, -45, -45, 143, 2493,
+ 185, 2106, 277, 149, 161, 2290, -400, 152, 1276, -400,
+ -400, 163, -400, -400, -400, -400, 1147, -400, 125, 2106,
+ -400, 28, 281, 157, 191, -400, -400, -400, 166, -400,
+ 162, 1788, -400, 164, -400, 182, 2615, 67, 193, 210,
+ 889, -400, -30, 198, 168, 128, 178, 125, 288, 125,
+ 176, 156, 212, -400, 2106, -400, -400, 304, 2361, -400,
+ 1913, 2106, 190, -400, -400, 1147, 180, 189, 2106, 67,
+ -400, -400, 156, 17, 31, 1913, 2106, -400, -400, -400,
+ -400, 2106, -400, -400, -400, 2106, 1913, -400, -400, 16,
+ -400, 125, 192, -400, 222, -400, 193, 266, 2615, -400,
+ -400, -400, 203, 7, 194, -400, -400, 2615, 234, 213,
+ 281, -400, 214, 224, -400, -400, 31, -400, 278, -400,
+ 2615, -52, -400, 209, 222, -400, 125, 231, -400, -400,
+ -400, 2106, 242, 217, 7, -400, -400, -400, -400, -400,
+ -400, -400, 321, -400, -400, 1913, -400, 1913, 156, 1405,
+ -400, 340, -400, 324, 223, 286, -400, 2554, 1788, -400,
+ -400, -400, 1788, 1788, 156, -400, -400, 225, -400, -400,
+ 227, 216, 226, 1534, -400, -400, -400, -400, 33, -400,
+ -400, 1788, -400, 233, 237, 238, -400, 1405, -400, -400,
+ 350, -400, -400, -400, -400, 1788, 248, 245, 230, 255,
+ -400, 16, 1788, -400, 256, 258, 156, -400, -400
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -406, -406, 203, -406, 308, -296, -406, 62, -405, -30,
- 1, -56, -83, 49, 2, -23, 330, 260, 44, -406,
- -406, -406, -406, -406, -406, -406, -406, -406, -406, -406,
- -406, -406, -406, -406, -406, -52, -50, -406, -406, -31,
- -406, -26, -406, -406, -406, -406, -406, -406, -406, -406,
- 9, 76, -406, -406, -406, -406, 0, -406, 331, -406,
- -406, -406, 50, -406, 56, -406, -91, -406, -76, -406,
- -406, -57, -406, 3, -406, -406, 10, -8, 33, -384,
- -406, -308, -79, 4, -406, -406, -406, -406, -406, 387,
- -92, 22, 37, -243, -406, -95, -406, -406, -406, -406,
- -406, -406, -406, -29, -115, 371, -46, -406, -406, -13,
- -406, -406, -406, -406, -406
+ -400, -400, 205, -400, 312, -290, -400, 53, -399, -29,
+ 1, -56, -83, 49, 2, -39, 334, 262, 45, -400,
+ -400, -400, -400, -400, -400, -400, -400, -400, -400, -400,
+ -400, -400, -400, -400, -400, -44, -42, -400, -400, -23,
+ -400, -20, -400, -400, -400, -400, -400, -400, -400, -400,
+ 9, 77, -400, -400, -400, -400, 0, -400, 318, -400,
+ -400, -400, 50, -400, 56, -400, -90, -400, -75, -400,
+ -400, -55, -400, 3, -400, -400, 6, -9, -400, -384,
+ -400, -304, -77, 4, -400, -400, -400, -400, -400, 386,
+ -92, 15, 35, -246, -400, -93, -400, -400, -400, -400,
+ -400, -400, -400, -115, -119, 370, -48, -400, 179, -400,
+ -13, -400, -400, -400, -400, -400
};
/* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If
#define YYTABLE_NINF -155
static const yytype_int16 yytable[] =
{
- 68, 53, 55, 73, 75, 100, 224, 215, 156, 113,
- 103, 155, 350, 431, 232, 247, 248, 136, 329, 329,
- 308, 96, 379, 111, 86, 116, 117, 118, 374, 119,
- 120, 121, 123, 116, 156, 96, 89, 3, 193, 87,
- 5, 6, 7, -70, 218, 219, 439, 238, 260, 54,
- 71, 68, 53, 55, 73, 75, 72, 92, 93, 21,
- 22, 490, 91, 167, 261, 491, 492, 92, 93, 210,
- 109, 94, 211, 419, 440, 110, 28, 412, 389, 239,
- 252, 94, 98, 376, 499, 377, 34, 35, 97, 92,
- 93, 123, 92, 93, 230, 455, 116, 242, 507, 311,
- 54, 71, 105, 94, 101, 513, 94, 72, 330, 418,
- 448, 88, 104, 116, 306, 107, 404, 123, 123, 341,
- 420, 385, 108, 146, 149, 512, 421, 395, 112, 396,
- 147, 167, 212, 213, 229, 233, 236, 417, 309, 226,
- 235, 351, 352, 237, 310, 240, 241, 243, 244, 68,
- 53, 55, 73, 75, 266, 267, 268, 269, 270, 271,
+ 68, 53, 55, 73, 75, 100, 226, 217, 158, 157,
+ 103, 352, 244, 249, 250, 433, 234, 310, 138, 331,
+ 331, 96, 86, 111, 92, 93, 118, 119, 381, 120,
+ 121, 122, 124, 129, 158, 96, 376, -70, 94, 87,
+ 441, 220, 221, 240, 2, 193, 194, 195, 169, 54,
+ 71, 68, 53, 55, 73, 75, 72, 422, 13, 14,
+ 15, 109, 17, 423, 19, 101, 110, 262, 442, 492,
+ 92, 93, 391, 493, 494, 241, 211, 24, 212, 421,
+ 457, 213, 254, 263, 94, 414, 29, 30, 31, 97,
+ 195, 124, 501, 113, 232, 114, 129, 313, 92, 93,
+ 54, 71, 387, 105, 89, 91, 509, 72, 98, 332,
+ 420, 88, 94, 515, 129, 406, 450, 343, 308, 124,
+ 124, 212, 108, 344, 213, 148, 104, 514, 92, 93,
+ 378, 397, 379, 398, 107, 311, 419, 149, 169, 353,
+ 354, 312, 94, 112, 151, 214, 95, 215, 228, 231,
+ 235, 68, 53, 55, 73, 75, 268, 269, 270, 271,
272, 273, 274, 275, 276, 277, 278, 279, 280, 281,
- 282, 283, 284, 285, 286, 287, 288, 289, 335, 95,
- 250, 291, 292, 293, 294, 295, 296, 297, 298, 299,
- 300, 301, 302, 303, 304, 305, 116, 307, 54, 71,
- 386, 123, 253, 313, 158, 72, 342, -71, 343, 191,
- 192, 193, 255, 475, 256, 257, 258, 68, 53, 319,
- 259, 123, 116, 348, 116, 344, 263, 264, 325, 493,
- 290, 312, 375, -113, 326, 2, 334, 158, 336, 327,
- 209, 238, 210, 123, 123, 211, 159, 345, 340, 13,
- 14, 15, 161, 17, 410, 19, 347, 349, 354, 353,
- 158, 355, 359, 398, 357, 401, 163, 363, 24, 159,
- 365, 516, 367, 369, 160, 161, 459, 29, 30, 31,
- 373, 368, 371, 252, 329, 409, 380, 162, -112, 163,
- 2, 381, 252, 383, 382, 397, 366, 384, 389, 393,
- 426, 394, 399, 403, 13, 14, 15, 401, 17, 407,
- 19, 430, 156, 405, 116, 411, 68, 53, 319, 414,
- 413, 453, 433, 24, 68, 53, 319, 156, 434, 445,
- 460, 459, 29, 30, 31, 336, 438, 376, 156, 447,
- 449, 450, 458, 466, 456, 472, 485, 429, 486, 406,
- 494, 505, 254, 467, 495, 427, 123, 487, 509, 148,
- 428, 496, -153, 500, 501, 510, 502, 168, 2, 508,
- 473, 116, 474, 68, 53, 319, 116, 511, 372, 514,
- 515, 436, 13, 14, 15, 460, 17, 152, 19, 245,
- 468, 391, 469, 451, -155, -155, -155, 156, 452, 156,
- 166, 24, 176, 177, 504, 497, 488, 498, 446, 415,
- 29, 30, 31, 106, 416, 437, 122, -154, 191, 192,
- 193, 432, 194, 195, 196, 0, 465, 0, 0, 0,
- 0, 0, 0, 0, 0, 461, 202, 203, 0, 204,
- 205, 206, 207, 208, 191, 192, 193, 0, 0, 209,
- 0, 210, 0, 0, 211, 0, 0, 479, 477, 478,
- 483, 484, 0, 461, 0, 204, 205, 206, 207, 208,
- 0, 0, 0, 0, 0, 209, 0, 210, 0, 0,
- 211, 479, 477, 478, 483, 484, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 479, 477, 478, 483, 484,
- -4, 0, 0, 1, 2, 3, 4, 0, 5, 6,
- 7, 8, 9, 10, 11, 0, 0, 12, 13, 14,
- 15, 16, 17, 18, 19, 0, 0, 21, 22, 0,
- 0, -155, 0, 0, 0, 23, 0, 24, 25, 0,
- 26, 0, 27, 0, 28, 0, 29, 30, 31, 0,
+ 282, 283, 284, 285, 286, 287, 288, 289, 290, 291,
+ 238, 388, 237, 293, 294, 295, 296, 297, 298, 299,
+ 300, 301, 302, 303, 304, 305, 306, 307, 129, 309,
+ 54, 71, 160, 124, 239, 315, 242, 72, 243, 337,
+ 245, 161, 477, 246, 252, 160, 162, 163, 255, 68,
+ 53, 321, -71, 124, 257, 129, 350, 346, 495, 164,
+ 327, 165, 160, 258, 259, 2, 377, 260, 261, 265,
+ 338, 161, 266, 292, 314, 124, 124, 163, 329, 13,
+ 14, 15, 412, 17, 240, 19, -113, 328, 336, 349,
+ 347, 165, 355, 356, 342, 400, 351, 403, 24, 361,
+ 518, 429, 357, 359, 367, 365, 461, 29, 30, 31,
+ 369, 370, 371, 373, 331, 254, 386, 411, 375, 382,
+ 2, 383, -112, 384, 254, 391, 385, 395, 368, 399,
+ 396, 405, 428, 401, 13, 14, 15, 409, 17, 403,
+ 19, 415, 407, 432, 158, 413, 129, 435, 68, 53,
+ 321, 416, 436, 24, 474, 447, 68, 53, 321, 158,
+ 462, 461, 29, 30, 31, 440, 378, 338, 449, 451,
+ 158, 458, 455, 487, 460, 452, 468, 431, 469, 488,
+ 496, 408, 497, 507, 489, 512, 256, 498, 124, 193,
+ 194, 195, -153, 150, 502, 417, 511, 438, 503, 170,
+ 504, 374, 475, 129, 476, 68, 53, 321, 430, 510,
+ 206, 207, 208, 209, 210, 462, 513, 168, 516, 517,
+ 211, 154, 212, 247, 393, 213, -155, -155, -155, 158,
+ 470, 158, 471, 453, 178, 179, 454, 506, 499, 448,
+ 490, 500, 106, 439, 418, 123, 434, -154, 345, 0,
+ 193, 194, 195, 0, 196, 197, 198, 0, 467, 0,
+ 0, 0, 0, 0, 0, 0, 0, 463, 204, 205,
+ 0, 206, 207, 208, 209, 210, 193, 194, 195, 0,
+ 0, 211, 0, 212, 0, 0, 213, 0, 0, 481,
+ 479, 480, 485, 486, 0, 463, 0, 0, 0, 208,
+ 209, 210, 0, 0, 0, 0, 0, 211, 0, 212,
+ 0, 0, 213, 481, 479, 480, 485, 486, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 481, 479, 480,
+ 485, 486, -4, 0, 0, 1, 2, 3, 4, 0,
+ 5, 6, 7, 8, 9, 10, 11, 0, 0, 12,
+ 13, 14, 15, 16, 17, 18, 19, 0, 0, 21,
+ 22, 0, 0, -155, 0, 0, 0, 23, 0, 24,
+ 25, 0, 26, 0, 27, 0, 28, 0, 29, 30,
+ 31, 0, 0, 32, 33, 0, 34, 35, 0, 0,
+ 0, 0, 0, 0, 36, 37, 0, 0, -155, -155,
+ 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 193, 194, 195, 0, 196, 197,
+ 198, 0, 39, 40, 0, 0, 0, 0, 0, 0,
+ 0, 41, -155, -155, 0, 206, 207, 208, 209, 210,
+ 0, 0, 0, 42, 0, 211, 0, 212, 43, 44,
+ 213, 0, 0, 45, 0, 46, 0, 47, 0, 48,
+ 0, 0, 0, -4, 1, 2, 3, 4, 0, 5,
+ 6, 7, 8, 9, 10, 11, 0, 0, 0, 13,
+ 14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
+ 130, 0, 131, 0, 0, 0, 23, 132, 24, 25,
+ 0, 26, 133, 27, 0, 28, 134, 29, 30, 31,
+ 0, 0, 32, 33, 0, 34, 35, 0, 0, 0,
+ 0, 0, 0, 36, 37, 0, 135, 0, 0, 0,
+ 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 39, 40, 0, 0, 0, 0, 0, 0, 0,
+ 136, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 42, 0, 0, 0, 0, 43, 44, 0,
+ 0, 0, 45, 0, 46, 0, 47, 0, 48, 0,
+ 0, 0, 137, 1, 2, 3, 4, 0, 5, 6,
+ 7, 8, 9, 10, 11, 0, 0, 0, 13, 14,
+ 15, 16, 17, 18, 19, 20, 0, 21, 22, 130,
+ 0, 131, 0, 0, 0, 23, 132, 24, 25, 0,
+ 26, 133, 27, 0, 28, 134, 29, 30, 31, 0,
0, 32, 33, 0, 34, 35, 0, 0, 0, 0,
- 0, 0, 36, 37, 0, 0, -155, -155, 0, 38,
+ 0, 0, 36, 37, 0, 135, 0, 0, 0, 38,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 191, 192, 193, 0, 194, 195, 196, 0,
- 39, 40, 0, 0, 0, 0, 0, 0, 0, 41,
- -155, -155, 0, 204, 205, 206, 207, 208, 0, 0,
- 0, 42, 0, 209, 0, 210, 43, 44, 211, 0,
+ 39, 40, 0, 0, 0, 0, 0, 0, 0, 136,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 42, 0, 0, 0, 0, 43, 44, 0, 0,
0, 45, 0, 46, 0, 47, 0, 48, 0, 0,
- 0, -4, 1, 2, 3, 4, 0, 5, 6, 7,
+ 0, 253, 1, 2, 3, 4, 0, 5, 6, 7,
8, 9, 10, 11, 0, 0, 0, 13, 14, 15,
- 16, 17, 18, 19, 20, 0, 21, 22, 128, 0,
- 129, 0, 0, 0, 23, 130, 24, 25, 0, 26,
- 131, 27, 0, 28, 132, 29, 30, 31, 0, 0,
- 32, 33, 0, 34, 35, 191, 192, 193, 0, 0,
- 0, 36, 37, 0, 133, 0, 0, 0, 38, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 206, 207,
- 208, 0, 0, 0, 0, 0, 209, 0, 210, 39,
- 40, 211, 0, 0, 0, 0, 0, 0, 134, 0,
+ 16, 17, 18, 19, 20, 0, 21, 22, 130, 0,
+ 131, 0, 0, 0, 23, 132, 24, 25, 0, 26,
+ 133, 27, 0, 28, 134, 29, 30, 31, 0, 0,
+ 32, 33, 0, 34, 35, 0, 0, 0, 0, 0,
+ 0, 36, 37, 0, 135, 0, 0, 0, 38, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 39,
+ 40, 0, 0, 0, 0, 0, 0, 0, 136, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
42, 0, 0, 0, 0, 43, 44, 0, 0, 0,
45, 0, 46, 0, 47, 0, 48, 0, 0, 0,
- 135, 1, 2, 3, 4, 0, 5, 6, 7, 8,
- 9, 10, 11, 0, 0, 0, 13, 14, 15, 16,
- 17, 18, 19, 20, 0, 21, 22, 128, 0, 129,
- 0, 0, 0, 23, 130, 24, 25, 0, 26, 131,
- 27, 0, 28, 132, 29, 30, 31, 0, 0, 32,
+ 394, 1, 2, 3, 4, 0, 5, 6, 7, 8,
+ 9, 10, 11, 0, 0, 12, 13, 14, 15, 16,
+ 17, 18, 19, 0, 0, 21, 22, 0, 0, 0,
+ 0, 0, 0, 23, 0, 24, 25, 0, 26, 0,
+ 27, 0, 28, 0, 29, 30, 31, 0, 0, 32,
33, 0, 34, 35, 0, 0, 0, 0, 0, 0,
- 36, 37, 0, 133, 0, 0, 0, 38, 0, 0,
+ 36, 37, 0, 0, 0, 0, 0, 38, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 39, 40,
- 0, 0, 0, 0, 0, 0, 0, 134, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 41, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 42,
0, 0, 0, 0, 43, 44, 0, 0, 0, 45,
- 0, 46, 0, 47, 0, 48, 0, 0, 0, 251,
+ 0, 46, 0, 47, 0, 48, 0, 0, 0, -3,
1, 2, 3, 4, 0, 5, 6, 7, 8, 9,
10, 11, 0, 0, 0, 13, 14, 15, 16, 17,
- 18, 19, 20, 0, 21, 22, 128, 0, 129, 0,
- 0, 0, 23, 130, 24, 25, 0, 26, 131, 27,
- 0, 28, 132, 29, 30, 31, 0, 0, 32, 33,
+ 18, 19, 0, 0, 21, 22, 0, 0, 0, 0,
+ 0, 0, 23, 0, 24, 25, 0, 26, 0, 27,
+ 0, 28, 0, 29, 30, 31, 0, 0, 32, 33,
0, 34, 35, 0, 0, 0, 0, 0, 0, 36,
- 37, 0, 133, 0, 0, 0, 38, 0, 0, 0,
+ 37, 0, 0, 0, 0, 0, 38, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 39, 40, 0,
- 0, 0, 0, 0, 0, 0, 134, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 316, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 42, 0,
0, 0, 0, 43, 44, 0, 0, 0, 45, 0,
- 46, 0, 47, 0, 48, 0, 0, 0, 392, 1,
+ 46, 0, 47, 0, 48, 0, 0, 0, -15, 1,
2, 3, 4, 0, 5, 6, 7, 8, 9, 10,
- 11, 0, 0, 12, 13, 14, 15, 16, 17, 18,
+ 11, 0, 0, 0, 13, 14, 15, 16, 17, 18,
19, 0, 0, 21, 22, 0, 0, 0, 0, 0,
0, 23, 0, 24, 25, 0, 26, 0, 27, 0,
28, 0, 29, 30, 31, 0, 0, 32, 33, 0,
0, 0, 0, 0, 0, 38, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 39, 40, 0, 0,
- 0, 0, 0, 0, 0, 41, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 316, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 42, 0, 0,
0, 0, 43, 44, 0, 0, 0, 45, 0, 46,
- 0, 47, 0, 48, 0, 0, 0, -3, 1, 2,
+ 0, 47, 0, 48, 0, 0, 0, -16, 1, 2,
3, 4, 0, 5, 6, 7, 8, 9, 10, 11,
0, 0, 0, 13, 14, 15, 16, 17, 18, 19,
0, 0, 21, 22, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 38, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 39, 40, 0, 0, 0,
- 0, 0, 0, 0, 314, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 478, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 42, 0, 0, 0,
0, 43, 44, 0, 0, 0, 45, 0, 46, 0,
- 47, 0, 48, 0, 0, 0, -15, 1, 2, 3,
+ 47, 0, 48, 0, 0, 0, -144, 1, 2, 3,
4, 0, 5, 6, 7, 8, 9, 10, 11, 0,
0, 0, 13, 14, 15, 16, 17, 18, 19, 0,
0, 21, 22, 0, 0, 0, 0, 0, 0, 23,
0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 39, 40, 0, 0, 0, 0,
- 0, 0, 0, 314, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 478, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 42, 0, 0, 0, 0,
43, 44, 0, 0, 0, 45, 0, 46, 0, 47,
- 0, 48, 0, 0, 0, -16, 1, 2, 3, 4,
+ 0, 48, 0, -3, 0, -145, 1, 2, 3, 4,
0, 5, 6, 7, 8, 9, 10, 11, 0, 0,
- 0, 13, 14, 15, 16, 17, 18, 19, 0, 0,
+ 12, 13, 14, 15, 16, 17, 18, 19, 0, 0,
21, 22, 0, 0, 0, 0, 0, 0, 23, 0,
24, 25, 0, 26, 0, 27, 0, 28, 0, 29,
30, 31, 0, 0, 32, 33, 0, 34, 35, 0,
0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 39, 40, 0, 0, 0, 0, 0,
- 0, 0, 476, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 41, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 42, 0, 0, 0, 0, 43,
44, 0, 0, 0, 45, 0, 46, 0, 47, 0,
- 48, 0, 0, 0, -144, 1, 2, 3, 4, 0,
- 5, 6, 7, 8, 9, 10, 11, 0, 0, 0,
- 13, 14, 15, 16, 17, 18, 19, 0, 0, 21,
- 22, 0, 0, 0, 0, 0, 0, 23, 0, 24,
- 25, 0, 26, 0, 27, 0, 28, 0, 29, 30,
- 31, 0, 0, 32, 33, 0, 34, 35, 0, 0,
- 0, 0, 0, 0, 36, 37, 0, 0, 0, 0,
- 0, 38, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 39, 40, 0, 0, 0, 0, 0, 0,
- 0, 476, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 42, 0, 0, 0, 0, 43, 44,
- 0, 0, 0, 45, 0, 46, 0, 47, 0, 48,
- 0, -3, 0, -145, 1, 2, 3, 4, 0, 5,
- 6, 7, 8, 9, 10, 11, 0, 0, 12, 13,
- 14, 15, 16, 17, 18, 19, 0, 0, 21, 22,
- 0, 0, 0, 0, 0, 0, 23, 0, 24, 25,
- 0, 26, 0, 27, 0, 28, 0, 29, 30, 31,
- 0, 0, 32, 33, 0, 34, 35, 0, 0, 0,
- 0, 0, 0, 36, 37, 0, 0, 0, 0, 0,
- 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 48, 1, 2, 3, 4, 0, 5, 6, 7, 8,
+ 9, 10, 11, 0, -120, 0, 13, 14, 15, 16,
+ 17, 18, 19, 20, 0, 21, 22, 130, 0, 131,
+ 0, 0, 0, 23, 132, 24, 25, 0, 26, 133,
+ 27, 0, 28, 134, 29, 30, 31, 0, 0, 32,
+ 33, 0, 34, 35, 0, 0, 0, 0, 0, 0,
+ 36, 37, 0, 135, 0, 0, 0, 38, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 39, 40, 0, 0, 0, 0, 0, 0, 0,
- 41, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 42, 0, 0, 0, 0, 43, 44, 0,
- 0, 0, 45, 0, 46, 0, 47, 0, 48, 1,
- 2, 3, 4, 0, 5, 6, 7, 8, 9, 10,
- 11, 0, -120, 0, 13, 14, 15, 16, 17, 18,
- 19, 20, 0, 21, 22, 128, 0, 129, 0, 0,
- 0, 23, 130, 24, 25, 0, 26, 131, 27, 0,
- 28, 132, 29, 30, 31, 0, 0, 32, 33, 0,
- 34, 35, 0, 0, 0, 0, 0, 0, 36, 37,
- 0, 133, 0, 0, 0, 38, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 39, 40,
+ 0, 0, 0, 0, 0, 0, 0, 136, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 42,
+ 0, 0, 0, 0, 43, 44, 0, 0, 0, 45,
+ 0, 46, 0, 47, 0, 48, 1, 2, 3, 4,
+ 0, 5, 6, 7, 8, 9, 10, 11, 0, 0,
+ 0, 13, 14, 15, 16, 17, 18, 19, 20, 0,
+ 21, 22, 130, 0, 131, 0, 0, 0, 23, 132,
+ 24, 25, 0, 26, 133, 27, 0, 28, 134, 29,
+ 30, 31, 0, 0, 32, 33, 0, 34, 35, 0,
+ 0, 0, 0, 0, 0, 36, 37, 0, 135, 0,
+ 0, 0, 38, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 39, 40, 0, 0, 0, 0, 0,
+ 0, 0, 136, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 42, 0, 0, 0, 0, 43,
+ 44, 0, 0, 0, 45, 0, 46, 0, 47, 152,
+ 48, 3, 4, 0, 5, 6, 7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 18,
+ 0, 20, 0, 21, 22, 0, 0, 131, 0, 0,
+ 0, 23, 0, 0, 0, 0, 0, 0, 27, 0,
+ 28, 153, 0, 0, 0, 0, 0, 0, 33, 0,
+ 34, 35, 0, 0, 0, 0, 0, 0, 36, 0,
+ 0, 0, 0, 0, 0, 38, 0, 0, 0, 99,
+ 0, 3, 4, 0, 5, 6, 7, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 39, 40, 0, 18,
+ 0, 20, 0, 21, 22, 0, 0, 0, 0, 0,
+ 0, 23, 0, 0, 0, 0, 0, 42, 27, 0,
+ 28, 0, 43, 44, 0, 0, 0, 45, 33, 46,
+ 34, 35, 0, 48, 99, 0, 3, 4, 36, 5,
+ 6, 7, 0, 0, 0, 38, 0, 0, 0, 0,
+ 0, 0, 0, 0, 18, 0, 20, 0, 21, 22,
0, 0, 0, 0, 0, 0, 39, 40, 0, 0,
- 0, 0, 0, 0, 0, 134, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 42, 0, 0,
+ 0, 0, 0, 0, 0, 28, 0, 0, 0, 0,
+ 0, 0, 0, 33, 0, 34, 35, 42, 0, 0,
0, 0, 43, 44, 0, 0, 0, 45, 0, 46,
- 0, 47, 0, 48, 1, 2, 3, 4, 0, 5,
- 6, 7, 8, 9, 10, 11, 0, 0, 0, 13,
- 14, 15, 16, 17, 18, 19, 20, 0, 21, 22,
- 128, 0, 129, 0, 0, 0, 23, 130, 24, 25,
- 0, 26, 131, 27, 0, 28, 132, 29, 30, 31,
- 0, 0, 32, 33, 0, 34, 35, 0, 0, 0,
- 0, 0, 0, 36, 37, 0, 133, 0, 0, 0,
- 38, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 38, 0, 0, 48, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 39, 40, 0, 0, 0, 0, 0, 0, 0,
- 134, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 42, 0, 0, 0, 0, 43, 44, 0,
- 0, 0, 45, 0, 46, 0, 47, 150, 48, 3,
- 4, 0, 5, 6, 7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 18, 0, 20,
- 0, 21, 22, 0, 0, 129, 0, 0, 0, 23,
- 0, 0, 0, 0, 0, 0, 27, 0, 28, 151,
- 0, 0, 0, 0, 0, 0, 33, 0, 34, 35,
- 0, 0, 0, 0, 0, 0, 36, 0, 0, 0,
- 0, 0, 0, 38, 0, 0, 0, 99, 0, 3,
- 4, 0, 5, 6, 7, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 39, 40, 0, 18, 0, 20,
- 0, 21, 22, 0, 0, 0, 0, 0, 0, 23,
- 0, 0, 0, 0, 0, 42, 27, 0, 28, 0,
- 43, 44, 0, 0, 0, 45, 33, 46, 34, 35,
- 0, 48, 99, 0, 3, 4, 36, 5, 6, 7,
- 0, 0, 0, 38, 0, 0, 0, 0, 0, 0,
- 0, 0, 18, 0, 20, 0, 21, 22, 0, 0,
- 0, 0, 0, 0, 39, 40, 0, 0, 0, 0,
- 0, 0, 0, 28, 0, 0, 0, 0, 0, 0,
- 0, 33, 0, 34, 35, 42, 0, 0, 0, 0,
- 43, 44, 0, 0, 0, 45, 0, 46, 38, 0,
- 0, 48, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 39,
- 40, 0, 0, 0, 0, 0, 168, 0, 0, 0,
+ 0, 39, 40, 0, 0, 0, 0, 0, 170, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 45, 0, 46, 169, 170, 171, 48, 172, 173, 174,
+ 0, 0, 45, 0, 46, 171, 172, 173, 48, 174,
175, 176, 177, 178, 179, 180, 181, 182, 183, 184,
- 185, 186, 187, 188, 189, 190, 0, 191, 192, 193,
- 0, 194, 195, 196, 0, 0, 0, 0, 0, 197,
- 198, 0, 199, 200, 201, 202, 203, 168, 204, 205,
- 206, 207, 208, 0, 0, 0, 0, 0, 209, 0,
- 210, 0, 0, 211, 0, 0, 0, 0, 0, 337,
- 0, 0, 0, 0, 169, 170, 171, 0, 172, 173,
+ 185, 186, 187, 188, 189, 190, 191, 192, 0, 193,
+ 194, 195, 0, 196, 197, 198, 0, 0, 0, 0,
+ 0, 199, 200, 0, 201, 202, 203, 204, 205, 170,
+ 206, 207, 208, 209, 210, 0, 0, 0, 0, 0,
+ 211, 0, 212, 0, 0, 213, 0, 0, 0, 0,
+ 0, 339, 0, 0, 0, 0, 171, 172, 173, 0,
174, 175, 176, 177, 178, 179, 180, 181, 182, 183,
- 184, 185, 186, 187, 188, 189, 190, 0, 191, 192,
- 193, 0, 194, 195, 196, 0, 0, 0, 0, 0,
- 197, 198, 0, 199, 200, 201, 202, 203, 168, 204,
- 205, 206, 207, 208, 0, 0, 0, 0, 0, 209,
- 0, 210, 0, 0, 211, 0, 0, 0, 0, 0,
- 370, 0, 0, 0, 0, 169, 170, 171, 0, 172,
- 173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 0, 191,
- 192, 193, 0, 194, 195, 196, 0, 0, 0, 0,
- 0, 197, 198, 0, 199, 200, 201, 202, 203, 168,
- 204, 205, 206, 207, 208, 0, 0, 0, 0, 0,
- 209, 0, 210, 0, 0, 211, 0, 0, 0, 0,
- 0, 408, 0, 0, 0, 0, 169, 170, 171, 0,
- 172, 173, 174, 175, 176, 177, 178, 179, 180, 181,
- 182, 183, 184, 185, 186, 187, 188, 189, 190, 0,
- 191, 192, 193, 0, 194, 195, 196, 0, 0, 0,
- 168, 0, 197, 198, 362, 199, 200, 201, 202, 203,
- 0, 204, 205, 206, 207, 208, 0, 0, 0, 0,
- 0, 209, 0, 210, 0, 0, 211, 169, 170, 171,
- 0, 172, 173, 174, 175, 176, 177, 178, 179, 180,
+ 184, 185, 186, 187, 188, 189, 190, 191, 192, 0,
+ 193, 194, 195, 0, 196, 197, 198, 0, 0, 0,
+ 0, 0, 199, 200, 0, 201, 202, 203, 204, 205,
+ 170, 206, 207, 208, 209, 210, 0, 0, 0, 0,
+ 0, 211, 0, 212, 0, 0, 213, 0, 0, 0,
+ 0, 0, 372, 0, 0, 0, 0, 171, 172, 173,
+ 0, 174, 175, 176, 177, 178, 179, 180, 181, 182,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 0, 193, 194, 195, 0, 196, 197, 198, 0, 0,
+ 0, 0, 0, 199, 200, 0, 201, 202, 203, 204,
+ 205, 170, 206, 207, 208, 209, 210, 0, 0, 0,
+ 0, 0, 211, 0, 212, 0, 0, 213, 0, 0,
+ 0, 0, 0, 410, 0, 0, 0, 0, 171, 172,
+ 173, 0, 174, 175, 176, 177, 178, 179, 180, 181,
+ 182, 183, 184, 185, 186, 187, 188, 189, 190, 191,
+ 192, 0, 193, 194, 195, 0, 196, 197, 198, 0,
+ 0, 0, 170, 0, 199, 200, 364, 201, 202, 203,
+ 204, 205, 0, 206, 207, 208, 209, 210, 0, 0,
+ 0, 0, 0, 211, 0, 212, 0, 0, 213, 171,
+ 172, 173, 0, 174, 175, 176, 177, 178, 179, 180,
181, 182, 183, 184, 185, 186, 187, 188, 189, 190,
- 0, 191, 192, 193, 0, 194, 195, 196, 0, 0,
- 0, 168, 0, 197, 198, 0, 199, 200, 201, 202,
- 203, 0, 204, 205, 206, 207, 208, 0, 0, 0,
- 0, 0, 209, 0, 210, 364, 0, 211, 169, 170,
- 171, 0, 172, 173, 174, 175, 176, 177, 178, 179,
+ 191, 192, 0, 193, 194, 195, 0, 196, 197, 198,
+ 0, 0, 0, 170, 0, 199, 200, 0, 201, 202,
+ 203, 204, 205, 0, 206, 207, 208, 209, 210, 0,
+ 0, 0, 0, 0, 211, 0, 212, 366, 0, 213,
+ 171, 172, 173, 0, 174, 175, 176, 177, 178, 179,
180, 181, 182, 183, 184, 185, 186, 187, 188, 189,
- 190, 0, 191, 192, 193, 0, 194, 195, 196, 0,
- 0, 0, 168, 0, 197, 198, 489, 199, 200, 201,
- 202, 203, 0, 204, 205, 206, 207, 208, 0, 0,
- 0, 0, 0, 209, 0, 210, 0, 0, 211, 169,
- 170, 171, 0, 172, 173, 174, 175, 176, 177, 178,
+ 190, 191, 192, 0, 193, 194, 195, 0, 196, 197,
+ 198, 0, 0, 0, 170, 0, 199, 200, 491, 201,
+ 202, 203, 204, 205, 0, 206, 207, 208, 209, 210,
+ 0, 0, 0, 0, 0, 211, 0, 212, 0, 0,
+ 213, 171, 172, 173, 0, 174, 175, 176, 177, 178,
179, 180, 181, 182, 183, 184, 185, 186, 187, 188,
- 189, 190, 0, 191, 192, 193, 0, 194, 195, 196,
- 0, 0, 0, 168, 0, 197, 198, 0, 199, 200,
- 201, 202, 203, 0, 204, 205, 206, 207, 208, 0,
- 0, 0, 0, 0, 209, 0, 210, 0, 0, 211,
- 169, 170, 171, 0, 172, 173, 174, 175, 176, 177,
+ 189, 190, 191, 192, 0, 193, 194, 195, 0, 196,
+ 197, 198, 0, 0, 0, 170, 0, 199, 200, 0,
+ 201, 202, 203, 204, 205, 0, 206, 207, 208, 209,
+ 210, 0, 0, 0, 0, 0, 211, 0, 212, 0,
+ 0, 213, 171, 172, 173, 0, 174, 175, 176, 177,
+ 178, 179, 0, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 192, 0, 193, 194, 195, 0,
+ 196, 197, 198, 0, 0, 0, 170, 0, 0, 0,
+ 0, 201, 202, 203, 204, 205, 0, 206, 207, 208,
+ 209, 210, 0, 0, 0, 0, 0, 211, 0, 212,
+ 0, 0, 213, 171, 172, 173, 0, 174, 175, 176,
+ 177, 178, 179, 0, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 193, 194, 195,
+ 0, 196, 197, 198, 0, 0, 0, 170, 0, 0,
+ 0, 0, 201, 202, 203, 204, 205, 0, 206, 207,
+ 208, 209, 210, 0, 0, 0, 0, 0, 211, 0,
+ 212, 0, 0, 213, 171, 172, 173, 0, 174, 175,
+ 176, 177, 178, 179, 0, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 193, 194,
+ 195, 0, 196, 197, 198, 0, 0, 0, 170, 0,
+ 0, 0, 0, 0, 202, 203, 204, 205, 0, 206,
+ 207, 208, 209, 210, 0, 0, 0, 0, 0, 211,
+ 0, 212, 0, 0, 213, 171, 172, 173, 0, 174,
+ 175, 176, 177, 178, 179, 0, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 193,
+ 194, 195, 0, 196, 197, 198, 0, 0, 0, 170,
+ 0, 0, 0, 0, 0, 0, 203, 204, 205, 0,
+ 206, 207, 208, 209, 210, 0, 0, 0, 0, 0,
+ 211, 0, 212, 0, 0, 213, 171, 172, 173, 0,
+ 174, 175, 176, 177, 178, 179, 0, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 193, 194, 195, 0, 196, 197, 198, 0, 0, 0,
+ 170, 0, 0, 0, 0, 0, 0, -155, 204, 205,
+ 0, 206, 207, 208, 209, 210, 0, 0, 0, 0,
+ 0, 211, 0, 212, 0, 0, 213, 171, 172, 173,
+ 0, -155, -155, -155, -155, 178, 179, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 190, 0, 191, 192, 193, 0, 194, 195,
- 196, 0, 0, 0, 168, 0, 0, 0, 0, 199,
- 200, 201, 202, 203, 0, 204, 205, 206, 207, 208,
- 0, 0, 0, 0, 0, 209, 0, 210, 0, 0,
- 211, 169, 170, 171, 0, 172, 173, 174, 175, 176,
- 177, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 191, 192, 193, 0, 194,
- 195, 196, 0, 0, 0, 168, 0, 0, 0, 0,
- 199, 200, 201, 202, 203, 0, 204, 205, 206, 207,
- 208, 0, 0, 0, 0, 0, 209, 0, 210, 0,
- 0, 211, 169, 170, 171, 0, 172, 173, 174, 175,
- 176, 177, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 191, 192, 193, 0,
- 194, 195, 196, 0, 0, 0, 168, 0, 0, 0,
- 0, 0, 200, 201, 202, 203, 0, 204, 205, 206,
- 207, 208, 0, 0, 0, 0, 0, 209, 0, 210,
- 0, 0, 211, 169, 170, 171, 0, 172, 173, 174,
- 175, 176, 177, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 191, 192, 193,
- 0, 194, 195, 196, 0, 0, 0, 168, 0, 0,
- 0, 0, 0, 0, 201, 202, 203, 0, 204, 205,
- 206, 207, 208, 0, 0, 0, 0, 0, 209, 0,
- 210, 0, 0, 211, 169, 170, 171, 0, 172, 173,
- 174, 175, 176, 177, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 191, 192,
- 193, 0, 194, 195, 196, 0, 0, 0, 168, 0,
- 0, 0, 0, 0, 0, -155, 202, 203, 0, 204,
- 205, 206, 207, 208, 0, 0, 0, 0, 0, 209,
- 0, 210, 0, 0, 211, 169, 170, 171, 0, -155,
- -155, -155, -155, 176, 177, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 191,
- 192, 193, 0, 194, 195, 196, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 202, 203, 0,
- 204, 205, 206, 207, 208, 0, 0, 0, 0, 0,
- 209, 0, 210, 0, 0, 211
+ 0, 193, 194, 195, 0, 196, 197, 198, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 204,
+ 205, 0, 206, 207, 208, 209, 210, 0, 0, 0,
+ 0, 0, 211, 0, 212, 0, 0, 213
};
static const yytype_int16 yycheck[] =
{
- 0, 0, 0, 0, 0, 18, 98, 90, 64, 38,
- 23, 57, 255, 397, 109, 130, 131, 47, 3, 3,
- 3, 12, 330, 36, 89, 38, 39, 40, 324, 42,
- 43, 44, 45, 46, 90, 26, 121, 5, 92, 49,
- 8, 9, 10, 67, 125, 126, 33, 100, 34, 0,
- 0, 51, 51, 51, 51, 51, 0, 3, 4, 27,
- 28, 466, 121, 100, 50, 470, 471, 3, 4, 123,
- 121, 17, 126, 381, 61, 126, 44, 373, 102, 132,
- 136, 17, 16, 102, 489, 104, 54, 55, 12, 3,
- 4, 104, 3, 4, 107, 132, 109, 126, 503, 214,
- 51, 51, 26, 17, 3, 510, 17, 51, 93, 93,
- 418, 121, 121, 126, 209, 121, 359, 130, 131, 234,
- 26, 35, 125, 3, 125, 509, 32, 3, 121, 5,
- 0, 100, 3, 121, 126, 3, 131, 380, 121, 121,
- 104, 256, 257, 100, 127, 124, 100, 3, 3, 149,
- 149, 149, 149, 149, 167, 168, 169, 170, 171, 172,
+ 0, 0, 0, 0, 0, 18, 98, 90, 64, 57,
+ 23, 257, 127, 132, 133, 399, 109, 3, 47, 3,
+ 3, 12, 89, 36, 3, 4, 39, 40, 332, 42,
+ 43, 44, 45, 46, 90, 26, 326, 67, 17, 49,
+ 33, 125, 126, 100, 4, 90, 91, 92, 100, 0,
+ 0, 51, 51, 51, 51, 51, 0, 26, 18, 19,
+ 20, 121, 22, 32, 24, 3, 126, 34, 61, 468,
+ 3, 4, 102, 472, 473, 132, 121, 37, 123, 383,
+ 132, 126, 138, 50, 17, 375, 46, 47, 48, 12,
+ 92, 104, 491, 3, 107, 5, 109, 216, 3, 4,
+ 51, 51, 35, 26, 121, 121, 505, 51, 16, 93,
+ 93, 121, 17, 512, 127, 361, 420, 236, 211, 132,
+ 133, 123, 125, 238, 126, 3, 121, 511, 3, 4,
+ 102, 3, 104, 5, 121, 121, 382, 0, 100, 258,
+ 259, 127, 17, 121, 125, 3, 125, 121, 121, 126,
+ 3, 151, 151, 151, 151, 151, 169, 170, 171, 172,
173, 174, 175, 176, 177, 178, 179, 180, 181, 182,
- 183, 184, 185, 186, 187, 188, 189, 190, 114, 125,
- 3, 194, 195, 196, 197, 198, 199, 200, 201, 202,
- 203, 204, 205, 206, 207, 208, 209, 210, 149, 149,
- 114, 214, 125, 216, 16, 149, 235, 67, 237, 90,
- 91, 92, 3, 456, 99, 67, 99, 217, 217, 217,
- 3, 234, 235, 253, 237, 238, 3, 3, 219, 472,
- 3, 12, 327, 126, 126, 4, 132, 16, 229, 121,
- 121, 100, 123, 256, 257, 126, 25, 104, 132, 18,
- 19, 20, 31, 22, 369, 24, 100, 131, 3, 102,
- 16, 53, 3, 355, 53, 357, 45, 132, 37, 25,
- 89, 514, 3, 121, 30, 31, 45, 46, 47, 48,
- 125, 132, 131, 339, 3, 368, 132, 43, 126, 45,
- 4, 100, 348, 132, 131, 121, 309, 104, 102, 99,
- 383, 132, 15, 125, 18, 19, 20, 399, 22, 3,
- 24, 394, 368, 100, 327, 125, 316, 316, 316, 132,
- 131, 64, 125, 37, 324, 324, 324, 383, 100, 131,
- 99, 45, 46, 47, 48, 326, 132, 102, 394, 125,
- 125, 121, 434, 104, 132, 3, 3, 393, 25, 362,
- 125, 3, 149, 131, 125, 384, 369, 131, 121, 51,
- 389, 131, 131, 131, 131, 125, 132, 39, 4, 131,
- 453, 384, 455, 373, 373, 373, 389, 131, 316, 132,
- 131, 404, 18, 19, 20, 99, 22, 57, 24, 129,
- 442, 347, 442, 424, 66, 67, 68, 453, 424, 455,
- 69, 37, 74, 75, 495, 481, 463, 486, 416, 376,
- 46, 47, 48, 26, 377, 405, 45, 131, 90, 91,
- 92, 399, 94, 95, 96, -1, 439, -1, -1, -1,
- -1, -1, -1, -1, -1, 435, 108, 109, -1, 111,
- 112, 113, 114, 115, 90, 91, 92, -1, -1, 121,
- -1, 123, -1, -1, 126, -1, -1, 457, 457, 457,
- 457, 457, -1, 463, -1, 111, 112, 113, 114, 115,
- -1, -1, -1, -1, -1, 121, -1, 123, -1, -1,
- 126, 481, 481, 481, 481, 481, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 495, 495, 495, 495, 495,
- 0, -1, -1, 3, 4, 5, 6, -1, 8, 9,
- 10, 11, 12, 13, 14, -1, -1, 17, 18, 19,
- 20, 21, 22, 23, 24, -1, -1, 27, 28, -1,
- -1, 39, -1, -1, -1, 35, -1, 37, 38, -1,
- 40, -1, 42, -1, 44, -1, 46, 47, 48, -1,
+ 183, 184, 185, 186, 187, 188, 189, 190, 191, 192,
+ 104, 114, 131, 196, 197, 198, 199, 200, 201, 202,
+ 203, 204, 205, 206, 207, 208, 209, 210, 211, 212,
+ 151, 151, 16, 216, 100, 218, 124, 151, 100, 114,
+ 3, 25, 458, 3, 3, 16, 30, 31, 125, 219,
+ 219, 219, 67, 236, 3, 238, 255, 240, 474, 43,
+ 221, 45, 16, 99, 67, 4, 329, 99, 3, 3,
+ 231, 25, 3, 3, 12, 258, 259, 31, 121, 18,
+ 19, 20, 371, 22, 100, 24, 126, 126, 132, 100,
+ 104, 45, 102, 3, 132, 357, 131, 359, 37, 3,
+ 516, 386, 53, 53, 89, 132, 45, 46, 47, 48,
+ 3, 132, 121, 131, 3, 341, 104, 370, 125, 132,
+ 4, 100, 126, 131, 350, 102, 132, 99, 311, 121,
+ 132, 125, 385, 15, 18, 19, 20, 3, 22, 401,
+ 24, 131, 100, 396, 370, 125, 329, 125, 318, 318,
+ 318, 132, 100, 37, 3, 131, 326, 326, 326, 385,
+ 99, 45, 46, 47, 48, 132, 102, 328, 125, 125,
+ 396, 132, 64, 3, 436, 121, 104, 395, 131, 25,
+ 125, 364, 125, 3, 131, 125, 151, 131, 371, 90,
+ 91, 92, 131, 51, 131, 378, 121, 406, 131, 39,
+ 132, 318, 455, 386, 457, 375, 375, 375, 391, 131,
+ 111, 112, 113, 114, 115, 99, 131, 69, 132, 131,
+ 121, 57, 123, 131, 349, 126, 66, 67, 68, 455,
+ 444, 457, 444, 426, 74, 75, 426, 497, 483, 418,
+ 465, 488, 26, 407, 379, 45, 401, 131, 239, -1,
+ 90, 91, 92, -1, 94, 95, 96, -1, 441, -1,
+ -1, -1, -1, -1, -1, -1, -1, 437, 108, 109,
+ -1, 111, 112, 113, 114, 115, 90, 91, 92, -1,
+ -1, 121, -1, 123, -1, -1, 126, -1, -1, 459,
+ 459, 459, 459, 459, -1, 465, -1, -1, -1, 113,
+ 114, 115, -1, -1, -1, -1, -1, 121, -1, 123,
+ -1, -1, 126, 483, 483, 483, 483, 483, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, 497, 497, 497,
+ 497, 497, 0, -1, -1, 3, 4, 5, 6, -1,
+ 8, 9, 10, 11, 12, 13, 14, -1, -1, 17,
+ 18, 19, 20, 21, 22, 23, 24, -1, -1, 27,
+ 28, -1, -1, 39, -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, 74, 75,
+ -1, 69, -1, -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, 108, 109, -1, 111, 112, 113, 114, 115,
+ -1, -1, -1, 111, -1, 121, -1, 123, 116, 117,
+ 126, -1, -1, 121, -1, 123, -1, 125, -1, 127,
+ -1, -1, -1, 131, 3, 4, 5, 6, -1, 8,
+ 9, 10, 11, 12, 13, 14, -1, -1, -1, 18,
+ 19, 20, 21, 22, 23, 24, 25, -1, 27, 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,
+ 69, -1, -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, 111, -1, -1, -1, -1, 116, 117, -1,
+ -1, -1, 121, -1, 123, -1, 125, -1, 127, -1,
+ -1, -1, 131, 3, 4, 5, 6, -1, 8, 9,
+ 10, 11, 12, 13, 14, -1, -1, -1, 18, 19,
+ 20, 21, 22, 23, 24, 25, -1, 27, 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, -1, 74, 75, -1, 69,
+ -1, -1, 62, 63, -1, 65, -1, -1, -1, 69,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -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,
- 108, 109, -1, 111, 112, 113, 114, 115, -1, -1,
- -1, 111, -1, 121, -1, 123, 116, 117, 126, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ -1, 111, -1, -1, -1, -1, 116, 117, -1, -1,
-1, 121, -1, 123, -1, 125, -1, 127, -1, -1,
-1, 131, 3, 4, 5, 6, -1, 8, 9, 10,
11, 12, 13, 14, -1, -1, -1, 18, 19, 20,
21, 22, 23, 24, 25, -1, 27, 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, 90, 91, 92, -1, -1,
+ 51, 52, -1, 54, 55, -1, -1, -1, -1, -1,
-1, 62, 63, -1, 65, -1, -1, -1, 69, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, 113, 114,
- 115, -1, -1, -1, -1, -1, 121, -1, 123, 90,
- 91, 126, -1, -1, -1, -1, -1, -1, 99, -1,
+ -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,
111, -1, -1, -1, -1, 116, 117, -1, -1, -1,
121, -1, 123, -1, 125, -1, 127, -1, -1, -1,
131, 3, 4, 5, 6, -1, 8, 9, 10, 11,
- 12, 13, 14, -1, -1, -1, 18, 19, 20, 21,
- 22, 23, 24, 25, -1, 27, 28, 29, -1, 31,
- -1, -1, -1, 35, 36, 37, 38, -1, 40, 41,
- 42, -1, 44, 45, 46, 47, 48, -1, -1, 51,
+ 12, 13, 14, -1, -1, 17, 18, 19, 20, 21,
+ 22, 23, 24, -1, -1, 27, 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, 65, -1, -1, -1, 69, -1, -1,
+ 62, 63, -1, -1, -1, -1, -1, 69, -1, -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, 123, -1, 125, -1, 127, -1, -1, -1, 131,
3, 4, 5, 6, -1, 8, 9, 10, 11, 12,
13, 14, -1, -1, -1, 18, 19, 20, 21, 22,
- 23, 24, 25, -1, 27, 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,
+ 23, 24, -1, -1, 27, 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, 65, -1, -1, -1, 69, -1, -1, -1,
+ 63, -1, -1, -1, -1, -1, 69, -1, -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, 116, 117, -1, -1, -1, 121, -1,
123, -1, 125, -1, 127, -1, -1, -1, 131, 3,
4, 5, 6, -1, 8, 9, 10, 11, 12, 13,
- 14, -1, -1, 17, 18, 19, 20, 21, 22, 23,
+ 14, -1, -1, -1, 18, 19, 20, 21, 22, 23,
24, -1, -1, 27, 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,
-1, -1, -1, 99, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, 111, -1, -1, -1, -1,
116, 117, -1, -1, -1, 121, -1, 123, -1, 125,
- -1, 127, -1, -1, -1, 131, 3, 4, 5, 6,
+ -1, 127, -1, 0, -1, 131, 3, 4, 5, 6,
-1, 8, 9, 10, 11, 12, 13, 14, -1, -1,
- -1, 18, 19, 20, 21, 22, 23, 24, -1, -1,
+ 17, 18, 19, 20, 21, 22, 23, 24, -1, -1,
27, 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, 99, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, 111, -1, -1, -1, -1, 116,
117, -1, -1, -1, 121, -1, 123, -1, 125, -1,
- 127, -1, -1, -1, 131, 3, 4, 5, 6, -1,
- 8, 9, 10, 11, 12, 13, 14, -1, -1, -1,
- 18, 19, 20, 21, 22, 23, 24, -1, -1, 27,
- 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, 69, -1, -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, 111, -1, -1, -1, -1, 116, 117,
- -1, -1, -1, 121, -1, 123, -1, 125, -1, 127,
- -1, 0, -1, 131, 3, 4, 5, 6, -1, 8,
- 9, 10, 11, 12, 13, 14, -1, -1, 17, 18,
- 19, 20, 21, 22, 23, 24, -1, -1, 27, 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,
- 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 127, 3, 4, 5, 6, -1, 8, 9, 10, 11,
+ 12, 13, 14, -1, 16, -1, 18, 19, 20, 21,
+ 22, 23, 24, 25, -1, 27, 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, 69, -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, 111, -1, -1, -1, -1, 116, 117, -1,
- -1, -1, 121, -1, 123, -1, 125, -1, 127, 3,
- 4, 5, 6, -1, 8, 9, 10, 11, 12, 13,
- 14, -1, 16, -1, 18, 19, 20, 21, 22, 23,
- 24, 25, -1, 27, 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, 69, -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, 111,
+ -1, -1, -1, -1, 116, 117, -1, -1, -1, 121,
+ -1, 123, -1, 125, -1, 127, 3, 4, 5, 6,
+ -1, 8, 9, 10, 11, 12, 13, 14, -1, -1,
+ -1, 18, 19, 20, 21, 22, 23, 24, 25, -1,
+ 27, 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, 69, -1, -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, 111, -1, -1, -1, -1, 116,
+ 117, -1, -1, -1, 121, -1, 123, -1, 125, 3,
+ 127, 5, 6, -1, 8, 9, 10, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, 23,
+ -1, 25, -1, 27, 28, -1, -1, 31, -1, -1,
+ -1, 35, -1, -1, -1, -1, -1, -1, 42, -1,
+ 44, 45, -1, -1, -1, -1, -1, -1, 52, -1,
+ 54, 55, -1, -1, -1, -1, -1, -1, 62, -1,
+ -1, -1, -1, -1, -1, 69, -1, -1, -1, 3,
+ -1, 5, 6, -1, 8, 9, 10, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, 90, 91, -1, 23,
+ -1, 25, -1, 27, 28, -1, -1, -1, -1, -1,
+ -1, 35, -1, -1, -1, -1, -1, 111, 42, -1,
+ 44, -1, 116, 117, -1, -1, -1, 121, 52, 123,
+ 54, 55, -1, 127, 3, -1, 5, 6, 62, 8,
+ 9, 10, -1, -1, -1, 69, -1, -1, -1, -1,
+ -1, -1, -1, -1, 23, -1, 25, -1, 27, 28,
-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, 111, -1, -1,
+ -1, -1, -1, -1, -1, 44, -1, -1, -1, -1,
+ -1, -1, -1, 52, -1, 54, 55, 111, -1, -1,
-1, -1, 116, 117, -1, -1, -1, 121, -1, 123,
- -1, 125, -1, 127, 3, 4, 5, 6, -1, 8,
- 9, 10, 11, 12, 13, 14, -1, -1, -1, 18,
- 19, 20, 21, 22, 23, 24, 25, -1, 27, 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,
- 69, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 69, -1, -1, 127, -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, 111, -1, -1, -1, -1, 116, 117, -1,
- -1, -1, 121, -1, 123, -1, 125, 3, 127, 5,
- 6, -1, 8, 9, 10, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, 23, -1, 25,
- -1, 27, 28, -1, -1, 31, -1, -1, -1, 35,
- -1, -1, -1, -1, -1, -1, 42, -1, 44, 45,
- -1, -1, -1, -1, -1, -1, 52, -1, 54, 55,
- -1, -1, -1, -1, -1, -1, 62, -1, -1, -1,
- -1, -1, -1, 69, -1, -1, -1, 3, -1, 5,
- 6, -1, 8, 9, 10, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, 90, 91, -1, 23, -1, 25,
- -1, 27, 28, -1, -1, -1, -1, -1, -1, 35,
- -1, -1, -1, -1, -1, 111, 42, -1, 44, -1,
- 116, 117, -1, -1, -1, 121, 52, 123, 54, 55,
- -1, 127, 3, -1, 5, 6, 62, 8, 9, 10,
- -1, -1, -1, 69, -1, -1, -1, -1, -1, -1,
- -1, -1, 23, -1, 25, -1, 27, 28, -1, -1,
- -1, -1, -1, -1, 90, 91, -1, -1, -1, -1,
- -1, -1, -1, 44, -1, -1, -1, -1, -1, -1,
- -1, 52, -1, 54, 55, 111, -1, -1, -1, -1,
- 116, 117, -1, -1, -1, 121, -1, 123, 69, -1,
- -1, 127, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, 90,
- 91, -1, -1, -1, -1, -1, 39, -1, -1, -1,
+ -1, 90, 91, -1, -1, -1, -1, -1, 39, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- 121, -1, 123, 66, 67, 68, 127, 70, 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,
- 103, -1, 105, 106, 107, 108, 109, 39, 111, 112,
- 113, 114, 115, -1, -1, -1, -1, -1, 121, -1,
- 123, -1, -1, 126, -1, -1, -1, -1, -1, 132,
- -1, -1, -1, -1, 66, 67, 68, -1, 70, 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, 103, -1, 105, 106, 107, 108, 109, 39, 111,
- 112, 113, 114, 115, -1, -1, -1, -1, -1, 121,
- -1, 123, -1, -1, 126, -1, -1, -1, -1, -1,
- 132, -1, -1, -1, -1, 66, 67, 68, -1, 70,
+ -1, -1, 121, -1, 123, 66, 67, 68, 127, 70,
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,
70, 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,
- 39, -1, 102, 103, 104, 105, 106, 107, 108, 109,
- -1, 111, 112, 113, 114, 115, -1, -1, -1, -1,
- -1, 121, -1, 123, -1, -1, 126, 66, 67, 68,
+ -1, -1, 102, 103, -1, 105, 106, 107, 108, 109,
+ 39, 111, 112, 113, 114, 115, -1, -1, -1, -1,
+ -1, 121, -1, 123, -1, -1, 126, -1, -1, -1,
+ -1, -1, 132, -1, -1, -1, -1, 66, 67, 68,
-1, 70, 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, 39, -1, 102, 103, -1, 105, 106, 107, 108,
- 109, -1, 111, 112, 113, 114, 115, -1, -1, -1,
- -1, -1, 121, -1, 123, 124, -1, 126, 66, 67,
+ -1, -1, -1, 102, 103, -1, 105, 106, 107, 108,
+ 109, 39, 111, 112, 113, 114, 115, -1, -1, -1,
+ -1, -1, 121, -1, 123, -1, -1, 126, -1, -1,
+ -1, -1, -1, 132, -1, -1, -1, -1, 66, 67,
68, -1, 70, 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,
87, 88, -1, 90, 91, 92, -1, 94, 95, 96,
-1, -1, -1, 39, -1, 102, 103, -1, 105, 106,
107, 108, 109, -1, 111, 112, 113, 114, 115, -1,
- -1, -1, -1, -1, 121, -1, 123, -1, -1, 126,
+ -1, -1, -1, -1, 121, -1, 123, 124, -1, 126,
66, 67, 68, -1, 70, 71, 72, 73, 74, 75,
- -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, 88, -1, 90, 91, 92, -1, 94, 95,
- 96, -1, -1, -1, 39, -1, -1, -1, -1, 105,
+ 76, 77, 78, 79, 80, 81, 82, 83, 84, 85,
+ 86, 87, 88, -1, 90, 91, 92, -1, 94, 95,
+ 96, -1, -1, -1, 39, -1, 102, 103, 104, 105,
106, 107, 108, 109, -1, 111, 112, 113, 114, 115,
-1, -1, -1, -1, -1, 121, -1, 123, -1, -1,
126, 66, 67, 68, -1, 70, 71, 72, 73, 74,
- 75, -1, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, 90, 91, 92, -1, 94,
- 95, 96, -1, -1, -1, 39, -1, -1, -1, -1,
+ 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, 39, -1, 102, 103, -1,
105, 106, 107, 108, 109, -1, 111, 112, 113, 114,
115, -1, -1, -1, -1, -1, 121, -1, 123, -1,
-1, 126, 66, 67, 68, -1, 70, 71, 72, 73,
74, 75, -1, -1, -1, -1, -1, -1, -1, -1,
- -1, -1, -1, -1, -1, -1, 90, 91, 92, -1,
+ -1, -1, -1, -1, 88, -1, 90, 91, 92, -1,
94, 95, 96, -1, -1, -1, 39, -1, -1, -1,
- -1, -1, 106, 107, 108, 109, -1, 111, 112, 113,
+ -1, 105, 106, 107, 108, 109, -1, 111, 112, 113,
114, 115, -1, -1, -1, -1, -1, 121, -1, 123,
-1, -1, 126, 66, 67, 68, -1, 70, 71, 72,
73, 74, 75, -1, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, 90, 91, 92,
-1, 94, 95, 96, -1, -1, -1, 39, -1, -1,
- -1, -1, -1, -1, 107, 108, 109, -1, 111, 112,
+ -1, -1, 105, 106, 107, 108, 109, -1, 111, 112,
113, 114, 115, -1, -1, -1, -1, -1, 121, -1,
123, -1, -1, 126, 66, 67, 68, -1, 70, 71,
72, 73, 74, 75, -1, -1, -1, -1, -1, -1,
-1, -1, -1, -1, -1, -1, -1, -1, 90, 91,
92, -1, 94, 95, 96, -1, -1, -1, 39, -1,
- -1, -1, -1, -1, -1, 107, 108, 109, -1, 111,
+ -1, -1, -1, -1, 106, 107, 108, 109, -1, 111,
112, 113, 114, 115, -1, -1, -1, -1, -1, 121,
-1, 123, -1, -1, 126, 66, 67, 68, -1, 70,
71, 72, 73, 74, 75, -1, -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, 108, 109, -1,
+ 91, 92, -1, 94, 95, 96, -1, -1, -1, 39,
+ -1, -1, -1, -1, -1, -1, 107, 108, 109, -1,
111, 112, 113, 114, 115, -1, -1, -1, -1, -1,
- 121, -1, 123, -1, -1, 126
+ 121, -1, 123, -1, -1, 126, 66, 67, 68, -1,
+ 70, 71, 72, 73, 74, 75, -1, -1, -1, -1,
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+ 90, 91, 92, -1, 94, 95, 96, -1, -1, -1,
+ 39, -1, -1, -1, -1, -1, -1, 107, 108, 109,
+ -1, 111, 112, 113, 114, 115, -1, -1, -1, -1,
+ -1, 121, -1, 123, -1, -1, 126, 66, 67, 68,
+ -1, 70, 71, 72, 73, 74, 75, -1, -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, 108,
+ 109, -1, 111, 112, 113, 114, 115, -1, -1, -1,
+ -1, -1, 121, -1, 123, -1, -1, 126
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
135, 136, 137, 143, 146, 147, 153, 157, 158, 159,
160, 162, 170, 178, 181, 182, 185, 188, 189, 190,
191, 195, 197, 206, 211, 216, 219, 232, 233, 234,
- 239, 242, 243, 244, 246, 247, 89, 49, 121, 121,
+ 239, 243, 244, 245, 247, 248, 89, 49, 121, 121,
163, 121, 3, 4, 17, 125, 183, 184, 16, 3,
- 242, 3, 218, 242, 121, 184, 222, 121, 125, 121,
- 126, 242, 121, 236, 240, 241, 242, 242, 242, 242,
- 242, 242, 238, 242, 228, 229, 230, 236, 29, 31,
- 36, 41, 45, 65, 99, 131, 142, 143, 144, 147,
- 149, 164, 165, 180, 189, 235, 3, 0, 137, 125,
- 3, 45, 149, 155, 156, 239, 144, 145, 16, 25,
- 30, 31, 43, 45, 205, 245, 191, 100, 39, 66,
- 67, 68, 70, 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, 103, 105,
- 106, 107, 108, 109, 111, 112, 113, 114, 115, 121,
- 123, 126, 3, 121, 161, 145, 171, 187, 125, 126,
- 183, 184, 221, 222, 223, 231, 121, 237, 238, 126,
- 242, 179, 228, 3, 154, 104, 131, 100, 100, 132,
- 124, 100, 236, 3, 3, 150, 151, 237, 237, 150,
- 3, 131, 144, 125, 135, 3, 99, 67, 99, 3,
- 34, 50, 215, 3, 3, 207, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 3, 242, 242, 242, 242, 242, 242, 242, 242, 242,
- 242, 242, 242, 242, 242, 242, 228, 242, 3, 121,
- 127, 237, 12, 242, 99, 138, 139, 140, 146, 147,
- 195, 197, 206, 216, 186, 183, 126, 121, 227, 3,
- 93, 212, 213, 214, 132, 114, 183, 132, 141, 142,
- 132, 237, 236, 236, 242, 104, 226, 100, 142, 131,
- 226, 237, 237, 102, 3, 53, 192, 53, 193, 3,
- 208, 209, 104, 132, 124, 89, 242, 3, 132, 121,
- 132, 131, 140, 125, 138, 228, 102, 104, 210, 214,
- 132, 100, 131, 132, 104, 35, 114, 223, 225, 102,
- 148, 151, 131, 99, 132, 3, 5, 121, 223, 15,
- 194, 223, 224, 125, 226, 100, 242, 3, 132, 145,
- 237, 125, 138, 131, 132, 211, 225, 226, 93, 214,
- 26, 32, 172, 174, 176, 177, 145, 236, 236, 239,
- 145, 212, 224, 125, 100, 198, 148, 209, 132, 33,
- 61, 166, 167, 168, 169, 131, 210, 125, 214, 125,
- 121, 172, 174, 64, 152, 132, 132, 196, 223, 45,
- 99, 189, 202, 203, 204, 242, 104, 131, 168, 169,
- 220, 175, 3, 145, 145, 226, 99, 143, 147, 189,
- 199, 200, 201, 206, 216, 3, 25, 131, 204, 104,
- 141, 141, 141, 226, 125, 125, 131, 201, 215, 141,
- 131, 131, 132, 217, 199, 3, 173, 141, 131, 121,
- 125, 131, 212, 141, 132, 131, 226
+ 243, 3, 218, 243, 121, 184, 222, 121, 125, 121,
+ 126, 243, 121, 3, 5, 240, 241, 242, 243, 243,
+ 243, 243, 243, 238, 243, 228, 229, 230, 236, 243,
+ 29, 31, 36, 41, 45, 65, 99, 131, 142, 143,
+ 144, 147, 149, 164, 165, 180, 189, 235, 3, 0,
+ 137, 125, 3, 45, 149, 155, 156, 239, 144, 145,
+ 16, 25, 30, 31, 43, 45, 205, 246, 191, 100,
+ 39, 66, 67, 68, 70, 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,
+ 103, 105, 106, 107, 108, 109, 111, 112, 113, 114,
+ 115, 121, 123, 126, 3, 121, 161, 145, 171, 187,
+ 125, 126, 183, 184, 221, 222, 223, 231, 121, 237,
+ 238, 126, 243, 179, 228, 3, 154, 131, 104, 100,
+ 100, 132, 124, 100, 236, 3, 3, 150, 151, 237,
+ 237, 150, 3, 131, 144, 125, 135, 3, 99, 67,
+ 99, 3, 34, 50, 215, 3, 3, 207, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 3, 243, 243, 243, 243, 243, 243, 243,
+ 243, 243, 243, 243, 243, 243, 243, 243, 228, 243,
+ 3, 121, 127, 237, 12, 243, 99, 138, 139, 140,
+ 146, 147, 195, 197, 206, 216, 186, 183, 126, 121,
+ 227, 3, 93, 212, 213, 214, 132, 114, 183, 132,
+ 141, 142, 132, 237, 236, 241, 243, 104, 226, 100,
+ 142, 131, 226, 237, 237, 102, 3, 53, 192, 53,
+ 193, 3, 208, 209, 104, 132, 124, 89, 243, 3,
+ 132, 121, 132, 131, 140, 125, 138, 228, 102, 104,
+ 210, 214, 132, 100, 131, 132, 104, 35, 114, 223,
+ 225, 102, 148, 151, 131, 99, 132, 3, 5, 121,
+ 223, 15, 194, 223, 224, 125, 226, 100, 243, 3,
+ 132, 145, 237, 125, 138, 131, 132, 243, 225, 226,
+ 93, 214, 26, 32, 172, 174, 176, 177, 145, 236,
+ 243, 239, 145, 212, 224, 125, 100, 198, 148, 209,
+ 132, 33, 61, 166, 167, 168, 169, 131, 210, 125,
+ 214, 125, 121, 172, 174, 64, 152, 132, 132, 196,
+ 223, 45, 99, 189, 202, 203, 204, 243, 104, 131,
+ 168, 169, 220, 175, 3, 145, 145, 226, 99, 143,
+ 147, 189, 199, 200, 201, 206, 216, 3, 25, 131,
+ 204, 104, 141, 141, 141, 226, 125, 125, 131, 201,
+ 215, 141, 131, 131, 132, 217, 199, 3, 173, 141,
+ 131, 121, 125, 131, 212, 141, 132, 131, 226
};
#define yyerrok (yyerrstatus = 0)
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1890 "parser.y"
+#line 1861 "parser.y"
{PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1902 "parser.y"
+#line 1873 "parser.y"
{PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1905 "parser.y"
+#line 1876 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1906 "parser.y"
+#line 1877 "parser.y"
{(yyval.code)=code_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1908 "parser.y"
- {(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));}
+#line 1879 "parser.y"
+ {
+ (yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));
+}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1909 "parser.y"
+#line 1882 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1924 "parser.y"
+#line 1897 "parser.y"
{(yyval.code)=(yyvsp[(2) - (3)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1925 "parser.y"
+#line 1898 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1928 "parser.y"
+#line 1901 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1935 "parser.y"
- {PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);}
+#line 1908 "parser.y"
+ {
+ PASS_ALWAYS
+ if(as3_pass) {
+ (yyval.code) = (yyvsp[(3) - (4)].code);
+ } else {
+ (yyval.code) = 0;
+ }
+ as3_pass=(yyvsp[(1) - (4)].number_int);
+}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1939 "parser.y"
+#line 1920 "parser.y"
{(yyval.code)=(yyvsp[(1) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1940 "parser.y"
+#line 1921 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1944 "parser.y"
+#line 1925 "parser.y"
{
code_t**cc = &global->init->method->body->code;
*cc = code_append(*cc, (yyvsp[(1) - (1)].code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1951 "parser.y"
+#line 1932 "parser.y"
{
PASS12
(yyval.number_int)=as3_pass;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1970 "parser.y"
- {(yyval.value)=(yyvsp[(2) - (2)].value);}
+#line 1951 "parser.y"
+ {(yyval.node)=(yyvsp[(2) - (2)].node);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1971 "parser.y"
- {(yyval.value).c=abc_pushundefined(0);
- (yyval.value).t=TYPE_ANY;
- }
+#line 1952 "parser.y"
+ {(yyval.node)=mkdummynode();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1975 "parser.y"
+#line 1954 "parser.y"
{(yyval.code)=(yyvsp[(2) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1976 "parser.y"
+#line 1955 "parser.y"
{(yyval.code)=(yyvsp[(2) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1978 "parser.y"
+#line 1957 "parser.y"
{(yyval.code) = (yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1979 "parser.y"
+#line 1958 "parser.y"
{(yyval.code) = code_append((yyvsp[(1) - (3)].code), (yyvsp[(3) - (3)].code));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 1982 "parser.y"
+#line 1961 "parser.y"
{
PASS12
if(variable_exists((yyvsp[(1) - (3)].id)))
new_variable((yyvsp[(1) - (3)].id), 0, 1, 0);
PASS2
- if(!is_subtype_of((yyvsp[(3) - (3)].value).t, (yyvsp[(2) - (3)].classinfo))) {
- syntaxerror("Can't convert %s to %s", (yyvsp[(3) - (3)].value).t->name,
- (yyvsp[(2) - (3)].classinfo)->name);
- }
-
char slot = 0;
int index = 0;
if(state->method->uses_slots) {
(yyval.code) = slot?abc_getscopeobject(0, 1):0;
+ typedcode_t v = node_read((yyvsp[(3) - (3)].node));
+ if(!is_subtype_of(v.t, (yyvsp[(2) - (3)].classinfo))) {
+ syntaxerror("Can't convert %s to %s", v.t->name, (yyvsp[(2) - (3)].classinfo)->name);
+ }
if((yyvsp[(2) - (3)].classinfo)) {
- if((yyvsp[(3) - (3)].value).c->prev || (yyvsp[(3) - (3)].value).c->opcode != OPCODE_PUSHUNDEFINED) {
- (yyval.code) = code_append((yyval.code), (yyvsp[(3) - (3)].value).c);
- (yyval.code) = converttype((yyval.code), (yyvsp[(3) - (3)].value).t, (yyvsp[(2) - (3)].classinfo));
+ if(v.c->prev || v.c->opcode != OPCODE_PUSHUNDEFINED) {
+ (yyval.code) = code_append((yyval.code), v.c);
+ (yyval.code) = converttype((yyval.code), v.t, (yyvsp[(2) - (3)].classinfo));
} else {
- code_free((yyvsp[(3) - (3)].value).c);
+ code_free(v.c);
(yyval.code) = defaultvalue((yyval.code), (yyvsp[(2) - (3)].classinfo));
}
} else {
- if((yyvsp[(3) - (3)].value).c->prev || (yyvsp[(3) - (3)].value).c->opcode != OPCODE_PUSHUNDEFINED) {
- (yyval.code) = code_append((yyval.code), (yyvsp[(3) - (3)].value).c);
+ if(v.c->prev || v.c->opcode != OPCODE_PUSHUNDEFINED) {
+ (yyval.code) = code_append((yyval.code), v.c);
(yyval.code) = abc_coerce_a((yyval.code));
} else {
// don't do anything
- code_free((yyvsp[(3) - (3)].value).c);
+ code_free(v.c);
code_free((yyval.code));
(yyval.code) = 0;
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2042 "parser.y"
+#line 2020 "parser.y"
{(yyval.code) = code_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2043 "parser.y"
+#line 2021 "parser.y"
{(yyval.code)=(yyvsp[(2) - (2)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2046 "parser.y"
+#line 2024 "parser.y"
{PASS12 new_state();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2046 "parser.y"
+#line 2024 "parser.y"
{
(yyval.code) = code_new();
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2065 "parser.y"
+#line 2043 "parser.y"
{(yyval.code)=code_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2072 "parser.y"
+#line 2050 "parser.y"
{
PASS1 (yyval.id)=(yyvsp[(2) - (3)].id);new_variable((yyvsp[(2) - (3)].id),0,1,0);
PASS2 (yyval.id)=(yyvsp[(2) - (3)].id);new_variable((yyvsp[(2) - (3)].id),(yyvsp[(3) - (3)].classinfo),1,0);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2076 "parser.y"
+#line 2054 "parser.y"
{
PASS12
(yyval.id)=(yyvsp[(1) - (1)].id);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2081 "parser.y"
+#line 2059 "parser.y"
{PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (2)].id);(yyval.for_start).each=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2082 "parser.y"
+#line 2060 "parser.y"
{PASS12 new_state();(yyval.for_start).name=(yyvsp[(1) - (3)].id);(yyval.for_start).each=1;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2084 "parser.y"
+#line 2062 "parser.y"
{
if((yyvsp[(1) - (8)].for_start).each) syntaxerror("invalid syntax: ; not allowed in for each statement");
(yyval.code) = code_new();
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2104 "parser.y"
+#line 2082 "parser.y"
{
variable_t*var = find_variable(state, (yyvsp[(2) - (6)].id));
if(!var) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2152 "parser.y"
+#line 2130 "parser.y"
{PASS12 new_state();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2152 "parser.y"
+#line 2130 "parser.y"
{
(yyval.code) = code_new();
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2171 "parser.y"
+#line 2149 "parser.y"
{PASS12 new_state();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2171 "parser.y"
+#line 2149 "parser.y"
{
(yyval.code) = code_new();
code_t*loopstart = (yyval.code) = abc_label((yyval.code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2186 "parser.y"
+#line 2164 "parser.y"
{
(yyval.code) = abc___break__(0, "");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2189 "parser.y"
+#line 2167 "parser.y"
{
(yyval.code) = abc___break__(0, (yyvsp[(2) - (2)].id));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2192 "parser.y"
+#line 2170 "parser.y"
{
(yyval.code) = abc___continue__(0, "");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2195 "parser.y"
+#line 2173 "parser.y"
{
(yyval.code) = abc___continue__(0, (yyvsp[(2) - (2)].id));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2199 "parser.y"
+#line 2177 "parser.y"
{(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2200 "parser.y"
+#line 2178 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2201 "parser.y"
+#line 2179 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2202 "parser.y"
+#line 2180 "parser.y"
{(yyval.code)=code_append((yyvsp[(1) - (2)].code),(yyvsp[(2) - (2)].code));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2203 "parser.y"
+#line 2181 "parser.y"
{(yyval.code)=(yyvsp[(1) - (1)].code);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2204 "parser.y"
+#line 2182 "parser.y"
{(yyval.code)=code_append((yyval.code),(yyvsp[(2) - (2)].code));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2206 "parser.y"
+#line 2184 "parser.y"
{
(yyval.code) = abc_getlocal(0, state->switch_var);
(yyval.code) = code_append((yyval.code), node_read((yyvsp[(2) - (4)].node)).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2217 "parser.y"
+#line 2195 "parser.y"
{
(yyval.code) = (yyvsp[(3) - (3)].code);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2220 "parser.y"
+#line 2198 "parser.y"
{PASS12 new_state();state->switch_var=alloc_local();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2220 "parser.y"
+#line 2198 "parser.y"
{
(yyval.code) = node_read((yyvsp[(4) - (8)].node)).c;
(yyval.code) = abc_setlocal((yyval.code), state->switch_var);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2251 "parser.y"
+#line 2229 "parser.y"
{PASS12 new_state();
state->exception_name=(yyvsp[(3) - (5)].id);
PASS1 new_variable((yyvsp[(3) - (5)].id), 0, 0, 0);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2256 "parser.y"
+#line 2234 "parser.y"
{
namespace_t name_ns = {ACCESS_PACKAGE, ""};
multiname_t name = {QNAME, &name_ns, 0, (yyvsp[(3) - (9)].id)};
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2276 "parser.y"
+#line 2254 "parser.y"
{PASS12 new_state();state->exception_name=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2276 "parser.y"
+#line 2254 "parser.y"
{
(yyvsp[(4) - (5)].code) = var_block((yyvsp[(4) - (5)].code));
if(!(yyvsp[(4) - (5)].code)) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2292 "parser.y"
+#line 2270 "parser.y"
{(yyval.catch_list).l=list_new();(yyval.catch_list).finally=0;list_append((yyval.catch_list).l,(yyvsp[(1) - (1)].exception));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2293 "parser.y"
+#line 2271 "parser.y"
{(yyval.catch_list)=(yyvsp[(1) - (2)].catch_list);list_append((yyval.catch_list).l,(yyvsp[(2) - (2)].exception));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2294 "parser.y"
+#line 2272 "parser.y"
{(yyval.catch_list)=(yyvsp[(1) - (1)].catch_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2295 "parser.y"
+#line 2273 "parser.y"
{
(yyval.catch_list) = (yyvsp[(1) - (2)].catch_list);
(yyval.catch_list).finally = 0;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2303 "parser.y"
+#line 2281 "parser.y"
{
(yyval.catch_list).l=list_new();
(yyval.catch_list).finally = 0;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2312 "parser.y"
+#line 2290 "parser.y"
{PASS12 new_state();
state->method->has_exceptions=1;
state->method->late_binding=1;//for invariant scope_code
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2315 "parser.y"
+#line 2293 "parser.y"
{
code_t*out = abc_nop(0);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2361 "parser.y"
+#line 2339 "parser.y"
{
(yyval.code)=(yyvsp[(2) - (2)].value).c;
(yyval.code)=abc_throw((yyval.code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2365 "parser.y"
+#line 2343 "parser.y"
{
if(!state->exception_name)
syntaxerror("re-throw only possible within a catch block");
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2376 "parser.y"
+#line 2354 "parser.y"
{
new_state();
if(state->method->has_exceptions) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2386 "parser.y"
+#line 2364 "parser.y"
{
/* remove getlocal;pushwith from scope code again */
state->method->scope_code = code_cutlast(code_cutlast(state->method->scope_code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2404 "parser.y"
+#line 2382 "parser.y"
{PASS12 (yyval.id)="package";}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2405 "parser.y"
+#line 2383 "parser.y"
{PASS12 (yyval.id)=(yyvsp[(1) - (1)].id);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2407 "parser.y"
+#line 2385 "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;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2408 "parser.y"
+#line 2386 "parser.y"
{PASS12 (yyval.id)=strdup((yyvsp[(1) - (1)].id));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2410 "parser.y"
+#line 2388 "parser.y"
{PASS12 startpackage((yyvsp[(2) - (3)].id));free((yyvsp[(2) - (3)].id));(yyvsp[(2) - (3)].id)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2411 "parser.y"
+#line 2389 "parser.y"
{PASS12 endpackage();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2412 "parser.y"
+#line 2390 "parser.y"
{PASS12 startpackage("");}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2413 "parser.y"
+#line 2391 "parser.y"
{PASS12 endpackage();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2435 "parser.y"
+#line 2413 "parser.y"
{
PASS12
slotinfo_t*s = registry_find((yyvsp[(2) - (2)].classinfo)->package, (yyvsp[(2) - (2)].classinfo)->name);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2449 "parser.y"
+#line 2427 "parser.y"
{
PASS12
if(strncmp("flash.", (yyvsp[(2) - (4)].id), 6) && as3_pass==1) {
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2465 "parser.y"
+#line 2443 "parser.y"
{PASS12 (yyval.flags).flags=0;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2466 "parser.y"
+#line 2444 "parser.y"
{PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2467 "parser.y"
+#line 2445 "parser.y"
{PASS12 (yyval.flags)=(yyvsp[(1) - (1)].flags);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2468 "parser.y"
+#line 2446 "parser.y"
{
PASS12
(yyval.flags).flags=(yyvsp[(1) - (2)].flags).flags|(yyvsp[(2) - (2)].flags).flags;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2475 "parser.y"
+#line 2453 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_PUBLIC;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2476 "parser.y"
+#line 2454 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_PRIVATE;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2477 "parser.y"
+#line 2455 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_PROTECTED;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2478 "parser.y"
+#line 2456 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_STATIC;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2479 "parser.y"
+#line 2457 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_DYNAMIC;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2480 "parser.y"
+#line 2458 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_FINAL;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2481 "parser.y"
+#line 2459 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_OVERRIDE;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2482 "parser.y"
+#line 2460 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_NATIVE;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2483 "parser.y"
+#line 2461 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_PACKAGEINTERNAL;(yyval.flags).ns=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2484 "parser.y"
+#line 2462 "parser.y"
{PASS12 (yyval.flags).flags=FLAG_NAMESPACE;
(yyval.flags).ns=(yyvsp[(1) - (1)].id);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2488 "parser.y"
+#line 2466 "parser.y"
{PASS12 (yyval.classinfo)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2489 "parser.y"
+#line 2467 "parser.y"
{PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2491 "parser.y"
+#line 2469 "parser.y"
{PASS12 (yyval.classinfo_list)=list_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2492 "parser.y"
+#line 2470 "parser.y"
{PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2494 "parser.y"
+#line 2472 "parser.y"
{PASS12 (yyval.classinfo_list)=list_new();}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2495 "parser.y"
+#line 2473 "parser.y"
{PASS12 (yyval.classinfo_list)=(yyvsp[(2) - (2)].classinfo_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2499 "parser.y"
+#line 2477 "parser.y"
{PASS12 startclass(&(yyvsp[(1) - (6)].flags),(yyvsp[(3) - (6)].id),(yyvsp[(4) - (6)].classinfo),(yyvsp[(5) - (6)].classinfo_list));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2501 "parser.y"
+#line 2479 "parser.y"
{PASS12 endclass();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2505 "parser.y"
+#line 2483 "parser.y"
{PASS12 (yyvsp[(1) - (5)].flags).flags|=FLAG_INTERFACE;
startclass(&(yyvsp[(1) - (5)].flags),(yyvsp[(3) - (5)].id),0,(yyvsp[(4) - (5)].classinfo_list));}
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2508 "parser.y"
+#line 2486 "parser.y"
{PASS12 endclass();(yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2517 "parser.y"
+#line 2495 "parser.y"
{PASS_ALWAYS as3_pass=(yyvsp[(1) - (4)].number_int);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2521 "parser.y"
+#line 2499 "parser.y"
{
code_t*c = state->cls->static_init->header;
c = code_append(c, (yyvsp[(1) - (1)].code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2532 "parser.y"
+#line 2510 "parser.y"
{
syntaxerror("variable declarations not allowed in interfaces");
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2535 "parser.y"
+#line 2513 "parser.y"
{
PASS12
(yyvsp[(1) - (8)].flags).flags |= FLAG_PUBLIC;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2569 "parser.y"
+#line 2547 "parser.y"
{PASS12 setslotstate(&(yyvsp[(1) - (2)].flags),(yyvsp[(2) - (2)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2569 "parser.y"
+#line 2547 "parser.y"
{PASS12 (yyval.code)=(yyvsp[(4) - (4)].code);setslotstate(0, 0);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2571 "parser.y"
+#line 2549 "parser.y"
{PASS12 (yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2572 "parser.y"
+#line 2550 "parser.y"
{PASS12 (yyval.code)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2575 "parser.y"
+#line 2553 "parser.y"
{
PASS12
int flags = slotstate_flags->flags;
t = trait_new_member(traits, 0, multiname_clone(&mname), 0);
}
info->slot = t->slot_id;
-
- /* initalization code (if needed) */
- code_t*c = 0;
- if((yyvsp[(3) - (3)].value).c && !is_pushundefined((yyvsp[(3) - (3)].value).c)) {
- c = abc_getlocal_0(c);
- c = code_append(c, (yyvsp[(3) - (3)].value).c);
- c = converttype(c, (yyvsp[(3) - (3)].value).t, (yyvsp[(2) - (3)].classinfo));
- c = abc_setslot(c, t->slot_id);
+
+ constant_t cval = (yyvsp[(3) - (3)].node)->type->eval((yyvsp[(3) - (3)].node));
+ if(cval.type!=CONSTANT_UNKNOWN) {
+ /* compile time constant */
+ t->value = malloc(sizeof(constant_t));
+ memcpy(t->value, &cval, sizeof(constant_t));
+ info->value = constant_clone(t->value);
+ } else {
+ typedcode_t v = node_read((yyvsp[(3) - (3)].node));
+ /* initalization code (if needed) */
+ code_t*c = 0;
+ if(v.c && !is_pushundefined(v.c)) {
+ c = abc_getlocal_0(c);
+ c = code_append(c, v.c);
+ c = converttype(c, v.t, (yyvsp[(2) - (3)].classinfo));
+ c = abc_setslot(c, t->slot_id);
+ }
+ *code = code_append(*code, c);
}
- *code = code_append(*code, c);
-
if(slotstate_varconst==KW_CONST) {
t->kind= TRAIT_CONST;
+ info->flags |= FLAG_CONST;
}
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2659 "parser.y"
+#line 2646 "parser.y"
{(yyval.constant)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2660 "parser.y"
- {(yyval.constant)=(yyvsp[(2) - (2)].constant);}
+#line 2647 "parser.y"
+ {
+ (yyval.constant) = malloc(sizeof(constant_t));
+ *(yyval.constant) = node_eval((yyvsp[(2) - (2)].node));
+ if((yyval.constant)->type == CONSTANT_UNKNOWN)
+ syntaxerror("can't evaluate default parameter value (needs to be a compile-time constant)");
+}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2663 "parser.y"
+#line 2655 "parser.y"
{(yyval.constant) = constant_new_int((yyvsp[(1) - (1)].number_int));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2664 "parser.y"
+#line 2656 "parser.y"
{
(yyval.constant) = constant_new_uint((yyvsp[(1) - (1)].number_uint));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2667 "parser.y"
+#line 2659 "parser.y"
{(yyval.constant) = constant_new_float((yyvsp[(1) - (1)].number_float));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2668 "parser.y"
+#line 2660 "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;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2669 "parser.y"
+#line 2661 "parser.y"
{(yyval.constant) = constant_new_true((yyvsp[(1) - (1)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2670 "parser.y"
+#line 2662 "parser.y"
{(yyval.constant) = constant_new_false((yyvsp[(1) - (1)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2671 "parser.y"
+#line 2663 "parser.y"
{(yyval.constant) = constant_new_null((yyvsp[(1) - (1)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2672 "parser.y"
+#line 2664 "parser.y"
{(yyval.constant) = constant_new_undefined((yyvsp[(1) - (1)].token));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2673 "parser.y"
+#line 2665 "parser.y"
{(yyval.constant) = constant_new_float(__builtin_nan(""));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2688 "parser.y"
+#line 2680 "parser.y"
{
PASS12
memset(&(yyval.params),0,sizeof((yyval.params)));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2692 "parser.y"
+#line 2684 "parser.y"
{
PASS12
(yyval.params)=(yyvsp[(1) - (1)].params);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2698 "parser.y"
+#line 2690 "parser.y"
{
PASS12
memset(&(yyval.params),0,sizeof((yyval.params)));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2704 "parser.y"
+#line 2696 "parser.y"
{
PASS12
(yyval.params) =(yyvsp[(1) - (4)].params);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2712 "parser.y"
+#line 2704 "parser.y"
{
PASS12
(yyval.params) = (yyvsp[(1) - (3)].params);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2717 "parser.y"
+#line 2709 "parser.y"
{
PASS12
memset(&(yyval.params),0,sizeof((yyval.params)));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2723 "parser.y"
+#line 2715 "parser.y"
{
PASS12
(yyval.param) = rfx_calloc(sizeof(param_t));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2731 "parser.y"
+#line 2723 "parser.y"
{
PASS12
(yyval.param) = rfx_calloc(sizeof(param_t));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2741 "parser.y"
+#line 2733 "parser.y"
{PASS12 (yyval.token)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2744 "parser.y"
+#line 2736 "parser.y"
{PASS12 startfunction(&(yyvsp[(1) - (9)].flags),(yyvsp[(3) - (9)].token),(yyvsp[(4) - (9)].id),&(yyvsp[(6) - (9)].params),(yyvsp[(8) - (9)].classinfo));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2745 "parser.y"
+#line 2737 "parser.y"
{
PASS1
endfunction(&(yyvsp[(1) - (12)].flags),(yyvsp[(3) - (12)].token),(yyvsp[(4) - (12)].id),&(yyvsp[(6) - (12)].params),0,0);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2761 "parser.y"
+#line 2753 "parser.y"
{PASS12 (yyval.id)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2763 "parser.y"
+#line 2755 "parser.y"
{PASS12 innerfunction((yyvsp[(2) - (7)].id),&(yyvsp[(4) - (7)].params),(yyvsp[(6) - (7)].classinfo));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2764 "parser.y"
+#line 2756 "parser.y"
{
PASS1
endfunction(0,0,(yyvsp[(2) - (10)].id),&(yyvsp[(4) - (10)].params),0,0);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2786 "parser.y"
+#line 2778 "parser.y"
{
PASS1 NEW(unresolvedinfo_t,c);
memset(c, 0, sizeof(*c));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2805 "parser.y"
+#line 2797 "parser.y"
{
PASS1 NEW(unresolvedinfo_t,c);
memset(c, 0, sizeof(*c));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2822 "parser.y"
+#line 2814 "parser.y"
{PASS12 (yyval.classinfo_list)=list_new();list_append((yyval.classinfo_list), (yyvsp[(1) - (1)].classinfo));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2823 "parser.y"
+#line 2815 "parser.y"
{PASS12 (yyval.classinfo_list)=(yyvsp[(1) - (3)].classinfo_list);list_append((yyval.classinfo_list),(yyvsp[(3) - (3)].classinfo));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2825 "parser.y"
+#line 2817 "parser.y"
{PASS12 (yyval.classinfo)=(yyvsp[(1) - (1)].classinfo);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2826 "parser.y"
- {PASS12 (yyval.classinfo)=registry_getanytype();}
+#line 2818 "parser.y"
+ {PASS12 (yyval.classinfo)=TYPE_ANY;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2827 "parser.y"
- {PASS12 (yyval.classinfo)=registry_getanytype();}
+#line 2819 "parser.y"
+ {PASS12 (yyval.classinfo)=TYPE_ANY;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2836 "parser.y"
+#line 2828 "parser.y"
{PASS12 (yyval.classinfo)=(yyvsp[(2) - (2)].classinfo);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2837 "parser.y"
+#line 2829 "parser.y"
{PASS12 (yyval.classinfo)=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2841 "parser.y"
+#line 2833 "parser.y"
{(yyval.value_list).cc=0;(yyval.value_list).number=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2842 "parser.y"
+#line 2834 "parser.y"
{(yyval.value_list)=(yyvsp[(2) - (3)].value_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2844 "parser.y"
+#line 2836 "parser.y"
{(yyval.value_list).cc=0;(yyval.value_list).number=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2848 "parser.y"
+#line 2840 "parser.y"
{(yyval.value_list).number=1;
(yyval.value_list).cc = (yyvsp[(1) - (1)].value).c;
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2852 "parser.y"
+#line 2844 "parser.y"
{(yyval.value_list) = (yyvsp[(1) - (2)].value_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2853 "parser.y"
+#line 2845 "parser.y"
{
(yyval.value_list).number= (yyvsp[(1) - (2)].value_list).number+1;
(yyval.value_list).cc = code_append((yyvsp[(1) - (2)].value_list).cc, (yyvsp[(2) - (2)].value).c);
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2859 "parser.y"
+#line 2851 "parser.y"
{
typedcode_t v = node_read((yyvsp[(2) - (4)].node));
(yyval.value).c = v.c;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2896 "parser.y"
+#line 2888 "parser.y"
{
typedcode_t v = node_read((yyvsp[(1) - (4)].node));
if(TYPE_IS_FUNCTION(v.t) && v.t->data) {
(yyval.value).t = ((methodinfo_t*)(v.t->data))->return_type;
+ } else if(TYPE_IS_CLASS(v.t) && v.t->data) {
+ // calling a class is like a typecast
+ (yyval.value).t = (classinfo_t*)v.t->data;
} else {
(yyval.value).c = abc_coerce_a((yyval.value).c);
(yyval.value).t = TYPE_ANY;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2943 "parser.y"
+#line 2938 "parser.y"
{
if(!state->cls) syntaxerror("super() not allowed outside of a class");
if(!state->method) syntaxerror("super() not allowed outside of a function");
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2964 "parser.y"
+#line 2959 "parser.y"
{
typedcode_t v = node_read((yyvsp[(2) - (2)].node));
(yyval.value).c = v.c;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2986 "parser.y"
+#line 2981 "parser.y"
{
(yyval.code) = abc_returnvoid(0);
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2989 "parser.y"
+#line 2984 "parser.y"
{
(yyval.code) = (yyvsp[(2) - (2)].value).c;
(yyval.code) = abc_returnvalue((yyval.code));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2996 "parser.y"
+#line 2991 "parser.y"
{
(yyval.value) = node_read((yyvsp[(1) - (1)].node));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 2999 "parser.y"
+#line 2994 "parser.y"
{
(yyval.value) = node_read((yyvsp[(1) - (1)].node));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3002 "parser.y"
+#line 2997 "parser.y"
{
(yyval.node) = mkmultinode(&node_comma, (yyvsp[(1) - (1)].node));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3005 "parser.y"
+#line 3000 "parser.y"
{
(yyval.node) = multinode_extend((yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3008 "parser.y"
+#line 3003 "parser.y"
{
(yyval.code) = node_exec((yyvsp[(1) - (1)].node));
}
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3011 "parser.y"
+#line 3006 "parser.y"
{
(yyval.code) = (yyvsp[(1) - (3)].code);
(yyval.code) = code_append((yyval.code), node_exec((yyvsp[(3) - (3)].node)));
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3016 "parser.y"
+#line 3011 "parser.y"
{(yyval.value_list).cc=0;(yyval.value_list).number=0;}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3017 "parser.y"
+#line 3012 "parser.y"
{(yyval.value_list)=(yyvsp[(1) - (1)].value_list);}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3019 "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).number = 2;
-}
+#line 3014 "parser.y"
+ {(yyval.code)=abc_pushstring(0,(yyvsp[(1) - (1)].id));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3025 "parser.y"
- {
- (yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc;
- (yyval.value_list).number = (yyvsp[(1) - (5)].value_list).number+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);
-}
+#line 3015 "parser.y"
+ {(yyval.code)=abc_pushstring2(0,&(yyvsp[(1) - (1)].str));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3034 "parser.y"
- {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
- }
+#line 3017 "parser.y"
+ {
+ (yyval.value_list).cc = 0;
+ (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(1) - (3)].code));
+ (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(3) - (3)].value).c);
+ (yyval.value_list).number = 2;
+}
+ }
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3035 "parser.y"
- {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
+#line 3023 "parser.y"
+ {
+ (yyval.value_list).cc = (yyvsp[(1) - (5)].value_list).cc;
+ (yyval.value_list).number = (yyvsp[(1) - (5)].value_list).number+2;
+ (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(3) - (5)].code));
+ (yyval.value_list).cc = code_append((yyval.value_list).cc, (yyvsp[(5) - (5)].value).c);
+}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3036 "parser.y"
+#line 3032 "parser.y"
{(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3037 "parser.y"
+#line 3033 "parser.y"
{(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3038 "parser.y"
+#line 3034 "parser.y"
{(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3039 "parser.y"
+#line 3035 "parser.y"
{(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
}
break;
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3041 "parser.y"
+#line 3036 "parser.y"
+ {(yyval.node) = mkcodenode((yyvsp[(1) - (1)].value));}
+ }
+ break;
+
+
+
+ case 238:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3037 "parser.y"
+ {(yyval.node) = (yyvsp[(1) - (1)].node);}
+ }
+ break;
+
+
+
+ case 239:
+ if(as3_pass==2) {
+
+/* Line 1464 of skeleton.m4 */
+#line 3039 "parser.y"
{
(yyval.node) = mkconstnode((yyvsp[(1) - (1)].constant));
}
- case 238:
+ case 240:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3046 "parser.y"
+#line 3044 "parser.y"
{
typedcode_t v;
v.c = 0;
- case 239:
+ case 241:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3066 "parser.y"
+#line 3064 "parser.y"
{
typedcode_t v;
v.c = code_new();
- case 240:
+ case 242:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3076 "parser.y"
+#line 3074 "parser.y"
{
typedcode_t v;
v.c = code_new();
- case 241:
+ case 243:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3085 "parser.y"
+#line 3083 "parser.y"
{(yyval.node) = mknode2(&node_lt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
- case 242:
+ case 244:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3086 "parser.y"
+#line 3084 "parser.y"
{(yyval.node) = mknode2(&node_gt,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
- case 243:
+ case 245:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3087 "parser.y"
+#line 3085 "parser.y"
{(yyval.node) = mknode2(&node_le,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
- case 244:
+ case 246:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3088 "parser.y"
+#line 3086 "parser.y"
{(yyval.node) = mknode2(&node_ge,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
- case 245:
+ case 247:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3089 "parser.y"
+#line 3087 "parser.y"
{(yyval.node) = mknode2(&node_eqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
- case 246:
+ case 248:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3090 "parser.y"
+#line 3088 "parser.y"
{(yyval.node) = mknode2(&node_eqeqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
- case 247:
+ case 249:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3091 "parser.y"
+#line 3089 "parser.y"
{(yyval.node) = mknode2(&node_noteqeq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
- case 248:
+ case 250:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3092 "parser.y"
+#line 3090 "parser.y"
{(yyval.node) = mknode2(&node_noteq,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
- case 249:
+ case 251:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3093 "parser.y"
+#line 3091 "parser.y"
{(yyval.node) = mknode2(&node_oror,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
- case 250:
+ case 252:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3094 "parser.y"
+#line 3092 "parser.y"
{(yyval.node) = mknode2(&node_andand,(yyvsp[(1) - (3)].node),(yyvsp[(3) - (3)].node));}
}
break;
- case 251:
+ case 253:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3095 "parser.y"
+#line 3093 "parser.y"
{(yyval.node) = mknode1(&node_not, (yyvsp[(2) - (2)].node));}
}
break;
- case 252:
+ case 254:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3096 "parser.y"
+#line 3094 "parser.y"
{(yyval.node) = mknode1(&node_bitnot, (yyvsp[(2) - (2)].node));}
}
break;
- case 253:
+ case 255:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3097 "parser.y"
+#line 3095 "parser.y"
{(yyval.node) = mknode2(&node_bitand, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 254:
+ case 256:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3098 "parser.y"
+#line 3096 "parser.y"
{(yyval.node) = mknode2(&node_bitxor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 255:
+ case 257:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3099 "parser.y"
+#line 3097 "parser.y"
{(yyval.node) = mknode2(&node_bitor, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 256:
+ case 258:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3100 "parser.y"
+#line 3098 "parser.y"
{(yyval.node) = mknode2(&node_shr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 257:
+ case 259:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3101 "parser.y"
+#line 3099 "parser.y"
{(yyval.node) = mknode2(&node_ushr, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 258:
+ case 260:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3102 "parser.y"
+#line 3100 "parser.y"
{(yyval.node) = mknode2(&node_shl, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 259:
+ case 261:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3103 "parser.y"
+#line 3101 "parser.y"
{(yyval.node) = mknode2(&node_div, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 260:
+ case 262:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3104 "parser.y"
+#line 3102 "parser.y"
{(yyval.node) = mknode2(&node_mod, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 261:
+ case 263:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3105 "parser.y"
+#line 3103 "parser.y"
{(yyval.node) = mknode2(&node_plus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 262:
+ case 264:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3106 "parser.y"
+#line 3104 "parser.y"
{(yyval.node) = mknode2(&node_minus, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 263:
+ case 265:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3107 "parser.y"
+#line 3105 "parser.y"
{(yyval.node) = mknode2(&node_multiply, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 264:
+ case 266:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3108 "parser.y"
+#line 3106 "parser.y"
{(yyval.node) = mknode2(&node_in, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 265:
+ case 267:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3109 "parser.y"
+#line 3107 "parser.y"
{(yyval.node) = mknode2(&node_as, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 266:
+ case 268:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3110 "parser.y"
+#line 3108 "parser.y"
{(yyval.node) = mknode2(&node_instanceof, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 267:
+ case 269:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3111 "parser.y"
+#line 3109 "parser.y"
{(yyval.node) = mknode2(&node_is, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 268:
+ case 270:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3112 "parser.y"
+#line 3110 "parser.y"
{(yyval.node) = mknode1(&node_typeof, (yyvsp[(3) - (4)].node));}
}
break;
- case 269:
+ case 271:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3113 "parser.y"
+#line 3111 "parser.y"
{(yyval.node) = mknode1(&node_void, (yyvsp[(2) - (2)].node));}
}
break;
- case 270:
+ case 272:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3114 "parser.y"
+#line 3112 "parser.y"
{ (yyval.node) = mkconstnode(constant_new_undefined());}
}
break;
- case 271:
+ case 273:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3115 "parser.y"
+#line 3113 "parser.y"
{ (yyval.node)=(yyvsp[(2) - (3)].node);}
}
break;
- case 272:
+ case 274:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3116 "parser.y"
+#line 3114 "parser.y"
{(yyval.node) = mknode1(&node_neg, (yyvsp[(2) - (2)].node));}
}
break;
- case 273:
+ case 275:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3117 "parser.y"
+#line 3115 "parser.y"
{(yyval.node) = mknode2(&node_arraylookup, (yyvsp[(1) - (4)].node),(yyvsp[(3) - (4)].node));}
}
break;
- case 274:
+ case 276:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3118 "parser.y"
+#line 3116 "parser.y"
{(yyval.node) = mknode2(&node_muleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 275:
+ case 277:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3119 "parser.y"
+#line 3117 "parser.y"
{(yyval.node) = mknode2(&node_modeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 276:
+ case 278:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3120 "parser.y"
+#line 3118 "parser.y"
{(yyval.node) = mknode2(&node_shleq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 277:
+ case 279:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3121 "parser.y"
+#line 3119 "parser.y"
{(yyval.node) = mknode2(&node_shreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 278:
+ case 280:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3122 "parser.y"
+#line 3120 "parser.y"
{(yyval.node) = mknode2(&node_ushreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 279:
+ case 281:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3123 "parser.y"
+#line 3121 "parser.y"
{ (yyval.node) = mknode2(&node_diveq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 280:
+ case 282:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3124 "parser.y"
+#line 3122 "parser.y"
{ (yyval.node) = mknode2(&node_bitoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 281:
+ case 283:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3125 "parser.y"
+#line 3123 "parser.y"
{ (yyval.node) = mknode2(&node_bitxoreq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 282:
+ case 284:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3126 "parser.y"
+#line 3124 "parser.y"
{ (yyval.node) = mknode2(&node_bitandeq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 283:
+ case 285:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3127 "parser.y"
+#line 3125 "parser.y"
{ (yyval.node) = mknode2(&node_pluseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 284:
+ case 286:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3128 "parser.y"
+#line 3126 "parser.y"
{ (yyval.node) = mknode2(&node_minuseq, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 285:
+ case 287:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3129 "parser.y"
+#line 3127 "parser.y"
{ (yyval.node) = mknode2(&node_assign, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node));}
}
break;
- case 286:
+ case 288:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3130 "parser.y"
+#line 3128 "parser.y"
{ (yyval.node) = mknode3(&node_tenary, (yyvsp[(1) - (5)].node), (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node));}
}
break;
- case 287:
+ case 289:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3132 "parser.y"
+#line 3130 "parser.y"
{ (yyval.node) = mknode1(&node_rplusplus, (yyvsp[(1) - (2)].node));}
}
break;
- case 288:
+ case 290:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3133 "parser.y"
+#line 3131 "parser.y"
{ (yyval.node) = mknode1(&node_rminusminus, (yyvsp[(1) - (2)].node));}
}
break;
- case 289:
+ case 291:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3134 "parser.y"
+#line 3132 "parser.y"
{(yyval.node) = mknode1(&node_lplusplus, (yyvsp[(2) - (2)].node)); }
}
break;
- case 290:
+ case 292:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3135 "parser.y"
+#line 3133 "parser.y"
{(yyval.node) = mknode1(&node_lminusminus, (yyvsp[(2) - (2)].node)); }
}
break;
- case 291:
+ case 293:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3138 "parser.y"
+#line 3136 "parser.y"
{ if(!state->cls->info)
syntaxerror("super keyword not allowed outside a class");
classinfo_t*t = state->cls->info->superclass;
- case 292:
+ case 294:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3152 "parser.y"
+#line 3150 "parser.y"
{
// attribute TODO
(yyval.node) = mkdummynode();
- case 293:
+ case 295:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3158 "parser.y"
+#line 3156 "parser.y"
{
// child attribute TODO
(yyval.node) = mkdummynode();
- case 294:
+ case 296:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3164 "parser.y"
+#line 3162 "parser.y"
{
// namespace declaration TODO
(yyval.node) = mkdummynode();
- case 295:
+ case 297:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3170 "parser.y"
+#line 3168 "parser.y"
{
// descendants TODO
(yyval.node) = mkdummynode();
- case 296:
+ case 298:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3176 "parser.y"
+#line 3174 "parser.y"
{
// filter TODO
(yyval.node) = mkdummynode();
- case 297:
+ case 299:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3189 "parser.y"
+#line 3187 "parser.y"
{
typedcode_t v1 = node_read((yyvsp[(1) - (3)].node));
(yyval.value).c = v1.c;
(yyval.value).c = abc_getslot((yyval.value).c, f->slot);
} else {
if(!f) {
- as3_warning("Access of undefined property '%s' in %s", (yyvsp[(3) - (3)].id), t->name);
+ as3_softwarning("Access of undefined property '%s' in %s", (yyvsp[(3) - (3)].id), t->name);
}
-
MEMBER_MULTINAME(m, f, (yyvsp[(3) - (3)].id));
(yyval.value).c = abc_getproperty2((yyval.value).c, &m);
}
(yyval.value).t = slotinfo_gettype((slotinfo_t*)f);
if(!(yyval.value).t)
(yyval.value).c = abc_coerce_a((yyval.value).c);
+
} else if(v1.c && v1.c->opcode == OPCODE___PUSHPACKAGE__) {
string_t*package = v1.c->data[0];
char*package2 = concat3(package->str, ".", (yyvsp[(3) - (3)].id));
multiname_t m = {MULTINAME, 0, &nopackage_namespace_set, (yyvsp[(3) - (3)].id)};
(yyval.value).c = abc_getproperty2((yyval.value).c, &m);
(yyval.value).c = abc_coerce_a((yyval.value).c);
- (yyval.value).t = registry_getanytype();
+ (yyval.value).t = TYPE_ANY;
}
}
}
- case 298:
+ case 300:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3247 "parser.y"
+#line 3245 "parser.y"
{
PASS1
/* Queue unresolved identifiers for checking against the parent
as3_schedule_class_noerror(state->package, (yyvsp[(1) - (1)].id));
PASS2
- (yyval.value).t = 0;
- (yyval.value).c = 0;
+ typedcode_t o;
+ o.t = 0;
+ o.c = 0;
+ (yyval.node) = 0;
+
slotinfo_t*a = 0;
memberinfo_t*f = 0;
/* look at variables */
if((v = find_variable(state, (yyvsp[(1) - (1)].id)))) {
// $1 is a local variable
- (yyval.value).c = abc_getlocal((yyval.value).c, v->index);
- (yyval.value).t = v->type;
+ o.c = abc_getlocal(o.c, v->index);
+ o.t = v->type;
+ (yyval.node) = mkcodenode(o);
break;
}
if((v = find_slot(state, (yyvsp[(1) - (1)].id)))) {
- (yyval.value).c = abc_getscopeobject((yyval.value).c, 1);
- (yyval.value).c = abc_getslot((yyval.value).c, v->index);
- (yyval.value).t = v->type;
+ o.c = abc_getscopeobject(o.c, 1);
+ o.c = abc_getslot(o.c, v->index);
+ o.t = v->type;
+ (yyval.node) = mkcodenode(o);
break;
}
/* look at current class' members */
if(!state->method->inner &&
state->cls &&
- (f = findmember_nsset(state->cls->info, (yyvsp[(1) - (1)].id), 1)) &&
- (f->flags&FLAG_STATIC) >= i_am_static)
+ (f = findmember_nsset(state->cls->info, (yyvsp[(1) - (1)].id), 1)))
{
- // $1 is a function in this class
+ // $1 is a member or attribute in this class
int var_is_static = (f->flags&FLAG_STATIC);
- if(f->kind == INFOTYPE_METHOD) {
- (yyval.value).t = TYPE_FUNCTION(f);
- } else {
- (yyval.value).t = f->type;
+ if(f->kind == INFOTYPE_VAR && (f->flags&FLAG_CONST)) {
+ /* if the variable is a constant (and we know what is evaluates to), we
+ can just use the value itself */
+ varinfo_t*v = (varinfo_t*)f;
+ if(v->value) {
+ (yyval.node) = mkconstnode(v->value);
+ break;
+ }
}
- if(var_is_static && !i_am_static) {
- /* access to a static member from a non-static location.
- do this via findpropstrict:
- there doesn't seem to be any non-lookup way to access
- static properties of a class */
- state->method->late_binding = 1;
- (yyval.value).t = f->type;
- namespace_t ns = {f->access, f->package};
- 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);
- break;
- } else if(f->slot>0) {
- (yyval.value).c = abc_getlocal_0((yyval.value).c);
- (yyval.value).c = abc_getslot((yyval.value).c, f->slot);
- break;
- } else {
- namespace_t ns = {f->access, f->package};
- 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);
- break;
+
+ if(var_is_static >= i_am_static) {
+ if(f->kind == INFOTYPE_METHOD) {
+ o.t = TYPE_FUNCTION(f);
+ } else {
+ o.t = f->type;
+ }
+
+ if(var_is_static && !i_am_static) {
+ /* access to a static member from a non-static location.
+ do this via findpropstrict:
+ there doesn't seem to be any non-lookup way to access
+ static properties of a class */
+ state->method->late_binding = 1;
+ o.t = f->type;
+ namespace_t ns = {f->access, f->package};
+ multiname_t m = {QNAME, &ns, 0, (yyvsp[(1) - (1)].id)};
+ o.c = abc_findpropstrict2(o.c, &m);
+ o.c = abc_getproperty2(o.c, &m);
+ (yyval.node) = mkcodenode(o);
+ break;
+ } else if(f->slot>0) {
+ o.c = abc_getlocal_0(o.c);
+ o.c = abc_getslot(o.c, f->slot);
+ (yyval.node) = mkcodenode(o);
+ break;
+ } else {
+ namespace_t ns = {f->access, f->package};
+ multiname_t m = {QNAME, &ns, 0, (yyvsp[(1) - (1)].id)};
+ o.c = abc_getlocal_0(o.c);
+ o.c = abc_getproperty2(o.c, &m);
+ (yyval.node) = mkcodenode(o);
+ break;
+ }
}
}
/* look at actual classes, in the current package and imported */
if((a = find_class((yyvsp[(1) - (1)].id)))) {
- (yyval.value) = push_class(a);
+ o = push_class(a);
+ (yyval.node) = mkcodenode(o);
break;
}
/* look through package prefixes */
if(dict_contains(state->import_toplevel_packages, (yyvsp[(1) - (1)].id)) ||
registry_ispackage((yyvsp[(1) - (1)].id))) {
- (yyval.value).c = abc___pushpackage__((yyval.value).c, (yyvsp[(1) - (1)].id));
- (yyval.value).t = 0;
+ o.c = abc___pushpackage__(o.c, (yyvsp[(1) - (1)].id));
+ o.t = 0;
+ (yyval.node) = mkcodenode(o); //?
break;
}
multiname_t m = {MULTINAME, 0, &nopackage_namespace_set, (yyvsp[(1) - (1)].id)};
- (yyval.value).t = 0;
- (yyval.value).c = abc_findpropstrict2((yyval.value).c, &m);
- (yyval.value).c = abc_getproperty2((yyval.value).c, &m);
+ o.t = 0;
+ o.c = abc_findpropstrict2(o.c, &m);
+ o.c = abc_getproperty2(o.c, &m);
+ (yyval.node) = mkcodenode(o);
+ break;
}
}
}
- case 299:
+ case 301:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3356 "parser.y"
+#line 3378 "parser.y"
{
PASS12
NEW(namespace_decl_t,n);
- case 300:
+ case 302:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3363 "parser.y"
+#line 3385 "parser.y"
{
PASS12
NEW(namespace_decl_t,n);
- case 301:
+ case 303:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3370 "parser.y"
+#line 3392 "parser.y"
{
PASS12
NEW(namespace_decl_t,n);
- case 302:
+ case 304:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3377 "parser.y"
+#line 3399 "parser.y"
{
PASS12
trie_put(active_namespaces, (yyvsp[(2) - (2)].namespace_decl)->name, (void*)(yyvsp[(2) - (2)].namespace_decl)->url);
- case 303:
+ case 305:
if(as3_pass==2) {
/* Line 1464 of skeleton.m4 */
-#line 3401 "parser.y"
+#line 3423 "parser.y"
{
PASS12
const char*url = (yyvsp[(3) - (3)].classinfo)->name;
syntaxerror("Couldn't resolve namespace %s", (yyvsp[(3) - (3)].classinfo)->name);
}
- if(!s || s->kind != INFOTYPE_SLOT)
+ if(!s || s->kind != INFOTYPE_VAR)
syntaxerror("%s.%s is not a public namespace (%d)", (yyvsp[(3) - (3)].classinfo)->package, (yyvsp[(3) - (3)].classinfo)->name, s?s->kind:-1);
if(!s->value || !NS_TYPE(s->value->type))
syntaxerror("%s.%s is not a namespace", (yyvsp[(3) - (3)].classinfo)->package, (yyvsp[(3) - (3)].classinfo)->name);
/* Line 1464 of skeleton.m4 */
-#line 7843 "parser.tab.c"
+#line 7881 "parser.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);