Terminals unused in grammar ZZERROR Grammar 0 $accept: start $end 1 start: signatures 2 signatures: algsig 3 | signatures algsig 4 algsig: ZZALG ZZIDENT sigs 5 sigs: sig 6 | sigs sig 7 sig: opname ':' sigargtypes ZZFOLLOWS resulttype 8 | opname ':' sigargtypes ZZFOLLOWS resulttype semicolon condpreds 9 | opname ':' sigargtypes ZZFOLLOWS resulttype decls '.' 10 sigargtypes: type ZZCROSSPRODUCT type 11 | type '(' varname ')' 12 | type '(' varname ')' ZZCROSSPRODUCT type 13 | type '(' varname ')' ZZPARAM '(' varname ZZFOLLOWS type ')' 14 | type '(' varname ')' ZZPARAM varname 15 | type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex 16 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL 17 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 21 | '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' 22 resulttype: type 23 | type '(' varname ')' 24 | '(' varname ',' varname ')' 25 | type '(' type '(' varname attrsindex ')' ')' 26 | '(' varname varindex ',' type '(' type '(' varname attrsindex ')' ')' ')' 27 condpreds: condpred 28 | condpreds ',' condpred 29 condpred: ZZATTR '(' varname ',' varname ',' varname ',' varname ')' 30 | ZZATTR '(' varname varindex ',' varname attrsindex ',' varname varindex ',' varname varindex ')' 31 | ZZATTRS '(' varname varindex ',' varname attrsindex ',' varname varindex ',' varname varindex ')' 32 | ZZCOMBINE '(' varname ',' varname ',' varname attrsindex ')' 33 | ZZCOMBINE '(' varname varindex ',' varname varindex ',' varname attrsindex ')' 34 | ZZCONCAT '(' varname attrsindex ',' varname attrsindex ',' varname attrsindex ')' 35 | ZZCREATEATTR '(' varname varindex ',' type '(' type '(' varname attrsindex ')' ')' ',' varname attrsindex ')' 36 | ZZDISTATTRS '(' varname attrsindex ')' 37 | ZZMINUS '(' varname attrsindex ',' varname varindex ',' varname attrsindex ')' 38 decls: ZZWHERE varname ZZIN '{' datatypes '}' 39 datatypes: datatype 40 | datatypes datatype 41 opname: ZZIDENT 42 | ZZIDENT '_' ZZIDENT 43 | ZZSYMBOL 44 varname: ZZIDENT 45 type: ZZIDENT 46 attrsindex: '_' ZZINTI 47 varindex: '_' ZZINTI 48 | '_' ZZIDENT 49 datatype: type ',' 50 | type 51 semicolon: ZZSEMICOLON Terminals, with rules where they appear $end (0) 0 '(' (40) 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 29 30 31 32 33 34 35 36 37 ')' (41) 11 12 13 14 15 16 17 18 19 20 21 23 24 25 26 29 30 31 32 33 34 35 36 37 ',' (44) 24 26 28 29 30 31 32 33 34 35 37 49 '.' (46) 9 ':' (58) 7 8 9 '_' (95) 42 46 47 48 '{' (123) 38 '}' (125) 38 error (256) ZZALG (258) 4 ZZWHERE (259) 38 ZZIN (260) 38 ZZPARAM (261) 13 14 15 16 17 18 19 20 21 ZZCROSSPRODUCT (262) 10 12 15 17 18 19 20 ZZFOLLOWS (263) 7 8 9 13 17 18 19 20 ZZSEMICOLON (264) 51 ZZERROR (265) ZZATTR (266) 29 30 ZZATTRS (267) 31 ZZCOMBINE (268) 32 33 ZZCONCAT (269) 34 ZZDISTATTRS (270) 36 ZZMINUS (271) 37 ZZCREATEATTR (272) 35 ZZIDENT (273) 4 41 42 44 45 48 ZZSYMBOL (274) 16 17 18 19 20 43 ZZINTI (275) 46 47 Nonterminals, with rules where they appear $accept (29) on left: 0 start (30) on left: 1 on right: 0 signatures (31) on left: 2 3 on right: 1 3 algsig (32) on left: 4 on right: 2 3 sigs (33) on left: 5 6 on right: 4 6 sig (34) on left: 7 8 9 on right: 5 6 sigargtypes (35) on left: 10 11 12 13 14 15 16 17 18 19 20 21 on right: 7 8 9 resulttype (36) on left: 22 23 24 25 26 on right: 7 8 9 condpreds (37) on left: 27 28 on right: 8 28 condpred (38) on left: 29 30 31 32 33 34 35 36 37 on right: 27 28 decls (39) on left: 38 on right: 9 datatypes (40) on left: 39 40 on right: 38 40 opname (41) on left: 41 42 43 on right: 7 8 9 varname (42) on left: 44 on right: 11 12 13 14 15 16 17 18 19 20 23 24 25 26 29 30 31 32 33 34 35 36 37 38 type (43) on left: 45 on right: 10 11 12 13 14 15 16 17 18 19 20 21 22 23 25 26 35 49 50 attrsindex (44) on left: 46 on right: 15 16 17 18 19 20 25 26 30 31 32 33 34 35 36 37 varindex (45) on left: 47 48 on right: 15 16 17 18 19 20 26 30 31 33 35 37 datatype (46) on left: 49 50 on right: 39 40 semicolon (47) on left: 51 on right: 8 State 0 0 $accept: • start $end ZZALG shift, and go to state 1 start go to state 2 signatures go to state 3 algsig go to state 4 State 1 4 algsig: ZZALG • ZZIDENT sigs ZZIDENT shift, and go to state 5 State 2 0 $accept: start • $end $end shift, and go to state 6 State 3 1 start: signatures • 3 signatures: signatures • algsig ZZALG shift, and go to state 1 $default reduce using rule 1 (start) algsig go to state 7 State 4 2 signatures: algsig • $default reduce using rule 2 (signatures) State 5 4 algsig: ZZALG ZZIDENT • sigs ZZIDENT shift, and go to state 8 ZZSYMBOL shift, and go to state 9 sigs go to state 10 sig go to state 11 opname go to state 12 State 6 0 $accept: start $end • $default accept State 7 3 signatures: signatures algsig • $default reduce using rule 3 (signatures) State 8 41 opname: ZZIDENT • 42 | ZZIDENT • '_' ZZIDENT '_' shift, and go to state 13 $default reduce using rule 41 (opname) State 9 43 opname: ZZSYMBOL • $default reduce using rule 43 (opname) State 10 4 algsig: ZZALG ZZIDENT sigs • 6 sigs: sigs • sig ZZIDENT shift, and go to state 8 ZZSYMBOL shift, and go to state 9 $default reduce using rule 4 (algsig) sig go to state 14 opname go to state 12 State 11 5 sigs: sig • $default reduce using rule 5 (sigs) State 12 7 sig: opname • ':' sigargtypes ZZFOLLOWS resulttype 8 | opname • ':' sigargtypes ZZFOLLOWS resulttype semicolon condpreds 9 | opname • ':' sigargtypes ZZFOLLOWS resulttype decls '.' ':' shift, and go to state 15 State 13 42 opname: ZZIDENT '_' • ZZIDENT ZZIDENT shift, and go to state 16 State 14 6 sigs: sigs sig • $default reduce using rule 6 (sigs) State 15 7 sig: opname ':' • sigargtypes ZZFOLLOWS resulttype 8 | opname ':' • sigargtypes ZZFOLLOWS resulttype semicolon condpreds 9 | opname ':' • sigargtypes ZZFOLLOWS resulttype decls '.' ZZIDENT shift, and go to state 17 '(' shift, and go to state 18 sigargtypes go to state 19 type go to state 20 State 16 42 opname: ZZIDENT '_' ZZIDENT • $default reduce using rule 42 (opname) State 17 45 type: ZZIDENT • $default reduce using rule 45 (type) State 18 21 sigargtypes: '(' • type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ZZIDENT shift, and go to state 17 type go to state 21 State 19 7 sig: opname ':' sigargtypes • ZZFOLLOWS resulttype 8 | opname ':' sigargtypes • ZZFOLLOWS resulttype semicolon condpreds 9 | opname ':' sigargtypes • ZZFOLLOWS resulttype decls '.' ZZFOLLOWS shift, and go to state 22 State 20 10 sigargtypes: type • ZZCROSSPRODUCT type 11 | type • '(' varname ')' 12 | type • '(' varname ')' ZZCROSSPRODUCT type 13 | type • '(' varname ')' ZZPARAM '(' varname ZZFOLLOWS type ')' 14 | type • '(' varname ')' ZZPARAM varname 15 | type • '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex 16 | type • '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL 17 | type • '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type • '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type • '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type • '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZCROSSPRODUCT shift, and go to state 23 '(' shift, and go to state 24 State 21 21 sigargtypes: '(' type • ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ')' shift, and go to state 25 State 22 7 sig: opname ':' sigargtypes ZZFOLLOWS • resulttype 8 | opname ':' sigargtypes ZZFOLLOWS • resulttype semicolon condpreds 9 | opname ':' sigargtypes ZZFOLLOWS • resulttype decls '.' ZZIDENT shift, and go to state 17 '(' shift, and go to state 26 resulttype go to state 27 type go to state 28 State 23 10 sigargtypes: type ZZCROSSPRODUCT • type ZZIDENT shift, and go to state 17 type go to state 29 State 24 11 sigargtypes: type '(' • varname ')' 12 | type '(' • varname ')' ZZCROSSPRODUCT type 13 | type '(' • varname ')' ZZPARAM '(' varname ZZFOLLOWS type ')' 14 | type '(' • varname ')' ZZPARAM varname 15 | type '(' • type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex 16 | type '(' • type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL 17 | type '(' • type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' • type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' • type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' • type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 30 varname go to state 31 type go to state 32 State 25 21 sigargtypes: '(' type ')' • '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' shift, and go to state 33 State 26 24 resulttype: '(' • varname ',' varname ')' 26 | '(' • varname varindex ',' type '(' type '(' varname attrsindex ')' ')' ')' ZZIDENT shift, and go to state 34 varname go to state 35 State 27 7 sig: opname ':' sigargtypes ZZFOLLOWS resulttype • 8 | opname ':' sigargtypes ZZFOLLOWS resulttype • semicolon condpreds 9 | opname ':' sigargtypes ZZFOLLOWS resulttype • decls '.' ZZWHERE shift, and go to state 36 ZZSEMICOLON shift, and go to state 37 $default reduce using rule 7 (sig) decls go to state 38 semicolon go to state 39 State 28 22 resulttype: type • 23 | type • '(' varname ')' 25 | type • '(' type '(' varname attrsindex ')' ')' '(' shift, and go to state 40 $default reduce using rule 22 (resulttype) State 29 10 sigargtypes: type ZZCROSSPRODUCT type • $default reduce using rule 10 (sigargtypes) State 30 44 varname: ZZIDENT • 45 type: ZZIDENT • '(' reduce using rule 45 (type) $default reduce using rule 44 (varname) State 31 11 sigargtypes: type '(' varname • ')' 12 | type '(' varname • ')' ZZCROSSPRODUCT type 13 | type '(' varname • ')' ZZPARAM '(' varname ZZFOLLOWS type ')' 14 | type '(' varname • ')' ZZPARAM varname ')' shift, and go to state 41 State 32 15 sigargtypes: type '(' type • '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex 16 | type '(' type • '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL 17 | type '(' type • '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' type • '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type • '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type • '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '(' shift, and go to state 42 State 33 21 sigargtypes: '(' type ')' '(' • type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ZZIDENT shift, and go to state 17 type go to state 43 State 34 44 varname: ZZIDENT • $default reduce using rule 44 (varname) State 35 24 resulttype: '(' varname • ',' varname ')' 26 | '(' varname • varindex ',' type '(' type '(' varname attrsindex ')' ')' ')' ',' shift, and go to state 44 '_' shift, and go to state 45 varindex go to state 46 State 36 38 decls: ZZWHERE • varname ZZIN '{' datatypes '}' ZZIDENT shift, and go to state 34 varname go to state 47 State 37 51 semicolon: ZZSEMICOLON • $default reduce using rule 51 (semicolon) State 38 9 sig: opname ':' sigargtypes ZZFOLLOWS resulttype decls • '.' '.' shift, and go to state 48 State 39 8 sig: opname ':' sigargtypes ZZFOLLOWS resulttype semicolon • condpreds ZZATTR shift, and go to state 49 ZZATTRS shift, and go to state 50 ZZCOMBINE shift, and go to state 51 ZZCONCAT shift, and go to state 52 ZZDISTATTRS shift, and go to state 53 ZZMINUS shift, and go to state 54 ZZCREATEATTR shift, and go to state 55 condpreds go to state 56 condpred go to state 57 State 40 23 resulttype: type '(' • varname ')' 25 | type '(' • type '(' varname attrsindex ')' ')' ZZIDENT shift, and go to state 30 varname go to state 58 type go to state 59 State 41 11 sigargtypes: type '(' varname ')' • 12 | type '(' varname ')' • ZZCROSSPRODUCT type 13 | type '(' varname ')' • ZZPARAM '(' varname ZZFOLLOWS type ')' 14 | type '(' varname ')' • ZZPARAM varname ZZPARAM shift, and go to state 60 ZZCROSSPRODUCT shift, and go to state 61 $default reduce using rule 11 (sigargtypes) State 42 15 sigargtypes: type '(' type '(' • varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex 16 | type '(' type '(' • varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL 17 | type '(' type '(' • varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' type '(' • varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' • varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' • varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 34 varname go to state 62 State 43 21 sigargtypes: '(' type ')' '(' type • ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ')' shift, and go to state 63 State 44 24 resulttype: '(' varname ',' • varname ')' ZZIDENT shift, and go to state 34 varname go to state 64 State 45 47 varindex: '_' • ZZINTI 48 | '_' • ZZIDENT ZZIDENT shift, and go to state 65 ZZINTI shift, and go to state 66 State 46 26 resulttype: '(' varname varindex • ',' type '(' type '(' varname attrsindex ')' ')' ')' ',' shift, and go to state 67 State 47 38 decls: ZZWHERE varname • ZZIN '{' datatypes '}' ZZIN shift, and go to state 68 State 48 9 sig: opname ':' sigargtypes ZZFOLLOWS resulttype decls '.' • $default reduce using rule 9 (sig) State 49 29 condpred: ZZATTR • '(' varname ',' varname ',' varname ',' varname ')' 30 | ZZATTR • '(' varname varindex ',' varname attrsindex ',' varname varindex ',' varname varindex ')' '(' shift, and go to state 69 State 50 31 condpred: ZZATTRS • '(' varname varindex ',' varname attrsindex ',' varname varindex ',' varname varindex ')' '(' shift, and go to state 70 State 51 32 condpred: ZZCOMBINE • '(' varname ',' varname ',' varname attrsindex ')' 33 | ZZCOMBINE • '(' varname varindex ',' varname varindex ',' varname attrsindex ')' '(' shift, and go to state 71 State 52 34 condpred: ZZCONCAT • '(' varname attrsindex ',' varname attrsindex ',' varname attrsindex ')' '(' shift, and go to state 72 State 53 36 condpred: ZZDISTATTRS • '(' varname attrsindex ')' '(' shift, and go to state 73 State 54 37 condpred: ZZMINUS • '(' varname attrsindex ',' varname varindex ',' varname attrsindex ')' '(' shift, and go to state 74 State 55 35 condpred: ZZCREATEATTR • '(' varname varindex ',' type '(' type '(' varname attrsindex ')' ')' ',' varname attrsindex ')' '(' shift, and go to state 75 State 56 8 sig: opname ':' sigargtypes ZZFOLLOWS resulttype semicolon condpreds • 28 condpreds: condpreds • ',' condpred ',' shift, and go to state 76 $default reduce using rule 8 (sig) State 57 27 condpreds: condpred • $default reduce using rule 27 (condpreds) State 58 23 resulttype: type '(' varname • ')' ')' shift, and go to state 77 State 59 25 resulttype: type '(' type • '(' varname attrsindex ')' ')' '(' shift, and go to state 78 State 60 13 sigargtypes: type '(' varname ')' ZZPARAM • '(' varname ZZFOLLOWS type ')' 14 | type '(' varname ')' ZZPARAM • varname ZZIDENT shift, and go to state 34 '(' shift, and go to state 79 varname go to state 80 State 61 12 sigargtypes: type '(' varname ')' ZZCROSSPRODUCT • type ZZIDENT shift, and go to state 17 type go to state 81 State 62 15 sigargtypes: type '(' type '(' varname • attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex 16 | type '(' type '(' varname • attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL 17 | type '(' type '(' varname • attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' type '(' varname • attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname • attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname • attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '_' shift, and go to state 82 attrsindex go to state 83 State 63 21 sigargtypes: '(' type ')' '(' type ')' • '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' shift, and go to state 84 State 64 24 resulttype: '(' varname ',' varname • ')' ')' shift, and go to state 85 State 65 48 varindex: '_' ZZIDENT • $default reduce using rule 48 (varindex) State 66 47 varindex: '_' ZZINTI • $default reduce using rule 47 (varindex) State 67 26 resulttype: '(' varname varindex ',' • type '(' type '(' varname attrsindex ')' ')' ')' ZZIDENT shift, and go to state 17 type go to state 86 State 68 38 decls: ZZWHERE varname ZZIN • '{' datatypes '}' '{' shift, and go to state 87 State 69 29 condpred: ZZATTR '(' • varname ',' varname ',' varname ',' varname ')' 30 | ZZATTR '(' • varname varindex ',' varname attrsindex ',' varname varindex ',' varname varindex ')' ZZIDENT shift, and go to state 34 varname go to state 88 State 70 31 condpred: ZZATTRS '(' • varname varindex ',' varname attrsindex ',' varname varindex ',' varname varindex ')' ZZIDENT shift, and go to state 34 varname go to state 89 State 71 32 condpred: ZZCOMBINE '(' • varname ',' varname ',' varname attrsindex ')' 33 | ZZCOMBINE '(' • varname varindex ',' varname varindex ',' varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 90 State 72 34 condpred: ZZCONCAT '(' • varname attrsindex ',' varname attrsindex ',' varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 91 State 73 36 condpred: ZZDISTATTRS '(' • varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 92 State 74 37 condpred: ZZMINUS '(' • varname attrsindex ',' varname varindex ',' varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 93 State 75 35 condpred: ZZCREATEATTR '(' • varname varindex ',' type '(' type '(' varname attrsindex ')' ')' ',' varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 94 State 76 28 condpreds: condpreds ',' • condpred ZZATTR shift, and go to state 49 ZZATTRS shift, and go to state 50 ZZCOMBINE shift, and go to state 51 ZZCONCAT shift, and go to state 52 ZZDISTATTRS shift, and go to state 53 ZZMINUS shift, and go to state 54 ZZCREATEATTR shift, and go to state 55 condpred go to state 95 State 77 23 resulttype: type '(' varname ')' • $default reduce using rule 23 (resulttype) State 78 25 resulttype: type '(' type '(' • varname attrsindex ')' ')' ZZIDENT shift, and go to state 34 varname go to state 96 State 79 13 sigargtypes: type '(' varname ')' ZZPARAM '(' • varname ZZFOLLOWS type ')' ZZIDENT shift, and go to state 34 varname go to state 97 State 80 14 sigargtypes: type '(' varname ')' ZZPARAM varname • $default reduce using rule 14 (sigargtypes) State 81 12 sigargtypes: type '(' varname ')' ZZCROSSPRODUCT type • $default reduce using rule 12 (sigargtypes) State 82 46 attrsindex: '_' • ZZINTI ZZINTI shift, and go to state 98 State 83 15 sigargtypes: type '(' type '(' varname attrsindex • ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex 16 | type '(' type '(' varname attrsindex • ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL 17 | type '(' type '(' varname attrsindex • ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' type '(' varname attrsindex • ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex • ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex • ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ')' shift, and go to state 99 State 84 21 sigargtypes: '(' type ')' '(' type ')' '(' • type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ZZIDENT shift, and go to state 17 type go to state 100 State 85 24 resulttype: '(' varname ',' varname ')' • $default reduce using rule 24 (resulttype) State 86 26 resulttype: '(' varname varindex ',' type • '(' type '(' varname attrsindex ')' ')' ')' '(' shift, and go to state 101 State 87 38 decls: ZZWHERE varname ZZIN '{' • datatypes '}' ZZIDENT shift, and go to state 17 datatypes go to state 102 type go to state 103 datatype go to state 104 State 88 29 condpred: ZZATTR '(' varname • ',' varname ',' varname ',' varname ')' 30 | ZZATTR '(' varname • varindex ',' varname attrsindex ',' varname varindex ',' varname varindex ')' ',' shift, and go to state 105 '_' shift, and go to state 45 varindex go to state 106 State 89 31 condpred: ZZATTRS '(' varname • varindex ',' varname attrsindex ',' varname varindex ',' varname varindex ')' '_' shift, and go to state 45 varindex go to state 107 State 90 32 condpred: ZZCOMBINE '(' varname • ',' varname ',' varname attrsindex ')' 33 | ZZCOMBINE '(' varname • varindex ',' varname varindex ',' varname attrsindex ')' ',' shift, and go to state 108 '_' shift, and go to state 45 varindex go to state 109 State 91 34 condpred: ZZCONCAT '(' varname • attrsindex ',' varname attrsindex ',' varname attrsindex ')' '_' shift, and go to state 82 attrsindex go to state 110 State 92 36 condpred: ZZDISTATTRS '(' varname • attrsindex ')' '_' shift, and go to state 82 attrsindex go to state 111 State 93 37 condpred: ZZMINUS '(' varname • attrsindex ',' varname varindex ',' varname attrsindex ')' '_' shift, and go to state 82 attrsindex go to state 112 State 94 35 condpred: ZZCREATEATTR '(' varname • varindex ',' type '(' type '(' varname attrsindex ')' ')' ',' varname attrsindex ')' '_' shift, and go to state 45 varindex go to state 113 State 95 28 condpreds: condpreds ',' condpred • $default reduce using rule 28 (condpreds) State 96 25 resulttype: type '(' type '(' varname • attrsindex ')' ')' '_' shift, and go to state 82 attrsindex go to state 114 State 97 13 sigargtypes: type '(' varname ')' ZZPARAM '(' varname • ZZFOLLOWS type ')' ZZFOLLOWS shift, and go to state 115 State 98 46 attrsindex: '_' ZZINTI • $default reduce using rule 46 (attrsindex) State 99 15 sigargtypes: type '(' type '(' varname attrsindex ')' • ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex 16 | type '(' type '(' varname attrsindex ')' • ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL 17 | type '(' type '(' varname attrsindex ')' • ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' type '(' varname attrsindex ')' • ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' • ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' • ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ')' shift, and go to state 116 State 100 21 sigargtypes: '(' type ')' '(' type ')' '(' type • ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ')' shift, and go to state 117 State 101 26 resulttype: '(' varname varindex ',' type '(' • type '(' varname attrsindex ')' ')' ')' ZZIDENT shift, and go to state 17 type go to state 118 State 102 38 decls: ZZWHERE varname ZZIN '{' datatypes • '}' 40 datatypes: datatypes • datatype ZZIDENT shift, and go to state 17 '}' shift, and go to state 119 type go to state 103 datatype go to state 120 State 103 49 datatype: type • ',' 50 | type • ',' shift, and go to state 121 $default reduce using rule 50 (datatype) State 104 39 datatypes: datatype • $default reduce using rule 39 (datatypes) State 105 29 condpred: ZZATTR '(' varname ',' • varname ',' varname ',' varname ')' ZZIDENT shift, and go to state 34 varname go to state 122 State 106 30 condpred: ZZATTR '(' varname varindex • ',' varname attrsindex ',' varname varindex ',' varname varindex ')' ',' shift, and go to state 123 State 107 31 condpred: ZZATTRS '(' varname varindex • ',' varname attrsindex ',' varname varindex ',' varname varindex ')' ',' shift, and go to state 124 State 108 32 condpred: ZZCOMBINE '(' varname ',' • varname ',' varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 125 State 109 33 condpred: ZZCOMBINE '(' varname varindex • ',' varname varindex ',' varname attrsindex ')' ',' shift, and go to state 126 State 110 34 condpred: ZZCONCAT '(' varname attrsindex • ',' varname attrsindex ',' varname attrsindex ')' ',' shift, and go to state 127 State 111 36 condpred: ZZDISTATTRS '(' varname attrsindex • ')' ')' shift, and go to state 128 State 112 37 condpred: ZZMINUS '(' varname attrsindex • ',' varname varindex ',' varname attrsindex ')' ',' shift, and go to state 129 State 113 35 condpred: ZZCREATEATTR '(' varname varindex • ',' type '(' type '(' varname attrsindex ')' ')' ',' varname attrsindex ')' ',' shift, and go to state 130 State 114 25 resulttype: type '(' type '(' varname attrsindex • ')' ')' ')' shift, and go to state 131 State 115 13 sigargtypes: type '(' varname ')' ZZPARAM '(' varname ZZFOLLOWS • type ')' ZZIDENT shift, and go to state 17 type go to state 132 State 116 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' • ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex 16 | type '(' type '(' varname attrsindex ')' ')' • ZZPARAM '(' varname varindex ')' ZZSYMBOL 17 | type '(' type '(' varname attrsindex ')' ')' • ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' type '(' varname attrsindex ')' ')' • ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' ')' • ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' ')' • ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZPARAM shift, and go to state 133 ZZCROSSPRODUCT shift, and go to state 134 State 117 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' • ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ZZPARAM shift, and go to state 135 State 118 26 resulttype: '(' varname varindex ',' type '(' type • '(' varname attrsindex ')' ')' ')' '(' shift, and go to state 136 State 119 38 decls: ZZWHERE varname ZZIN '{' datatypes '}' • $default reduce using rule 38 (decls) State 120 40 datatypes: datatypes datatype • $default reduce using rule 40 (datatypes) State 121 49 datatype: type ',' • $default reduce using rule 49 (datatype) State 122 29 condpred: ZZATTR '(' varname ',' varname • ',' varname ',' varname ')' ',' shift, and go to state 137 State 123 30 condpred: ZZATTR '(' varname varindex ',' • varname attrsindex ',' varname varindex ',' varname varindex ')' ZZIDENT shift, and go to state 34 varname go to state 138 State 124 31 condpred: ZZATTRS '(' varname varindex ',' • varname attrsindex ',' varname varindex ',' varname varindex ')' ZZIDENT shift, and go to state 34 varname go to state 139 State 125 32 condpred: ZZCOMBINE '(' varname ',' varname • ',' varname attrsindex ')' ',' shift, and go to state 140 State 126 33 condpred: ZZCOMBINE '(' varname varindex ',' • varname varindex ',' varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 141 State 127 34 condpred: ZZCONCAT '(' varname attrsindex ',' • varname attrsindex ',' varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 142 State 128 36 condpred: ZZDISTATTRS '(' varname attrsindex ')' • $default reduce using rule 36 (condpred) State 129 37 condpred: ZZMINUS '(' varname attrsindex ',' • varname varindex ',' varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 143 State 130 35 condpred: ZZCREATEATTR '(' varname varindex ',' • type '(' type '(' varname attrsindex ')' ')' ',' varname attrsindex ')' ZZIDENT shift, and go to state 17 type go to state 144 State 131 25 resulttype: type '(' type '(' varname attrsindex ')' • ')' ')' shift, and go to state 145 State 132 13 sigargtypes: type '(' varname ')' ZZPARAM '(' varname ZZFOLLOWS type • ')' ')' shift, and go to state 146 State 133 16 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM • '(' varname varindex ')' ZZSYMBOL 17 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM • '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM • '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM • '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM • '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '(' shift, and go to state 147 State 134 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT • type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex ZZIDENT shift, and go to state 17 type go to state 148 State 135 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM • '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' shift, and go to state 149 State 136 26 resulttype: '(' varname varindex ',' type '(' type '(' • varname attrsindex ')' ')' ')' ZZIDENT shift, and go to state 34 varname go to state 150 State 137 29 condpred: ZZATTR '(' varname ',' varname ',' • varname ',' varname ')' ZZIDENT shift, and go to state 34 varname go to state 151 State 138 30 condpred: ZZATTR '(' varname varindex ',' varname • attrsindex ',' varname varindex ',' varname varindex ')' '_' shift, and go to state 82 attrsindex go to state 152 State 139 31 condpred: ZZATTRS '(' varname varindex ',' varname • attrsindex ',' varname varindex ',' varname varindex ')' '_' shift, and go to state 82 attrsindex go to state 153 State 140 32 condpred: ZZCOMBINE '(' varname ',' varname ',' • varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 154 State 141 33 condpred: ZZCOMBINE '(' varname varindex ',' varname • varindex ',' varname attrsindex ')' '_' shift, and go to state 45 varindex go to state 155 State 142 34 condpred: ZZCONCAT '(' varname attrsindex ',' varname • attrsindex ',' varname attrsindex ')' '_' shift, and go to state 82 attrsindex go to state 156 State 143 37 condpred: ZZMINUS '(' varname attrsindex ',' varname • varindex ',' varname attrsindex ')' '_' shift, and go to state 45 varindex go to state 157 State 144 35 condpred: ZZCREATEATTR '(' varname varindex ',' type • '(' type '(' varname attrsindex ')' ')' ',' varname attrsindex ')' '(' shift, and go to state 158 State 145 25 resulttype: type '(' type '(' varname attrsindex ')' ')' • $default reduce using rule 25 (resulttype) State 146 13 sigargtypes: type '(' varname ')' ZZPARAM '(' varname ZZFOLLOWS type ')' • $default reduce using rule 13 (sigargtypes) State 147 16 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' • varname varindex ')' ZZSYMBOL 17 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' • varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' • varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' • varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' • varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 34 varname go to state 159 State 148 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type • '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex '(' shift, and go to state 160 State 149 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' • type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ZZIDENT shift, and go to state 17 type go to state 161 State 150 26 resulttype: '(' varname varindex ',' type '(' type '(' varname • attrsindex ')' ')' ')' '_' shift, and go to state 82 attrsindex go to state 162 State 151 29 condpred: ZZATTR '(' varname ',' varname ',' varname • ',' varname ')' ',' shift, and go to state 163 State 152 30 condpred: ZZATTR '(' varname varindex ',' varname attrsindex • ',' varname varindex ',' varname varindex ')' ',' shift, and go to state 164 State 153 31 condpred: ZZATTRS '(' varname varindex ',' varname attrsindex • ',' varname varindex ',' varname varindex ')' ',' shift, and go to state 165 State 154 32 condpred: ZZCOMBINE '(' varname ',' varname ',' varname • attrsindex ')' '_' shift, and go to state 82 attrsindex go to state 166 State 155 33 condpred: ZZCOMBINE '(' varname varindex ',' varname varindex • ',' varname attrsindex ')' ',' shift, and go to state 167 State 156 34 condpred: ZZCONCAT '(' varname attrsindex ',' varname attrsindex • ',' varname attrsindex ')' ',' shift, and go to state 168 State 157 37 condpred: ZZMINUS '(' varname attrsindex ',' varname varindex • ',' varname attrsindex ')' ',' shift, and go to state 169 State 158 35 condpred: ZZCREATEATTR '(' varname varindex ',' type '(' • type '(' varname attrsindex ')' ')' ',' varname attrsindex ')' ZZIDENT shift, and go to state 17 type go to state 170 State 159 16 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname • varindex ')' ZZSYMBOL 17 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname • varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname • varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname • varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname • varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '_' shift, and go to state 45 varindex go to state 171 State 160 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' • type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex ZZIDENT shift, and go to state 17 type go to state 172 State 161 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type • ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ')' shift, and go to state 173 State 162 26 resulttype: '(' varname varindex ',' type '(' type '(' varname attrsindex • ')' ')' ')' ')' shift, and go to state 174 State 163 29 condpred: ZZATTR '(' varname ',' varname ',' varname ',' • varname ')' ZZIDENT shift, and go to state 34 varname go to state 175 State 164 30 condpred: ZZATTR '(' varname varindex ',' varname attrsindex ',' • varname varindex ',' varname varindex ')' ZZIDENT shift, and go to state 34 varname go to state 176 State 165 31 condpred: ZZATTRS '(' varname varindex ',' varname attrsindex ',' • varname varindex ',' varname varindex ')' ZZIDENT shift, and go to state 34 varname go to state 177 State 166 32 condpred: ZZCOMBINE '(' varname ',' varname ',' varname attrsindex • ')' ')' shift, and go to state 178 State 167 33 condpred: ZZCOMBINE '(' varname varindex ',' varname varindex ',' • varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 179 State 168 34 condpred: ZZCONCAT '(' varname attrsindex ',' varname attrsindex ',' • varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 180 State 169 37 condpred: ZZMINUS '(' varname attrsindex ',' varname varindex ',' • varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 181 State 170 35 condpred: ZZCREATEATTR '(' varname varindex ',' type '(' type • '(' varname attrsindex ')' ')' ',' varname attrsindex ')' '(' shift, and go to state 182 State 171 16 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex • ')' ZZSYMBOL 17 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex • ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 18 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex • ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex • ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex • ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZCROSSPRODUCT shift, and go to state 183 ')' shift, and go to state 184 State 172 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type • '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex '(' shift, and go to state 185 State 173 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' • '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' shift, and go to state 186 State 174 26 resulttype: '(' varname varindex ',' type '(' type '(' varname attrsindex ')' • ')' ')' ')' shift, and go to state 187 State 175 29 condpred: ZZATTR '(' varname ',' varname ',' varname ',' varname • ')' ')' shift, and go to state 188 State 176 30 condpred: ZZATTR '(' varname varindex ',' varname attrsindex ',' varname • varindex ',' varname varindex ')' '_' shift, and go to state 45 varindex go to state 189 State 177 31 condpred: ZZATTRS '(' varname varindex ',' varname attrsindex ',' varname • varindex ',' varname varindex ')' '_' shift, and go to state 45 varindex go to state 190 State 178 32 condpred: ZZCOMBINE '(' varname ',' varname ',' varname attrsindex ')' • $default reduce using rule 32 (condpred) State 179 33 condpred: ZZCOMBINE '(' varname varindex ',' varname varindex ',' varname • attrsindex ')' '_' shift, and go to state 82 attrsindex go to state 191 State 180 34 condpred: ZZCONCAT '(' varname attrsindex ',' varname attrsindex ',' varname • attrsindex ')' '_' shift, and go to state 82 attrsindex go to state 192 State 181 37 condpred: ZZMINUS '(' varname attrsindex ',' varname varindex ',' varname • attrsindex ')' '_' shift, and go to state 82 attrsindex go to state 193 State 182 35 condpred: ZZCREATEATTR '(' varname varindex ',' type '(' type '(' • varname attrsindex ')' ')' ',' varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 194 State 183 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT • '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '(' shift, and go to state 195 State 184 16 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' • ZZSYMBOL 18 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' • ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' • ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' • ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZSYMBOL shift, and go to state 196 State 185 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' • varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex ZZIDENT shift, and go to state 34 varname go to state 197 State 186 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' • type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ZZIDENT shift, and go to state 17 type go to state 198 State 187 26 resulttype: '(' varname varindex ',' type '(' type '(' varname attrsindex ')' ')' • ')' ')' shift, and go to state 199 State 188 29 condpred: ZZATTR '(' varname ',' varname ',' varname ',' varname ')' • $default reduce using rule 29 (condpred) State 189 30 condpred: ZZATTR '(' varname varindex ',' varname attrsindex ',' varname varindex • ',' varname varindex ')' ',' shift, and go to state 200 State 190 31 condpred: ZZATTRS '(' varname varindex ',' varname attrsindex ',' varname varindex • ',' varname varindex ')' ',' shift, and go to state 201 State 191 33 condpred: ZZCOMBINE '(' varname varindex ',' varname varindex ',' varname attrsindex • ')' ')' shift, and go to state 202 State 192 34 condpred: ZZCONCAT '(' varname attrsindex ',' varname attrsindex ',' varname attrsindex • ')' ')' shift, and go to state 203 State 193 37 condpred: ZZMINUS '(' varname attrsindex ',' varname varindex ',' varname attrsindex • ')' ')' shift, and go to state 204 State 194 35 condpred: ZZCREATEATTR '(' varname varindex ',' type '(' type '(' varname • attrsindex ')' ')' ',' varname attrsindex ')' '_' shift, and go to state 82 attrsindex go to state 205 State 195 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' • type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 17 type go to state 206 State 196 16 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL • 18 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL • ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL • ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL • ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZCROSSPRODUCT shift, and go to state 207 $default reduce using rule 16 (sigargtypes) State 197 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname • attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex '_' shift, and go to state 82 attrsindex go to state 208 State 198 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type • ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ')' shift, and go to state 209 State 199 26 resulttype: '(' varname varindex ',' type '(' type '(' varname attrsindex ')' ')' ')' • $default reduce using rule 26 (resulttype) State 200 30 condpred: ZZATTR '(' varname varindex ',' varname attrsindex ',' varname varindex ',' • varname varindex ')' ZZIDENT shift, and go to state 34 varname go to state 210 State 201 31 condpred: ZZATTRS '(' varname varindex ',' varname attrsindex ',' varname varindex ',' • varname varindex ')' ZZIDENT shift, and go to state 34 varname go to state 211 State 202 33 condpred: ZZCOMBINE '(' varname varindex ',' varname varindex ',' varname attrsindex ')' • $default reduce using rule 33 (condpred) State 203 34 condpred: ZZCONCAT '(' varname attrsindex ',' varname attrsindex ',' varname attrsindex ')' • $default reduce using rule 34 (condpred) State 204 37 condpred: ZZMINUS '(' varname attrsindex ',' varname varindex ',' varname attrsindex ')' • $default reduce using rule 37 (condpred) State 205 35 condpred: ZZCREATEATTR '(' varname varindex ',' type '(' type '(' varname attrsindex • ')' ')' ',' varname attrsindex ')' ')' shift, and go to state 212 State 206 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type • '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '(' shift, and go to state 213 State 207 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT • '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT • '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT • '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '(' shift, and go to state 214 State 208 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex • ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex ')' shift, and go to state 215 State 209 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' • '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' shift, and go to state 216 State 210 30 condpred: ZZATTR '(' varname varindex ',' varname attrsindex ',' varname varindex ',' varname • varindex ')' '_' shift, and go to state 45 varindex go to state 217 State 211 31 condpred: ZZATTRS '(' varname varindex ',' varname attrsindex ',' varname varindex ',' varname • varindex ')' '_' shift, and go to state 45 varindex go to state 218 State 212 35 condpred: ZZCREATEATTR '(' varname varindex ',' type '(' type '(' varname attrsindex ')' • ')' ',' varname attrsindex ')' ')' shift, and go to state 219 State 213 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' • varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 34 varname go to state 220 State 214 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' • varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' • varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' • varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 34 varname go to state 221 State 215 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' • ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex ')' shift, and go to state 222 State 216 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' • type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ZZIDENT shift, and go to state 17 type go to state 223 State 217 30 condpred: ZZATTR '(' varname varindex ',' varname attrsindex ',' varname varindex ',' varname varindex • ')' ')' shift, and go to state 224 State 218 31 condpred: ZZATTRS '(' varname varindex ',' varname attrsindex ',' varname varindex ',' varname varindex • ')' ')' shift, and go to state 225 State 219 35 condpred: ZZCREATEATTR '(' varname varindex ',' type '(' type '(' varname attrsindex ')' ')' • ',' varname attrsindex ')' ',' shift, and go to state 226 State 220 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname • attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '_' shift, and go to state 82 attrsindex go to state 227 State 221 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname • varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 19 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname • ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname • varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZCROSSPRODUCT shift, and go to state 228 '_' shift, and go to state 45 varindex go to state 229 State 222 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' • ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex ZZPARAM shift, and go to state 230 State 223 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type • ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' ')' shift, and go to state 231 State 224 30 condpred: ZZATTR '(' varname varindex ',' varname attrsindex ',' varname varindex ',' varname varindex ')' • $default reduce using rule 30 (condpred) State 225 31 condpred: ZZATTRS '(' varname varindex ',' varname attrsindex ',' varname varindex ',' varname varindex ')' • $default reduce using rule 31 (condpred) State 226 35 condpred: ZZCREATEATTR '(' varname varindex ',' type '(' type '(' varname attrsindex ')' ')' ',' • varname attrsindex ')' ZZIDENT shift, and go to state 34 varname go to state 232 State 227 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex • ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ')' shift, and go to state 233 State 228 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT • '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' '(' shift, and go to state 234 State 229 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex • ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex • ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZCROSSPRODUCT shift, and go to state 235 State 230 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM • varname varindex ZZCROSSPRODUCT varname varindex ZZIDENT shift, and go to state 34 varname go to state 236 State 231 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' • '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' shift, and go to state 237 State 232 35 condpred: ZZCREATEATTR '(' varname varindex ',' type '(' type '(' varname attrsindex ')' ')' ',' varname • attrsindex ')' '_' shift, and go to state 82 attrsindex go to state 238 State 233 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' • ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZFOLLOWS shift, and go to state 239 State 234 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' • type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' ZZIDENT shift, and go to state 17 type go to state 240 State 235 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT • '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT • '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '(' shift, and go to state 241 State 236 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname • varindex ZZCROSSPRODUCT varname varindex '_' shift, and go to state 45 varindex go to state 242 State 237 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' • type ')' '(' type ')' '(' type ')' '(' type ')' ZZIDENT shift, and go to state 17 type go to state 243 State 238 35 condpred: ZZCREATEATTR '(' varname varindex ',' type '(' type '(' varname attrsindex ')' ')' ',' varname attrsindex • ')' ')' shift, and go to state 244 State 239 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS • varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 34 varname go to state 245 State 240 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type • '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' '(' shift, and go to state 246 State 241 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' • type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' • type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 17 type go to state 247 State 242 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex • ZZCROSSPRODUCT varname varindex ZZCROSSPRODUCT shift, and go to state 248 State 243 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type • ')' '(' type ')' '(' type ')' '(' type ')' ')' shift, and go to state 249 State 244 35 condpred: ZZCREATEATTR '(' varname varindex ',' type '(' type '(' varname attrsindex ')' ')' ',' varname attrsindex ')' • $default reduce using rule 35 (condpred) State 245 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname • varindex ')' ')' ZZSYMBOL '_' shift, and go to state 45 varindex go to state 250 State 246 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' • varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' ZZIDENT shift, and go to state 34 varname go to state 251 State 247 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type • '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type • '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '(' shift, and go to state 252 State 248 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT • varname varindex ZZIDENT shift, and go to state 34 varname go to state 253 State 249 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' • '(' type ')' '(' type ')' '(' type ')' '(' shift, and go to state 254 State 250 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex • ')' ')' ZZSYMBOL ')' shift, and go to state 255 State 251 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname • attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' '_' shift, and go to state 82 attrsindex go to state 256 State 252 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' • varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL 20 | type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' • type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 30 varname go to state 257 type go to state 258 State 253 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname • varindex '_' shift, and go to state 45 varindex go to state 259 State 254 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' • type ')' '(' type ')' '(' type ')' ZZIDENT shift, and go to state 17 type go to state 260 State 255 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' • ')' ZZSYMBOL ')' shift, and go to state 261 State 256 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex • ')' ZZFOLLOWS type '(' varname ')' ')' ')' ')' shift, and go to state 262 State 257 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname • attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '_' shift, and go to state 82 attrsindex go to state 263 State 258 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type • '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '(' shift, and go to state 264 State 259 15 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZCROSSPRODUCT type '(' type '(' varname attrsindex ')' ')' ZZPARAM varname varindex ZZCROSSPRODUCT varname varindex • $default reduce using rule 15 (sigargtypes) State 260 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type • ')' '(' type ')' '(' type ')' ')' shift, and go to state 265 State 261 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' • ZZSYMBOL ZZSYMBOL shift, and go to state 266 State 262 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' • ZZFOLLOWS type '(' varname ')' ')' ')' ZZFOLLOWS shift, and go to state 267 State 263 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex • ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ')' shift, and go to state 268 State 264 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' • varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 34 varname go to state 269 State 265 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' • '(' type ')' '(' type ')' '(' shift, and go to state 270 State 266 17 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL • $default reduce using rule 17 (sigargtypes) State 267 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS • type '(' varname ')' ')' ')' ZZIDENT shift, and go to state 17 type go to state 271 State 268 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' • ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZFOLLOWS shift, and go to state 272 State 269 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname • attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL '_' shift, and go to state 82 attrsindex go to state 273 State 270 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' • type ')' '(' type ')' ZZIDENT shift, and go to state 17 type go to state 274 State 271 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type • '(' varname ')' ')' ')' '(' shift, and go to state 275 State 272 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS • varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 34 varname go to state 276 State 273 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex • ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ')' shift, and go to state 277 State 274 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type • ')' '(' type ')' ')' shift, and go to state 278 State 275 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' • varname ')' ')' ')' ZZIDENT shift, and go to state 34 varname go to state 279 State 276 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname • varindex ')' ')' ZZSYMBOL '_' shift, and go to state 45 varindex go to state 280 State 277 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' • ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ')' shift, and go to state 281 State 278 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' • '(' type ')' '(' shift, and go to state 282 State 279 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname • ')' ')' ')' ')' shift, and go to state 283 State 280 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex • ')' ')' ZZSYMBOL ')' shift, and go to state 284 State 281 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' • ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL ZZFOLLOWS shift, and go to state 285 State 282 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' • type ')' ZZIDENT shift, and go to state 17 type go to state 286 State 283 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' • ')' ')' ')' shift, and go to state 287 State 284 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' • ')' ZZSYMBOL ')' shift, and go to state 288 State 285 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS • varname varindex ')' ')' ZZSYMBOL ZZIDENT shift, and go to state 34 varname go to state 289 State 286 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type • ')' ')' shift, and go to state 290 State 287 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' • ')' ')' shift, and go to state 291 State 288 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' • ZZSYMBOL ZZSYMBOL shift, and go to state 292 State 289 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname • varindex ')' ')' ZZSYMBOL '_' shift, and go to state 45 varindex go to state 293 State 290 21 sigargtypes: '(' type ')' '(' type ')' '(' type ')' ZZPARAM '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' '(' type ')' • $default reduce using rule 21 (sigargtypes) State 291 19 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS type '(' varname ')' ')' ')' • $default reduce using rule 19 (sigargtypes) State 292 18 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' varname attrsindex ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL • $default reduce using rule 18 (sigargtypes) State 293 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex • ')' ')' ZZSYMBOL ')' shift, and go to state 294 State 294 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' • ')' ZZSYMBOL ')' shift, and go to state 295 State 295 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' • ZZSYMBOL ZZSYMBOL shift, and go to state 296 State 296 20 sigargtypes: type '(' type '(' varname attrsindex ')' ')' ZZPARAM '(' varname varindex ')' ZZSYMBOL ZZCROSSPRODUCT '(' varname varindex ZZCROSSPRODUCT '(' type '(' type '(' varname attrsindex ')' ')' ZZFOLLOWS varname varindex ')' ')' ZZSYMBOL • $default reduce using rule 20 (sigargtypes)