diff options
author | Michael Stapelberg <stapelberg@debian.org> | 2013-03-04 21:27:36 +0100 |
---|---|---|
committer | Michael Stapelberg <michael@stapelberg.de> | 2013-03-04 21:27:36 +0100 |
commit | 04b08da9af0c450d645ab7389d1467308cfc2db8 (patch) | |
tree | db247935fa4f2f94408edc3acd5d0d4f997aa0d8 /src/cmd/cc | |
parent | 917c5fb8ec48e22459d77e3849e6d388f93d3260 (diff) | |
download | golang-04b08da9af0c450d645ab7389d1467308cfc2db8.tar.gz |
Imported Upstream version 1.1~hg20130304upstream/1.1_hg20130304
Diffstat (limited to 'src/cmd/cc')
-rw-r--r-- | src/cmd/cc/Makefile | 2 | ||||
-rw-r--r-- | src/cmd/cc/cc.h | 28 | ||||
-rw-r--r-- | src/cmd/cc/cc.y | 6 | ||||
-rw-r--r-- | src/cmd/cc/dcl.c | 4 | ||||
-rw-r--r-- | src/cmd/cc/doc.go | 4 | ||||
-rw-r--r-- | src/cmd/cc/dpchk.c | 130 | ||||
-rw-r--r-- | src/cmd/cc/godefs.c | 4 | ||||
-rw-r--r-- | src/cmd/cc/lex.c | 130 | ||||
-rw-r--r-- | src/cmd/cc/lexbody | 17 | ||||
-rw-r--r-- | src/cmd/cc/macbody | 8 | ||||
-rw-r--r-- | src/cmd/cc/pgen.c | 5 | ||||
-rw-r--r-- | src/cmd/cc/sub.c | 8 | ||||
-rw-r--r-- | src/cmd/cc/y.tab.c | 1536 | ||||
-rw-r--r-- | src/cmd/cc/y.tab.h | 92 |
14 files changed, 1026 insertions, 948 deletions
diff --git a/src/cmd/cc/Makefile b/src/cmd/cc/Makefile index 109578297..34df31d6f 100644 --- a/src/cmd/cc/Makefile +++ b/src/cmd/cc/Makefile @@ -7,4 +7,4 @@ include ../../Make.dist install: y.tab.h y.tab.h: cc.y - LANG=C LANGUAGE=en_US.UTF8 bison -d -v -y a.y + LANG=C LANGUAGE=en_US.UTF8 bison -d -v -y cc.y diff --git a/src/cmd/cc/cc.h b/src/cmd/cc/cc.h index 4c527a2b3..866aeb0ab 100644 --- a/src/cmd/cc/cc.h +++ b/src/cmd/cc/cc.h @@ -300,6 +300,7 @@ enum OPOSTINC, OPREDEC, OPREINC, + OPREFETCH, OPROTO, OREGISTER, ORETURN, @@ -324,6 +325,7 @@ enum OINDEX, OFAS, OREGPAIR, + OROTL, OEND }; @@ -442,25 +444,6 @@ struct Funct Sym* castfr[NTYPE]; }; -struct Dynimp -{ - char* local; - char* remote; - char* path; -}; - -EXTERN Dynimp *dynimp; -EXTERN int ndynimp; - -struct Dynexp -{ - char* local; - char* remote; -}; - -EXTERN Dynexp *dynexp; -EXTERN int ndynexp; - EXTERN struct { Type* tenum; /* type of entire enum */ @@ -473,7 +456,7 @@ EXTERN int autobn; EXTERN int32 autoffset; EXTERN int blockno; EXTERN Decl* dclstack; -EXTERN char debug[256]; +EXTERN int debug[256]; EXTERN Hist* ehist; EXTERN int32 firstbit; EXTERN Sym* firstarg; @@ -526,10 +509,12 @@ EXTERN int packflg; EXTERN int fproundflg; EXTERN int textflag; EXTERN int dataflag; +EXTERN int flag_largemodel; EXTERN int ncontin; EXTERN int canreach; EXTERN int warnreach; EXTERN Bits zbits; +EXTERN Fmt pragcgobuf; extern char *onames[], *tnames[], *gnames[]; extern char *cnames[], *qnames[], *bnames[]; @@ -771,8 +756,7 @@ void pragfpround(void); void pragdataflag(void); void pragtextflag(void); void pragincomplete(void); -void pragdynimport(void); -void pragdynexport(void); +void pragcgo(char*); /* * calls to machine depend part diff --git a/src/cmd/cc/cc.y b/src/cmd/cc/cc.y index 515a80372..830dd21f8 100644 --- a/src/cmd/cc/cc.y +++ b/src/cmd/cc/cc.y @@ -93,7 +93,7 @@ %token <sval> LSTRING LLSTRING %token LAUTO LBREAK LCASE LCHAR LCONTINUE LDEFAULT LDO %token LDOUBLE LELSE LEXTERN LFLOAT LFOR LGOTO -%token LIF LINT LLONG LREGISTER LRETURN LSHORT LSIZEOF LUSED +%token LIF LINT LLONG LPREFETCH LREGISTER LRETURN LSHORT LSIZEOF LUSED %token LSTATIC LSTRUCT LSWITCH LTYPEDEF LTYPESTR LUNION LUNSIGNED %token LWHILE LVOID LENUM LSIGNED LCONSTNT LVOLATILE LSET LSIGNOF %token LRESTRICT LINLINE @@ -535,6 +535,10 @@ ulstmnt: { $$ = new(OUSED, $3, Z); } +| LPREFETCH '(' zelist ')' ';' + { + $$ = new(OPREFETCH, $3, Z); + } | LSET '(' zelist ')' ';' { $$ = new(OSET, $3, Z); diff --git a/src/cmd/cc/dcl.c b/src/cmd/cc/dcl.c index a3ed9772d..edfc7e75a 100644 --- a/src/cmd/cc/dcl.c +++ b/src/cmd/cc/dcl.c @@ -1058,6 +1058,10 @@ sigind(Type *t, Typetab *tt) return p-a; if((n&15) == 0){ na = malloc((n+16)*sizeof(Type*)); + if(na == nil) { + print("%s: out of memory", argv0); + errorexit(); + } memmove(na, a, n*sizeof(Type*)); free(a); a = tt->a = na; diff --git a/src/cmd/cc/doc.go b/src/cmd/cc/doc.go index 51aa8b192..10901b441 100644 --- a/src/cmd/cc/doc.go +++ b/src/cmd/cc/doc.go @@ -2,10 +2,12 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. +// +build ignore + /* This directory contains the portable section of the Plan 9 C compilers. See ../6c, ../8c, and ../5c for more information. */ -package documentation +package main diff --git a/src/cmd/cc/dpchk.c b/src/cmd/cc/dpchk.c index c579e20d9..2f038f520 100644 --- a/src/cmd/cc/dpchk.c +++ b/src/cmd/cc/dpchk.c @@ -662,65 +662,93 @@ getimpsym(void) return lookup(); } -void -pragdynimport(void) +static int +more(void) { - Sym *local, *remote; - char *path; - Dynimp *f; - - local = getimpsym(); - if(local == nil) - goto err; - - remote = getimpsym(); - if(remote == nil) - goto err; - - path = getquoted(); - if(path == nil) - goto err; - - if(ndynimp%32 == 0) - dynimp = realloc(dynimp, (ndynimp+32)*sizeof dynimp[0]); - f = &dynimp[ndynimp++]; - f->local = local->name; - f->remote = remote->name; - f->path = path; - goto out; - -err: - yyerror("usage: #pragma dynimport local remote \"path\""); - -out: - while(getnsc() != '\n') - ; + int c; + + do + c = getnsc(); + while(c == ' ' || c == '\t'); + unget(c); + return c != '\n'; } void -pragdynexport(void) +pragcgo(char *verb) { Sym *local, *remote; - Dynexp *f; - - local = getsym(); - if(local == nil) - goto err; - - remote = getsym(); - if(remote == nil) - goto err; + char *p; - if(ndynexp%32 == 0) - dynexp = realloc(dynexp, (ndynexp+32)*sizeof dynexp[0]); - f = &dynexp[ndynexp++]; - f->local = local->name; - f->remote = remote->name; - goto out; - -err: - yyerror("usage: #pragma dynexport local remote"); + if(strcmp(verb, "cgo_dynamic_linker") == 0 || strcmp(verb, "dynlinker") == 0) { + p = getquoted(); + if(p == nil) + goto err1; + fmtprint(&pragcgobuf, "cgo_dynamic_linker %q\n", p); + goto out; + + err1: + yyerror("usage: #pragma cgo_dynamic_linker \"path\""); + goto out; + } + + if(strcmp(verb, "cgo_export") == 0 || strcmp(verb, "dynexport") == 0) { + local = getimpsym(); + if(local == nil) + goto err2; + if(!more()) { + fmtprint(&pragcgobuf, "cgo_export %q\n", local->name); + goto out; + } + remote = getimpsym(); + if(remote == nil) + goto err2; + fmtprint(&pragcgobuf, "cgo_export %q %q\n", local->name, remote->name); + goto out; + + err2: + yyerror("usage: #pragma cgo_export local [remote]"); + goto out; + } + + if(strcmp(verb, "cgo_import_dynamic") == 0 || strcmp(verb, "dynimport") == 0) { + local = getimpsym(); + if(local == nil) + goto err3; + if(!more()) { + fmtprint(&pragcgobuf, "cgo_import_dynamic %q\n", local->name); + goto out; + } + remote = getimpsym(); + if(remote == nil) + goto err3; + if(!more()) { + fmtprint(&pragcgobuf, "cgo_import_dynamic %q %q\n", local->name, remote->name); + goto out; + } + p = getquoted(); + if(p == nil) + goto err3; + fmtprint(&pragcgobuf, "cgo_import_dynamic %q %q %q\n", local->name, remote->name, p); + goto out; + + err3: + yyerror("usage: #pragma cgo_import_dynamic local [remote [\"library\"]]"); + goto out; + } + + if(strcmp(verb, "cgo_import_static") == 0) { + local = getimpsym(); + if(local == nil) + goto err4; + fmtprint(&pragcgobuf, "cgo_import_static %q\n", local->name); + goto out; + err4: + yyerror("usage: #pragma cgo_import_static local [remote]"); + goto out; + } + out: while(getnsc() != '\n') ; diff --git a/src/cmd/cc/godefs.c b/src/cmd/cc/godefs.c index 4274c5626..7457bd000 100644 --- a/src/cmd/cc/godefs.c +++ b/src/cmd/cc/godefs.c @@ -188,10 +188,10 @@ printtypename(Type *t) switch(t->etype) { case TINT: - Bprint(&outbuf, "int"); + Bprint(&outbuf, "int32"); break; case TUINT: - Bprint(&outbuf, "uint"); + Bprint(&outbuf, "uint32"); break; case TCHAR: Bprint(&outbuf, "int8"); diff --git a/src/cmd/cc/lex.c b/src/cmd/cc/lex.c index 8aeb1a334..4fb0be9a4 100644 --- a/src/cmd/cc/lex.c +++ b/src/cmd/cc/lex.c @@ -86,10 +86,37 @@ pathchar(void) */ void +usage(void) +{ + print("usage: %cc [options] file.c...\n", thechar); + flagprint(1); + errorexit(); +} + +void +dospim(void) +{ + thechar = '0'; + thestring = "spim"; +} + +char **defs; +int ndef; + +void +dodef(char *p) +{ + if(ndef%8 == 0) + defs = allocn(defs, ndef*sizeof(char *), + 8*sizeof(char *)); + defs[ndef++] = p; + dodefine(p); +} + +void main(int argc, char *argv[]) { - char **defs, *p; - int c, ndef; + int c; ensuresymb(NSYMB); memset(debug, 0, sizeof(debug)); @@ -97,52 +124,67 @@ main(int argc, char *argv[]) cinit(); ginit(); arginit(); + + fmtstrinit(&pragcgobuf); + quotefmtinstall(); tufield = simplet((1L<<tfield->etype) | BUNSIGNED); ndef = 0; defs = nil; outfile = 0; setinclude("."); - ARGBEGIN { - default: - c = ARGC(); - if(c >= 0 && c < sizeof(debug)) - debug[c]++; - break; - - case 'l': /* for little-endian mips */ - if(thechar != 'v'){ - print("can only use -l with vc\n"); - errorexit(); - } - thechar = '0'; - thestring = "spim"; - break; - - case 'o': - outfile = ARGF(); - break; - case 'D': - p = ARGF(); - if(p) { - if(ndef%8 == 0) - defs = allocn(defs, ndef*sizeof(char *), - 8*sizeof(char *)); - defs[ndef++] = p; - dodefine(p); - } - break; + flagcount("+", "pass -+ to preprocessor", &debug['+']); + flagcount(".", "pass -. to preprocessor", &debug['.']); + flagcount("<", "debug shift", &debug['<']); + flagcount("A", "debug alignment", &debug['A']); + flagcount("B", "allow pre-ANSI code", &debug['B']); + if(thechar == '5') + flagcount("C", "debug constant propagation", &debug['C']); + flagfn1("D", "name[=value]: add #define", dodef); + flagcount("F", "enable print format checks", &debug['F']); + if(thechar == '5') + flagcount("H", "debug shift propagation", &debug['H']); + flagfn1("I", "dir: add dir to include path", setinclude); + flagcount("L", "debug lexer", &debug['L']); + flagcount("M", "debug move generation", &debug['M']); + flagcount("N", "disable optimizations", &debug['N']); + flagcount("P", "debug peephole optimizer", &debug['P']); + flagcount("Q", "print exported Go definitions", &debug['Q']); + flagcount("R", "debug register optimizer", &debug['R']); + flagcount("S", "print assembly", &debug['S']); + flagcount("T", "enable type signatures", &debug['T']); + flagcount("V", "enable pointer type checks", &debug['V']); + flagcount("W", "debug switch generation", &debug['W']); + flagcount("X", "abort on error", &debug['X']); + flagcount("Y", "debug index generation", &debug['Y']); + flagcount("Z", "skip code generation", &debug['Z']); + flagcount("a", "print acid definitions", &debug['a']); + flagcount("c", "debug constant evaluation", &debug['c']); + flagcount("d", "debug declarations", &debug['d']); + flagcount("e", "debug macro expansion", &debug['e']); + flagcount("f", "debug pragmas", &debug['f']); + flagcount("g", "debug code generation", &debug['g']); + flagcount("i", "debug initialization", &debug['i']); + if(thechar == 'v') + flagfn0("l", "little-endian mips mode", dospim); + flagcount("m", "debug multiplication", &debug['m']); + flagcount("n", "print acid/Go to file, not stdout", &debug['n']); + flagstr("o", "file: set output file", &outfile); + flagcount("p", "invoke C preprocessor", &debug['p']); + flagcount("q", "print Go definitions", &debug['q']); + flagcount("s", "print #define assembly offsets", &debug['s']); + flagcount("t", "debug code generation", &debug['t']); + flagcount("w", "enable warnings", &debug['w']); + flagcount("v", "increase debug verbosity", &debug['v']); + if(thechar == '6') + flagcount("largemodel", "generate code that assumes a large memory model", &flag_largemodel); + + flagparse(&argc, &argv, usage); + + if(argc < 1 && outfile == 0) + usage(); - case 'I': - p = ARGF(); - setinclude(p); - break; - } ARGEND - if(argc < 1 && outfile == 0) { - print("usage: %cc [-options] files\n", thechar); - errorexit(); - } if(argc > 1){ print("can't compile multiple files\n"); errorexit(); @@ -377,11 +419,16 @@ lookup(void) symb[1] = '"'; } - // turn · into . for(r=w=symb; *r; r++) { + // turn · (U+00B7) into . + // turn ∕ (U+2215) into / if((uchar)*r == 0xc2 && (uchar)*(r+1) == 0xb7) { *w++ = '.'; r++; + }else if((uchar)*r == 0xe2 && (uchar)*(r+1) == 0x88 && (uchar)*(r+2) == 0x95) { + *w++ = '/'; + r++; + r++; }else *w++ = *r; } @@ -1174,6 +1221,7 @@ struct "inline", LINLINE, 0, "int", LINT, TINT, "long", LLONG, TLONG, + "PREFETCH", LPREFETCH, 0, "register", LREGISTER, 0, "restrict", LRESTRICT, 0, "return", LRETURN, 0, diff --git a/src/cmd/cc/lexbody b/src/cmd/cc/lexbody index d339cf9a2..5fa980267 100644 --- a/src/cmd/cc/lexbody +++ b/src/cmd/cc/lexbody @@ -47,15 +47,9 @@ pragvararg(void) } void -pragdynimport(void) -{ - while(getnsc() != '\n') - ; -} - -void -pragdynexport(void) +pragcgo(char *name) { + USED(name); while(getnsc() != '\n') ; } @@ -244,11 +238,16 @@ lookup(void) symb[1] = '"'; } - // turn · into . for(r=w=symb; *r; r++) { + // turn · (U+00B7) into . + // turn ∕ (U+2215) into / if((uchar)*r == 0xc2 && (uchar)*(r+1) == 0xb7) { *w++ = '.'; r++; + }else if((uchar)*r == 0xe2 && (uchar)*(r+1) == 0x88 && (uchar)*(r+2) == 0x95) { + *w++ = '/'; + r++; + r++; }else *w++ = *r; } diff --git a/src/cmd/cc/macbody b/src/cmd/cc/macbody index 874e82d25..f0a507669 100644 --- a/src/cmd/cc/macbody +++ b/src/cmd/cc/macbody @@ -743,12 +743,8 @@ macprag(void) pragincomplete(); return; } - if(s && strcmp(s->name, "dynimport") == 0) { - pragdynimport(); - return; - } - if(s && strcmp(s->name, "dynexport") == 0) { - pragdynexport(); + if(s && (strncmp(s->name, "cgo_", 4) == 0 || strncmp(s->name, "dyn", 3) == 0)) { + pragcgo(s->name); return; } while(getnsc() != '\n') diff --git a/src/cmd/cc/pgen.c b/src/cmd/cc/pgen.c index 3a686102f..b06aa996d 100644 --- a/src/cmd/cc/pgen.c +++ b/src/cmd/cc/pgen.c @@ -528,6 +528,7 @@ loop: case OSET: case OUSED: + case OPREFETCH: usedset(n->left, o); break; } @@ -542,6 +543,10 @@ usedset(Node *n, int o) return; } complex(n); + if(o == OPREFETCH) { + gprefetch(n); + return; + } switch(n->op) { case OADDR: /* volatile */ gins(ANOP, n, Z); diff --git a/src/cmd/cc/sub.c b/src/cmd/cc/sub.c index 72d671b2f..3a5576385 100644 --- a/src/cmd/cc/sub.c +++ b/src/cmd/cc/sub.c @@ -847,12 +847,6 @@ simplifyshift(Node *n) c2 = n->left->left->right->vconst; c3 = n->left->right->vconst; -/* - if(debug['h']) - print("%.3o %d %d %d #%.ux\n", - (s1<<3)|s2, c1, c2, topbit(c3), c3); -*/ - o = n->op; switch((s1<<3)|s2) { case 000: /* (((e <<u c2) & c3) <<u c1) */ @@ -1497,6 +1491,7 @@ Init onamesinit[] = OPOSTINC, 0, "POSTINC", OPREDEC, 0, "PREDEC", OPREINC, 0, "PREINC", + OPREFETCH, 0, "PREFETCH", OPROTO, 0, "PROTO", OREGISTER, 0, "REGISTER", ORETURN, 0, "RETURN", @@ -1520,6 +1515,7 @@ Init onamesinit[] = OINDEX, 0, "INDEX", OFAS, 0, "FAS", OREGPAIR, 0, "REGPAIR", + OROTL, 0, "ROTL", OEND, 0, "END", -1, 0, 0, }; diff --git a/src/cmd/cc/y.tab.c b/src/cmd/cc/y.tab.c index af8328abd..10938c10b 100644 --- a/src/cmd/cc/y.tab.c +++ b/src/cmd/cc/y.tab.c @@ -115,28 +115,29 @@ LIF = 304, LINT = 305, LLONG = 306, - LREGISTER = 307, - LRETURN = 308, - LSHORT = 309, - LSIZEOF = 310, - LUSED = 311, - LSTATIC = 312, - LSTRUCT = 313, - LSWITCH = 314, - LTYPEDEF = 315, - LTYPESTR = 316, - LUNION = 317, - LUNSIGNED = 318, - LWHILE = 319, - LVOID = 320, - LENUM = 321, - LSIGNED = 322, - LCONSTNT = 323, - LVOLATILE = 324, - LSET = 325, - LSIGNOF = 326, - LRESTRICT = 327, - LINLINE = 328 + LPREFETCH = 307, + LREGISTER = 308, + LRETURN = 309, + LSHORT = 310, + LSIZEOF = 311, + LUSED = 312, + LSTATIC = 313, + LSTRUCT = 314, + LSWITCH = 315, + LTYPEDEF = 316, + LTYPESTR = 317, + LUNION = 318, + LUNSIGNED = 319, + LWHILE = 320, + LVOID = 321, + LENUM = 322, + LSIGNED = 323, + LCONSTNT = 324, + LVOLATILE = 325, + LSET = 326, + LSIGNOF = 327, + LRESTRICT = 328, + LINLINE = 329 }; #endif /* Tokens. */ @@ -189,28 +190,29 @@ #define LIF 304 #define LINT 305 #define LLONG 306 -#define LREGISTER 307 -#define LRETURN 308 -#define LSHORT 309 -#define LSIZEOF 310 -#define LUSED 311 -#define LSTATIC 312 -#define LSTRUCT 313 -#define LSWITCH 314 -#define LTYPEDEF 315 -#define LTYPESTR 316 -#define LUNION 317 -#define LUNSIGNED 318 -#define LWHILE 319 -#define LVOID 320 -#define LENUM 321 -#define LSIGNED 322 -#define LCONSTNT 323 -#define LVOLATILE 324 -#define LSET 325 -#define LSIGNOF 326 -#define LRESTRICT 327 -#define LINLINE 328 +#define LPREFETCH 307 +#define LREGISTER 308 +#define LRETURN 309 +#define LSHORT 310 +#define LSIZEOF 311 +#define LUSED 312 +#define LSTATIC 313 +#define LSTRUCT 314 +#define LSWITCH 315 +#define LTYPEDEF 316 +#define LTYPESTR 317 +#define LUNION 318 +#define LUNSIGNED 319 +#define LWHILE 320 +#define LVOID 321 +#define LENUM 322 +#define LSIGNED 323 +#define LCONSTNT 324 +#define LVOLATILE 325 +#define LSET 326 +#define LSIGNOF 327 +#define LRESTRICT 328 +#define LINLINE 329 @@ -270,7 +272,7 @@ typedef union YYSTYPE vlong vval; } /* Line 193 of yacc.c. */ -#line 274 "y.tab.c" +#line 276 "y.tab.c" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 @@ -283,7 +285,7 @@ typedef union YYSTYPE /* Line 216 of yacc.c. */ -#line 287 "y.tab.c" +#line 289 "y.tab.c" #ifdef short # undef short @@ -501,17 +503,17 @@ union yyalloc #define YYLAST 1188 /* YYNTOKENS -- Number of terminals. */ -#define YYNTOKENS 98 +#define YYNTOKENS 99 /* YYNNTS -- Number of nonterminals. */ #define YYNNTS 75 /* YYNRULES -- Number of rules. */ -#define YYNRULES 246 +#define YYNRULES 247 /* YYNRULES -- Number of states. */ -#define YYNSTATES 412 +#define YYNSTATES 417 /* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */ #define YYUNDEFTOK 2 -#define YYMAXUTOK 328 +#define YYMAXUTOK 329 #define YYTRANSLATE(YYX) \ ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK) @@ -522,16 +524,16 @@ static const yytype_uint8 yytranslate[] = 0, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 96, 2, 2, 2, 35, 22, 2, - 38, 92, 33, 31, 4, 32, 36, 34, 2, 2, + 2, 2, 2, 97, 2, 2, 2, 35, 22, 2, + 38, 93, 33, 31, 4, 32, 36, 34, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 17, 3, 25, 5, 26, 16, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 37, 2, 93, 21, 2, 2, 2, 2, 2, + 2, 37, 2, 94, 21, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 2, 94, 20, 95, 97, 2, 2, 2, + 2, 2, 2, 95, 20, 96, 98, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, @@ -551,7 +553,7 @@ static const yytype_uint8 yytranslate[] = 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, - 83, 84, 85, 86, 87, 88, 89, 90, 91 + 83, 84, 85, 86, 87, 88, 89, 90, 91, 92 }; #if YYDEBUG @@ -569,102 +571,103 @@ static const yytype_uint16 yyprhs[] = 208, 212, 213, 216, 219, 221, 224, 228, 231, 234, 237, 239, 242, 244, 247, 250, 251, 254, 260, 268, 269, 280, 286, 294, 298, 304, 307, 310, 314, 320, - 326, 327, 329, 330, 332, 334, 336, 340, 342, 346, - 350, 354, 358, 362, 366, 370, 374, 378, 382, 386, - 390, 394, 398, 402, 406, 410, 414, 420, 424, 428, - 432, 436, 440, 444, 448, 452, 456, 460, 464, 466, - 472, 480, 482, 485, 488, 491, 494, 497, 500, 503, - 506, 509, 512, 516, 522, 528, 533, 538, 542, 546, - 549, 552, 554, 556, 558, 560, 562, 564, 566, 568, - 570, 572, 574, 576, 579, 581, 584, 585, 587, 589, - 593, 594, 599, 600, 602, 604, 606, 608, 611, 614, - 618, 621, 625, 627, 629, 632, 633, 638, 641, 644, - 645, 650, 653, 656, 657, 658, 666, 667, 673, 675, - 677, 680, 681, 684, 686, 688, 690, 692, 695, 697, - 699, 701, 705, 708, 712, 714, 716, 718, 720, 722, - 724, 726, 728, 730, 732, 734, 736, 738, 740, 742, - 744, 746, 748, 750, 752, 754, 756 + 326, 332, 333, 335, 336, 338, 340, 342, 346, 348, + 352, 356, 360, 364, 368, 372, 376, 380, 384, 388, + 392, 396, 400, 404, 408, 412, 416, 420, 426, 430, + 434, 438, 442, 446, 450, 454, 458, 462, 466, 470, + 472, 478, 486, 488, 491, 494, 497, 500, 503, 506, + 509, 512, 515, 518, 522, 528, 534, 539, 544, 548, + 552, 555, 558, 560, 562, 564, 566, 568, 570, 572, + 574, 576, 578, 580, 582, 585, 587, 590, 591, 593, + 595, 599, 600, 605, 606, 608, 610, 612, 614, 617, + 620, 624, 627, 631, 633, 635, 638, 639, 644, 647, + 650, 651, 656, 659, 662, 663, 664, 672, 673, 679, + 681, 683, 686, 687, 690, 692, 694, 696, 698, 701, + 703, 705, 707, 711, 714, 718, 720, 722, 724, 726, + 728, 730, 732, 734, 736, 738, 740, 742, 744, 746, + 748, 750, 752, 754, 756, 758, 760, 762 }; /* YYRHS -- A `-1'-separated list of the rules' RHS. */ static const yytype_int16 yyrhs[] = { - 99, 0, -1, -1, 99, 100, -1, 151, 3, -1, - 151, 103, 3, -1, -1, -1, 151, 105, 101, 110, - 102, 128, -1, 105, -1, -1, 105, 104, 5, 122, - -1, 103, 4, 103, -1, 106, -1, 33, 162, 105, - -1, 171, -1, 38, 105, 92, -1, 106, 38, 126, - 92, -1, 106, 37, 138, 93, -1, 154, 3, -1, - 154, 108, 3, -1, 105, -1, -1, 105, 109, 5, - 122, -1, 108, 4, 108, -1, -1, 110, 154, 111, - 3, -1, 105, -1, 111, 4, 111, -1, -1, 153, - 113, 115, 3, -1, -1, 112, 153, 114, 115, 3, - -1, -1, 116, -1, 117, -1, 116, 4, 116, -1, - 105, -1, 171, 17, 139, -1, 17, 139, -1, -1, - 119, -1, 33, 162, -1, 33, 162, 119, -1, 120, - -1, 121, -1, 120, 38, 126, 92, -1, 120, 37, - 138, 93, -1, 38, 92, -1, 37, 138, 93, -1, - 38, 119, 92, -1, 141, -1, 94, 125, 95, -1, - 37, 139, 93, -1, 36, 172, -1, 123, 5, -1, - 122, 4, -1, 124, 122, 4, -1, 123, -1, 124, - 123, -1, 124, -1, 122, -1, 124, 122, -1, -1, - 127, -1, 170, -1, 153, 118, -1, 153, 105, -1, - 36, 36, 36, -1, 127, 4, 127, -1, 94, 129, - 95, -1, -1, 129, 107, -1, 129, 132, -1, 131, - -1, 130, 131, -1, 56, 141, 17, -1, 59, 17, - -1, 42, 17, -1, 1, 3, -1, 134, -1, 130, - 134, -1, 137, -1, 154, 108, -1, 137, 3, -1, - -1, 135, 128, -1, 67, 38, 140, 92, 132, -1, - 67, 38, 140, 92, 132, 62, 132, -1, -1, 136, - 65, 38, 133, 3, 137, 3, 137, 92, 132, -1, - 82, 38, 140, 92, 132, -1, 60, 132, 82, 38, - 140, 92, 3, -1, 71, 137, 3, -1, 77, 38, - 140, 92, 132, -1, 55, 3, -1, 58, 3, -1, - 66, 172, 3, -1, 74, 38, 147, 92, 3, -1, - 88, 38, 147, 92, 3, -1, -1, 140, -1, -1, - 139, -1, 141, -1, 141, -1, 140, 4, 140, -1, - 142, -1, 141, 33, 141, -1, 141, 34, 141, -1, - 141, 35, 141, -1, 141, 31, 141, -1, 141, 32, - 141, -1, 141, 29, 141, -1, 141, 30, 141, -1, - 141, 25, 141, -1, 141, 26, 141, -1, 141, 28, - 141, -1, 141, 27, 141, -1, 141, 24, 141, -1, - 141, 23, 141, -1, 141, 22, 141, -1, 141, 21, - 141, -1, 141, 20, 141, -1, 141, 19, 141, -1, - 141, 18, 141, -1, 141, 16, 140, 17, 141, -1, - 141, 5, 141, -1, 141, 15, 141, -1, 141, 14, - 141, -1, 141, 13, 141, -1, 141, 12, 141, -1, - 141, 11, 141, -1, 141, 9, 141, -1, 141, 10, - 141, -1, 141, 8, 141, -1, 141, 7, 141, -1, - 141, 6, 141, -1, 143, -1, 38, 153, 118, 92, - 142, -1, 38, 153, 118, 92, 94, 125, 95, -1, - 144, -1, 33, 142, -1, 22, 142, -1, 31, 142, - -1, 32, 142, -1, 96, 142, -1, 97, 142, -1, - 40, 142, -1, 41, 142, -1, 73, 143, -1, 89, - 143, -1, 38, 140, 92, -1, 73, 38, 153, 118, - 92, -1, 89, 38, 153, 118, 92, -1, 144, 38, - 147, 92, -1, 144, 37, 140, 93, -1, 144, 39, - 172, -1, 144, 36, 172, -1, 144, 40, -1, 144, - 41, -1, 170, -1, 46, -1, 47, -1, 48, -1, - 49, -1, 45, -1, 44, -1, 50, -1, 51, -1, - 145, -1, 146, -1, 52, -1, 145, 52, -1, 53, - -1, 146, 53, -1, -1, 148, -1, 141, -1, 148, - 4, 148, -1, -1, 94, 150, 112, 95, -1, -1, - 154, -1, 155, -1, 167, -1, 164, -1, 155, 161, - -1, 167, 161, -1, 164, 155, 162, -1, 164, 167, - -1, 164, 167, 161, -1, 152, -1, 152, -1, 76, - 172, -1, -1, 76, 172, 156, 149, -1, 76, 149, - -1, 80, 172, -1, -1, 80, 172, 157, 149, -1, - 80, 149, -1, 84, 172, -1, -1, -1, 84, 172, - 158, 94, 159, 166, 95, -1, -1, 84, 94, 160, - 166, 95, -1, 43, -1, 163, -1, 161, 163, -1, - -1, 162, 169, -1, 167, -1, 169, -1, 168, -1, - 165, -1, 164, 165, -1, 169, -1, 168, -1, 42, - -1, 42, 5, 141, -1, 166, 4, -1, 166, 4, - 166, -1, 57, -1, 72, -1, 68, -1, 69, -1, - 85, -1, 81, -1, 64, -1, 61, -1, 83, -1, - 54, -1, 75, -1, 63, -1, 78, -1, 79, -1, - 70, -1, 91, -1, 86, -1, 87, -1, 90, -1, - 42, -1, 172, -1, 42, -1, 43, -1 + 100, 0, -1, -1, 100, 101, -1, 152, 3, -1, + 152, 104, 3, -1, -1, -1, 152, 106, 102, 111, + 103, 129, -1, 106, -1, -1, 106, 105, 5, 123, + -1, 104, 4, 104, -1, 107, -1, 33, 163, 106, + -1, 172, -1, 38, 106, 93, -1, 107, 38, 127, + 93, -1, 107, 37, 139, 94, -1, 155, 3, -1, + 155, 109, 3, -1, 106, -1, -1, 106, 110, 5, + 123, -1, 109, 4, 109, -1, -1, 111, 155, 112, + 3, -1, 106, -1, 112, 4, 112, -1, -1, 154, + 114, 116, 3, -1, -1, 113, 154, 115, 116, 3, + -1, -1, 117, -1, 118, -1, 117, 4, 117, -1, + 106, -1, 172, 17, 140, -1, 17, 140, -1, -1, + 120, -1, 33, 163, -1, 33, 163, 120, -1, 121, + -1, 122, -1, 121, 38, 127, 93, -1, 121, 37, + 139, 94, -1, 38, 93, -1, 37, 139, 94, -1, + 38, 120, 93, -1, 142, -1, 95, 126, 96, -1, + 37, 140, 94, -1, 36, 173, -1, 124, 5, -1, + 123, 4, -1, 125, 123, 4, -1, 124, -1, 125, + 124, -1, 125, -1, 123, -1, 125, 123, -1, -1, + 128, -1, 171, -1, 154, 119, -1, 154, 106, -1, + 36, 36, 36, -1, 128, 4, 128, -1, 95, 130, + 96, -1, -1, 130, 108, -1, 130, 133, -1, 132, + -1, 131, 132, -1, 56, 142, 17, -1, 59, 17, + -1, 42, 17, -1, 1, 3, -1, 135, -1, 131, + 135, -1, 138, -1, 155, 109, -1, 138, 3, -1, + -1, 136, 129, -1, 67, 38, 141, 93, 133, -1, + 67, 38, 141, 93, 133, 62, 133, -1, -1, 137, + 65, 38, 134, 3, 138, 3, 138, 93, 133, -1, + 83, 38, 141, 93, 133, -1, 60, 133, 83, 38, + 141, 93, 3, -1, 72, 138, 3, -1, 78, 38, + 141, 93, 133, -1, 55, 3, -1, 58, 3, -1, + 66, 173, 3, -1, 75, 38, 148, 93, 3, -1, + 70, 38, 148, 93, 3, -1, 89, 38, 148, 93, + 3, -1, -1, 141, -1, -1, 140, -1, 142, -1, + 142, -1, 141, 4, 141, -1, 143, -1, 142, 33, + 142, -1, 142, 34, 142, -1, 142, 35, 142, -1, + 142, 31, 142, -1, 142, 32, 142, -1, 142, 29, + 142, -1, 142, 30, 142, -1, 142, 25, 142, -1, + 142, 26, 142, -1, 142, 28, 142, -1, 142, 27, + 142, -1, 142, 24, 142, -1, 142, 23, 142, -1, + 142, 22, 142, -1, 142, 21, 142, -1, 142, 20, + 142, -1, 142, 19, 142, -1, 142, 18, 142, -1, + 142, 16, 141, 17, 142, -1, 142, 5, 142, -1, + 142, 15, 142, -1, 142, 14, 142, -1, 142, 13, + 142, -1, 142, 12, 142, -1, 142, 11, 142, -1, + 142, 9, 142, -1, 142, 10, 142, -1, 142, 8, + 142, -1, 142, 7, 142, -1, 142, 6, 142, -1, + 144, -1, 38, 154, 119, 93, 143, -1, 38, 154, + 119, 93, 95, 126, 96, -1, 145, -1, 33, 143, + -1, 22, 143, -1, 31, 143, -1, 32, 143, -1, + 97, 143, -1, 98, 143, -1, 40, 143, -1, 41, + 143, -1, 74, 144, -1, 90, 144, -1, 38, 141, + 93, -1, 74, 38, 154, 119, 93, -1, 90, 38, + 154, 119, 93, -1, 145, 38, 148, 93, -1, 145, + 37, 141, 94, -1, 145, 39, 173, -1, 145, 36, + 173, -1, 145, 40, -1, 145, 41, -1, 171, -1, + 46, -1, 47, -1, 48, -1, 49, -1, 45, -1, + 44, -1, 50, -1, 51, -1, 146, -1, 147, -1, + 52, -1, 146, 52, -1, 53, -1, 147, 53, -1, + -1, 149, -1, 142, -1, 149, 4, 149, -1, -1, + 95, 151, 113, 96, -1, -1, 155, -1, 156, -1, + 168, -1, 165, -1, 156, 162, -1, 168, 162, -1, + 165, 156, 163, -1, 165, 168, -1, 165, 168, 162, + -1, 153, -1, 153, -1, 77, 173, -1, -1, 77, + 173, 157, 150, -1, 77, 150, -1, 81, 173, -1, + -1, 81, 173, 158, 150, -1, 81, 150, -1, 85, + 173, -1, -1, -1, 85, 173, 159, 95, 160, 167, + 96, -1, -1, 85, 95, 161, 167, 96, -1, 43, + -1, 164, -1, 162, 164, -1, -1, 163, 170, -1, + 168, -1, 170, -1, 169, -1, 166, -1, 165, 166, + -1, 170, -1, 169, -1, 42, -1, 42, 5, 142, + -1, 167, 4, -1, 167, 4, 167, -1, 57, -1, + 73, -1, 68, -1, 69, -1, 86, -1, 82, -1, + 64, -1, 61, -1, 84, -1, 54, -1, 76, -1, + 63, -1, 79, -1, 80, -1, 71, -1, 92, -1, + 87, -1, 88, -1, 91, -1, 42, -1, 173, -1, + 42, -1, 43, -1 }; /* YYRLINE[YYN] -- source line where rule number YYN was defined. */ @@ -680,21 +683,21 @@ static const yytype_uint16 yyrline[] = 396, 406, 409, 413, 419, 420, 426, 430, 434, 440, 444, 445, 451, 452, 458, 459, 459, 470, 476, 484, 484, 495, 499, 503, 508, 522, 526, 530, 534, 538, - 544, 547, 550, 553, 556, 563, 564, 570, 571, 575, + 542, 548, 551, 554, 557, 560, 567, 568, 574, 575, 579, 583, 587, 591, 595, 599, 603, 607, 611, 615, 619, 623, 627, 631, 635, 639, 643, 647, 651, 655, - 659, 663, 667, 671, 675, 679, 683, 687, 693, 694, - 701, 709, 710, 714, 718, 722, 726, 730, 734, 738, - 742, 746, 752, 756, 762, 768, 776, 780, 785, 790, - 794, 798, 799, 806, 813, 820, 827, 834, 841, 848, - 855, 856, 859, 869, 887, 897, 915, 918, 921, 922, - 929, 928, 951, 955, 958, 963, 968, 974, 982, 988, - 994, 1000, 1008, 1016, 1023, 1029, 1028, 1040, 1048, 1054, - 1053, 1065, 1073, 1082, 1086, 1081, 1103, 1102, 1111, 1117, - 1118, 1124, 1127, 1133, 1134, 1135, 1138, 1139, 1145, 1146, - 1149, 1153, 1157, 1158, 1161, 1162, 1163, 1164, 1165, 1166, - 1167, 1168, 1169, 1172, 1173, 1174, 1175, 1176, 1177, 1178, - 1181, 1182, 1183, 1186, 1201, 1213, 1214 + 659, 663, 667, 671, 675, 679, 683, 687, 691, 697, + 698, 705, 713, 714, 718, 722, 726, 730, 734, 738, + 742, 746, 750, 756, 760, 766, 772, 780, 784, 789, + 794, 798, 802, 803, 810, 817, 824, 831, 838, 845, + 852, 859, 860, 863, 873, 891, 901, 919, 922, 925, + 926, 933, 932, 955, 959, 962, 967, 972, 978, 986, + 992, 998, 1004, 1012, 1020, 1027, 1033, 1032, 1044, 1052, + 1058, 1057, 1069, 1077, 1086, 1090, 1085, 1107, 1106, 1115, + 1121, 1122, 1128, 1131, 1137, 1138, 1139, 1142, 1143, 1149, + 1150, 1153, 1157, 1161, 1162, 1165, 1166, 1167, 1168, 1169, + 1170, 1171, 1172, 1173, 1176, 1177, 1178, 1179, 1180, 1181, + 1182, 1185, 1186, 1187, 1190, 1205, 1217, 1218 }; #endif @@ -711,8 +714,8 @@ static const char *const yytname[] = "LDCONST", "LCONST", "LLCONST", "LUCONST", "LULCONST", "LVLCONST", "LUVLCONST", "LSTRING", "LLSTRING", "LAUTO", "LBREAK", "LCASE", "LCHAR", "LCONTINUE", "LDEFAULT", "LDO", "LDOUBLE", "LELSE", "LEXTERN", "LFLOAT", - "LFOR", "LGOTO", "LIF", "LINT", "LLONG", "LREGISTER", "LRETURN", - "LSHORT", "LSIZEOF", "LUSED", "LSTATIC", "LSTRUCT", "LSWITCH", + "LFOR", "LGOTO", "LIF", "LINT", "LLONG", "LPREFETCH", "LREGISTER", + "LRETURN", "LSHORT", "LSIZEOF", "LUSED", "LSTATIC", "LSTRUCT", "LSWITCH", "LTYPEDEF", "LTYPESTR", "LUNION", "LUNSIGNED", "LWHILE", "LVOID", "LENUM", "LSIGNED", "LCONSTNT", "LVOLATILE", "LSET", "LSIGNOF", "LRESTRICT", "LINLINE", "')'", "']'", "'{'", "'}'", "'!'", "'~'", @@ -743,38 +746,38 @@ static const yytype_uint16 yytoknum[] = 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, - 327, 328, 41, 93, 123, 125, 33, 126 + 327, 328, 329, 41, 93, 123, 125, 33, 126 }; # endif /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */ static const yytype_uint8 yyr1[] = { - 0, 98, 99, 99, 100, 100, 101, 102, 100, 103, - 104, 103, 103, 105, 105, 106, 106, 106, 106, 107, - 107, 108, 109, 108, 108, 110, 110, 111, 111, 113, - 112, 114, 112, 115, 115, 116, 116, 117, 117, 117, - 118, 118, 119, 119, 119, 120, 120, 120, 121, 121, - 121, 122, 122, 123, 123, 123, 124, 124, 124, 124, - 125, 125, 125, 126, 126, 127, 127, 127, 127, 127, - 128, 129, 129, 129, 130, 130, 131, 131, 131, 132, - 132, 132, 133, 133, 134, 135, 134, 134, 134, 136, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 137, 137, 138, 138, 139, 140, 140, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 142, 142, - 142, 143, 143, 143, 143, 143, 143, 143, 143, 143, + 0, 99, 100, 100, 101, 101, 102, 103, 101, 104, + 105, 104, 104, 106, 106, 107, 107, 107, 107, 108, + 108, 109, 110, 109, 109, 111, 111, 112, 112, 114, + 113, 115, 113, 116, 116, 117, 117, 118, 118, 118, + 119, 119, 120, 120, 120, 121, 121, 121, 122, 122, + 122, 123, 123, 124, 124, 124, 125, 125, 125, 125, + 126, 126, 126, 127, 127, 128, 128, 128, 128, 128, + 129, 130, 130, 130, 131, 131, 132, 132, 132, 133, + 133, 133, 134, 134, 135, 136, 135, 135, 135, 137, + 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 135, 138, 138, 139, 139, 140, 141, 141, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 143, 143, 143, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 144, 144, 144, 144, 144, 144, 144, 144, - 144, 144, 145, 145, 146, 146, 147, 147, 148, 148, - 150, 149, 151, 151, 152, 152, 152, 152, 152, 152, - 152, 152, 153, 154, 155, 156, 155, 155, 155, 157, - 155, 155, 155, 158, 159, 155, 160, 155, 155, 161, - 161, 162, 162, 163, 163, 163, 164, 164, 165, 165, - 166, 166, 166, 166, 167, 167, 167, 167, 167, 167, - 167, 167, 167, 168, 168, 168, 168, 168, 168, 168, - 169, 169, 169, 170, 171, 172, 172 + 144, 144, 144, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 145, 145, 145, 145, 145, 145, 145, + 145, 145, 145, 146, 146, 147, 147, 148, 148, 149, + 149, 151, 150, 152, 152, 153, 153, 153, 153, 153, + 153, 153, 153, 154, 155, 156, 157, 156, 156, 156, + 158, 156, 156, 156, 159, 160, 156, 161, 156, 156, + 162, 162, 163, 163, 164, 164, 164, 165, 165, 166, + 166, 167, 167, 167, 167, 168, 168, 168, 168, 168, + 168, 168, 168, 168, 169, 169, 169, 169, 169, 169, + 169, 170, 170, 170, 171, 172, 173, 173 }; /* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */ @@ -790,21 +793,21 @@ static const yytype_uint8 yyr2[] = 3, 0, 2, 2, 1, 2, 3, 2, 2, 2, 1, 2, 1, 2, 2, 0, 2, 5, 7, 0, 10, 5, 7, 3, 5, 2, 2, 3, 5, 5, - 0, 1, 0, 1, 1, 1, 3, 1, 3, 3, + 5, 0, 1, 0, 1, 1, 1, 3, 1, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 5, 3, 3, 3, - 3, 3, 3, 3, 3, 3, 3, 3, 1, 5, - 7, 1, 2, 2, 2, 2, 2, 2, 2, 2, - 2, 2, 3, 5, 5, 4, 4, 3, 3, 2, - 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 2, 1, 2, 0, 1, 1, 3, - 0, 4, 0, 1, 1, 1, 1, 2, 2, 3, - 2, 3, 1, 1, 2, 0, 4, 2, 2, 0, - 4, 2, 2, 0, 0, 7, 0, 5, 1, 1, - 2, 0, 2, 1, 1, 1, 1, 2, 1, 1, - 1, 3, 2, 3, 1, 1, 1, 1, 1, 1, + 3, 3, 3, 3, 3, 3, 3, 5, 3, 3, + 3, 3, 3, 3, 3, 3, 3, 3, 3, 1, + 5, 7, 1, 2, 2, 2, 2, 2, 2, 2, + 2, 2, 2, 3, 5, 5, 4, 4, 3, 3, + 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, + 1, 1, 1, 1, 2, 1, 2, 0, 1, 1, + 3, 0, 4, 0, 1, 1, 1, 1, 2, 2, + 3, 2, 3, 1, 1, 2, 0, 4, 2, 2, + 0, 4, 2, 2, 0, 0, 7, 0, 5, 1, + 1, 2, 0, 2, 1, 1, 1, 1, 2, 1, + 1, 1, 3, 2, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, - 1, 1, 1, 1, 1, 1, 1 + 1, 1, 1, 1, 1, 1, 1, 1 }; /* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state @@ -812,58 +815,58 @@ static const yytype_uint8 yyr2[] = means the default is an error. */ static const yytype_uint8 yydefact[] = { - 2, 182, 1, 208, 233, 224, 231, 235, 230, 226, - 227, 238, 225, 234, 0, 236, 237, 0, 229, 232, - 0, 228, 240, 241, 242, 239, 3, 0, 193, 183, - 184, 186, 216, 185, 219, 218, 245, 246, 180, 197, - 194, 201, 198, 206, 202, 4, 211, 0, 0, 6, - 13, 15, 244, 187, 209, 213, 215, 214, 211, 217, - 190, 188, 0, 0, 0, 0, 0, 0, 0, 5, - 0, 25, 0, 102, 63, 210, 189, 191, 0, 192, - 29, 196, 200, 220, 0, 204, 14, 212, 16, 12, + 2, 183, 1, 209, 234, 225, 232, 236, 231, 227, + 228, 239, 226, 235, 0, 237, 238, 0, 230, 233, + 0, 229, 241, 242, 243, 240, 3, 0, 194, 184, + 185, 187, 217, 186, 220, 219, 246, 247, 181, 198, + 195, 202, 199, 207, 203, 4, 212, 0, 0, 6, + 13, 15, 245, 188, 210, 214, 216, 215, 212, 218, + 191, 189, 0, 0, 0, 0, 0, 0, 0, 5, + 0, 25, 0, 103, 63, 211, 190, 192, 0, 193, + 29, 197, 201, 221, 0, 205, 14, 213, 16, 12, 9, 7, 0, 0, 0, 0, 0, 0, 0, 0, - 243, 167, 166, 162, 163, 164, 165, 168, 169, 172, - 174, 0, 0, 0, 0, 0, 103, 104, 107, 138, - 141, 170, 171, 161, 0, 0, 64, 40, 65, 181, - 31, 33, 0, 222, 207, 0, 0, 0, 0, 11, - 51, 143, 144, 145, 142, 0, 105, 40, 148, 149, - 0, 150, 0, 151, 146, 147, 18, 0, 0, 0, + 244, 168, 167, 163, 164, 165, 166, 169, 170, 173, + 175, 0, 0, 0, 0, 0, 104, 105, 108, 139, + 142, 171, 172, 162, 0, 0, 64, 40, 65, 182, + 31, 33, 0, 223, 208, 0, 0, 0, 0, 11, + 51, 144, 145, 146, 143, 0, 106, 40, 149, 150, + 0, 151, 0, 152, 147, 148, 18, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 176, - 0, 159, 160, 173, 175, 0, 17, 0, 211, 102, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 177, + 0, 160, 161, 174, 176, 0, 17, 0, 212, 103, 0, 67, 66, 41, 44, 45, 33, 0, 37, 0, - 34, 35, 15, 221, 223, 0, 71, 8, 27, 0, - 0, 0, 61, 58, 60, 0, 0, 152, 211, 0, - 0, 40, 40, 127, 137, 136, 135, 133, 134, 132, - 131, 130, 129, 128, 0, 125, 124, 123, 122, 121, - 120, 119, 115, 116, 118, 117, 113, 114, 111, 112, - 108, 109, 110, 158, 0, 178, 0, 177, 157, 68, - 69, 42, 0, 48, 0, 102, 63, 0, 39, 30, - 0, 0, 205, 0, 26, 0, 54, 0, 56, 55, - 62, 59, 52, 106, 42, 0, 0, 0, 0, 156, - 155, 0, 43, 49, 50, 0, 0, 32, 36, 38, - 0, 243, 0, 0, 0, 0, 0, 0, 0, 100, - 0, 0, 0, 0, 70, 72, 85, 74, 73, 80, - 0, 0, 0, 101, 0, 28, 53, 57, 0, 139, - 153, 154, 126, 179, 47, 46, 79, 78, 95, 0, - 96, 77, 0, 0, 0, 0, 176, 0, 0, 176, - 75, 81, 86, 0, 84, 19, 21, 0, 0, 76, - 0, 97, 0, 93, 0, 0, 0, 0, 100, 0, - 20, 0, 140, 0, 0, 0, 0, 0, 0, 0, - 82, 0, 0, 24, 0, 87, 98, 94, 91, 99, - 100, 83, 23, 0, 0, 0, 92, 88, 100, 0, - 0, 90 + 34, 35, 15, 222, 224, 0, 71, 8, 27, 0, + 0, 0, 61, 58, 60, 0, 0, 153, 212, 0, + 0, 40, 40, 128, 138, 137, 136, 134, 135, 133, + 132, 131, 130, 129, 0, 126, 125, 124, 123, 122, + 121, 120, 116, 117, 119, 118, 114, 115, 112, 113, + 109, 110, 111, 159, 0, 179, 0, 178, 158, 68, + 69, 42, 0, 48, 0, 103, 63, 0, 39, 30, + 0, 0, 206, 0, 26, 0, 54, 0, 56, 55, + 62, 59, 52, 107, 42, 0, 0, 0, 0, 157, + 156, 0, 43, 49, 50, 0, 0, 32, 36, 38, + 0, 244, 0, 0, 0, 0, 0, 0, 0, 0, + 101, 0, 0, 0, 0, 70, 72, 85, 74, 73, + 80, 0, 0, 0, 102, 0, 28, 53, 57, 0, + 140, 154, 155, 127, 180, 47, 46, 79, 78, 95, + 0, 96, 77, 0, 0, 0, 177, 0, 177, 0, + 0, 177, 75, 81, 86, 0, 84, 19, 21, 0, + 0, 76, 0, 97, 0, 0, 93, 0, 0, 0, + 0, 101, 0, 20, 0, 141, 0, 0, 0, 0, + 0, 0, 0, 0, 82, 0, 0, 24, 0, 87, + 99, 98, 94, 91, 100, 101, 83, 23, 0, 0, + 0, 92, 88, 101, 0, 0, 90 }; /* YYDEFGOTO[NTERM-NUM]. */ static const yytype_int16 yydefgoto[] = { - -1, 1, 26, 71, 136, 48, 72, 208, 50, 325, - 367, 379, 91, 219, 78, 131, 206, 209, 210, 211, + -1, 1, 26, 71, 136, 48, 72, 208, 50, 326, + 369, 382, 91, 219, 78, 131, 206, 209, 210, 211, 202, 203, 204, 205, 222, 223, 224, 225, 125, 126, - 217, 283, 326, 327, 328, 389, 329, 330, 331, 332, - 115, 116, 333, 146, 118, 119, 120, 121, 122, 266, + 217, 283, 327, 328, 329, 393, 330, 331, 332, 333, + 115, 116, 334, 146, 118, 119, 120, 121, 122, 266, 267, 39, 62, 27, 79, 127, 29, 30, 63, 64, 66, 135, 65, 53, 67, 54, 31, 32, 84, 33, 34, 35, 123, 51, 52 @@ -871,184 +874,184 @@ static const yytype_int16 yydefgoto[] = /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing STATE-NUM. */ -#define YYPACT_NINF -366 +#define YYPACT_NINF -331 static const yytype_int16 yypact[] = { - -366, 541, -366, -366, -366, -366, -366, -366, -366, -366, - -366, -366, -366, -366, -3, -366, -366, -3, -366, -366, - 140, -366, -366, -366, -366, -366, -366, 161, -366, -366, - 949, 914, -366, 949, -366, -366, -366, -366, -366, -366, - -64, -366, -60, -366, -17, -366, -366, 21, 70, 316, - 51, -366, -366, 949, -366, -366, -366, -366, -366, -366, - 949, 949, 914, -13, -13, 57, 9, 154, 54, -366, - 21, -366, 164, 745, 836, -366, -41, 949, 875, -366, - -366, -366, -366, 167, 7, -366, -366, -366, -366, -366, - 181, 914, 677, 745, 745, 745, 745, 607, 745, 745, - -366, -366, -366, -366, -366, -366, -366, -366, -366, -366, - -366, 779, 813, 745, 745, 95, -366, 1067, -366, -366, - 422, 141, 145, -366, 176, 139, 225, 128, -366, -366, - -366, 289, 745, 57, -366, 57, 149, 21, 169, -366, - 1067, -366, -366, -366, -366, 31, 1067, 130, -366, -366, - 607, -366, 607, -366, -366, -366, -366, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 745, 745, 745, - 745, 745, 745, 745, 745, 745, 745, 53, 745, 745, - 53, -366, -366, -366, -366, 199, -366, 836, -366, 745, - 147, -366, -366, -366, 111, -366, 289, 745, -366, 243, - 247, -366, 235, 1067, -366, 13, -366, -366, -366, 222, - 53, 745, 260, 255, 169, 172, 745, -366, -366, -6, - 180, 130, 130, 1067, 1067, 1067, 1067, 1067, 1067, 1067, - 1067, 1067, 1067, 1067, 16, 1084, 1100, 1115, 1129, 1142, - 1153, 1153, 319, 319, 319, 319, 303, 303, 295, 295, - -366, -366, -366, -366, 11, 1067, 186, 269, -366, -366, - -366, 190, 188, -366, 187, 745, 836, 280, -366, -366, - 289, 745, -366, 338, -366, 21, -366, 191, -366, -366, - 284, 255, -366, -366, 217, 711, 202, 204, 745, -366, - -366, 745, -366, -366, -366, 198, 207, -366, -366, -366, - 309, 296, 312, 745, 320, 307, 435, 53, 302, 745, - 305, 306, 308, 318, -366, -366, 504, -366, -366, -366, - 149, 292, 342, 354, 259, -366, -366, -366, 169, -366, - -366, -366, 421, -366, -366, -366, -366, -366, -366, 1036, - -366, -366, 277, 358, 745, 359, 745, 745, 745, 745, - -366, -366, -366, 325, -366, -366, 361, 234, 272, -366, - 326, -366, 64, -366, 276, 66, 67, 281, 607, 367, - -366, 21, -366, 745, 435, 371, 435, 435, 372, 397, - -366, 21, 677, -366, 68, 368, -366, -366, -366, -366, - 745, 427, -366, 461, 435, 462, -366, -366, 745, 377, - 435, -366 + -331, 548, -331, -331, -331, -331, -331, -331, -331, -331, + -331, -331, -331, -331, -3, -331, -331, -3, -331, -331, + 149, -331, -331, -331, -331, -331, -331, 264, -331, -331, + 965, 929, -331, 965, -331, -331, -331, -331, -331, -331, + -75, -331, -72, -331, -60, -331, -331, 307, 60, 270, + 156, -331, -331, 965, -331, -331, -331, -331, -331, -331, + 965, 965, 929, -44, -44, 29, -15, 199, -10, -331, + 307, -331, 83, 756, 849, -331, 140, 965, 889, -331, + -331, -331, -331, 86, 12, -331, -331, -331, -331, -331, + 90, 929, 686, 756, 756, 756, 756, 615, 756, 756, + -331, -331, -331, -331, -331, -331, -331, -331, -331, -331, + -331, 791, 826, 756, 756, 9, -331, 1084, -331, -331, + 708, 54, 57, -331, 110, 56, 152, 310, -331, -331, + -331, 279, 756, 29, -331, 29, 63, 307, 165, -331, + 1084, -331, -331, -331, -331, 30, 1084, 44, -331, -331, + 615, -331, 615, -331, -331, -331, -331, 756, 756, 756, + 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, + 756, 756, 756, 756, 756, 756, 756, 756, 756, 756, + 756, 756, 756, 756, 756, 756, 756, 157, 756, 756, + 157, -331, -331, -331, -331, 115, -331, 849, -331, 756, + 128, -331, -331, -331, 182, -331, 279, 756, -331, 164, + 200, -331, 208, 1084, -331, 13, -331, -331, -331, 262, + 157, 756, 225, 228, 165, 73, 756, -331, -331, -7, + 150, 44, 44, 1084, 1084, 1084, 1084, 1084, 1084, 1084, + 1084, 1084, 1084, 1084, 28, 304, 1100, 1115, 1129, 1142, + 1153, 1153, 433, 433, 433, 433, 333, 333, 265, 265, + -331, -331, -331, -331, 8, 1084, 153, 236, -331, -331, + -331, 147, 158, -331, 161, 756, 849, 247, -331, -331, + 279, 756, -331, 341, -331, 307, -331, 175, -331, -331, + 254, 228, -331, -331, 135, 721, 188, 190, 756, -331, + -331, 756, -331, -331, -331, 191, 211, -331, -331, -331, + 298, 301, 338, 756, 343, 339, 439, 157, 319, 321, + 756, 322, 323, 324, 332, -331, -331, 509, -331, -331, + -331, 63, 306, 372, 373, 277, -331, -331, -331, 165, + -331, -331, -331, 425, -331, -331, -331, -331, -331, -331, + 1053, -331, -331, 293, 375, 756, 756, 400, 756, 756, + 756, 756, -331, -331, -331, 396, -331, -331, 430, 285, + 377, -331, 431, -331, 55, 381, -331, 382, 62, 64, + 383, 615, 473, -331, 307, -331, 756, 439, 479, 490, + 439, 439, 493, 497, -331, 307, 686, -331, 66, 440, + -331, -331, -331, -331, -331, 756, 499, -331, 498, 439, + 504, -331, -331, 756, 415, 439, -331 }; /* YYPGOTO[NTERM-NUM]. */ static const yytype_int16 yypgoto[] = { - -366, -366, -366, -366, -366, 400, -366, -26, -366, -366, - -365, -366, -366, 189, -366, -366, -366, 266, 209, -366, - -122, -187, -366, -366, -82, 254, -366, 133, 216, 299, - 168, -366, -366, 171, -304, -366, 173, -366, -366, -227, - -181, -183, -83, -45, -38, 137, -366, -366, -366, -308, - 203, 2, -366, -366, -1, 0, -88, 472, -366, -366, - -366, -366, -366, -10, -51, 208, -366, 474, 22, 256, - 265, -24, -52, -127, -12 + -331, -331, -331, -331, -331, 445, -331, -26, -331, -331, + -330, -331, -331, 233, -331, -331, -331, 313, 230, -331, + -132, -187, -331, -331, -82, 292, -331, 181, 245, 326, + 193, -331, -331, 198, -227, -331, 203, -331, -331, -309, + -181, -183, -83, -45, -38, 243, -331, -331, -331, -175, + 226, 10, -331, -331, -1, 0, -88, 495, -331, -331, + -331, -331, -331, -14, -51, -28, -331, 501, -85, 218, + 231, -24, -52, -127, -12 }; /* YYTABLE[YYPACT[STATE-NUM]]. What to do in state STATE-NUM. If positive, shift that token. If negative, reduce the rule which number is the opposite. If zero, do what YYDEFACT says. If YYTABLE_NINF, syntax error. */ -#define YYTABLE_NINF -204 +#define YYTABLE_NINF -205 static const yytype_int16 yytable[] = { 28, 49, 40, 137, 212, 42, 57, 76, 44, 57, - 139, 133, 352, 274, 145, 226, 393, 133, 272, 41, - 226, 68, 128, 61, 278, 230, 401, 228, 117, 57, - -195, 199, 229, 298, -199, 226, 57, 57, 287, 36, - 37, 86, 274, 87, 90, 22, 23, 140, 374, 24, - 77, 377, 87, 57, 46, 141, 142, 143, 144, 47, - 148, 149, 80, 36, 37, 81, 82, 145, 226, 145, - 226, 226, 226, 69, 70, 154, 155, -203, 130, 212, - 395, 38, 397, 398, 302, 244, 273, 213, 73, 74, - 28, 38, 355, 140, 305, 36, 37, 147, 309, 83, - 407, 201, 134, 85, 299, 264, 411, 302, 282, 296, - 297, 218, 233, 234, 235, 236, 237, 238, 239, 240, + 139, 357, 226, 274, 145, 230, 133, 133, 272, 61, + -196, 68, 128, -200, 278, 75, 228, 41, 117, 57, + 199, 229, 226, 75, 226, -204, 57, 57, 287, 36, + 37, 86, 274, 87, 90, 298, 77, 140, 214, 75, + 215, 38, 87, 57, 397, 141, 142, 143, 144, 226, + 148, 149, 80, 69, 70, 406, 226, 145, 226, 145, + 226, 83, 394, 81, 82, 154, 155, 228, 130, 212, + 85, 199, 229, 88, 302, 244, 273, 213, 92, 353, + 28, 132, 38, 140, 305, -10, 410, 147, 309, 296, + 297, 201, 299, 156, 414, 264, 193, 302, 134, 282, + 194, 218, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 227, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, - 261, 262, 290, 293, 265, 128, 88, 271, 275, 276, - 231, 390, 232, 212, 117, 214, 384, 215, 386, 387, - 403, 198, 117, 228, 45, 199, 200, 199, 229, 92, - 36, 37, 132, 405, 68, 263, 117, 294, 268, 140, - 198, 409, 36, 37, 199, 200, -10, 46, 156, 36, - 37, 93, 47, 193, 46, 334, 36, 37, 194, 47, - 94, 95, 96, 36, 37, 220, 221, 97, 286, 98, - 99, 100, 195, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 198, 128, 284, 285, 199, 200, 197, - 117, 196, 36, 37, 43, 269, 117, 380, 381, 273, - 22, 23, 111, 216, 24, 86, 279, 87, 151, 153, - 228, 280, 281, 342, 199, 229, 265, 339, 112, 218, - 289, 75, 365, 138, 288, 113, 114, 292, 349, 75, - 87, 372, 295, 301, 375, 376, 22, 23, 300, 304, - 24, 303, 28, 307, 336, 75, 55, 60, 337, 55, - 391, 344, 46, 140, 340, 56, 341, 47, 56, 345, - 394, 36, 37, 22, 23, 353, 207, 24, 366, 55, - 402, 265, 346, 347, 265, 348, 55, 55, 56, -9, - -9, -10, 46, 350, 351, 56, 56, 47, 184, 185, - 186, 36, 37, 55, 182, 183, 184, 185, 186, 310, - 354, -100, 56, 356, 357, 364, 358, 140, 180, 181, - 182, 183, 184, 185, 186, 366, 359, 363, 226, 370, - 93, 371, 373, 378, 383, 366, -22, 382, 385, 94, - 95, 96, 392, 388, 396, 399, 97, 28, 98, 99, - 311, 3, 101, 102, 103, 104, 105, 106, 107, 108, - 109, 110, 4, 312, 313, 5, 314, 315, 316, 6, - 400, 7, 8, -89, 317, 318, 9, 10, 11, 319, - 12, 111, 320, 13, 14, 321, 15, 16, 17, 18, - 322, 19, 20, 21, 22, 23, 323, 112, 24, 25, - 404, 381, -85, 324, 113, 114, 310, 168, -100, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, - 180, 181, 182, 183, 184, 185, 186, 93, 187, 188, - 189, 190, 191, 192, 406, 408, 94, 95, 96, 410, - 89, 368, 277, 97, 335, 98, 99, 311, 291, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 308, - 312, 313, 306, 314, 315, 316, 270, 360, 362, 361, - -89, 317, 318, 58, 343, 59, 319, -100, 111, 320, - 0, 0, 321, 0, 0, 0, 0, 322, 0, 0, - 0, 0, 0, 323, 112, 0, 93, 0, 0, -85, - 0, 113, 114, 0, 0, 94, 95, 96, 0, 0, - 0, 2, 97, 0, 98, 99, 311, 0, 101, 102, - 103, 104, 105, 106, 107, 108, 109, 110, 0, 312, - 313, 0, 314, 315, 316, 0, 0, 0, 0, -89, - 317, 318, 0, 0, 0, 319, 0, 111, 320, 0, - 0, 321, 0, 0, 3, 0, 322, 0, 0, 0, - 0, 0, 323, 112, 0, 4, 0, 0, 5, 0, - 113, 114, 6, 0, 7, 8, 0, 0, 0, 9, - 10, 11, 0, 12, 0, 0, 13, 14, 0, 15, - 16, 17, 18, 0, 19, 20, 21, 22, 23, 93, - 0, 24, 25, 0, 0, 0, 0, 0, 94, 95, - 96, 0, 0, 0, 0, 97, 0, 98, 99, 100, - 3, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 4, 0, 0, 5, 0, 0, 0, 6, 0, - 7, 8, 0, 0, 0, 9, 10, 11, 0, 12, - 111, 0, 13, 14, 0, 15, 16, 17, 18, 0, - 19, 20, 21, 22, 23, 0, 112, 24, 25, 93, - 0, 0, 0, 113, 114, 0, 0, 0, 94, 95, - 96, 0, 0, 0, 0, 97, 0, 98, 99, 100, - 0, 101, 102, 103, 104, 105, 106, 107, 108, 109, - 110, 0, 0, 93, 0, 0, 0, 0, 0, 0, + 261, 262, 290, 293, 265, 128, 195, 271, 387, 196, + 231, 269, 232, 212, 117, 390, 197, 391, 216, 408, + 399, 198, 117, 402, 403, 199, 200, 279, 228, 292, + 36, 37, 199, 229, 68, 263, 117, 294, 268, 140, + 198, 375, 412, 377, 199, 200, 380, 93, 416, 36, + 37, 36, 37, 73, 74, 335, 94, 95, 96, 36, + 37, 220, 221, 97, 280, 98, 99, 100, 286, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 275, + 276, 273, 22, 23, 128, 281, 24, 22, 23, 288, + 117, 24, 46, 289, 22, 23, 117, 47, 24, 111, + 301, 36, 37, 295, 43, 86, 300, 87, 55, 60, + 307, 55, 303, 343, 304, 112, 265, 340, 338, 218, + 138, 56, 113, 114, 56, 284, 285, 45, 350, 337, + 87, 55, 374, -9, -9, -10, 378, 379, 55, 55, + 367, 341, 28, 342, 56, 345, 22, 23, 383, 384, + 24, 56, 56, 395, 140, 55, 207, 46, 184, 185, + 186, 347, 47, 398, 346, 354, 36, 37, 56, 368, + 46, 265, 46, 265, 407, 47, 265, 47, 348, 36, + 37, 36, 37, 170, 171, 172, 173, 174, 175, 176, + 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, + 46, 349, 310, 198, -101, 47, 351, 199, 200, 36, + 37, 140, 36, 37, 151, 153, 352, 355, 368, 356, + 358, 359, 360, 93, 182, 183, 184, 185, 186, 368, + 361, 365, 94, 95, 96, 366, 372, 226, 373, 97, + 28, 98, 99, 311, 3, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 4, 312, 313, 5, 314, + 315, 316, 6, 376, 7, 8, -89, 317, 318, 9, + 10, 319, 11, 320, 12, 111, 321, 13, 14, 322, + 15, 16, 17, 18, 323, 19, 20, 21, 22, 23, + 324, 112, 24, 25, 381, -22, -85, 325, 113, 114, + 310, 168, -101, 169, 170, 171, 172, 173, 174, 175, + 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, + 186, 93, 180, 181, 182, 183, 184, 185, 186, 386, + 94, 95, 96, 385, 388, 389, 392, 97, 396, 98, + 99, 311, 400, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 401, 312, 313, 404, 314, 315, 316, + 405, 411, 409, 384, -89, 317, 318, 413, 415, 319, + 308, 320, -101, 111, 321, 89, 291, 322, 336, 277, + 370, 306, 323, 270, 364, 362, 58, 344, 324, 112, + 363, 93, 59, 0, -85, 0, 113, 114, 0, 0, + 94, 95, 96, 0, 0, 0, 0, 97, 2, 98, + 99, 311, 0, 101, 102, 103, 104, 105, 106, 107, + 108, 109, 110, 0, 312, 313, 0, 314, 315, 316, + 0, 0, 0, 0, -89, 317, 318, 0, 0, 319, + 0, 320, 0, 111, 321, 0, 0, 322, 0, 0, + 0, 3, 323, 0, 0, 0, 0, 0, 324, 112, + 0, 0, 4, 0, 0, 5, 113, 114, 0, 6, + 0, 7, 8, 0, 0, 0, 9, 10, 0, 11, + 0, 12, 0, 0, 13, 14, 0, 15, 16, 17, + 18, 0, 19, 20, 21, 22, 23, 93, 0, 24, + 25, 0, 0, 0, 0, 0, 94, 95, 96, 0, + 0, 0, 0, 97, 0, 98, 99, 100, 3, 101, + 102, 103, 104, 105, 106, 107, 108, 109, 110, 4, + 0, 0, 5, 0, 0, 0, 6, 0, 7, 8, + 0, 0, 0, 9, 10, 0, 11, 0, 12, 111, + 0, 13, 14, 0, 15, 16, 17, 18, 0, 19, + 20, 21, 22, 23, 0, 112, 24, 25, 93, 0, + 0, 0, 113, 114, 0, 0, 0, 94, 95, 96, + 0, 0, 0, 0, 97, 0, 98, 99, 100, 0, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 0, 0, 0, 93, 187, 188, 189, 190, 191, 192, 0, 0, 94, 95, 96, 0, 0, 0, 0, 97, 111, 98, 99, 100, 0, 101, 102, 103, 104, 105, - 106, 107, 108, 109, 110, 0, 112, 93, 0, 0, - 0, 138, 0, 113, 114, 0, 94, 95, 96, 0, - 0, 0, 0, 97, 111, 98, 99, 100, 0, 101, - 102, 103, 104, 105, 106, 107, 108, 109, 110, 0, - 112, 93, 0, 0, 0, 338, 0, 113, 114, 0, - 94, 95, 96, 0, 0, 0, 0, 150, 111, 98, - 99, 100, 0, 101, 102, 103, 104, 105, 106, 107, - 108, 109, 110, 0, 112, 93, 0, 0, 0, 0, - 0, 113, 114, 0, 94, 95, 96, 0, 0, 0, - 0, 152, 111, 98, 99, 100, 0, 101, 102, 103, - 104, 105, 106, 107, 108, 109, 110, 0, 112, 0, - 0, 0, 124, 0, 0, 113, 114, 0, 100, 3, - 0, 0, 0, 0, 0, 0, 111, 0, 0, 0, - 4, 0, 0, 5, 0, 0, 0, 6, 0, 7, - 8, 0, 112, 0, 9, 10, 11, 0, 12, 113, - 114, 13, 14, 0, 15, 16, 17, 18, 3, 19, - 20, 21, 22, 23, 0, 0, 24, 25, 0, 4, - 0, 0, 5, 0, 0, 0, 6, 0, 7, 8, - 0, 0, 0, 9, 10, 11, 0, 12, 0, 0, - 13, 14, 0, 15, 16, 17, 18, 3, 19, 20, - 21, 22, 23, 0, 0, 24, 25, 0, 4, 0, - 129, 5, 0, 0, 0, 6, 0, 7, 8, 0, - 0, 0, 9, 10, 11, 0, 12, 0, 0, 13, - 14, 0, 15, 16, 17, 18, 0, 19, 20, 21, - 22, 23, 0, 4, 24, 25, 5, 0, 0, 0, - 6, 0, 7, 8, 0, 0, 0, 9, 10, 11, - 0, 12, 0, 0, 13, 0, 0, 15, 16, 0, - 18, 0, 19, 0, 21, 22, 23, 0, 0, 24, - 25, 157, 158, 159, 160, 161, 162, 163, 164, 165, - 166, 167, 168, 369, 169, 170, 171, 172, 173, 174, - 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 168, 0, 169, 170, 171, 172, 173, - 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, - 184, 185, 186, 170, 171, 172, 173, 174, 175, 176, + 106, 107, 108, 109, 110, 0, 112, 0, 93, 0, + 0, 138, 0, 113, 114, 0, 0, 94, 95, 96, + 0, 0, 0, 0, 97, 111, 98, 99, 100, 0, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 0, 112, 0, 93, 0, 0, 339, 0, 113, 114, + 0, 0, 94, 95, 96, 0, 0, 0, 0, 150, + 111, 98, 99, 100, 0, 101, 102, 103, 104, 105, + 106, 107, 108, 109, 110, 0, 112, 0, 93, 0, + 0, 0, 0, 113, 114, 0, 0, 94, 95, 96, + 0, 0, 0, 0, 152, 111, 98, 99, 100, 0, + 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, + 0, 112, 0, 0, 0, 124, 0, 0, 113, 114, + 0, 100, 3, 0, 0, 0, 0, 0, 0, 0, + 111, 0, 0, 4, 0, 0, 5, 0, 0, 0, + 6, 0, 7, 8, 0, 0, 112, 9, 10, 0, + 11, 0, 12, 113, 114, 13, 14, 0, 15, 16, + 17, 18, 3, 19, 20, 21, 22, 23, 0, 0, + 24, 25, 0, 4, 0, 0, 5, 0, 0, 0, + 6, 0, 7, 8, 0, 0, 0, 9, 10, 0, + 11, 0, 12, 0, 0, 13, 14, 0, 15, 16, + 17, 18, 3, 19, 20, 21, 22, 23, 0, 0, + 24, 25, 0, 4, 0, 129, 5, 0, 0, 0, + 6, 0, 7, 8, 0, 0, 0, 9, 10, 0, + 11, 0, 12, 0, 0, 13, 14, 0, 15, 16, + 17, 18, 0, 19, 20, 21, 22, 23, 0, 4, + 24, 25, 5, 0, 0, 0, 6, 0, 7, 8, + 0, 0, 0, 9, 10, 0, 11, 0, 12, 0, + 0, 13, 0, 0, 15, 16, 0, 18, 0, 19, + 0, 21, 22, 23, 0, 0, 24, 25, 157, 158, + 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, + 371, 169, 170, 171, 172, 173, 174, 175, 176, 177, + 178, 179, 180, 181, 182, 183, 184, 185, 186, 157, + 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, + 168, 0, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 172, 173, 174, 175, @@ -1062,116 +1065,116 @@ static const yytype_int16 yytable[] = static const yytype_int16 yycheck[] = { 1, 27, 14, 91, 131, 17, 30, 58, 20, 33, - 92, 4, 316, 200, 97, 4, 381, 4, 199, 17, - 4, 47, 74, 33, 207, 147, 391, 33, 73, 53, - 94, 37, 38, 17, 94, 4, 60, 61, 221, 42, - 43, 67, 229, 67, 70, 86, 87, 92, 356, 90, - 60, 359, 76, 77, 33, 93, 94, 95, 96, 38, - 98, 99, 62, 42, 43, 63, 64, 150, 4, 152, - 4, 4, 4, 3, 4, 113, 114, 94, 78, 206, - 384, 94, 386, 387, 271, 168, 92, 132, 37, 38, - 91, 94, 319, 138, 275, 42, 43, 97, 281, 42, - 404, 127, 95, 94, 93, 188, 410, 294, 95, 231, - 232, 137, 157, 158, 159, 160, 161, 162, 163, 164, - 165, 166, 167, 92, 169, 170, 171, 172, 173, 174, + 92, 320, 4, 200, 97, 147, 4, 4, 199, 33, + 95, 47, 74, 95, 207, 53, 33, 17, 73, 53, + 37, 38, 4, 61, 4, 95, 60, 61, 221, 42, + 43, 67, 229, 67, 70, 17, 60, 92, 133, 77, + 135, 95, 76, 77, 384, 93, 94, 95, 96, 4, + 98, 99, 62, 3, 4, 395, 4, 150, 4, 152, + 4, 42, 381, 63, 64, 113, 114, 33, 78, 206, + 95, 37, 38, 93, 271, 168, 93, 132, 5, 316, + 91, 5, 95, 138, 275, 5, 405, 97, 281, 231, + 232, 127, 94, 94, 413, 188, 52, 294, 96, 96, + 53, 137, 157, 158, 159, 160, 161, 162, 163, 164, + 165, 166, 167, 93, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 224, 226, 189, 197, 92, 198, 37, 38, - 150, 378, 152, 280, 199, 133, 92, 135, 92, 92, - 92, 33, 207, 33, 3, 37, 38, 37, 38, 5, - 42, 43, 5, 400, 200, 187, 221, 228, 190, 224, - 33, 408, 42, 43, 37, 38, 5, 33, 93, 42, - 43, 22, 38, 52, 33, 283, 42, 43, 53, 38, - 31, 32, 33, 42, 43, 36, 37, 38, 220, 40, - 41, 42, 36, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, 33, 276, 3, 4, 37, 38, 4, - 275, 92, 42, 43, 94, 36, 281, 3, 4, 92, - 86, 87, 73, 94, 90, 271, 3, 271, 111, 112, - 33, 4, 17, 298, 37, 38, 301, 295, 89, 285, - 5, 53, 3, 94, 4, 96, 97, 95, 313, 61, - 294, 354, 92, 4, 357, 358, 86, 87, 92, 92, - 90, 93, 283, 3, 93, 77, 30, 31, 4, 33, - 378, 93, 33, 338, 92, 30, 92, 38, 33, 92, - 383, 42, 43, 86, 87, 317, 17, 90, 334, 53, - 392, 356, 3, 17, 359, 3, 60, 61, 53, 3, - 4, 5, 33, 3, 17, 60, 61, 38, 33, 34, - 35, 42, 43, 77, 31, 32, 33, 34, 35, 1, - 38, 3, 77, 38, 38, 3, 38, 392, 29, 30, - 31, 32, 33, 34, 35, 381, 38, 65, 4, 82, - 22, 3, 3, 38, 38, 391, 5, 95, 92, 31, - 32, 33, 5, 92, 3, 3, 38, 378, 40, 41, - 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, - 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, - 3, 63, 64, 65, 66, 67, 68, 69, 70, 71, - 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, - 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, - 62, 4, 94, 95, 96, 97, 1, 16, 3, 18, - 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, - 29, 30, 31, 32, 33, 34, 35, 22, 36, 37, - 38, 39, 40, 41, 3, 3, 31, 32, 33, 92, - 70, 338, 206, 38, 285, 40, 41, 42, 224, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, 280, - 55, 56, 276, 58, 59, 60, 197, 326, 330, 326, - 65, 66, 67, 31, 301, 31, 71, 3, 73, 74, - -1, -1, 77, -1, -1, -1, -1, 82, -1, -1, - -1, -1, -1, 88, 89, -1, 22, -1, -1, 94, - -1, 96, 97, -1, -1, 31, 32, 33, -1, -1, - -1, 0, 38, -1, 40, 41, 42, -1, 44, 45, - 46, 47, 48, 49, 50, 51, 52, 53, -1, 55, - 56, -1, 58, 59, 60, -1, -1, -1, -1, 65, - 66, 67, -1, -1, -1, 71, -1, 73, 74, -1, - -1, 77, -1, -1, 43, -1, 82, -1, -1, -1, - -1, -1, 88, 89, -1, 54, -1, -1, 57, -1, - 96, 97, 61, -1, 63, 64, -1, -1, -1, 68, - 69, 70, -1, 72, -1, -1, 75, 76, -1, 78, - 79, 80, 81, -1, 83, 84, 85, 86, 87, 22, - -1, 90, 91, -1, -1, -1, -1, -1, 31, 32, - 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, - 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 54, -1, -1, 57, -1, -1, -1, 61, -1, - 63, 64, -1, -1, -1, 68, 69, 70, -1, 72, - 73, -1, 75, 76, -1, 78, 79, 80, 81, -1, - 83, 84, 85, 86, 87, -1, 89, 90, 91, 22, - -1, -1, -1, 96, 97, -1, -1, -1, 31, 32, - 33, -1, -1, -1, -1, 38, -1, 40, 41, 42, - -1, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, -1, -1, 22, -1, -1, -1, -1, -1, -1, - -1, -1, 31, 32, 33, -1, -1, -1, -1, 38, - 73, 40, 41, 42, -1, 44, 45, 46, 47, 48, - 49, 50, 51, 52, 53, -1, 89, 22, -1, -1, - -1, 94, -1, 96, 97, -1, 31, 32, 33, -1, - -1, -1, -1, 38, 73, 40, 41, 42, -1, 44, - 45, 46, 47, 48, 49, 50, 51, 52, 53, -1, - 89, 22, -1, -1, -1, 94, -1, 96, 97, -1, - 31, 32, 33, -1, -1, -1, -1, 38, 73, 40, + 185, 186, 224, 226, 189, 197, 36, 198, 93, 93, + 150, 36, 152, 280, 199, 93, 4, 93, 95, 93, + 387, 33, 207, 390, 391, 37, 38, 3, 33, 96, + 42, 43, 37, 38, 200, 187, 221, 228, 190, 224, + 33, 356, 409, 358, 37, 38, 361, 22, 415, 42, + 43, 42, 43, 37, 38, 283, 31, 32, 33, 42, + 43, 36, 37, 38, 4, 40, 41, 42, 220, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 37, + 38, 93, 87, 88, 276, 17, 91, 87, 88, 4, + 275, 91, 33, 5, 87, 88, 281, 38, 91, 74, + 4, 42, 43, 93, 95, 271, 93, 271, 30, 31, + 3, 33, 94, 298, 93, 90, 301, 295, 4, 285, + 95, 30, 97, 98, 33, 3, 4, 3, 313, 94, + 294, 53, 355, 3, 4, 5, 359, 360, 60, 61, + 3, 93, 283, 93, 53, 94, 87, 88, 3, 4, + 91, 60, 61, 381, 339, 77, 17, 33, 33, 34, + 35, 3, 38, 386, 93, 317, 42, 43, 77, 335, + 33, 356, 33, 358, 396, 38, 361, 38, 17, 42, + 43, 42, 43, 19, 20, 21, 22, 23, 24, 25, + 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, + 33, 3, 1, 33, 3, 38, 3, 37, 38, 42, + 43, 396, 42, 43, 111, 112, 17, 38, 384, 38, + 38, 38, 38, 22, 31, 32, 33, 34, 35, 395, + 38, 65, 31, 32, 33, 3, 83, 4, 3, 38, + 381, 40, 41, 42, 43, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, + 59, 60, 61, 3, 63, 64, 65, 66, 67, 68, + 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, + 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, + 89, 90, 91, 92, 38, 5, 95, 96, 97, 98, + 1, 16, 3, 18, 19, 20, 21, 22, 23, 24, + 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, + 35, 22, 29, 30, 31, 32, 33, 34, 35, 38, + 31, 32, 33, 96, 93, 93, 93, 38, 5, 40, + 41, 42, 3, 44, 45, 46, 47, 48, 49, 50, + 51, 52, 53, 3, 55, 56, 3, 58, 59, 60, + 3, 3, 62, 4, 65, 66, 67, 3, 93, 70, + 280, 72, 3, 74, 75, 70, 224, 78, 285, 206, + 339, 276, 83, 197, 331, 327, 31, 301, 89, 90, + 327, 22, 31, -1, 95, -1, 97, 98, -1, -1, + 31, 32, 33, -1, -1, -1, -1, 38, 0, 40, 41, 42, -1, 44, 45, 46, 47, 48, 49, 50, - 51, 52, 53, -1, 89, 22, -1, -1, -1, -1, - -1, 96, 97, -1, 31, 32, 33, -1, -1, -1, - -1, 38, 73, 40, 41, 42, -1, 44, 45, 46, - 47, 48, 49, 50, 51, 52, 53, -1, 89, -1, - -1, -1, 36, -1, -1, 96, 97, -1, 42, 43, - -1, -1, -1, -1, -1, -1, 73, -1, -1, -1, - 54, -1, -1, 57, -1, -1, -1, 61, -1, 63, - 64, -1, 89, -1, 68, 69, 70, -1, 72, 96, - 97, 75, 76, -1, 78, 79, 80, 81, 43, 83, - 84, 85, 86, 87, -1, -1, 90, 91, -1, 54, + 51, 52, 53, -1, 55, 56, -1, 58, 59, 60, + -1, -1, -1, -1, 65, 66, 67, -1, -1, 70, + -1, 72, -1, 74, 75, -1, -1, 78, -1, -1, + -1, 43, 83, -1, -1, -1, -1, -1, 89, 90, + -1, -1, 54, -1, -1, 57, 97, 98, -1, 61, + -1, 63, 64, -1, -1, -1, 68, 69, -1, 71, + -1, 73, -1, -1, 76, 77, -1, 79, 80, 81, + 82, -1, 84, 85, 86, 87, 88, 22, -1, 91, + 92, -1, -1, -1, -1, -1, 31, 32, 33, -1, + -1, -1, -1, 38, -1, 40, 41, 42, 43, 44, + 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, -1, -1, 57, -1, -1, -1, 61, -1, 63, 64, - -1, -1, -1, 68, 69, 70, -1, 72, -1, -1, - 75, 76, -1, 78, 79, 80, 81, 43, 83, 84, - 85, 86, 87, -1, -1, 90, 91, -1, 54, -1, - 95, 57, -1, -1, -1, 61, -1, 63, 64, -1, - -1, -1, 68, 69, 70, -1, 72, -1, -1, 75, - 76, -1, 78, 79, 80, 81, -1, 83, 84, 85, - 86, 87, -1, 54, 90, 91, 57, -1, -1, -1, - 61, -1, 63, 64, -1, -1, -1, 68, 69, 70, - -1, 72, -1, -1, 75, -1, -1, 78, 79, -1, - 81, -1, 83, -1, 85, 86, 87, -1, -1, 90, - 91, 5, 6, 7, 8, 9, 10, 11, 12, 13, - 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, - 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, - 34, 35, 5, 6, 7, 8, 9, 10, 11, 12, - 13, 14, 15, 16, -1, 18, 19, 20, 21, 22, - 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, - 33, 34, 35, 19, 20, 21, 22, 23, 24, 25, + -1, -1, -1, 68, 69, -1, 71, -1, 73, 74, + -1, 76, 77, -1, 79, 80, 81, 82, -1, 84, + 85, 86, 87, 88, -1, 90, 91, 92, 22, -1, + -1, -1, 97, 98, -1, -1, -1, 31, 32, 33, + -1, -1, -1, -1, 38, -1, 40, 41, 42, -1, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + -1, -1, -1, 22, 36, 37, 38, 39, 40, 41, + -1, -1, 31, 32, 33, -1, -1, -1, -1, 38, + 74, 40, 41, 42, -1, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, -1, 90, -1, 22, -1, + -1, 95, -1, 97, 98, -1, -1, 31, 32, 33, + -1, -1, -1, -1, 38, 74, 40, 41, 42, -1, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + -1, 90, -1, 22, -1, -1, 95, -1, 97, 98, + -1, -1, 31, 32, 33, -1, -1, -1, -1, 38, + 74, 40, 41, 42, -1, 44, 45, 46, 47, 48, + 49, 50, 51, 52, 53, -1, 90, -1, 22, -1, + -1, -1, -1, 97, 98, -1, -1, 31, 32, 33, + -1, -1, -1, -1, 38, 74, 40, 41, 42, -1, + 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, + -1, 90, -1, -1, -1, 36, -1, -1, 97, 98, + -1, 42, 43, -1, -1, -1, -1, -1, -1, -1, + 74, -1, -1, 54, -1, -1, 57, -1, -1, -1, + 61, -1, 63, 64, -1, -1, 90, 68, 69, -1, + 71, -1, 73, 97, 98, 76, 77, -1, 79, 80, + 81, 82, 43, 84, 85, 86, 87, 88, -1, -1, + 91, 92, -1, 54, -1, -1, 57, -1, -1, -1, + 61, -1, 63, 64, -1, -1, -1, 68, 69, -1, + 71, -1, 73, -1, -1, 76, 77, -1, 79, 80, + 81, 82, 43, 84, 85, 86, 87, 88, -1, -1, + 91, 92, -1, 54, -1, 96, 57, -1, -1, -1, + 61, -1, 63, 64, -1, -1, -1, 68, 69, -1, + 71, -1, 73, -1, -1, 76, 77, -1, 79, 80, + 81, 82, -1, 84, 85, 86, 87, 88, -1, 54, + 91, 92, 57, -1, -1, -1, 61, -1, 63, 64, + -1, -1, -1, 68, 69, -1, 71, -1, 73, -1, + -1, 76, -1, -1, 79, 80, -1, 82, -1, 84, + -1, 86, 87, 88, -1, -1, 91, 92, 5, 6, + 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, + 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, + 27, 28, 29, 30, 31, 32, 33, 34, 35, 5, + 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, + 16, -1, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 21, 22, 23, 24, @@ -1186,48 +1189,48 @@ static const yytype_int16 yycheck[] = symbol of state STATE-NUM. */ static const yytype_uint8 yystos[] = { - 0, 99, 0, 43, 54, 57, 61, 63, 64, 68, - 69, 70, 72, 75, 76, 78, 79, 80, 81, 83, - 84, 85, 86, 87, 90, 91, 100, 151, 152, 154, - 155, 164, 165, 167, 168, 169, 42, 43, 94, 149, - 172, 149, 172, 94, 172, 3, 33, 38, 103, 105, - 106, 171, 172, 161, 163, 167, 168, 169, 155, 165, - 167, 161, 150, 156, 157, 160, 158, 162, 105, 3, - 4, 101, 104, 37, 38, 163, 162, 161, 112, 152, - 153, 149, 149, 42, 166, 94, 105, 169, 92, 103, - 105, 110, 5, 22, 31, 32, 33, 38, 40, 41, + 0, 100, 0, 43, 54, 57, 61, 63, 64, 68, + 69, 71, 73, 76, 77, 79, 80, 81, 82, 84, + 85, 86, 87, 88, 91, 92, 101, 152, 153, 155, + 156, 165, 166, 168, 169, 170, 42, 43, 95, 150, + 173, 150, 173, 95, 173, 3, 33, 38, 104, 106, + 107, 172, 173, 162, 164, 168, 169, 170, 156, 166, + 168, 162, 151, 157, 158, 161, 159, 163, 106, 3, + 4, 102, 105, 37, 38, 164, 163, 162, 113, 153, + 154, 150, 150, 42, 167, 95, 106, 170, 93, 104, + 106, 111, 5, 22, 31, 32, 33, 38, 40, 41, 42, 44, 45, 46, 47, 48, 49, 50, 51, 52, - 53, 73, 89, 96, 97, 138, 139, 141, 142, 143, - 144, 145, 146, 170, 36, 126, 127, 153, 170, 95, - 153, 113, 5, 4, 95, 159, 102, 154, 94, 122, - 141, 142, 142, 142, 142, 140, 141, 153, 142, 142, - 38, 143, 38, 143, 142, 142, 93, 5, 6, 7, + 53, 74, 90, 97, 98, 139, 140, 142, 143, 144, + 145, 146, 147, 171, 36, 127, 128, 154, 171, 96, + 154, 114, 5, 4, 96, 160, 103, 155, 95, 123, + 142, 143, 143, 143, 143, 141, 142, 154, 143, 143, + 38, 144, 38, 144, 143, 143, 94, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, - 39, 40, 41, 52, 53, 36, 92, 4, 33, 37, - 38, 105, 118, 119, 120, 121, 114, 17, 105, 115, - 116, 117, 171, 141, 166, 166, 94, 128, 105, 111, - 36, 37, 122, 123, 124, 125, 4, 92, 33, 38, - 118, 153, 153, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 140, 141, 141, 141, 141, 141, - 141, 141, 141, 141, 141, 141, 141, 141, 141, 141, - 141, 141, 141, 172, 140, 141, 147, 148, 172, 36, - 127, 162, 138, 92, 119, 37, 38, 115, 139, 3, - 4, 17, 95, 129, 3, 4, 172, 139, 4, 5, - 122, 123, 95, 140, 162, 92, 118, 118, 17, 93, - 92, 4, 119, 93, 92, 138, 126, 3, 116, 139, - 1, 42, 55, 56, 58, 59, 60, 66, 67, 71, - 74, 77, 82, 88, 95, 107, 130, 131, 132, 134, - 135, 136, 137, 140, 154, 111, 93, 4, 94, 142, - 92, 92, 141, 148, 93, 92, 3, 17, 3, 141, - 3, 17, 132, 172, 38, 137, 38, 38, 38, 38, - 131, 134, 128, 65, 3, 3, 105, 108, 125, 17, - 82, 3, 140, 3, 147, 140, 140, 147, 38, 109, - 3, 4, 95, 38, 92, 92, 92, 92, 92, 133, - 137, 154, 5, 108, 140, 132, 3, 132, 132, 3, - 3, 108, 122, 92, 62, 137, 3, 132, 3, 137, - 92, 132 + 39, 40, 41, 52, 53, 36, 93, 4, 33, 37, + 38, 106, 119, 120, 121, 122, 115, 17, 106, 116, + 117, 118, 172, 142, 167, 167, 95, 129, 106, 112, + 36, 37, 123, 124, 125, 126, 4, 93, 33, 38, + 119, 154, 154, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 141, 142, 142, 142, 142, 142, + 142, 142, 142, 142, 142, 142, 142, 142, 142, 142, + 142, 142, 142, 173, 141, 142, 148, 149, 173, 36, + 128, 163, 139, 93, 120, 37, 38, 116, 140, 3, + 4, 17, 96, 130, 3, 4, 173, 140, 4, 5, + 123, 124, 96, 141, 163, 93, 119, 119, 17, 94, + 93, 4, 120, 94, 93, 139, 127, 3, 117, 140, + 1, 42, 55, 56, 58, 59, 60, 66, 67, 70, + 72, 75, 78, 83, 89, 96, 108, 131, 132, 133, + 135, 136, 137, 138, 141, 155, 112, 94, 4, 95, + 143, 93, 93, 142, 149, 94, 93, 3, 17, 3, + 142, 3, 17, 133, 173, 38, 38, 138, 38, 38, + 38, 38, 132, 135, 129, 65, 3, 3, 106, 109, + 126, 17, 83, 3, 141, 148, 3, 148, 141, 141, + 148, 38, 110, 3, 4, 96, 38, 93, 93, 93, + 93, 93, 93, 134, 138, 155, 5, 109, 141, 133, + 3, 3, 133, 133, 3, 3, 109, 123, 93, 62, + 138, 3, 133, 3, 138, 93, 133 }; #define yyerrok (yyerrstatus = 0) @@ -2598,251 +2601,258 @@ yyreduce: case 99: #line 539 "cc.y" { - (yyval.node) = new(OSET, (yyvsp[(3) - (5)].node), Z); + (yyval.node) = new(OPREFETCH, (yyvsp[(3) - (5)].node), Z); } break; case 100: -#line 544 "cc.y" +#line 543 "cc.y" { - (yyval.node) = Z; + (yyval.node) = new(OSET, (yyvsp[(3) - (5)].node), Z); } break; - case 102: -#line 550 "cc.y" + case 101: +#line 548 "cc.y" { (yyval.node) = Z; } break; - case 104: -#line 557 "cc.y" + case 103: +#line 554 "cc.y" { - (yyval.node) = new(OCAST, (yyvsp[(1) - (1)].node), Z); - (yyval.node)->type = types[TLONG]; + (yyval.node) = Z; } break; - case 106: -#line 565 "cc.y" + case 105: +#line 561 "cc.y" { - (yyval.node) = new(OCOMMA, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OCAST, (yyvsp[(1) - (1)].node), Z); + (yyval.node)->type = types[TLONG]; } break; - case 108: -#line 572 "cc.y" + case 107: +#line 569 "cc.y" { - (yyval.node) = new(OMUL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OCOMMA, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 109: #line 576 "cc.y" { - (yyval.node) = new(ODIV, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OMUL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 110: #line 580 "cc.y" { - (yyval.node) = new(OMOD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(ODIV, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 111: #line 584 "cc.y" { - (yyval.node) = new(OADD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OMOD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 112: #line 588 "cc.y" { - (yyval.node) = new(OSUB, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OADD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 113: #line 592 "cc.y" { - (yyval.node) = new(OASHR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OSUB, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 114: #line 596 "cc.y" { - (yyval.node) = new(OASHL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OASHR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 115: #line 600 "cc.y" { - (yyval.node) = new(OLT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OASHL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 116: #line 604 "cc.y" { - (yyval.node) = new(OGT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OLT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 117: #line 608 "cc.y" { - (yyval.node) = new(OLE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OGT, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 118: #line 612 "cc.y" { - (yyval.node) = new(OGE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OLE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 119: #line 616 "cc.y" { - (yyval.node) = new(OEQ, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OGE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 120: #line 620 "cc.y" { - (yyval.node) = new(ONE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OEQ, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 121: #line 624 "cc.y" { - (yyval.node) = new(OAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(ONE, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 122: #line 628 "cc.y" { - (yyval.node) = new(OXOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 123: #line 632 "cc.y" { - (yyval.node) = new(OOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OXOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 124: #line 636 "cc.y" { - (yyval.node) = new(OANDAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 125: #line 640 "cc.y" { - (yyval.node) = new(OOROR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OANDAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 126: #line 644 "cc.y" { - (yyval.node) = new(OCOND, (yyvsp[(1) - (5)].node), new(OLIST, (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node))); + (yyval.node) = new(OOROR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 127: #line 648 "cc.y" { - (yyval.node) = new(OAS, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OCOND, (yyvsp[(1) - (5)].node), new(OLIST, (yyvsp[(3) - (5)].node), (yyvsp[(5) - (5)].node))); } break; case 128: #line 652 "cc.y" { - (yyval.node) = new(OASADD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OAS, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 129: #line 656 "cc.y" { - (yyval.node) = new(OASSUB, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OASADD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 130: #line 660 "cc.y" { - (yyval.node) = new(OASMUL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OASSUB, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 131: #line 664 "cc.y" { - (yyval.node) = new(OASDIV, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OASMUL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 132: #line 668 "cc.y" { - (yyval.node) = new(OASMOD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OASDIV, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 133: #line 672 "cc.y" { - (yyval.node) = new(OASASHL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OASMOD, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 134: #line 676 "cc.y" { - (yyval.node) = new(OASASHR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OASASHL, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 135: #line 680 "cc.y" { - (yyval.node) = new(OASAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OASASHR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 136: #line 684 "cc.y" { - (yyval.node) = new(OASXOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + (yyval.node) = new(OASAND, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; case 137: #line 688 "cc.y" { + (yyval.node) = new(OASXOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); + } + break; + + case 138: +#line 692 "cc.y" + { (yyval.node) = new(OASOR, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; - case 139: -#line 695 "cc.y" + case 140: +#line 699 "cc.y" { (yyval.node) = new(OCAST, (yyvsp[(5) - (5)].node), Z); dodecl(NODECL, CXXX, (yyvsp[(2) - (5)].type), (yyvsp[(3) - (5)].node)); @@ -2851,8 +2861,8 @@ yyreduce: } break; - case 140: -#line 702 "cc.y" + case 141: +#line 706 "cc.y" { (yyval.node) = new(OSTRUCT, (yyvsp[(6) - (7)].node), Z); dodecl(NODECL, CXXX, (yyvsp[(2) - (7)].type), (yyvsp[(3) - (7)].node)); @@ -2860,94 +2870,94 @@ yyreduce: } break; - case 142: -#line 711 "cc.y" - { - (yyval.node) = new(OIND, (yyvsp[(2) - (2)].node), Z); - } - break; - case 143: #line 715 "cc.y" { - (yyval.node) = new(OADDR, (yyvsp[(2) - (2)].node), Z); + (yyval.node) = new(OIND, (yyvsp[(2) - (2)].node), Z); } break; case 144: #line 719 "cc.y" { - (yyval.node) = new(OPOS, (yyvsp[(2) - (2)].node), Z); + (yyval.node) = new(OADDR, (yyvsp[(2) - (2)].node), Z); } break; case 145: #line 723 "cc.y" { - (yyval.node) = new(ONEG, (yyvsp[(2) - (2)].node), Z); + (yyval.node) = new(OPOS, (yyvsp[(2) - (2)].node), Z); } break; case 146: #line 727 "cc.y" { - (yyval.node) = new(ONOT, (yyvsp[(2) - (2)].node), Z); + (yyval.node) = new(ONEG, (yyvsp[(2) - (2)].node), Z); } break; case 147: #line 731 "cc.y" { - (yyval.node) = new(OCOM, (yyvsp[(2) - (2)].node), Z); + (yyval.node) = new(ONOT, (yyvsp[(2) - (2)].node), Z); } break; case 148: #line 735 "cc.y" { - (yyval.node) = new(OPREINC, (yyvsp[(2) - (2)].node), Z); + (yyval.node) = new(OCOM, (yyvsp[(2) - (2)].node), Z); } break; case 149: #line 739 "cc.y" { - (yyval.node) = new(OPREDEC, (yyvsp[(2) - (2)].node), Z); + (yyval.node) = new(OPREINC, (yyvsp[(2) - (2)].node), Z); } break; case 150: #line 743 "cc.y" { - (yyval.node) = new(OSIZE, (yyvsp[(2) - (2)].node), Z); + (yyval.node) = new(OPREDEC, (yyvsp[(2) - (2)].node), Z); } break; case 151: #line 747 "cc.y" { - (yyval.node) = new(OSIGN, (yyvsp[(2) - (2)].node), Z); + (yyval.node) = new(OSIZE, (yyvsp[(2) - (2)].node), Z); } break; case 152: -#line 753 "cc.y" +#line 751 "cc.y" { - (yyval.node) = (yyvsp[(2) - (3)].node); + (yyval.node) = new(OSIGN, (yyvsp[(2) - (2)].node), Z); } break; case 153: #line 757 "cc.y" { + (yyval.node) = (yyvsp[(2) - (3)].node); + } + break; + + case 154: +#line 761 "cc.y" + { (yyval.node) = new(OSIZE, Z, Z); dodecl(NODECL, CXXX, (yyvsp[(3) - (5)].type), (yyvsp[(4) - (5)].node)); (yyval.node)->type = lastdcl; } break; - case 154: -#line 763 "cc.y" + case 155: +#line 767 "cc.y" { (yyval.node) = new(OSIGN, Z, Z); dodecl(NODECL, CXXX, (yyvsp[(3) - (5)].type), (yyvsp[(4) - (5)].node)); @@ -2955,8 +2965,8 @@ yyreduce: } break; - case 155: -#line 769 "cc.y" + case 156: +#line 773 "cc.y" { (yyval.node) = new(OFUNC, (yyvsp[(1) - (4)].node), Z); if((yyvsp[(1) - (4)].node)->op == ONAME) @@ -2966,45 +2976,45 @@ yyreduce: } break; - case 156: -#line 777 "cc.y" + case 157: +#line 781 "cc.y" { (yyval.node) = new(OIND, new(OADD, (yyvsp[(1) - (4)].node), (yyvsp[(3) - (4)].node)), Z); } break; - case 157: -#line 781 "cc.y" + case 158: +#line 785 "cc.y" { (yyval.node) = new(ODOT, new(OIND, (yyvsp[(1) - (3)].node), Z), Z); (yyval.node)->sym = (yyvsp[(3) - (3)].sym); } break; - case 158: -#line 786 "cc.y" + case 159: +#line 790 "cc.y" { (yyval.node) = new(ODOT, (yyvsp[(1) - (3)].node), Z); (yyval.node)->sym = (yyvsp[(3) - (3)].sym); } break; - case 159: -#line 791 "cc.y" + case 160: +#line 795 "cc.y" { (yyval.node) = new(OPOSTINC, (yyvsp[(1) - (2)].node), Z); } break; - case 160: -#line 795 "cc.y" + case 161: +#line 799 "cc.y" { (yyval.node) = new(OPOSTDEC, (yyvsp[(1) - (2)].node), Z); } break; - case 162: -#line 800 "cc.y" + case 163: +#line 804 "cc.y" { (yyval.node) = new(OCONST, Z, Z); (yyval.node)->type = types[TINT]; @@ -3013,8 +3023,8 @@ yyreduce: } break; - case 163: -#line 807 "cc.y" + case 164: +#line 811 "cc.y" { (yyval.node) = new(OCONST, Z, Z); (yyval.node)->type = types[TLONG]; @@ -3023,8 +3033,8 @@ yyreduce: } break; - case 164: -#line 814 "cc.y" + case 165: +#line 818 "cc.y" { (yyval.node) = new(OCONST, Z, Z); (yyval.node)->type = types[TUINT]; @@ -3033,8 +3043,8 @@ yyreduce: } break; - case 165: -#line 821 "cc.y" + case 166: +#line 825 "cc.y" { (yyval.node) = new(OCONST, Z, Z); (yyval.node)->type = types[TULONG]; @@ -3043,8 +3053,8 @@ yyreduce: } break; - case 166: -#line 828 "cc.y" + case 167: +#line 832 "cc.y" { (yyval.node) = new(OCONST, Z, Z); (yyval.node)->type = types[TDOUBLE]; @@ -3053,8 +3063,8 @@ yyreduce: } break; - case 167: -#line 835 "cc.y" + case 168: +#line 839 "cc.y" { (yyval.node) = new(OCONST, Z, Z); (yyval.node)->type = types[TFLOAT]; @@ -3063,8 +3073,8 @@ yyreduce: } break; - case 168: -#line 842 "cc.y" + case 169: +#line 846 "cc.y" { (yyval.node) = new(OCONST, Z, Z); (yyval.node)->type = types[TVLONG]; @@ -3073,8 +3083,8 @@ yyreduce: } break; - case 169: -#line 849 "cc.y" + case 170: +#line 853 "cc.y" { (yyval.node) = new(OCONST, Z, Z); (yyval.node)->type = types[TUVLONG]; @@ -3083,8 +3093,8 @@ yyreduce: } break; - case 172: -#line 860 "cc.y" + case 173: +#line 864 "cc.y" { (yyval.node) = new(OSTRING, Z, Z); (yyval.node)->type = typ(TARRAY, types[TCHAR]); @@ -3096,8 +3106,8 @@ yyreduce: } break; - case 173: -#line 870 "cc.y" + case 174: +#line 874 "cc.y" { char *s; int n; @@ -3115,8 +3125,8 @@ yyreduce: } break; - case 174: -#line 888 "cc.y" + case 175: +#line 892 "cc.y" { (yyval.node) = new(OLSTRING, Z, Z); (yyval.node)->type = typ(TARRAY, types[TUSHORT]); @@ -3128,8 +3138,8 @@ yyreduce: } break; - case 175: -#line 898 "cc.y" + case 176: +#line 902 "cc.y" { char *s; int n; @@ -3147,22 +3157,22 @@ yyreduce: } break; - case 176: -#line 915 "cc.y" + case 177: +#line 919 "cc.y" { (yyval.node) = Z; } break; - case 179: -#line 923 "cc.y" + case 180: +#line 927 "cc.y" { (yyval.node) = new(OLIST, (yyvsp[(1) - (3)].node), (yyvsp[(3) - (3)].node)); } break; - case 180: -#line 929 "cc.y" + case 181: +#line 933 "cc.y" { (yyval.tyty).t1 = strf; (yyval.tyty).t2 = strl; @@ -3177,8 +3187,8 @@ yyreduce: } break; - case 181: -#line 942 "cc.y" + case 182: +#line 946 "cc.y" { (yyval.type) = strf; strf = (yyvsp[(2) - (4)].tyty).t1; @@ -3188,32 +3198,32 @@ yyreduce: } break; - case 182: -#line 951 "cc.y" + case 183: +#line 955 "cc.y" { lastclass = CXXX; lasttype = types[TINT]; } break; - case 184: -#line 959 "cc.y" + case 185: +#line 963 "cc.y" { (yyval.tycl).t = (yyvsp[(1) - (1)].type); (yyval.tycl).c = CXXX; } break; - case 185: -#line 964 "cc.y" + case 186: +#line 968 "cc.y" { (yyval.tycl).t = simplet((yyvsp[(1) - (1)].lval)); (yyval.tycl).c = CXXX; } break; - case 186: -#line 969 "cc.y" + case 187: +#line 973 "cc.y" { (yyval.tycl).t = simplet((yyvsp[(1) - (1)].lval)); (yyval.tycl).c = simplec((yyvsp[(1) - (1)].lval)); @@ -3221,8 +3231,8 @@ yyreduce: } break; - case 187: -#line 975 "cc.y" + case 188: +#line 979 "cc.y" { (yyval.tycl).t = (yyvsp[(1) - (2)].type); (yyval.tycl).c = simplec((yyvsp[(2) - (2)].lval)); @@ -3232,8 +3242,8 @@ yyreduce: } break; - case 188: -#line 983 "cc.y" + case 189: +#line 987 "cc.y" { (yyval.tycl).t = simplet(typebitor((yyvsp[(1) - (2)].lval), (yyvsp[(2) - (2)].lval))); (yyval.tycl).c = simplec((yyvsp[(2) - (2)].lval)); @@ -3241,8 +3251,8 @@ yyreduce: } break; - case 189: -#line 989 "cc.y" + case 190: +#line 993 "cc.y" { (yyval.tycl).t = (yyvsp[(2) - (3)].type); (yyval.tycl).c = simplec((yyvsp[(1) - (3)].lval)); @@ -3250,8 +3260,8 @@ yyreduce: } break; - case 190: -#line 995 "cc.y" + case 191: +#line 999 "cc.y" { (yyval.tycl).t = simplet((yyvsp[(2) - (2)].lval)); (yyval.tycl).c = simplec((yyvsp[(1) - (2)].lval)); @@ -3259,8 +3269,8 @@ yyreduce: } break; - case 191: -#line 1001 "cc.y" + case 192: +#line 1005 "cc.y" { (yyval.tycl).t = simplet(typebitor((yyvsp[(2) - (3)].lval), (yyvsp[(3) - (3)].lval))); (yyval.tycl).c = simplec((yyvsp[(1) - (3)].lval)|(yyvsp[(3) - (3)].lval)); @@ -3268,8 +3278,8 @@ yyreduce: } break; - case 192: -#line 1009 "cc.y" + case 193: +#line 1013 "cc.y" { (yyval.type) = (yyvsp[(1) - (1)].tycl).t; if((yyvsp[(1) - (1)].tycl).c != CXXX) @@ -3277,31 +3287,31 @@ yyreduce: } break; - case 193: -#line 1017 "cc.y" + case 194: +#line 1021 "cc.y" { lasttype = (yyvsp[(1) - (1)].tycl).t; lastclass = (yyvsp[(1) - (1)].tycl).c; } break; - case 194: -#line 1024 "cc.y" + case 195: +#line 1028 "cc.y" { dotag((yyvsp[(2) - (2)].sym), TSTRUCT, 0); (yyval.type) = (yyvsp[(2) - (2)].sym)->suetag; } break; - case 195: -#line 1029 "cc.y" + case 196: +#line 1033 "cc.y" { dotag((yyvsp[(2) - (2)].sym), TSTRUCT, autobn); } break; - case 196: -#line 1033 "cc.y" + case 197: +#line 1037 "cc.y" { (yyval.type) = (yyvsp[(2) - (4)].sym)->suetag; if((yyval.type)->link != T) @@ -3311,8 +3321,8 @@ yyreduce: } break; - case 197: -#line 1041 "cc.y" + case 198: +#line 1045 "cc.y" { taggen++; sprint(symb, "_%d_", taggen); @@ -3322,23 +3332,23 @@ yyreduce: } break; - case 198: -#line 1049 "cc.y" + case 199: +#line 1053 "cc.y" { dotag((yyvsp[(2) - (2)].sym), TUNION, 0); (yyval.type) = (yyvsp[(2) - (2)].sym)->suetag; } break; - case 199: -#line 1054 "cc.y" + case 200: +#line 1058 "cc.y" { dotag((yyvsp[(2) - (2)].sym), TUNION, autobn); } break; - case 200: -#line 1058 "cc.y" + case 201: +#line 1062 "cc.y" { (yyval.type) = (yyvsp[(2) - (4)].sym)->suetag; if((yyval.type)->link != T) @@ -3348,8 +3358,8 @@ yyreduce: } break; - case 201: -#line 1066 "cc.y" + case 202: +#line 1070 "cc.y" { taggen++; sprint(symb, "_%d_", taggen); @@ -3359,8 +3369,8 @@ yyreduce: } break; - case 202: -#line 1074 "cc.y" + case 203: +#line 1078 "cc.y" { dotag((yyvsp[(2) - (2)].sym), TENUM, 0); (yyval.type) = (yyvsp[(2) - (2)].sym)->suetag; @@ -3370,23 +3380,23 @@ yyreduce: } break; - case 203: -#line 1082 "cc.y" + case 204: +#line 1086 "cc.y" { dotag((yyvsp[(2) - (2)].sym), TENUM, autobn); } break; - case 204: -#line 1086 "cc.y" + case 205: +#line 1090 "cc.y" { en.tenum = T; en.cenum = T; } break; - case 205: -#line 1091 "cc.y" + case 206: +#line 1095 "cc.y" { (yyval.type) = (yyvsp[(2) - (7)].sym)->suetag; if((yyval.type)->link != T) @@ -3400,167 +3410,167 @@ yyreduce: } break; - case 206: -#line 1103 "cc.y" + case 207: +#line 1107 "cc.y" { en.tenum = T; en.cenum = T; } break; - case 207: -#line 1108 "cc.y" + case 208: +#line 1112 "cc.y" { (yyval.type) = en.tenum; } break; - case 208: -#line 1112 "cc.y" + case 209: +#line 1116 "cc.y" { (yyval.type) = tcopy((yyvsp[(1) - (1)].sym)->type); } break; - case 210: -#line 1119 "cc.y" + case 211: +#line 1123 "cc.y" { (yyval.lval) = typebitor((yyvsp[(1) - (2)].lval), (yyvsp[(2) - (2)].lval)); } break; - case 211: -#line 1124 "cc.y" + case 212: +#line 1128 "cc.y" { (yyval.lval) = 0; } break; - case 212: -#line 1128 "cc.y" + case 213: +#line 1132 "cc.y" { (yyval.lval) = typebitor((yyvsp[(1) - (2)].lval), (yyvsp[(2) - (2)].lval)); } break; - case 217: -#line 1140 "cc.y" + case 218: +#line 1144 "cc.y" { (yyval.lval) = typebitor((yyvsp[(1) - (2)].lval), (yyvsp[(2) - (2)].lval)); } break; - case 220: -#line 1150 "cc.y" + case 221: +#line 1154 "cc.y" { doenum((yyvsp[(1) - (1)].sym), Z); } break; - case 221: -#line 1154 "cc.y" + case 222: +#line 1158 "cc.y" { doenum((yyvsp[(1) - (3)].sym), (yyvsp[(3) - (3)].node)); } break; - case 224: -#line 1161 "cc.y" + case 225: +#line 1165 "cc.y" { (yyval.lval) = BCHAR; } break; - case 225: -#line 1162 "cc.y" + case 226: +#line 1166 "cc.y" { (yyval.lval) = BSHORT; } break; - case 226: -#line 1163 "cc.y" + case 227: +#line 1167 "cc.y" { (yyval.lval) = BINT; } break; - case 227: -#line 1164 "cc.y" + case 228: +#line 1168 "cc.y" { (yyval.lval) = BLONG; } break; - case 228: -#line 1165 "cc.y" + case 229: +#line 1169 "cc.y" { (yyval.lval) = BSIGNED; } break; - case 229: -#line 1166 "cc.y" + case 230: +#line 1170 "cc.y" { (yyval.lval) = BUNSIGNED; } break; - case 230: -#line 1167 "cc.y" + case 231: +#line 1171 "cc.y" { (yyval.lval) = BFLOAT; } break; - case 231: -#line 1168 "cc.y" + case 232: +#line 1172 "cc.y" { (yyval.lval) = BDOUBLE; } break; - case 232: -#line 1169 "cc.y" + case 233: +#line 1173 "cc.y" { (yyval.lval) = BVOID; } break; - case 233: -#line 1172 "cc.y" + case 234: +#line 1176 "cc.y" { (yyval.lval) = BAUTO; } break; - case 234: -#line 1173 "cc.y" + case 235: +#line 1177 "cc.y" { (yyval.lval) = BSTATIC; } break; - case 235: -#line 1174 "cc.y" + case 236: +#line 1178 "cc.y" { (yyval.lval) = BEXTERN; } break; - case 236: -#line 1175 "cc.y" + case 237: +#line 1179 "cc.y" { (yyval.lval) = BTYPEDEF; } break; - case 237: -#line 1176 "cc.y" + case 238: +#line 1180 "cc.y" { (yyval.lval) = BTYPESTR; } break; - case 238: -#line 1177 "cc.y" + case 239: +#line 1181 "cc.y" { (yyval.lval) = BREGISTER; } break; - case 239: -#line 1178 "cc.y" + case 240: +#line 1182 "cc.y" { (yyval.lval) = 0; } break; - case 240: -#line 1181 "cc.y" + case 241: +#line 1185 "cc.y" { (yyval.lval) = BCONSTNT; } break; - case 241: -#line 1182 "cc.y" + case 242: +#line 1186 "cc.y" { (yyval.lval) = BVOLATILE; } break; - case 242: -#line 1183 "cc.y" + case 243: +#line 1187 "cc.y" { (yyval.lval) = 0; } break; - case 243: -#line 1187 "cc.y" + case 244: +#line 1191 "cc.y" { (yyval.node) = new(ONAME, Z, Z); if((yyvsp[(1) - (1)].sym)->class == CLOCAL) @@ -3576,8 +3586,8 @@ yyreduce: } break; - case 244: -#line 1202 "cc.y" + case 245: +#line 1206 "cc.y" { (yyval.node) = new(ONAME, Z, Z); (yyval.node)->sym = (yyvsp[(1) - (1)].sym); @@ -3592,7 +3602,7 @@ yyreduce: /* Line 1267 of yacc.c. */ -#line 3596 "y.tab.c" +#line 3606 "y.tab.c" default: break; } YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc); @@ -3806,6 +3816,6 @@ yyreturn: } -#line 1215 "cc.y" +#line 1219 "cc.y" diff --git a/src/cmd/cc/y.tab.h b/src/cmd/cc/y.tab.h index c56a1d85a..32daca9b6 100644 --- a/src/cmd/cc/y.tab.h +++ b/src/cmd/cc/y.tab.h @@ -88,28 +88,29 @@ LIF = 304, LINT = 305, LLONG = 306, - LREGISTER = 307, - LRETURN = 308, - LSHORT = 309, - LSIZEOF = 310, - LUSED = 311, - LSTATIC = 312, - LSTRUCT = 313, - LSWITCH = 314, - LTYPEDEF = 315, - LTYPESTR = 316, - LUNION = 317, - LUNSIGNED = 318, - LWHILE = 319, - LVOID = 320, - LENUM = 321, - LSIGNED = 322, - LCONSTNT = 323, - LVOLATILE = 324, - LSET = 325, - LSIGNOF = 326, - LRESTRICT = 327, - LINLINE = 328 + LPREFETCH = 307, + LREGISTER = 308, + LRETURN = 309, + LSHORT = 310, + LSIZEOF = 311, + LUSED = 312, + LSTATIC = 313, + LSTRUCT = 314, + LSWITCH = 315, + LTYPEDEF = 316, + LTYPESTR = 317, + LUNION = 318, + LUNSIGNED = 319, + LWHILE = 320, + LVOID = 321, + LENUM = 322, + LSIGNED = 323, + LCONSTNT = 324, + LVOLATILE = 325, + LSET = 326, + LSIGNOF = 327, + LRESTRICT = 328, + LINLINE = 329 }; #endif /* Tokens. */ @@ -162,28 +163,29 @@ #define LIF 304 #define LINT 305 #define LLONG 306 -#define LREGISTER 307 -#define LRETURN 308 -#define LSHORT 309 -#define LSIZEOF 310 -#define LUSED 311 -#define LSTATIC 312 -#define LSTRUCT 313 -#define LSWITCH 314 -#define LTYPEDEF 315 -#define LTYPESTR 316 -#define LUNION 317 -#define LUNSIGNED 318 -#define LWHILE 319 -#define LVOID 320 -#define LENUM 321 -#define LSIGNED 322 -#define LCONSTNT 323 -#define LVOLATILE 324 -#define LSET 325 -#define LSIGNOF 326 -#define LRESTRICT 327 -#define LINLINE 328 +#define LPREFETCH 307 +#define LREGISTER 308 +#define LRETURN 309 +#define LSHORT 310 +#define LSIZEOF 311 +#define LUSED 312 +#define LSTATIC 313 +#define LSTRUCT 314 +#define LSWITCH 315 +#define LTYPEDEF 316 +#define LTYPESTR 317 +#define LUNION 318 +#define LUNSIGNED 319 +#define LWHILE 320 +#define LVOID 321 +#define LENUM 322 +#define LSIGNED 323 +#define LCONSTNT 324 +#define LVOLATILE 325 +#define LSET 326 +#define LSIGNOF 327 +#define LRESTRICT 328 +#define LINLINE 329 @@ -217,7 +219,7 @@ typedef union YYSTYPE vlong vval; } /* Line 1529 of yacc.c. */ -#line 221 "y.tab.h" +#line 223 "y.tab.h" YYSTYPE; # define yystype YYSTYPE /* obsolescent; will be withdrawn */ # define YYSTYPE_IS_DECLARED 1 |