Front page | perl.cvs.parrot |
Postings from January 2009
[svn:parrot] r34926 - trunk/compilers/pirc/src
From:
kjs
Date:
January 4, 2009 09:17
Subject:
[svn:parrot] r34926 - trunk/compilers/pirc/src
Message ID:
20090104171629.9998BCB9F9@x12.develooper.com
Author: kjs
Date: Sun Jan 4 09:16:28 2009
New Revision: 34926
Modified:
trunk/compilers/pirc/src/pir.y
trunk/compilers/pirc/src/pircompunit.c
trunk/compilers/pirc/src/pirop.c
trunk/compilers/pirc/src/pirparser.c
trunk/compilers/pirc/src/pirsymbol.c
Log:
[pirc] more .const stuff. This is complex.
a sub-local .const can generate an instruction to load the constant in a P reg:
set_p_pc PX,PMCCONST(Y). However, a .const outside of a .sub cannot, as there's no sub to emit the instruction into. Whenever a global .const is referenced, it must be loaded into a P reg first. How to implement such load-on-demand behavior?
Likewise, a .globalconst /can/ emit the loading instruction, but whenever it's referenced in another sub (which is allowed, being global), it must be loaded there as well. Again, this asks for inserting another instruction.
Modified: trunk/compilers/pirc/src/pir.y
==============================================================================
--- trunk/compilers/pirc/src/pir.y (original)
+++ trunk/compilers/pirc/src/pir.y Sun Jan 4 09:16:28 2009
@@ -576,7 +576,7 @@
;
pir_chunk : sub_def
- | const_decl
+ | const_decl_chunk
| namespace_decl
| hll_specifier
| hll_mapping
@@ -1132,7 +1132,7 @@
}
}
| target '=' parrot_op keylist ',' parrot_op_args
- { /* XXX create a PMC const for $4 */
+ {
unshift_operand(lexer, expr_from_key(lexer, $4));
unshift_operand(lexer, expr_from_target(lexer, $1));
if (check_op_args_for_symbols(lexer))
@@ -1204,11 +1204,11 @@
}
| target '=' parrot_op keylist
{
- /* $P0 = foo ["bar"]
+ /* $P0 = foo ["bar"] # PIR style
*
* could be PIR sugar for this PASM code:
*
- * foo $P0, ["bar"]
+ * foo $P0, ["bar"] # PASM style
*
* but as this sugar is already used for keyed access, the parser
* will not allow the former syntax; if there is an op C<foo>,
@@ -1999,7 +1999,10 @@
;
const_decl_stat : const_stat "\n"
+ ;
+const_decl_chunk : const_decl
+ { store_global_constant(lexer, $1); }
;
const_stat : const_decl
@@ -2007,7 +2010,7 @@
;
const_decl : ".const" const_tail
- { /*store_global_constant(lexer, $2); */}
+ { $$ = $2; }
;
globalconst_decl : ".globalconst" const_tail
Modified: trunk/compilers/pirc/src/pircompunit.c
==============================================================================
--- trunk/compilers/pirc/src/pircompunit.c (original)
+++ trunk/compilers/pirc/src/pircompunit.c Sun Jan 4 09:16:28 2009
@@ -30,6 +30,7 @@
#include "pirdefines.h"
#include "pirpcc.h"
#include "pirerr.h"
+#include "pirop.h"
#include "bcgen.h"
#include <stdio.h>
@@ -1385,17 +1386,17 @@
* as second; its type is PMC_VAL, which is processed further in
* piremit::emit_pbc_const_arg(), case PMC_VAL.
*/
+
+ /* XXX always emit this? I prefer load-on-demand */
+
new_sub_instr(lexer, PARROT_OP_set_p_pc, "set_p_pc", 0);
push_operand(lexer, expr_from_target(lexer, consttarg));
push_operand(lexer, expr_from_const(lexer, value));
- /*set_instrf(lexer, "set", "%T%C", consttarg, value);
- get_opinfo(lexer->yyscanner);
- */
+
decl->name = name;
decl->type = PMC_VAL;
decl->val.pval = value->val.sval;
}
-
else if (value->type == INT_VAL) {
STRING *intclassname = string_from_cstring(lexer->interp, "Integer", 7);
@@ -1418,6 +1419,7 @@
push_operand(lexer, expr_from_target(lexer, consttarg));
push_operand(lexer, expr_from_int(lexer, index));
+
/* declaration of an Integer means it's a PMC, not an INT_TYPE */
decl->name = name;
decl->type = PMC_VAL;
Modified: trunk/compilers/pirc/src/pirop.c
==============================================================================
--- trunk/compilers/pirc/src/pirop.c (original)
+++ trunk/compilers/pirc/src/pirop.c Sun Jan 4 09:16:28 2009
@@ -58,7 +58,8 @@
switch (e->type) {
case EXPR_TARGET:
return 2 + ((e->expr.t->key != NULL) /* if there's a key on this target ... */
- ? get_signature_length(e->expr.t->key->head->expr) + 1 /* ... get its length. */
+ /* ... get its length. */
+ ? get_signature_length(e->expr.t->key->head->expr) + 1
: 0);
case EXPR_CONSTANT:
return 3; /* for _, 'k', 'c' */
Modified: trunk/compilers/pirc/src/pirparser.c
==============================================================================
--- trunk/compilers/pirc/src/pirparser.c (original)
+++ trunk/compilers/pirc/src/pirparser.c Sun Jan 4 09:16:28 2009
@@ -815,16 +815,16 @@
/* YYFINAL -- State number of the termination state. */
#define YYFINAL 10
/* YYLAST -- Last index in YYTABLE. */
-#define YYLAST 1055
+#define YYLAST 1078
/* YYNTOKENS -- Number of terminals. */
#define YYNTOKENS 139
/* YYNNTS -- Number of nonterminals. */
-#define YYNNTS 167
+#define YYNNTS 168
/* YYNRULES -- Number of rules. */
-#define YYNRULES 423
+#define YYNRULES 424
/* YYNRULES -- Number of states. */
-#define YYNSTATES 661
+#define YYNSTATES 662
/* YYTRANSLATE(YYLEX) -- Bison symbol number corresponding to YYLEX. */
#define YYUNDEFTOK 2
@@ -913,44 +913,44 @@
892, 894, 896, 898, 902, 906, 910, 914, 915, 917,
919, 923, 925, 927, 931, 934, 936, 942, 948, 949,
951, 953, 956, 960, 961, 963, 965, 968, 972, 973,
- 976, 978, 981, 982, 984, 988, 991, 993, 995, 998,
- 1001, 1006, 1011, 1016, 1021, 1023, 1025, 1027, 1029, 1031,
+ 976, 978, 981, 982, 984, 988, 991, 993, 995, 997,
+ 1000, 1003, 1008, 1013, 1018, 1023, 1025, 1027, 1029, 1031,
1033, 1035, 1037, 1039, 1041, 1043, 1045, 1047, 1049, 1051,
1053, 1055, 1057, 1059, 1061, 1063, 1065, 1067, 1069, 1071,
1073, 1075, 1077, 1079, 1081, 1083, 1085, 1087, 1089, 1091,
1093, 1095, 1097, 1099, 1101, 1103, 1105, 1107, 1109, 1111,
1113, 1115, 1117, 1119, 1121, 1123, 1125, 1127, 1129, 1131,
1133, 1135, 1137, 1139, 1141, 1143, 1145, 1147, 1149, 1151,
- 1153, 1155, 1157, 1159, 1161, 1163, 1165, 1168, 1170, 1172,
- 1175, 1177, 1180, 1182, 1185, 1188, 1190, 1193, 1196, 1198,
- 1200, 1202, 1206, 1208
+ 1153, 1155, 1157, 1159, 1161, 1163, 1165, 1167, 1170, 1172,
+ 1174, 1177, 1179, 1182, 1184, 1187, 1190, 1192, 1195, 1198,
+ 1200, 1202, 1204, 1208, 1210
};
/* YYRHS -- A `-1'-separated list of the rules' RHS. */
static const yytype_int16 yyrhs[] =
{
- 140, 0, -1, 116, 141, -1, 115, 297, -1, 142,
+ 140, 0, -1, 116, 141, -1, 115, 298, -1, 142,
143, 142, -1, -1, 35, -1, 144, -1, 143, 35,
- 144, -1, 167, -1, 281, -1, 163, -1, 161, -1,
+ 144, -1, 167, -1, 280, -1, 163, -1, 161, -1,
162, -1, 158, -1, 159, -1, 160, -1, 145, -1,
146, -1, 147, -1, 108, 37, 114, -1, 148, 119,
- 149, 120, 35, 152, 105, -1, 104, 292, -1, -1,
- 150, -1, 151, -1, 150, 121, 151, -1, 292, -1,
+ 149, 120, 35, 152, 105, -1, 104, 293, -1, -1,
+ 150, -1, 151, -1, 150, 121, 151, -1, 293, -1,
-1, 153, -1, 154, -1, 153, 154, -1, 155, 35,
- -1, 156, -1, 157, -1, 107, 109, -1, 106, 288,
+ -1, 156, -1, 157, -1, 107, 109, -1, 106, 289,
110, -1, 5, 46, -1, 10, 48, -1, 11, 46,
-1, 34, 46, 121, 46, -1, 3, 46, -1, 4,
46, 122, 46, -1, 13, 123, 164, 124, -1, -1,
165, -1, 166, -1, 165, 125, 166, -1, 46, -1,
169, 171, 35, 177, 185, 168, -1, 7, -1, 6,
- 170, -1, 292, -1, 46, -1, -1, 171, 172, -1,
+ 170, -1, 293, -1, 46, -1, -1, 171, 172, -1,
86, -1, 83, -1, 84, -1, 85, -1, 90, -1,
92, -1, 93, -1, 91, 173, -1, 88, 119, 170,
120, -1, 87, 277, -1, 89, 277, -1, 94, 278,
-1, 95, 278, -1, 96, 278, -1, 119, 174, 120,
-1, -1, 175, -1, 176, -1, 175, 121, 176, -1,
- 292, -1, 46, -1, 212, -1, 178, -1, -1, 178,
- 179, -1, 8, 180, 181, 35, -1, 288, 292, -1,
+ 293, -1, 46, -1, 212, -1, 178, -1, -1, 178,
+ 179, -1, 8, 180, 181, 35, -1, 289, 293, -1,
-1, 181, 182, -1, 255, -1, 183, -1, 184, -1,
103, 119, 176, 120, -1, 97, -1, -1, 185, 186,
-1, 36, 187, -1, 187, -1, 202, -1, 219, -1,
@@ -962,48 +962,48 @@
111, 190, -1, 194, -1, 126, 195, 127, -1, -1,
195, 196, -1, 35, -1, 113, -1, 112, -1, 111,
190, -1, 35, -1, 159, 35, -1, 1, 35, -1,
- 44, 289, 35, -1, 28, 250, 35, -1, 203, 35,
+ 44, 290, 35, -1, 28, 250, 35, -1, 203, 35,
-1, 204, 205, -1, 214, -1, 37, -1, 206, -1,
208, -1, -1, 207, -1, 209, -1, 207, 121, 209,
- -1, 212, 122, 284, -1, 210, -1, 212, -1, 285,
- -1, 292, -1, 291, -1, 211, -1, 249, 212, -1,
- 123, 213, 124, -1, 284, -1, 213, 125, 284, -1,
- 289, 122, 204, 210, 121, 207, -1, 289, 122, 204,
- 210, -1, 289, 122, 204, 212, 121, 207, -1, 217,
- 35, -1, 37, -1, 293, -1, 289, 122, 48, -1,
- 289, 122, 49, -1, 289, 122, 286, -1, 289, 122,
- 291, -1, 289, 122, 216, -1, 289, 122, 218, -1,
- 289, 122, 204, 212, -1, 289, 122, 293, 212, -1,
- 289, 122, 50, 212, -1, 289, 296, 284, -1, 289,
- 72, 48, -1, 289, 72, 49, -1, 289, 73, 48,
- -1, 289, 73, 49, -1, 289, 72, 289, -1, 289,
- 73, 289, -1, 289, 122, 294, 284, -1, 289, 122,
- 289, 295, 284, -1, 293, 212, 122, 284, -1, 50,
- 212, 122, 284, -1, 48, 295, 289, -1, 49, 295,
- 289, -1, 46, 295, 289, -1, 46, 295, 46, -1,
- 48, 295, 48, -1, 49, 295, 49, -1, 48, 295,
- 49, -1, 49, 295, 48, -1, 220, 35, -1, 223,
- 44, 37, 45, 292, -1, 223, 44, 38, 45, 292,
- -1, 223, 44, 39, 45, 292, -1, 223, 44, 40,
- 45, 292, -1, 223, 44, 41, 45, 292, -1, 223,
- 44, 42, 45, 292, -1, 223, 44, 43, 45, 292,
- -1, 223, 44, 45, 45, 292, -1, 223, 44, 44,
- 45, 292, -1, 223, 285, 224, 292, -1, 223, 44,
- 50, 224, 292, -1, 223, 37, 224, 292, -1, 223,
- 291, 224, 292, -1, 223, 38, 224, 292, -1, 223,
- 39, 224, 292, -1, 223, 40, 224, 292, -1, 223,
- 41, 224, 292, -1, 223, 42, 224, 292, -1, 223,
- 43, 224, 292, -1, 223, 45, 45, 292, -1, 223,
- 45, 121, 292, -1, 223, 44, 45, 292, -1, 223,
- 44, 121, 292, -1, 223, 221, 45, 292, -1, 289,
- 287, 284, -1, 48, 287, 289, -1, 49, 287, 289,
- -1, 46, 287, 289, -1, 48, 287, 48, -1, 48,
- 287, 49, -1, 49, 287, 48, -1, 49, 287, 49,
- -1, 46, 287, 46, -1, 46, 287, 222, -1, 48,
- 287, 46, -1, 49, 287, 46, -1, 48, -1, 49,
+ -1, 212, 122, 285, -1, 210, -1, 212, -1, 286,
+ -1, 293, -1, 292, -1, 211, -1, 249, 212, -1,
+ 123, 213, 124, -1, 285, -1, 213, 125, 285, -1,
+ 290, 122, 204, 210, 121, 207, -1, 290, 122, 204,
+ 210, -1, 290, 122, 204, 212, 121, 207, -1, 217,
+ 35, -1, 37, -1, 294, -1, 290, 122, 48, -1,
+ 290, 122, 49, -1, 290, 122, 287, -1, 290, 122,
+ 292, -1, 290, 122, 216, -1, 290, 122, 218, -1,
+ 290, 122, 204, 212, -1, 290, 122, 294, 212, -1,
+ 290, 122, 50, 212, -1, 290, 297, 285, -1, 290,
+ 72, 48, -1, 290, 72, 49, -1, 290, 73, 48,
+ -1, 290, 73, 49, -1, 290, 72, 290, -1, 290,
+ 73, 290, -1, 290, 122, 295, 285, -1, 290, 122,
+ 290, 296, 285, -1, 294, 212, 122, 285, -1, 50,
+ 212, 122, 285, -1, 48, 296, 290, -1, 49, 296,
+ 290, -1, 46, 296, 290, -1, 46, 296, 46, -1,
+ 48, 296, 48, -1, 49, 296, 49, -1, 48, 296,
+ 49, -1, 49, 296, 48, -1, 220, 35, -1, 223,
+ 44, 37, 45, 293, -1, 223, 44, 38, 45, 293,
+ -1, 223, 44, 39, 45, 293, -1, 223, 44, 40,
+ 45, 293, -1, 223, 44, 41, 45, 293, -1, 223,
+ 44, 42, 45, 293, -1, 223, 44, 43, 45, 293,
+ -1, 223, 44, 45, 45, 293, -1, 223, 44, 44,
+ 45, 293, -1, 223, 286, 224, 293, -1, 223, 44,
+ 50, 224, 293, -1, 223, 37, 224, 293, -1, 223,
+ 292, 224, 293, -1, 223, 38, 224, 293, -1, 223,
+ 39, 224, 293, -1, 223, 40, 224, 293, -1, 223,
+ 41, 224, 293, -1, 223, 42, 224, 293, -1, 223,
+ 43, 224, 293, -1, 223, 45, 45, 293, -1, 223,
+ 45, 121, 293, -1, 223, 44, 45, 293, -1, 223,
+ 44, 121, 293, -1, 223, 221, 45, 293, -1, 290,
+ 288, 285, -1, 48, 288, 290, -1, 49, 288, 290,
+ -1, 46, 288, 290, -1, 48, 288, 48, -1, 48,
+ 288, 49, -1, 49, 288, 48, -1, 49, 288, 49,
+ -1, 46, 288, 46, -1, 46, 288, 222, -1, 48,
+ 288, 46, -1, 49, 288, 46, -1, 48, -1, 49,
-1, 42, -1, 43, -1, 45, -1, 121, -1, 45,
- 292, 35, -1, 12, 288, 227, 35, -1, 228, -1,
- 227, 121, 228, -1, 292, 229, -1, -1, 97, -1,
+ 293, 35, -1, 12, 289, 227, 35, -1, 228, -1,
+ 227, 121, 228, -1, 293, 229, -1, -1, 97, -1,
9, 46, 121, 249, 35, -1, 232, -1, 233, -1,
242, -1, 26, 35, 234, 237, 35, 239, 27, 35,
-1, -1, 235, -1, 236, -1, 235, 236, -1, 30,
@@ -1011,46 +1011,46 @@
14, 249, 35, 15, 248, -1, -1, 121, 249, -1,
-1, 240, -1, 241, -1, 240, 241, -1, 31, 253,
35, -1, 226, -1, 243, 35, -1, 250, 122, 244,
- -1, 289, 122, 244, -1, 244, -1, 246, -1, 245,
+ -1, 290, 122, 244, -1, 244, -1, 246, -1, 245,
-1, 249, 128, 248, 260, -1, 247, 260, -1, 249,
- -1, 46, -1, 292, -1, 50, -1, 52, -1, 46,
- -1, 292, -1, 50, -1, 119, 251, 120, -1, -1,
- 252, -1, 253, -1, 252, 121, 253, -1, 289, 254,
- -1, 46, 54, 289, -1, -1, 254, 255, -1, 101,
+ -1, 46, -1, 293, -1, 50, -1, 52, -1, 46,
+ -1, 293, -1, 50, -1, 119, 251, 120, -1, -1,
+ 252, -1, 253, -1, 252, 121, 253, -1, 290, 254,
+ -1, 46, 54, 290, -1, -1, 254, 255, -1, 101,
-1, 102, -1, 99, -1, 98, 277, -1, 257, -1,
258, -1, 267, -1, 259, -1, 268, -1, 18, 260,
35, -1, 33, 244, 35, -1, 19, 260, 35, -1,
119, 261, 120, -1, -1, 262, -1, 263, -1, 262,
121, 263, -1, 265, -1, 264, -1, 46, 54, 266,
- -1, 266, 275, -1, 284, -1, 24, 35, 272, 25,
+ -1, 266, 275, -1, 285, -1, 24, 35, 272, 25,
35, -1, 22, 35, 269, 23, 35, -1, -1, 270,
-1, 271, -1, 270, 271, -1, 20, 265, 35, -1,
-1, 273, -1, 274, -1, 273, 274, -1, 21, 265,
35, -1, -1, 275, 276, -1, 100, -1, 98, 277,
- -1, -1, 278, -1, 119, 46, 120, -1, 280, 35,
- -1, 281, -1, 282, -1, 17, 283, -1, 16, 283,
- -1, 38, 292, 122, 48, -1, 39, 292, 122, 49,
- -1, 41, 292, 122, 46, -1, 46, 292, 122, 285,
- -1, 289, -1, 285, -1, 48, -1, 49, -1, 286,
- -1, 46, -1, 47, -1, 55, -1, 56, -1, 57,
- -1, 58, -1, 60, -1, 59, -1, 38, -1, 39,
- -1, 40, -1, 41, -1, 290, -1, 291, -1, 292,
- -1, 50, -1, 51, -1, 53, -1, 52, -1, 37,
- -1, 293, -1, 42, -1, 43, -1, 45, -1, 38,
- -1, 39, -1, 41, -1, 40, -1, 44, -1, 129,
- -1, 130, -1, 131, -1, 132, -1, 129, -1, 133,
- -1, 134, -1, 135, -1, 136, -1, 137, -1, 131,
- -1, 138, -1, 68, -1, 61, -1, 62, -1, 63,
- -1, 65, -1, 66, -1, 64, -1, 67, -1, 56,
- -1, 58, -1, 57, -1, 60, -1, 59, -1, 55,
- -1, 74, -1, 75, -1, 76, -1, 77, -1, 80,
- -1, 78, -1, 79, -1, 81, -1, 82, -1, 70,
- -1, 71, -1, 69, -1, 298, 299, -1, 142, -1,
- 300, -1, 299, 300, -1, 301, -1, 163, 35, -1,
- 230, -1, 159, 35, -1, 145, 35, -1, 189, -1,
- 36, 302, -1, 303, 302, -1, 305, -1, 197, -1,
- 305, -1, 304, 171, 36, -1, 117, -1, 204, 206,
- 35, -1
+ -1, -1, 278, -1, 119, 46, 120, -1, 281, 35,
+ -1, 282, -1, 282, -1, 283, -1, 17, 284, -1,
+ 16, 284, -1, 38, 293, 122, 48, -1, 39, 293,
+ 122, 49, -1, 41, 293, 122, 46, -1, 46, 293,
+ 122, 286, -1, 290, -1, 286, -1, 48, -1, 49,
+ -1, 287, -1, 46, -1, 47, -1, 55, -1, 56,
+ -1, 57, -1, 58, -1, 60, -1, 59, -1, 38,
+ -1, 39, -1, 40, -1, 41, -1, 291, -1, 292,
+ -1, 293, -1, 50, -1, 51, -1, 53, -1, 52,
+ -1, 37, -1, 294, -1, 42, -1, 43, -1, 45,
+ -1, 38, -1, 39, -1, 41, -1, 40, -1, 44,
+ -1, 129, -1, 130, -1, 131, -1, 132, -1, 129,
+ -1, 133, -1, 134, -1, 135, -1, 136, -1, 137,
+ -1, 131, -1, 138, -1, 68, -1, 61, -1, 62,
+ -1, 63, -1, 65, -1, 66, -1, 64, -1, 67,
+ -1, 56, -1, 58, -1, 57, -1, 60, -1, 59,
+ -1, 55, -1, 74, -1, 75, -1, 76, -1, 77,
+ -1, 80, -1, 78, -1, 79, -1, 81, -1, 82,
+ -1, 70, -1, 71, -1, 69, -1, 299, 300, -1,
+ 142, -1, 301, -1, 300, 301, -1, 302, -1, 163,
+ 35, -1, 230, -1, 159, 35, -1, 145, 35, -1,
+ 189, -1, 36, 303, -1, 304, 303, -1, 306, -1,
+ 197, -1, 306, -1, 305, 171, 36, -1, 117, -1,
+ 204, 206, 35, -1
};
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
@@ -1088,17 +1088,17 @@
1863, 1864, 1865, 1868, 1873, 1884, 1891, 1896, 1897, 1901,
1903, 1907, 1908, 1911, 1915, 1919, 1923, 1932, 1942, 1943,
1948, 1950, 1955, 1960, 1961, 1965, 1967, 1971, 1977, 1978,
- 1982, 1984, 1992, 1993, 1997, 2001, 2005, 2006, 2009, 2013,
- 2017, 2019, 2021, 2023, 2031, 2032, 2036, 2037, 2038, 2041,
- 2042, 2045, 2046, 2047, 2048, 2049, 2050, 2053, 2054, 2055,
- 2056, 2064, 2067, 2068, 2079, 2080, 2081, 2082, 2086, 2087,
- 2090, 2091, 2092, 2093, 2094, 2095, 2096, 2097, 2100, 2101,
- 2102, 2105, 2106, 2107, 2108, 2109, 2110, 2111, 2112, 2113,
- 2114, 2115, 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123,
- 2124, 2125, 2126, 2127, 2133, 2134, 2135, 2136, 2137, 2138,
- 2139, 2140, 2141, 2142, 2143, 2144, 2156, 2164, 2168, 2169,
- 2172, 2173, 2174, 2175, 2176, 2177, 2180, 2182, 2183, 2186,
- 2187, 2190, 2194, 2199
+ 1982, 1984, 1992, 1993, 1997, 2001, 2004, 2008, 2009, 2012,
+ 2016, 2020, 2022, 2024, 2026, 2034, 2035, 2039, 2040, 2041,
+ 2044, 2045, 2048, 2049, 2050, 2051, 2052, 2053, 2056, 2057,
+ 2058, 2059, 2067, 2070, 2071, 2082, 2083, 2084, 2085, 2089,
+ 2090, 2093, 2094, 2095, 2096, 2097, 2098, 2099, 2100, 2103,
+ 2104, 2105, 2108, 2109, 2110, 2111, 2112, 2113, 2114, 2115,
+ 2116, 2117, 2118, 2119, 2120, 2121, 2122, 2123, 2124, 2125,
+ 2126, 2127, 2128, 2129, 2130, 2136, 2137, 2138, 2139, 2140,
+ 2141, 2142, 2143, 2144, 2145, 2146, 2147, 2159, 2167, 2171,
+ 2172, 2175, 2176, 2177, 2178, 2179, 2180, 2183, 2185, 2186,
+ 2189, 2190, 2193, 2197, 2202
};
#endif
@@ -1170,12 +1170,12 @@
"opt_yield_expressions", "yield_expressions", "yield_expression",
"opt_return_expressions", "return_expressions", "return_expression",
"arg_flags", "arg_flag", "opt_paren_string", "paren_string",
- "const_decl_stat", "const_stat", "const_decl", "globalconst_decl",
- "const_tail", "expression", "constant", "stringconst", "rel_op", "type",
- "target", "symbol", "reg", "identifier", "keyword", "unop", "binop",
- "augmented_op", "pasm_contents", "pasm_init", "pasm_lines", "pasm_line",
- "pasm_statement", "opt_pasm_instruction", "pasm_sub_directive",
- "pasm_sub_head", "pasm_instruction", 0
+ "const_decl_stat", "const_decl_chunk", "const_stat", "const_decl",
+ "globalconst_decl", "const_tail", "expression", "constant",
+ "stringconst", "rel_op", "type", "target", "symbol", "reg", "identifier",
+ "keyword", "unop", "binop", "augmented_op", "pasm_contents", "pasm_init",
+ "pasm_lines", "pasm_line", "pasm_statement", "opt_pasm_instruction",
+ "pasm_sub_directive", "pasm_sub_head", "pasm_instruction", 0
};
#endif
@@ -1236,17 +1236,17 @@
257, 257, 257, 258, 258, 259, 260, 261, 261, 262,
262, 263, 263, 264, 265, 266, 267, 268, 269, 269,
270, 270, 271, 272, 272, 273, 273, 274, 275, 275,
- 276, 276, 277, 277, 278, 279, 280, 280, 281, 282,
- 283, 283, 283, 283, 284, 284, 285, 285, 285, 286,
- 286, 287, 287, 287, 287, 287, 287, 288, 288, 288,
- 288, 289, 290, 290, 291, 291, 291, 291, 292, 292,
- 293, 293, 293, 293, 293, 293, 293, 293, 294, 294,
- 294, 295, 295, 295, 295, 295, 295, 295, 295, 295,
- 295, 295, 295, 295, 295, 295, 295, 295, 295, 295,
- 295, 295, 295, 295, 296, 296, 296, 296, 296, 296,
- 296, 296, 296, 296, 296, 296, 297, 298, 299, 299,
- 300, 300, 300, 300, 300, 300, 301, 301, 301, 302,
- 302, 303, 304, 305
+ 276, 276, 277, 277, 278, 279, 280, 281, 281, 282,
+ 283, 284, 284, 284, 284, 285, 285, 286, 286, 286,
+ 287, 287, 288, 288, 288, 288, 288, 288, 289, 289,
+ 289, 289, 290, 291, 291, 292, 292, 292, 292, 293,
+ 293, 294, 294, 294, 294, 294, 294, 294, 294, 295,
+ 295, 295, 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 296, 296, 296, 296, 296,
+ 296, 296, 296, 296, 296, 297, 297, 297, 297, 297,
+ 297, 297, 297, 297, 297, 297, 297, 298, 299, 300,
+ 300, 301, 301, 301, 301, 301, 301, 302, 302, 302,
+ 303, 303, 304, 305, 306
};
/* YYR2[YYN] -- Number of symbols composing right hand side of rule YYN. */
@@ -1284,17 +1284,17 @@
1, 1, 1, 3, 3, 3, 3, 0, 1, 1,
3, 1, 1, 3, 2, 1, 5, 5, 0, 1,
1, 2, 3, 0, 1, 1, 2, 3, 0, 2,
- 1, 2, 0, 1, 3, 2, 1, 1, 2, 2,
- 4, 4, 4, 4, 1, 1, 1, 1, 1, 1,
+ 1, 2, 0, 1, 3, 2, 1, 1, 1, 2,
+ 2, 4, 4, 4, 4, 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, 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, 1, 1, 1, 1, 1,
- 1, 1, 1, 1, 1, 1, 2, 1, 1, 2,
- 1, 2, 1, 2, 2, 1, 2, 2, 1, 1,
- 1, 3, 1, 3
+ 1, 1, 1, 1, 1, 1, 1, 2, 1, 1,
+ 2, 1, 2, 1, 2, 2, 1, 2, 2, 1,
+ 1, 1, 3, 1, 3
};
/* YYDEFACT[STATE-NAME] -- Default rule to reduce with in state
@@ -1302,489 +1302,493 @@
means the default is an error. */
static const yytype_uint16 yydefact[] =
{
- 0, 5, 5, 0, 6, 407, 3, 0, 2, 0,
+ 0, 5, 5, 0, 6, 408, 3, 0, 2, 0,
1, 0, 0, 0, 0, 0, 136, 0, 0, 111,
- 422, 0, 18, 19, 0, 0, 0, 415, 139, 412,
- 406, 408, 410, 0, 54, 418, 0, 0, 0, 0,
+ 423, 0, 18, 19, 0, 0, 0, 416, 139, 413,
+ 407, 409, 411, 0, 54, 419, 0, 0, 0, 0,
0, 0, 5, 7, 17, 14, 15, 16, 12, 13,
- 11, 9, 54, 10, 0, 38, 39, 44, 128, 419,
- 416, 420, 358, 363, 364, 366, 365, 360, 361, 367,
- 362, 22, 359, 0, 113, 0, 414, 23, 413, 411,
- 339, 340, 336, 337, 354, 355, 357, 356, 0, 0,
- 140, 141, 144, 149, 145, 0, 146, 338, 148, 147,
- 409, 417, 0, 41, 0, 37, 53, 51, 52, 0,
- 0, 0, 0, 328, 0, 6, 4, 0, 0, 48,
- 0, 45, 46, 20, 111, 117, 118, 122, 0, 114,
- 115, 120, 110, 0, 24, 25, 27, 354, 0, 152,
- 335, 334, 351, 352, 353, 423, 0, 150, 421, 57,
- 58, 59, 56, 322, 0, 322, 60, 0, 61, 62,
- 0, 0, 0, 55, 0, 0, 0, 0, 0, 0,
- 8, 79, 274, 0, 273, 43, 0, 119, 0, 112,
- 0, 0, 0, 151, 0, 142, 0, 65, 323, 0,
- 66, 71, 63, 67, 68, 69, 42, 0, 0, 0,
- 0, 40, 90, 78, 238, 47, 124, 111, 126, 125,
- 121, 123, 116, 28, 26, 153, 0, 0, 76, 0,
- 72, 73, 77, 75, 330, 331, 332, 333, 0, 0,
- 80, 127, 0, 0, 0, 29, 30, 0, 33, 34,
- 324, 64, 70, 0, 0, 50, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 136, 360, 361, 367,
- 362, 268, 354, 276, 0, 49, 91, 93, 107, 109,
- 105, 106, 108, 104, 103, 94, 0, 139, 135, 102,
- 0, 95, 0, 0, 96, 97, 98, 101, 239, 240,
- 241, 0, 262, 264, 263, 0, 267, 0, 100, 288,
- 289, 291, 290, 292, 99, 0, 326, 327, 0, 353,
- 359, 347, 348, 349, 350, 83, 0, 0, 35, 21,
- 31, 32, 74, 130, 0, 329, 297, 0, 0, 308,
- 313, 243, 0, 0, 92, 0, 0, 0, 0, 0,
- 277, 278, 282, 129, 133, 134, 137, 138, 145, 157,
- 188, 358, 363, 364, 366, 365, 360, 361, 367, 362,
- 339, 336, 337, 0, 0, 0, 352, 259, 266, 0,
- 0, 325, 405, 403, 404, 0, 0, 394, 395, 396,
- 397, 399, 400, 398, 401, 402, 0, 0, 0, 0,
- 82, 36, 0, 233, 236, 339, 0, 298, 299, 302,
- 301, 318, 305, 293, 295, 0, 0, 309, 310, 0,
- 0, 314, 315, 0, 0, 244, 245, 132, 294, 131,
- 231, 0, 0, 275, 0, 280, 0, 229, 230, 0,
+ 11, 9, 54, 10, 326, 0, 38, 39, 44, 128,
+ 420, 417, 421, 359, 364, 365, 367, 366, 361, 362,
+ 368, 363, 22, 360, 0, 113, 0, 415, 23, 414,
+ 412, 340, 341, 337, 338, 355, 356, 358, 357, 0,
+ 0, 140, 141, 144, 149, 145, 0, 146, 339, 148,
+ 147, 410, 418, 0, 41, 0, 37, 53, 51, 52,
+ 0, 0, 0, 0, 329, 0, 6, 4, 0, 0,
+ 48, 0, 45, 46, 20, 111, 117, 118, 122, 0,
+ 114, 115, 120, 110, 0, 24, 25, 27, 355, 0,
+ 152, 336, 335, 352, 353, 354, 424, 0, 150, 422,
+ 57, 58, 59, 56, 322, 0, 322, 60, 0, 61,
+ 62, 0, 0, 0, 55, 0, 0, 0, 0, 0,
+ 0, 8, 79, 274, 0, 273, 43, 0, 119, 0,
+ 112, 0, 0, 0, 151, 0, 142, 0, 65, 323,
+ 0, 66, 71, 63, 67, 68, 69, 42, 0, 0,
+ 0, 0, 40, 90, 78, 238, 47, 124, 111, 126,
+ 125, 121, 123, 116, 28, 26, 153, 0, 0, 76,
+ 0, 72, 73, 77, 75, 331, 332, 333, 334, 0,
+ 0, 80, 127, 0, 0, 0, 29, 30, 0, 33,
+ 34, 324, 64, 70, 0, 0, 50, 0, 0, 0,
+ 0, 0, 0, 0, 0, 0, 0, 136, 361, 362,
+ 368, 363, 268, 355, 276, 0, 49, 91, 93, 107,
+ 109, 105, 106, 108, 104, 103, 94, 0, 139, 135,
+ 102, 0, 95, 0, 0, 96, 97, 98, 101, 239,
+ 240, 241, 0, 262, 264, 263, 0, 267, 0, 100,
+ 288, 289, 291, 290, 292, 99, 0, 327, 328, 0,
+ 354, 360, 348, 349, 350, 351, 83, 0, 0, 35,
+ 21, 31, 32, 74, 130, 0, 330, 297, 0, 0,
+ 308, 313, 243, 0, 0, 92, 0, 0, 0, 0,
+ 0, 277, 278, 282, 129, 133, 134, 137, 138, 145,
+ 157, 188, 359, 364, 365, 367, 366, 361, 362, 368,
+ 363, 340, 337, 338, 0, 0, 0, 353, 259, 266,
+ 0, 0, 325, 406, 404, 405, 0, 0, 395, 396,
+ 397, 398, 400, 401, 399, 402, 403, 0, 0, 0,
+ 0, 82, 36, 0, 233, 236, 340, 0, 298, 299,
+ 302, 301, 318, 305, 293, 295, 0, 0, 309, 310,
+ 0, 0, 314, 315, 0, 0, 244, 245, 132, 294,
+ 131, 231, 0, 0, 275, 0, 280, 0, 229, 230,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
- 0, 0, 0, 0, 0, 0, 0, 0, 0, 341,
- 342, 343, 344, 346, 345, 0, 0, 0, 0, 0,
- 0, 0, 272, 270, 271, 0, 269, 260, 170, 171,
- 174, 172, 173, 175, 358, 268, 160, 161, 354, 368,
- 369, 370, 0, 164, 165, 261, 162, 0, 352, 359,
- 0, 169, 0, 81, 89, 322, 286, 284, 285, 0,
- 84, 86, 87, 85, 232, 0, 237, 235, 0, 296,
- 0, 304, 0, 0, 311, 0, 0, 316, 0, 0,
- 0, 0, 0, 246, 179, 281, 279, 283, 143, 200,
- 202, 203, 204, 205, 206, 207, 0, 0, 0, 0,
- 0, 0, 0, 0, 362, 210, 0, 211, 208, 209,
- 221, 225, 226, 222, 216, 223, 217, 218, 214, 224,
- 219, 220, 215, 212, 198, 213, 201, 265, 393, 388,
- 390, 389, 392, 391, 381, 382, 383, 386, 384, 385,
- 387, 380, 372, 378, 371, 373, 374, 375, 376, 377,
- 379, 0, 0, 0, 168, 155, 166, 0, 167, 176,
- 178, 287, 0, 234, 303, 300, 322, 320, 319, 312,
- 307, 317, 306, 247, 0, 251, 267, 249, 253, 189,
- 190, 191, 192, 193, 194, 195, 197, 196, 199, 183,
- 182, 184, 186, 180, 187, 185, 181, 0, 0, 177,
- 0, 321, 0, 0, 248, 0, 258, 0, 254, 255,
- 154, 156, 88, 0, 252, 0, 0, 256, 250, 257,
- 242
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+ 342, 343, 344, 345, 347, 346, 0, 0, 0, 0,
+ 0, 0, 0, 272, 270, 271, 0, 269, 260, 170,
+ 171, 174, 172, 173, 175, 359, 268, 160, 161, 355,
+ 369, 370, 371, 0, 164, 165, 261, 162, 0, 353,
+ 360, 0, 169, 0, 81, 89, 322, 286, 284, 285,
+ 0, 84, 86, 87, 85, 232, 0, 237, 235, 0,
+ 296, 0, 304, 0, 0, 311, 0, 0, 316, 0,
+ 0, 0, 0, 0, 246, 179, 281, 279, 283, 143,
+ 200, 202, 203, 204, 205, 206, 207, 0, 0, 0,
+ 0, 0, 0, 0, 0, 363, 210, 0, 211, 208,
+ 209, 221, 225, 226, 222, 216, 223, 217, 218, 214,
+ 224, 219, 220, 215, 212, 198, 213, 201, 265, 394,
+ 389, 391, 390, 393, 392, 382, 383, 384, 387, 385,
+ 386, 388, 381, 373, 379, 372, 374, 375, 376, 377,
+ 378, 380, 0, 0, 0, 168, 155, 166, 0, 167,
+ 176, 178, 287, 0, 234, 303, 300, 322, 320, 319,
+ 312, 307, 317, 306, 247, 0, 251, 267, 249, 253,
+ 189, 190, 191, 192, 193, 194, 195, 197, 196, 199,
+ 183, 182, 184, 186, 180, 187, 185, 181, 0, 0,
+ 177, 0, 321, 0, 0, 248, 0, 258, 0, 254,
+ 255, 154, 156, 88, 0, 252, 0, 0, 256, 250,
+ 257, 242
};
/* YYDEFGOTO[NTERM-NUM]. */
static const yytype_int16 yydefgoto[] =
{
-1, 3, 8, 5, 42, 43, 21, 22, 23, 24,
- 133, 134, 135, 234, 235, 236, 237, 238, 239, 45,
- 25, 47, 48, 49, 26, 120, 121, 122, 51, 265,
- 52, 107, 102, 163, 192, 219, 220, 221, 202, 203,
- 230, 315, 389, 500, 501, 502, 228, 266, 267, 268,
- 27, 75, 128, 129, 130, 131, 178, 211, 59, 271,
- 272, 273, 274, 275, 276, 28, 345, 89, 90, 347,
- 91, 92, 93, 94, 138, 278, 279, 483, 280, 484,
- 281, 282, 363, 553, 283, 429, 284, 285, 392, 393,
- 507, 29, 287, 288, 289, 414, 415, 416, 522, 644,
- 647, 648, 649, 290, 291, 292, 293, 294, 295, 465,
- 95, 297, 339, 340, 341, 425, 503, 298, 299, 300,
- 301, 327, 396, 397, 398, 399, 400, 401, 302, 303,
- 406, 407, 408, 410, 411, 412, 511, 608, 187, 188,
- 304, 305, 53, 307, 113, 402, 140, 97, 455, 316,
- 141, 142, 143, 144, 72, 490, 591, 387, 6, 7,
- 30, 31, 32, 60, 33, 34, 35
+ 134, 135, 136, 235, 236, 237, 238, 239, 240, 45,
+ 25, 47, 48, 49, 26, 121, 122, 123, 51, 266,
+ 52, 108, 103, 164, 193, 220, 221, 222, 203, 204,
+ 231, 316, 390, 501, 502, 503, 229, 267, 268, 269,
+ 27, 76, 129, 130, 131, 132, 179, 212, 60, 272,
+ 273, 274, 275, 276, 277, 28, 346, 90, 91, 348,
+ 92, 93, 94, 95, 139, 279, 280, 484, 281, 485,
+ 282, 283, 364, 554, 284, 430, 285, 286, 393, 394,
+ 508, 29, 288, 289, 290, 415, 416, 417, 523, 645,
+ 648, 649, 650, 291, 292, 293, 294, 295, 296, 466,
+ 96, 298, 340, 341, 342, 426, 504, 299, 300, 301,
+ 302, 328, 397, 398, 399, 400, 401, 402, 303, 304,
+ 407, 408, 409, 411, 412, 413, 512, 609, 188, 189,
+ 305, 53, 306, 54, 308, 114, 403, 141, 98, 456,
+ 317, 142, 143, 144, 145, 73, 491, 592, 388, 6,
+ 7, 30, 31, 32, 61, 33, 34, 35
};
/* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
STATE-NUM. */
-#define YYPACT_NINF -596
+#define YYPACT_NINF -601
static const yytype_int16 yypact[] =
{
- -67, -7, -7, 38, -596, -596, -596, 20, -596, 72,
- -596, -2, 36, 51, -15, 88, -596, 333, 67, 52,
- -596, 95, -596, -596, 56, 120, 150, -596, 610, -596,
- 20, -596, -596, 88, -596, -596, 137, 166, 168, 1000,
- 97, 170, 187, -596, -596, -596, -596, -596, -596, -596,
- -596, -596, -596, -596, 102, -596, -596, 178, -596, -596,
- -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
- -596, -596, -596, 114, 33, 194, -596, 333, -596, -596,
- -596, -596, -596, -596, 107, -596, -596, -596, 757, 196,
- 111, -596, -596, -596, -596, 110, -596, -596, -596, 113,
- -596, -596, 628, -596, 112, -596, -596, -596, -596, 333,
- 333, 333, 333, -596, 118, 72, -596, 609, 360, -596,
- 116, 117, -596, -596, 52, -596, -596, -596, 121, 123,
- -596, -596, -596, 125, 128, -596, -596, -596, -8, -596,
- -596, -596, -596, -596, -596, -596, 610, -596, -596, -596,
- -596, -596, -596, 132, 134, 132, -596, 135, -596, -596,
- 132, 132, 132, -596, 209, 139, 152, 153, 154, 213,
- -596, -596, -596, 246, -596, -596, 178, -596, 0, -596,
- 33, 247, 333, -596, 757, -596, 238, -596, -596, 1000,
- -596, 226, -596, -596, -596, -596, -596, 241, 242, 244,
- 115, -596, -596, 288, -596, -596, -596, 52, -596, -596,
- -596, -596, -596, 103, -596, -596, 177, 181, -596, 183,
- 184, -596, -596, -596, -596, -596, -596, -596, 276, 180,
- -596, -596, 180, 199, 205, 103, -596, 289, -596, -596,
- -596, -596, -596, 226, 290, -596, 180, 97, 204, 204,
- 306, 307, 309, 227, 293, 527, 665, 779, 796, 590,
- 333, -596, -23, 966, 312, -596, -596, -596, -596, -596,
- -596, -596, -596, -596, -596, -596, 315, 610, -596, -596,
- 316, -596, 319, 813, -596, -596, -596, -596, -596, -596,
- -596, 320, -596, -596, -596, 204, 228, 235, -596, -596,
- -596, -596, -596, -596, -596, 323, -596, -596, 693, -55,
- 110, -596, -596, -596, -596, -596, 333, 249, -596, -596,
- -596, -596, -596, -596, 333, -596, 830, 325, 327, 344,
- 345, 335, 332, 346, -596, 351, 353, 258, 314, 270,
- 271, -596, -596, -596, -596, -596, -596, -596, 269, -596,
- -596, -30, -30, -30, -30, -30, -30, -30, 455, -19,
- 148, 148, 148, 348, -30, 148, -30, -596, -596, 408,
- 293, -596, -596, -596, -596, 898, 915, -596, -596, -596,
- -596, -596, -596, -596, -596, -596, 149, 757, 272, 55,
- -596, -596, -22, -596, 322, 366, 301, 302, -596, -596,
- -596, -596, -596, -596, -596, 757, 399, 344, -596, 757,
- 400, 345, -596, 757, 13, 335, -596, -596, -596, -596,
- -596, 757, 590, -596, 966, 80, 757, -596, -596, 333,
- 333, 333, 333, 333, 333, 333, 379, 381, 383, 387,
- 388, 389, 390, 392, 1010, -30, 333, 333, 333, -596,
- -596, -596, -596, -596, -596, 847, 864, 881, 333, 333,
- 757, 333, -596, -596, -596, 204, -596, -596, -596, -596,
- -596, -596, -596, -596, 429, 539, 623, 623, -23, -596,
- -596, -596, 610, -596, -596, -596, -596, 623, 403, -14,
- 757, -596, 757, -596, -596, 132, -596, -596, -596, 321,
- -596, -596, -596, -596, -596, 333, -596, -596, 757, -596,
- 830, 34, 404, 421, -596, 426, 427, -596, 428, 360,
- 293, 360, 448, -596, -596, -596, -596, -596, -596, -596,
- -596, -596, -596, -596, -596, -596, 333, 333, 333, 333,
- 333, 333, 333, 333, 333, -596, 333, -596, -596, -596,
- -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
- -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
- -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
- -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
- -596, 983, 932, 949, -596, 363, 364, 757, -596, -596,
- -596, -596, 226, -596, -596, -596, 132, -596, -596, -596,
- -596, -596, -596, -596, 451, 368, -596, -596, 31, -596,
- -596, -596, -596, -596, -596, -596, -596, -596, -596, -596,
- -596, -596, -596, -596, -596, -596, -596, 610, 610, -596,
- 367, -596, 475, 360, -596, 966, -596, 416, 31, -596,
- 111, 111, -596, 408, -596, 456, 466, -596, -596, -596,
- -596
+ 2, -5, -5, 33, -601, -601, -601, 15, -601, 54,
+ -601, 23, 37, 97, -23, 94, -601, 1024, 70, 35,
+ -601, 121, -601, -601, 57, 137, 152, -601, 430, -601,
+ 15, -601, -601, 94, -601, -601, 165, 186, 187, 1014,
+ 114, 188, 200, -601, -601, -601, -601, -601, -601, -601,
+ -601, -601, -601, -601, -601, 115, -601, -601, 191, -601,
+ -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+ -601, -601, -601, -601, 126, 25, 206, -601, 1024, -601,
+ -601, -601, -601, -601, -601, 119, -601, -601, -601, 759,
+ 208, 124, -601, -601, -601, -601, 123, -601, -601, -601,
+ 125, -601, -601, 619, -601, 127, -601, -601, -601, -601,
+ 1024, 1024, 1024, 1024, -601, 129, 54, -601, 508, 1000,
+ -601, 128, 122, -601, -601, 35, -601, -601, -601, 134,
+ 139, -601, -601, -601, 138, 144, -601, -601, -601, 39,
+ -601, -601, -601, -601, -601, -601, -601, 430, -601, -601,
+ -601, -601, -601, -601, 147, 148, 147, -601, 149, -601,
+ -601, 147, 147, 147, -601, 223, 176, 177, 179, 180,
+ 224, -601, -601, -601, 268, -601, -601, 191, -601, -3,
+ -601, 25, 269, 1024, -601, 759, -601, 259, -601, -601,
+ 1014, -601, 36, -601, -601, -601, -601, -601, 287, 288,
+ 290, 132, -601, -601, 330, -601, -601, -601, 35, -601,
+ -601, -601, -601, -601, 61, -601, -601, 221, 222, -601,
+ 227, 228, -601, -601, -601, -601, -601, -601, -601, 530,
+ 175, -601, -601, 175, 234, 239, 61, -601, 313, -601,
+ -601, -601, -601, -601, 36, 315, -601, 175, 114, 232,
+ 232, 317, 320, 321, 238, 986, 634, 653, 776, 799,
+ 396, 1024, -601, 16, 952, 323, -601, -601, -601, -601,
+ -601, -601, -601, -601, -601, -601, -601, 324, 430, -601,
+ -601, 325, -601, 326, 816, -601, -601, -601, -601, -601,
+ -601, -601, 328, -601, -601, -601, 232, 237, 245, -601,
+ -601, -601, -601, -601, -601, -601, 331, -601, -601, 713,
+ -36, 123, -601, -601, -601, -601, -601, 1024, 258, -601,
+ -601, -601, -601, -601, -601, 1024, -601, 833, 334, 336,
+ 352, 355, 347, 343, 345, -601, 346, 348, 260, 332,
+ 264, 266, -601, -601, -601, -601, -601, -601, -601, 270,
+ -601, -601, -24, -24, -24, -24, -24, -24, -24, 289,
+ -16, 163, 163, 163, 349, -24, 163, -24, -601, -601,
+ 456, 986, -601, -601, -601, -601, 699, 901, -601, -601,
+ -601, -601, -601, -601, -601, -601, -601, 244, 759, 271,
+ 93, -601, -601, -20, -601, 291, 337, 277, 280, -601,
+ -601, -601, -601, -601, -601, -601, 759, 367, 352, -601,
+ 759, 377, 355, -601, 759, 113, 347, -601, -601, -601,
+ -601, -601, 759, 396, -601, 952, 87, 759, -601, -601,
+ 1024, 1024, 1024, 1024, 1024, 1024, 1024, 358, 359, 363,
+ 375, 376, 378, 379, 380, 1033, -24, 1024, 1024, 1024,
+ -601, -601, -601, -601, -601, -601, 850, 867, 884, 1024,
+ 1024, 759, 1024, -601, -601, -601, 232, -601, -601, -601,
+ -601, -601, -601, -601, -601, 272, 142, 633, 633, 16,
+ -601, -601, -601, 430, -601, -601, -601, -601, 633, 387,
+ -19, 759, -601, 759, -601, -601, 147, -601, -601, -601,
+ 293, -601, -601, -601, -601, -601, 1024, -601, -601, 759,
+ -601, 833, -9, 391, 392, -601, 394, 409, -601, 415,
+ 1000, 986, 1000, 416, -601, -601, -601, -601, -601, -601,
+ -601, -601, -601, -601, -601, -601, -601, 1024, 1024, 1024,
+ 1024, 1024, 1024, 1024, 1024, 1024, -601, 1024, -601, -601,
+ -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+ -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+ -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+ -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+ -601, -601, 969, 918, 935, -601, 333, 338, 759, -601,
+ -601, -601, -601, 36, -601, -601, -601, 147, -601, -601,
+ -601, -601, -601, -601, -601, 418, 339, -601, -601, 19,
+ -601, -601, -601, -601, -601, -601, -601, -601, -601, -601,
+ -601, -601, -601, -601, -601, -601, -601, -601, 430, 430,
+ -601, 335, -601, 446, 1000, -601, 952, -601, 435, 19,
+ -601, 124, 124, -601, 456, -601, 428, 429, -601, -601,
+ -601, -601
};
/* YYPGOTO[NTERM-NUM]. */
static const yytype_int16 yypgoto[] =
{
- -596, -596, -596, 16, -596, 391, 5, -596, -596, -596,
- -596, -596, 326, -596, -596, 275, -596, -596, -596, -596,
- 7, -596, -596, -596, 11, -596, -596, 331, -596, -596,
- -596, 324, 459, -596, -596, -596, -596, -239, -596, -596,
- -596, -596, -596, -596, -596, -596, -596, -596, 257, -596,
- -203, -100, -596, -596, 334, -596, -596, -596, -196, -596,
- -596, -596, -596, -596, -596, -218, -596, 240, -498, -596,
- 369, 49, -596, -93, -596, -596, -596, -596, -596, -596,
- -596, -596, -596, -596, -596, -285, -596, -595, -596, 27,
- -596, -194, -596, -596, -596, -596, -596, 119, -596, -596,
- -596, -596, -130, -596, -596, -237, -596, -596, 15, -120,
- -113, 287, -596, -596, -418, -596, 122, -596, -596, -596,
- -596, -240, -596, -596, 40, -596, -295, 46, -596, -596,
- -596, -596, 141, -596, -596, 130, -596, -596, -147, -74,
- -596, -596, -192, -596, 295, -81, -27, 171, -214, -166,
- -209, -596, -25, -17, -216, -596, -436, -596, -596, -596,
- -596, 526, -596, 525, -596, -596, 32
+ -601, -601, -601, 45, -601, 368, 5, -601, -601, -601,
+ -601, -601, 282, -601, -601, 249, -601, -601, -601, -601,
+ -1, -601, -601, -601, 9, -601, -601, 309, -601, -601,
+ -601, 297, 436, -601, -601, -601, -601, -239, -601, -601,
+ -601, -601, -601, -601, -601, -601, -601, -601, 235, -601,
+ -202, -102, -601, -601, 311, -601, -601, -601, -193, -601,
+ -601, -601, -601, -601, -601, -217, -601, 212, -414, -601,
+ 360, 27, -601, -94, -601, -601, -601, -601, -601, -601,
+ -601, -601, -601, -601, -601, -312, -601, -600, -601, 6,
+ -601, -157, -601, -601, -601, -601, -601, 95, -601, -601,
+ -601, -601, -136, -601, -601, -238, -601, -601, -7, -139,
+ -115, 263, -601, -601, -416, -601, 92, -601, -601, -601,
+ -601, -240, -601, -601, 8, -601, -249, 24, -601, -601,
+ -601, -601, 130, -601, -601, 120, -601, -601, -150, -15,
+ -601, -601, -601, -145, -601, 286, -82, -27, 157, -250,
+ -213, -194, -601, -25, -17, -216, -601, -440, -601, -601,
+ -601, -601, 505, -601, 503, -601, -601, 53
};
/* 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 -359
+#define YYTABLE_NINF -360
static const yytype_int16 yytable[] =
{
- 71, 96, 147, 98, 322, 173, 526, 139, 190, 328,
- 277, 99, 310, 504, 44, 427, 46, 333, 9, 308,
- 50, -159, 108, 646, 177, 269, 447, 519, 4, 11,
- 12, 13, 270, 14, 286, 206, 306, 277, 10, 310,
- 592, 593, 520, 246, 54, 521, 308, 61, 1, 2,
- 335, 597, 269, 646, 342, 368, 15, 16, 116, 270,
- 136, 286, 645, 306, -273, 61, 317, 430, 431, 432,
- 433, 434, 435, -273, 365, 36, 37, 38, 39, 459,
- 324, 461, 12, 13, 55, 14, 193, 194, 195, 40,
- 493, 428, 165, 166, 167, 168, -274, 56, 222, 505,
- 88, 174, 448, 215, 73, -274, 41, 231, 57, 88,
- 512, 207, 208, 209, 515, 296, 183, 184, 518, 96,
- 44, 98, 46, 58, 17, 16, 50, 210, 18, 99,
- 76, 19, 606, 467, 607, 109, 110, 20, 111, 650,
- 651, 296, 296, 112, 124, 125, 126, 456, 457, 485,
- 222, 460, 494, 495, 496, 78, 497, 498, 499, 127,
- 546, 80, 81, 82, 83, 136, 470, 473, 482, 337,
- 489, 74, 108, 227, 223, 77, 17, 487, 495, 496,
- 18, 497, 498, 103, 348, 79, 474, 63, 64, 65,
- 66, 67, 68, 69, 70, 475, 81, 476, 477, 478,
- 85, 86, 87, 449, 450, 451, 452, 453, 454, 232,
- 233, 309, 104, 525, 105, 342, 114, 388, 311, 312,
- 313, 314, 115, 118, 119, 567, 223, 655, 123, 132,
- -274, 145, 146, 88, 164, 264, -273, 174, 309, 169,
- 175, 179, 176, 336, 180, 181, 554, 558, 562, 182,
- 96, 186, 98, 189, 191, 196, 364, 296, 366, 201,
- 99, 197, 264, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 218, 296, 198, 199, 200, 244, 479, 480,
- 481, 204, 213, 245, 216, 11, 12, 13, 246, 224,
- 226, 225, 247, 40, 248, 249, 229, 240, 250, 390,
- 251, 241, 252, 242, 253, 243, 491, 394, 318, 254,
- 319, 58, 255, 256, 63, 64, 65, 66, 257, 258,
- 259, 260, 261, 326, 321, 323, 262, 85, 86, 87,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 261,
- 524, 329, 330, 172, 331, 528, 263, 343, 601, 88,
- 344, 349, 466, 174, 350, 367, 369, 370, 371, 391,
- 403, 488, 404, 640, 405, 413, 409, 417, 422, 309,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 565,
- 421, 418, 630, 633, 636, 594, 419, 19, 420, 596,
- 423, 426, 424, 458, 492, 263, 598, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 614, 616, 617, 599,
- 172, 600, 529, 530, 531, 532, 533, 534, 535, 506,
- 508, 509, 513, 510, 536, 516, 537, 545, 538, 547,
- 548, 549, 539, 540, 541, 542, 342, 543, -163, 609,
- 602, 563, 564, 656, 566, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 462, 96, 610, 98, 463, 641,
- 464, 611, 612, 613, -158, 99, -136, -136, -136, -136,
+ 72, 97, 148, 99, 174, 323, 191, 140, 46, 527,
+ 329, 100, 278, 311, 44, 505, -159, 334, 50, 647,
+ 318, 428, 109, 178, 11, 12, 13, 270, 14, 448,
+ 4, 247, 207, 10, 325, 309, 271, 593, 594, 278,
+ 311, 431, 432, 433, 434, 435, 436, 9, 598, 647,
+ 646, 15, 16, 460, 270, 462, 369, 36, 37, 38,
+ 39, 137, 309, 271, 12, 13, 336, 14, 62, 55,
+ 343, 40, 287, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 219, -273, 307, 56, 62, 117, 41, 607,
+ 366, 608, -273, 166, 167, 168, 169, 429, 223, 287,
+ 58, 506, 175, 216, 89, 449, 232, 74, 208, 209,
+ 210, 307, 457, 458, 297, 46, 461, 1, 2, 17,
+ 97, 44, 99, 18, 211, 50, 19, 520, 494, 59,
+ 100, 16, 20, 468, 547, -274, 125, 126, 127, 89,
+ 297, 297, 521, 57, -274, 522, 194, 195, 196, 486,
+ 223, 128, 110, 111, 75, 112, 77, 513, 17, 89,
+ 113, 516, 18, 184, 185, 519, 137, 233, 234, 338,
+ 483, 490, 79, 109, 228, 224, 78, -340, 81, 82,
+ 83, 84, 471, 474, 349, 496, 497, 80, 498, 499,
+ 495, 496, 497, 488, 498, 499, 500, 569, 570, 571,
+ 572, 573, 574, 575, 576, 577, 578, 579, 580, 581,
+ 582, 104, 310, 312, 313, 314, 315, 389, 450, 451,
+ 452, 453, 454, 455, 651, 652, 568, 224, 265, 526,
+ 656, 343, 105, 106, 115, 116, 119, 120, 175, 310,
+ 124, 133, -274, 146, 337, 147, 89, 177, -273, 165,
+ 170, 97, 176, 99, 180, 265, 297, 365, 182, 367,
+ 181, 100, 555, 559, 563, 183, 187, 190, 192, 197,
+ 202, 583, 297, 584, 585, 586, 587, 588, 589, 590,
+ 591, 475, 64, 65, 66, 67, 68, 69, 70, 71,
+ 476, 82, 477, 478, 479, 86, 87, 88, 198, 199,
+ 391, 200, 201, 205, 214, 217, 492, -158, 395, -136,
-136, -136, -136, -136, -136, -136, -136, -136, -136, -136,
- -136, -136, -136, 618, 637, 638, 642, 652, 394, 643,
- 653, 659, 436, 437, 438, 439, 440, 441, 442, 443,
- 444, 660, 174, 174, 174, 445, 170, 205, 214, 222,
- 320, 117, 334, 217, 212, 185, 639, 346, 657, 619,
- 620, 621, 622, 623, 624, 625, 626, 627, 244, 628,
- 654, 595, 603, 658, 523, 615, 11, 12, 13, 246,
- 332, 517, 325, 247, 40, 248, 249, 527, 514, 250,
- 605, 251, -136, 252, 604, 253, 100, 486, 101, 0,
- 254, 0, 58, 0, 256, 63, 64, 65, 66, 257,
- 258, 259, 260, 261, -339, 0, 446, 262, 85, 86,
- 87, 0, 0, 0, 0, 223, 0, 0, 0, 0,
- 0, 0, 0, 0, 568, 569, 570, 571, 572, 573,
- 574, 575, 576, 577, 578, 579, 580, 581, 0, 0,
- 96, 96, 98, 98, 0, 0, 0, 0, 0, 0,
- 99, 99, 0, 0, 0, 0, 174, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 466, 0, 19, 0,
- 137, 85, 86, 87, 171, 0, 263, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 80, 81, 82, 83,
- 84, 85, 86, 87, 148, 0, 0, 0, 582, 0,
- 583, 584, 585, 586, 587, 588, 589, 590, 568, 569,
- 570, 571, 572, 573, 574, 575, 576, 577, 578, 579,
- 580, 581, 149, 150, 151, 152, 153, 154, 155, 156,
- 157, 158, 159, 160, 161, 162, 0, 0, 0, 0,
- 0, 149, 150, 151, 152, 153, 154, 155, 156, 157,
- 158, 159, 160, 161, 162, 0, 0, 0, 0, 0,
- 0, 0, 0, 88, -358, -358, -358, -358, -358, -358,
- -358, -358, -358, -358, -358, -358, -358, -358, 0, 0,
- 0, 0, 582, 0, 583, 584, 585, 586, 587, 588,
- 589, 590, 372, 373, 374, 375, 376, 377, 378, 379,
- 380, 381, 382, 383, 384, 385, 0, 0, 0, 0,
- 0, 0, 0, 0, -358, 0, 0, -358, 0, 0,
- 0, 0, 0, -358, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 80, 81, 82, 83, 137, 85, 86,
- 87, 0, 0, 0, 0, 386, -227, -227, -227, -227,
+ -136, -136, -136, -136, -136, -136, 437, 438, 439, 440,
+ 441, 442, 443, 444, 445, 225, 227, 226, 230, 446,
+ 525, 241, 242, 319, 320, 529, 602, 243, 322, 244,
+ 324, 327, 330, 467, 175, 331, 332, 264, 344, 345,
+ 350, 351, 489, 368, 641, 370, 372, 371, 392, 404,
+ 310, 405, 406, 480, 481, 482, 410, 414, 418, 566,
+ 419, 420, 422, 421, 424, 595, 423, 425, 507, 597,
+ 514, 509, 427, 493, 459, -136, 599, 510, 631, 634,
+ 637, 511, 517, 537, 538, 615, 617, 618, 539, 600,
+ 447, 601, 603, 530, 531, 532, 533, 534, 535, 536,
+ 540, 541, -163, 542, 543, 544, 610, 611, 546, 612,
+ 548, 549, 550, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 564, 565, 613, 567, 138, 86, 87, 88,
+ 614, 619, 343, 643, 638, 653, 97, 642, 99, 639,
+ 644, 654, 657, 660, 661, 215, 100, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 81, 82, 83, 84,
+ 85, 86, 87, 88, 171, 321, 206, 218, 118, 395,
+ 347, 335, 213, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 463, 175, 175, 175, 464, 186, 465, 223,
+ 596, 524, 604, 658, 616, 659, 640, 333, 528, 606,
+ 620, 621, 622, 623, 624, 625, 626, 627, 628, 655,
+ 629, 245, 518, 605, 326, 101, 102, 246, 515, 11,
+ 12, 13, 247, 172, 487, 0, 248, 40, 249, 250,
+ 0, 0, 251, 89, 252, 0, 253, 0, 254, 0,
+ 0, 0, 0, 255, 0, 59, 256, 257, 64, 65,
+ 66, 67, 258, 259, 260, 261, 262, 0, 0, 0,
+ 263, 86, 87, 88, 0, 0, 224, 0, 0, 0,
+ 0, 150, 151, 152, 153, 154, 155, 156, 157, 158,
+ 159, 160, 161, 162, 163, 0, 0, 0, 0, 0,
+ 0, 97, 97, 99, 99, 0, 0, 0, 0, 0,
+ 0, 100, 100, 0, 0, 0, 0, 175, 0, 0,
+ 0, 0, 0, 0, 0, 245, 0, 467, 0, 0,
+ 0, 19, 0, 11, 12, 13, 247, 0, 0, 264,
+ 248, 40, 249, 250, 0, 149, 251, 0, 252, 0,
+ 253, 0, 254, 0, 0, 0, 0, 255, 0, 59,
+ 0, 257, 64, 65, 66, 67, 258, 259, 260, 261,
+ 262, 0, 0, 0, 263, 86, 87, 88, 569, 570,
+ 571, 572, 573, 574, 575, 576, 577, 578, 579, 580,
+ 581, 582, 150, 151, 152, 153, 154, 155, 156, 157,
+ 158, 159, 160, 161, 162, 163, 0, 0, 0, 0,
+ 0, 0, -359, -359, -359, -359, -359, -359, -359, -359,
+ -359, -359, -359, -359, -359, -359, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 19, 0, 469, 470, 138,
+ 86, 87, 88, 264, 0, 0, 0, 0, 0, 0,
+ 0, 0, 583, 0, 584, 585, 586, 587, 588, 589,
+ 590, 591, -359, 0, 0, -359, 0, 0, 0, 0,
+ 0, -359, 373, 374, 375, 376, 377, 378, 379, 380,
+ 381, 382, 383, 384, 385, 386, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 81, 82, 83, 84, 138,
+ 86, 87, 88, -227, -227, -227, -227, -227, -227, -227,
-227, -227, -227, -227, -227, -227, -227, -227, -227, -227,
- -227, -227, -227, -228, -228, -228, -228, -228, -228, -228,
+ 0, 0, 0, 0, 0, 387, -228, -228, -228, -228,
-228, -228, -228, -228, -228, -228, -228, -228, -228, -228,
- 351, 352, 353, 354, 355, 356, 357, 358, 359, 360,
- 81, 361, 362, 137, 85, 86, 87, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 395, 81, 82, 83,
- 137, 85, 86, 87, 62, 63, 64, 65, 66, 67,
- 68, 69, 70, 550, 0, 551, 552, 137, 85, 86,
- 87, 62, 63, 64, 65, 66, 67, 68, 69, 70,
- 555, 0, 556, 557, 137, 85, 86, 87, 62, 63,
- 64, 65, 66, 67, 68, 69, 70, 559, 0, 560,
- 561, 137, 85, 86, 87, 62, 63, 64, 65, 66,
- 67, 68, 69, 70, 0, 0, 468, 469, 137, 85,
- 86, 87, 62, 63, 64, 65, 66, 67, 68, 69,
- 70, 0, 0, 471, 472, 137, 85, 86, 87, 62,
- 63, 64, 65, 66, 67, 68, 69, 70, 0, 0,
- 631, 632, 137, 85, 86, 87, 62, 63, 64, 65,
- 66, 67, 68, 69, 70, 0, 0, 634, 635, 137,
- 85, 86, 87, 62, 63, 64, 65, 66, 67, 68,
- 69, 70, 338, 0, 0, 0, 137, 85, 86, 87,
- 62, 63, 64, 65, 66, 67, 68, 69, 70, 629,
- 0, 0, 0, 137, 85, 86, 87, 62, 63, 64,
- 65, 66, 67, 68, 69, 70, 106, 62, 63, 64,
- 65, 66, 67, 68, 69, 544
+ -228, -228, -228, 352, 353, 354, 355, 356, 357, 358,
+ 359, 360, 361, 82, 362, 363, 138, 86, 87, 88,
+ 63, 64, 65, 66, 67, 68, 69, 70, 71, 396,
+ 82, 83, 84, 138, 86, 87, 88, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 551, 0, 552, 553,
+ 138, 86, 87, 88, 63, 64, 65, 66, 67, 68,
+ 69, 70, 71, 556, 0, 557, 558, 138, 86, 87,
+ 88, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 560, 0, 561, 562, 138, 86, 87, 88, 63, 64,
+ 65, 66, 67, 68, 69, 70, 71, 0, 0, 472,
+ 473, 138, 86, 87, 88, 63, 64, 65, 66, 67,
+ 68, 69, 70, 71, 0, 0, 632, 633, 138, 86,
+ 87, 88, 63, 64, 65, 66, 67, 68, 69, 70,
+ 71, 0, 0, 635, 636, 138, 86, 87, 88, 63,
+ 64, 65, 66, 67, 68, 69, 70, 71, 339, 0,
+ 0, 0, 138, 86, 87, 88, 63, 64, 65, 66,
+ 67, 68, 69, 70, 71, 630, 0, 0, 0, 138,
+ 86, 87, 88, 63, 64, 65, 66, 67, 68, 69,
+ 70, 71, 262, 0, 0, 0, 173, 63, 64, 65,
+ 66, 67, 68, 69, 70, 71, 0, 0, 0, 0,
+ 173, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 107, 63, 64, 65, 66, 67, 68, 69, 70, 71,
+ 63, 64, 65, 66, 67, 68, 69, 70, 545
};
static const yytype_int16 yycheck[] =
{
- 17, 28, 95, 28, 243, 118, 424, 88, 155, 249,
- 228, 28, 228, 35, 9, 45, 9, 254, 2, 228,
- 9, 35, 39, 618, 124, 228, 45, 14, 35, 9,
- 10, 11, 228, 13, 228, 35, 228, 255, 0, 255,
- 476, 477, 29, 12, 46, 32, 255, 15, 115, 116,
- 259, 487, 255, 648, 263, 295, 36, 37, 42, 255,
- 77, 255, 31, 255, 119, 33, 232, 352, 353, 354,
- 355, 356, 357, 128, 283, 3, 4, 5, 6, 364,
- 246, 366, 10, 11, 48, 13, 160, 161, 162, 17,
- 35, 121, 109, 110, 111, 112, 119, 46, 191, 121,
- 123, 118, 121, 184, 37, 128, 34, 207, 123, 123,
- 405, 111, 112, 113, 409, 228, 124, 125, 413, 146,
- 115, 146, 115, 35, 104, 37, 115, 127, 108, 146,
- 35, 111, 98, 370, 100, 38, 39, 117, 41, 637,
- 638, 254, 255, 46, 111, 112, 113, 361, 362, 386,
- 243, 365, 97, 98, 99, 35, 101, 102, 103, 126,
- 445, 46, 47, 48, 49, 182, 375, 376, 386, 262,
- 386, 119, 189, 200, 191, 119, 104, 386, 98, 99,
- 108, 101, 102, 46, 277, 35, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 55, 56, 57, 58, 59, 60, 106,
- 107, 228, 46, 422, 46, 424, 46, 310, 38, 39,
- 40, 41, 35, 121, 46, 465, 243, 645, 114, 35,
- 123, 35, 121, 123, 122, 228, 123, 254, 255, 121,
- 124, 120, 125, 260, 121, 120, 455, 456, 457, 121,
- 277, 119, 277, 119, 119, 46, 283, 370, 283, 46,
- 277, 122, 255, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 386, 122, 122, 122, 1, 129, 130,
- 131, 35, 35, 7, 46, 9, 10, 11, 12, 48,
- 46, 49, 16, 17, 18, 19, 8, 120, 22, 316,
- 24, 120, 26, 120, 28, 121, 387, 324, 109, 33,
- 105, 35, 36, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, 119, 35, 35, 50, 51, 52, 53,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- 421, 35, 35, 50, 35, 426, 119, 35, 495, 123,
- 35, 35, 369, 370, 35, 35, 128, 122, 35, 110,
- 35, 386, 35, 602, 20, 30, 21, 35, 54, 386,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 460,
- 122, 35, 591, 592, 593, 478, 35, 111, 35, 482,
- 120, 122, 121, 45, 122, 119, 489, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 519, 520, 521, 490,
- 50, 492, 429, 430, 431, 432, 433, 434, 435, 97,
- 54, 120, 23, 121, 45, 25, 45, 444, 45, 446,
- 447, 448, 45, 45, 45, 45, 645, 45, 35, 35,
- 119, 458, 459, 27, 461, 37, 38, 39, 40, 41,
- 42, 43, 44, 45, 46, 482, 35, 482, 50, 606,
- 52, 35, 35, 35, 35, 482, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
- 51, 52, 53, 35, 121, 121, 35, 120, 505, 121,
- 15, 35, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 35, 519, 520, 521, 50, 115, 176, 182, 602,
- 235, 52, 255, 189, 180, 146, 597, 277, 648, 536,
- 537, 538, 539, 540, 541, 542, 543, 544, 1, 546,
- 643, 482, 505, 653, 415, 520, 9, 10, 11, 12,
- 253, 411, 247, 16, 17, 18, 19, 425, 407, 22,
- 510, 24, 123, 26, 508, 28, 30, 386, 33, -1,
- 33, -1, 35, -1, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 35, -1, 121, 50, 51, 52,
- 53, -1, -1, -1, -1, 602, -1, -1, -1, -1,
- -1, -1, -1, -1, 55, 56, 57, 58, 59, 60,
- 61, 62, 63, 64, 65, 66, 67, 68, -1, -1,
- 637, 638, 637, 638, -1, -1, -1, -1, -1, -1,
- 637, 638, -1, -1, -1, -1, 643, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 653, -1, 111, -1,
- 50, 51, 52, 53, 35, -1, 119, 37, 38, 39,
+ 17, 28, 96, 28, 119, 244, 156, 89, 9, 425,
+ 250, 28, 229, 229, 9, 35, 35, 255, 9, 619,
+ 233, 45, 39, 125, 9, 10, 11, 229, 13, 45,
+ 35, 12, 35, 0, 247, 229, 229, 477, 478, 256,
+ 256, 353, 354, 355, 356, 357, 358, 2, 488, 649,
+ 31, 36, 37, 365, 256, 367, 296, 3, 4, 5,
+ 6, 78, 256, 256, 10, 11, 260, 13, 15, 46,
+ 264, 17, 229, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 119, 229, 48, 33, 42, 34, 98,
+ 284, 100, 128, 110, 111, 112, 113, 121, 192, 256,
+ 123, 121, 119, 185, 123, 121, 208, 37, 111, 112,
+ 113, 256, 362, 363, 229, 116, 366, 115, 116, 104,
+ 147, 116, 147, 108, 127, 116, 111, 14, 35, 35,
+ 147, 37, 117, 371, 446, 119, 111, 112, 113, 123,
+ 255, 256, 29, 46, 128, 32, 161, 162, 163, 387,
+ 244, 126, 38, 39, 119, 41, 35, 406, 104, 123,
+ 46, 410, 108, 124, 125, 414, 183, 106, 107, 263,
+ 387, 387, 35, 190, 201, 192, 119, 35, 46, 47,
+ 48, 49, 376, 377, 278, 98, 99, 35, 101, 102,
+ 97, 98, 99, 387, 101, 102, 103, 55, 56, 57,
+ 58, 59, 60, 61, 62, 63, 64, 65, 66, 67,
+ 68, 46, 229, 38, 39, 40, 41, 311, 55, 56,
+ 57, 58, 59, 60, 638, 639, 466, 244, 229, 423,
+ 646, 425, 46, 46, 46, 35, 121, 46, 255, 256,
+ 114, 35, 123, 35, 261, 121, 123, 125, 123, 122,
+ 121, 278, 124, 278, 120, 256, 371, 284, 120, 284,
+ 121, 278, 456, 457, 458, 121, 119, 119, 119, 46,
+ 46, 129, 387, 131, 132, 133, 134, 135, 136, 137,
+ 138, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 47, 48, 49, 50, 51, 52, 53, 122, 122,
+ 317, 122, 122, 35, 35, 46, 388, 35, 325, 37,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
+ 48, 49, 50, 51, 52, 53, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 48, 46, 49, 8, 50,
+ 422, 120, 120, 109, 105, 427, 496, 120, 35, 121,
+ 35, 119, 35, 370, 371, 35, 35, 119, 35, 35,
+ 35, 35, 387, 35, 603, 128, 35, 122, 110, 35,
+ 387, 35, 20, 129, 130, 131, 21, 30, 35, 461,
+ 35, 35, 122, 35, 120, 479, 54, 121, 97, 483,
+ 23, 54, 122, 122, 45, 123, 490, 120, 592, 593,
+ 594, 121, 25, 45, 45, 520, 521, 522, 45, 491,
+ 121, 493, 119, 430, 431, 432, 433, 434, 435, 436,
+ 45, 45, 35, 45, 45, 45, 35, 35, 445, 35,
+ 447, 448, 449, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 459, 460, 35, 462, 50, 51, 52, 53,
+ 35, 35, 646, 35, 121, 120, 483, 607, 483, 121,
+ 121, 15, 27, 35, 35, 183, 483, 37, 38, 39,
40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
- 50, 51, 52, 53, 36, -1, -1, -1, 129, -1,
- 131, 132, 133, 134, 135, 136, 137, 138, 55, 56,
+ 50, 51, 52, 53, 116, 236, 177, 190, 52, 506,
+ 278, 256, 181, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 520, 521, 522, 50, 147, 52, 603,
+ 483, 416, 506, 649, 521, 654, 598, 254, 426, 511,
+ 537, 538, 539, 540, 541, 542, 543, 544, 545, 644,
+ 547, 1, 412, 509, 248, 30, 33, 7, 408, 9,
+ 10, 11, 12, 35, 387, -1, 16, 17, 18, 19,
+ -1, -1, 22, 123, 24, -1, 26, -1, 28, -1,
+ -1, -1, -1, 33, -1, 35, 36, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 46, -1, -1, -1,
+ 50, 51, 52, 53, -1, -1, 603, -1, -1, -1,
+ -1, 83, 84, 85, 86, 87, 88, 89, 90, 91,
+ 92, 93, 94, 95, 96, -1, -1, -1, -1, -1,
+ -1, 638, 639, 638, 639, -1, -1, -1, -1, -1,
+ -1, 638, 639, -1, -1, -1, -1, 644, -1, -1,
+ -1, -1, -1, -1, -1, 1, -1, 654, -1, -1,
+ -1, 111, -1, 9, 10, 11, 12, -1, -1, 119,
+ 16, 17, 18, 19, -1, 36, 22, -1, 24, -1,
+ 26, -1, 28, -1, -1, -1, -1, 33, -1, 35,
+ -1, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, -1, -1, -1, 50, 51, 52, 53, 55, 56,
57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
67, 68, 83, 84, 85, 86, 87, 88, 89, 90,
91, 92, 93, 94, 95, 96, -1, -1, -1, -1,
- -1, 83, 84, 85, 86, 87, 88, 89, 90, 91,
- 92, 93, 94, 95, 96, -1, -1, -1, -1, -1,
- -1, -1, -1, 123, 69, 70, 71, 72, 73, 74,
- 75, 76, 77, 78, 79, 80, 81, 82, -1, -1,
+ -1, -1, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 111, -1, 48, 49, 50,
+ 51, 52, 53, 119, -1, -1, -1, -1, -1, -1,
-1, -1, 129, -1, 131, 132, 133, 134, 135, 136,
- 137, 138, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, -1, -1, -1, -1,
- -1, -1, -1, -1, 119, -1, -1, 122, -1, -1,
- -1, -1, -1, 128, 37, 38, 39, 40, 41, 42,
- 43, 44, 45, 46, 47, 48, 49, 50, 51, 52,
- 53, -1, -1, -1, -1, 122, 37, 38, 39, 40,
+ 137, 138, 119, -1, -1, 122, -1, -1, -1, -1,
+ -1, 128, 69, 70, 71, 72, 73, 74, 75, 76,
+ 77, 78, 79, 80, 81, 82, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
+ 51, 52, 53, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
+ -1, -1, -1, -1, -1, 122, 37, 38, 39, 40,
41, 42, 43, 44, 45, 46, 47, 48, 49, 50,
51, 52, 53, 37, 38, 39, 40, 41, 42, 43,
44, 45, 46, 47, 48, 49, 50, 51, 52, 53,
37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
47, 48, 49, 50, 51, 52, 53, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 47, 48, 49,
+ 40, 41, 42, 43, 44, 45, 46, -1, 48, 49,
50, 51, 52, 53, 37, 38, 39, 40, 41, 42,
43, 44, 45, 46, -1, 48, 49, 50, 51, 52,
53, 37, 38, 39, 40, 41, 42, 43, 44, 45,
46, -1, 48, 49, 50, 51, 52, 53, 37, 38,
- 39, 40, 41, 42, 43, 44, 45, 46, -1, 48,
+ 39, 40, 41, 42, 43, 44, 45, -1, -1, 48,
49, 50, 51, 52, 53, 37, 38, 39, 40, 41,
42, 43, 44, 45, -1, -1, 48, 49, 50, 51,
52, 53, 37, 38, 39, 40, 41, 42, 43, 44,
45, -1, -1, 48, 49, 50, 51, 52, 53, 37,
- 38, 39, 40, 41, 42, 43, 44, 45, -1, -1,
- 48, 49, 50, 51, 52, 53, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, -1, -1, 48, 49, 50,
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, -1,
+ -1, -1, 50, 51, 52, 53, 37, 38, 39, 40,
+ 41, 42, 43, 44, 45, 46, -1, -1, -1, 50,
51, 52, 53, 37, 38, 39, 40, 41, 42, 43,
- 44, 45, 46, -1, -1, -1, 50, 51, 52, 53,
- 37, 38, 39, 40, 41, 42, 43, 44, 45, 46,
- -1, -1, -1, 50, 51, 52, 53, 37, 38, 39,
- 40, 41, 42, 43, 44, 45, 46, 37, 38, 39,
- 40, 41, 42, 43, 44, 45
+ 44, 45, 46, -1, -1, -1, 50, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, -1, -1, -1, -1,
+ 50, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 46, 37, 38, 39, 40, 41, 42, 43, 44, 45,
+ 37, 38, 39, 40, 41, 42, 43, 44, 45
};
/* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
symbol of state STATE-NUM. */
static const yytype_uint16 yystos[] =
{
- 0, 115, 116, 140, 35, 142, 297, 298, 141, 142,
+ 0, 115, 116, 140, 35, 142, 298, 299, 141, 142,
0, 9, 10, 11, 13, 36, 37, 104, 108, 111,
117, 145, 146, 147, 148, 159, 163, 189, 204, 230,
- 299, 300, 301, 303, 304, 305, 3, 4, 5, 6,
+ 300, 301, 302, 304, 305, 306, 3, 4, 5, 6,
17, 34, 143, 144, 145, 158, 159, 160, 161, 162,
- 163, 167, 169, 281, 46, 48, 46, 123, 35, 197,
- 302, 305, 37, 38, 39, 40, 41, 42, 43, 44,
- 45, 292, 293, 37, 119, 190, 35, 119, 35, 35,
- 46, 47, 48, 49, 50, 51, 52, 53, 123, 206,
- 207, 209, 210, 211, 212, 249, 285, 286, 291, 292,
- 300, 302, 171, 46, 46, 46, 46, 170, 292, 38,
- 39, 41, 46, 283, 46, 35, 142, 171, 121, 46,
- 164, 165, 166, 114, 111, 112, 113, 126, 191, 192,
- 193, 194, 35, 149, 150, 151, 292, 50, 213, 284,
- 285, 289, 290, 291, 292, 35, 121, 212, 36, 83,
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
- 94, 95, 96, 172, 122, 292, 292, 292, 292, 121,
- 144, 35, 50, 249, 292, 124, 125, 190, 195, 120,
- 121, 120, 121, 124, 125, 209, 119, 277, 278, 119,
- 277, 119, 173, 278, 278, 278, 46, 122, 122, 122,
- 122, 46, 177, 178, 35, 166, 35, 111, 112, 113,
- 127, 196, 193, 35, 151, 284, 46, 170, 46, 174,
- 175, 176, 212, 292, 48, 49, 46, 285, 185, 8,
- 179, 190, 106, 107, 152, 153, 154, 155, 156, 157,
- 120, 120, 120, 121, 1, 7, 12, 16, 18, 19,
- 22, 24, 26, 28, 33, 36, 37, 42, 43, 44,
- 45, 46, 50, 119, 159, 168, 186, 187, 188, 189,
- 197, 198, 199, 200, 201, 202, 203, 204, 214, 215,
- 217, 219, 220, 223, 225, 226, 230, 231, 232, 233,
- 242, 243, 244, 245, 246, 247, 249, 250, 256, 257,
- 258, 259, 267, 268, 279, 280, 281, 282, 289, 292,
- 293, 38, 39, 40, 41, 180, 288, 288, 109, 105,
- 154, 35, 176, 35, 288, 283, 119, 260, 260, 35,
- 35, 35, 250, 244, 187, 289, 292, 212, 46, 251,
- 252, 253, 289, 35, 35, 205, 206, 208, 212, 35,
- 35, 37, 38, 39, 40, 41, 42, 43, 44, 45,
- 46, 48, 49, 221, 285, 289, 291, 35, 260, 128,
- 122, 35, 69, 70, 71, 72, 73, 74, 75, 76,
- 77, 78, 79, 80, 81, 82, 122, 296, 212, 181,
- 292, 110, 227, 228, 292, 46, 261, 262, 263, 264,
- 265, 266, 284, 35, 35, 20, 269, 270, 271, 21,
- 272, 273, 274, 30, 234, 235, 236, 35, 35, 35,
- 35, 122, 54, 120, 121, 254, 122, 45, 121, 224,
- 224, 224, 224, 224, 224, 224, 37, 38, 39, 40,
- 41, 42, 43, 44, 45, 50, 121, 45, 121, 55,
- 56, 57, 58, 59, 60, 287, 287, 287, 45, 224,
- 287, 224, 46, 50, 52, 248, 292, 244, 48, 49,
- 289, 48, 49, 289, 37, 46, 48, 49, 50, 129,
- 130, 131, 204, 216, 218, 244, 286, 289, 291, 293,
- 294, 284, 122, 35, 97, 98, 99, 101, 102, 103,
- 182, 183, 184, 255, 35, 121, 97, 229, 54, 120,
- 121, 275, 265, 23, 271, 265, 25, 274, 265, 14,
- 29, 32, 237, 236, 284, 289, 253, 255, 284, 292,
- 292, 292, 292, 292, 292, 292, 45, 45, 45, 45,
- 45, 45, 45, 45, 45, 292, 224, 292, 292, 292,
- 46, 48, 49, 222, 289, 46, 48, 49, 289, 46,
- 48, 49, 289, 292, 292, 284, 292, 260, 55, 56,
- 57, 58, 59, 60, 61, 62, 63, 64, 65, 66,
- 67, 68, 129, 131, 132, 133, 134, 135, 136, 137,
- 138, 295, 295, 295, 212, 210, 212, 295, 212, 284,
- 284, 277, 119, 228, 266, 263, 98, 100, 276, 35,
- 35, 35, 35, 35, 249, 247, 249, 249, 35, 292,
- 292, 292, 292, 292, 292, 292, 292, 292, 292, 46,
- 289, 48, 49, 289, 48, 49, 289, 121, 121, 284,
- 176, 277, 35, 121, 238, 31, 226, 239, 240, 241,
- 207, 207, 120, 15, 249, 253, 27, 241, 248, 35,
- 35
+ 163, 167, 169, 280, 282, 46, 48, 46, 123, 35,
+ 197, 303, 306, 37, 38, 39, 40, 41, 42, 43,
+ 44, 45, 293, 294, 37, 119, 190, 35, 119, 35,
+ 35, 46, 47, 48, 49, 50, 51, 52, 53, 123,
+ 206, 207, 209, 210, 211, 212, 249, 286, 287, 292,
+ 293, 301, 303, 171, 46, 46, 46, 46, 170, 293,
+ 38, 39, 41, 46, 284, 46, 35, 142, 171, 121,
+ 46, 164, 165, 166, 114, 111, 112, 113, 126, 191,
+ 192, 193, 194, 35, 149, 150, 151, 293, 50, 213,
+ 285, 286, 290, 291, 292, 293, 35, 121, 212, 36,
+ 83, 84, 85, 86, 87, 88, 89, 90, 91, 92,
+ 93, 94, 95, 96, 172, 122, 293, 293, 293, 293,
+ 121, 144, 35, 50, 249, 293, 124, 125, 190, 195,
+ 120, 121, 120, 121, 124, 125, 209, 119, 277, 278,
+ 119, 277, 119, 173, 278, 278, 278, 46, 122, 122,
+ 122, 122, 46, 177, 178, 35, 166, 35, 111, 112,
+ 113, 127, 196, 193, 35, 151, 285, 46, 170, 46,
+ 174, 175, 176, 212, 293, 48, 49, 46, 286, 185,
+ 8, 179, 190, 106, 107, 152, 153, 154, 155, 156,
+ 157, 120, 120, 120, 121, 1, 7, 12, 16, 18,
+ 19, 22, 24, 26, 28, 33, 36, 37, 42, 43,
+ 44, 45, 46, 50, 119, 159, 168, 186, 187, 188,
+ 189, 197, 198, 199, 200, 201, 202, 203, 204, 214,
+ 215, 217, 219, 220, 223, 225, 226, 230, 231, 232,
+ 233, 242, 243, 244, 245, 246, 247, 249, 250, 256,
+ 257, 258, 259, 267, 268, 279, 281, 282, 283, 290,
+ 293, 294, 38, 39, 40, 41, 180, 289, 289, 109,
+ 105, 154, 35, 176, 35, 289, 284, 119, 260, 260,
+ 35, 35, 35, 250, 244, 187, 290, 293, 212, 46,
+ 251, 252, 253, 290, 35, 35, 205, 206, 208, 212,
+ 35, 35, 37, 38, 39, 40, 41, 42, 43, 44,
+ 45, 46, 48, 49, 221, 286, 290, 292, 35, 260,
+ 128, 122, 35, 69, 70, 71, 72, 73, 74, 75,
+ 76, 77, 78, 79, 80, 81, 82, 122, 297, 212,
+ 181, 293, 110, 227, 228, 293, 46, 261, 262, 263,
+ 264, 265, 266, 285, 35, 35, 20, 269, 270, 271,
+ 21, 272, 273, 274, 30, 234, 235, 236, 35, 35,
+ 35, 35, 122, 54, 120, 121, 254, 122, 45, 121,
+ 224, 224, 224, 224, 224, 224, 224, 37, 38, 39,
+ 40, 41, 42, 43, 44, 45, 50, 121, 45, 121,
+ 55, 56, 57, 58, 59, 60, 288, 288, 288, 45,
+ 224, 288, 224, 46, 50, 52, 248, 293, 244, 48,
+ 49, 290, 48, 49, 290, 37, 46, 48, 49, 50,
+ 129, 130, 131, 204, 216, 218, 244, 287, 290, 292,
+ 294, 295, 285, 122, 35, 97, 98, 99, 101, 102,
+ 103, 182, 183, 184, 255, 35, 121, 97, 229, 54,
+ 120, 121, 275, 265, 23, 271, 265, 25, 274, 265,
+ 14, 29, 32, 237, 236, 285, 290, 253, 255, 285,
+ 293, 293, 293, 293, 293, 293, 293, 45, 45, 45,
+ 45, 45, 45, 45, 45, 45, 293, 224, 293, 293,
+ 293, 46, 48, 49, 222, 290, 46, 48, 49, 290,
+ 46, 48, 49, 290, 293, 293, 285, 293, 260, 55,
+ 56, 57, 58, 59, 60, 61, 62, 63, 64, 65,
+ 66, 67, 68, 129, 131, 132, 133, 134, 135, 136,
+ 137, 138, 296, 296, 296, 212, 210, 212, 296, 212,
+ 285, 285, 277, 119, 228, 266, 263, 98, 100, 276,
+ 35, 35, 35, 35, 35, 249, 247, 249, 249, 35,
+ 293, 293, 293, 293, 293, 293, 293, 293, 293, 293,
+ 46, 290, 48, 49, 290, 48, 49, 290, 121, 121,
+ 285, 176, 277, 35, 121, 238, 31, 226, 239, 240,
+ 241, 207, 207, 120, 15, 249, 253, 27, 241, 248,
+ 35, 35
};
#define yyerrok (yyerrstatus = 0)
@@ -3192,7 +3196,7 @@
case 156:
#line 1135 "pir.y"
- { /* XXX create a PMC const for $4 */
+ {
unshift_operand(lexer, expr_from_key(lexer, (yyvsp[(4) - (6)].key)));
unshift_operand(lexer, expr_from_target(lexer, (yyvsp[(1) - (6)].targ)));
if (check_op_args_for_symbols(lexer))
@@ -3276,11 +3280,11 @@
case 166:
#line 1206 "pir.y"
{
- /* $P0 = foo ["bar"]
+ /* $P0 = foo ["bar"] # PIR style
*
* could be PIR sugar for this PASM code:
*
- * foo $P0, ["bar"]
+ * foo $P0, ["bar"] # PASM style
*
* but as this sugar is already used for keyed access, the parser
* will not allow the former syntax; if there is an op C<foo>,
@@ -4318,123 +4322,128 @@
{ (yyval.sval) = (yyvsp[(2) - (3)].sval); ;}
break;
- case 328:
-#line 2010 "pir.y"
- { /*store_global_constant(lexer, $2); */;}
+ case 326:
+#line 2005 "pir.y"
+ { store_global_constant(lexer, (yyvsp[(1) - (1)].cdec)); ;}
break;
case 329:
-#line 2014 "pir.y"
- { store_global_constant(lexer, (yyvsp[(2) - (2)].cdec)); ;}
+#line 2013 "pir.y"
+ { (yyval.cdec) = (yyvsp[(2) - (2)].cdec); ;}
break;
case 330:
-#line 2018 "pir.y"
- { (yyval.cdec) = new_named_const(lexer, INT_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].ival)); ;}
+#line 2017 "pir.y"
+ { store_global_constant(lexer, (yyvsp[(2) - (2)].cdec)); ;}
break;
case 331:
-#line 2020 "pir.y"
- { (yyval.cdec) = new_named_const(lexer, NUM_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].dval)); ;}
+#line 2021 "pir.y"
+ { (yyval.cdec) = new_named_const(lexer, INT_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].ival)); ;}
break;
case 332:
-#line 2022 "pir.y"
- { (yyval.cdec) = new_named_const(lexer, STRING_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].sval)); ;}
+#line 2023 "pir.y"
+ { (yyval.cdec) = new_named_const(lexer, NUM_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].dval)); ;}
break;
case 333:
-#line 2024 "pir.y"
- { (yyval.cdec) = new_pmc_const(lexer, (yyvsp[(1) - (4)].sval), (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].cval)); ;}
+#line 2025 "pir.y"
+ { (yyval.cdec) = new_named_const(lexer, STRING_VAL, (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].sval)); ;}
break;
case 334:
-#line 2031 "pir.y"
- { (yyval.expr) = expr_from_target(lexer, (yyvsp[(1) - (1)].targ)); ;}
+#line 2027 "pir.y"
+ { (yyval.cdec) = new_pmc_const(lexer, (yyvsp[(1) - (4)].sval), (yyvsp[(2) - (4)].sval), (yyvsp[(4) - (4)].cval)); ;}
break;
case 335:
-#line 2032 "pir.y"
- { (yyval.expr) = expr_from_const(lexer, (yyvsp[(1) - (1)].cval)); ;}
+#line 2034 "pir.y"
+ { (yyval.expr) = expr_from_target(lexer, (yyvsp[(1) - (1)].targ)); ;}
break;
case 336:
-#line 2036 "pir.y"
- { (yyval.cval) = new_const(lexer, INT_VAL, (yyvsp[(1) - (1)].ival)); ;}
+#line 2035 "pir.y"
+ { (yyval.expr) = expr_from_const(lexer, (yyvsp[(1) - (1)].cval)); ;}
break;
case 337:
-#line 2037 "pir.y"
- { (yyval.cval) = new_const(lexer, NUM_VAL, (yyvsp[(1) - (1)].dval)); ;}
+#line 2039 "pir.y"
+ { (yyval.cval) = new_const(lexer, INT_VAL, (yyvsp[(1) - (1)].ival)); ;}
break;
- case 339:
-#line 2041 "pir.y"
- { (yyval.cval) = new_const(lexer, STRING_VAL, (yyvsp[(1) - (1)].sval)); ;}
+ case 338:
+#line 2040 "pir.y"
+ { (yyval.cval) = new_const(lexer, NUM_VAL, (yyvsp[(1) - (1)].dval)); ;}
break;
case 340:
-#line 2042 "pir.y"
- { (yyval.cval) = new_const(lexer, USTRING_VAL, (yyvsp[(1) - (1)].ustr)); ;}
+#line 2044 "pir.y"
+ { (yyval.cval) = new_const(lexer, STRING_VAL, (yyvsp[(1) - (1)].sval)); ;}
break;
case 341:
#line 2045 "pir.y"
- { (yyval.ival) = OP_NE; ;}
+ { (yyval.cval) = new_const(lexer, USTRING_VAL, (yyvsp[(1) - (1)].ustr)); ;}
break;
case 342:
-#line 2046 "pir.y"
- { (yyval.ival) = OP_EQ; ;}
+#line 2048 "pir.y"
+ { (yyval.ival) = OP_NE; ;}
break;
case 343:
-#line 2047 "pir.y"
- { (yyval.ival) = OP_LT; ;}
+#line 2049 "pir.y"
+ { (yyval.ival) = OP_EQ; ;}
break;
case 344:
-#line 2048 "pir.y"
- { (yyval.ival) = OP_LE; ;}
+#line 2050 "pir.y"
+ { (yyval.ival) = OP_LT; ;}
break;
case 345:
-#line 2049 "pir.y"
- { (yyval.ival) = OP_GE; ;}
+#line 2051 "pir.y"
+ { (yyval.ival) = OP_LE; ;}
break;
case 346:
-#line 2050 "pir.y"
- { (yyval.ival) = OP_GT; ;}
+#line 2052 "pir.y"
+ { (yyval.ival) = OP_GE; ;}
break;
case 347:
#line 2053 "pir.y"
- { (yyval.ival) = INT_TYPE; ;}
+ { (yyval.ival) = OP_GT; ;}
break;
case 348:
-#line 2054 "pir.y"
- { (yyval.ival) = NUM_TYPE; ;}
+#line 2056 "pir.y"
+ { (yyval.ival) = INT_TYPE; ;}
break;
case 349:
-#line 2055 "pir.y"
- { (yyval.ival) = PMC_TYPE; ;}
+#line 2057 "pir.y"
+ { (yyval.ival) = NUM_TYPE; ;}
break;
case 350:
-#line 2056 "pir.y"
- { (yyval.ival) = STRING_TYPE; ;}
+#line 2058 "pir.y"
+ { (yyval.ival) = PMC_TYPE; ;}
break;
case 351:
-#line 2064 "pir.y"
+#line 2059 "pir.y"
+ { (yyval.ival) = STRING_TYPE; ;}
+ break;
+
+ case 352:
+#line 2067 "pir.y"
{ set_curtarget(lexer, (yyvsp[(1) - (1)].targ)); ;}
break;
- case 353:
-#line 2068 "pir.y"
+ case 354:
+#line 2071 "pir.y"
{ /* a symbol must have been declared; check that at this point. */
symbol * sym = find_symbol(lexer, (yyvsp[(1) - (1)].sval));
if (sym == NULL) {
@@ -4446,278 +4455,278 @@
;}
break;
- case 354:
-#line 2079 "pir.y"
+ case 355:
+#line 2082 "pir.y"
{ (yyval.targ) = new_reg(lexer, PMC_TYPE, (yyvsp[(1) - (1)].ival)); ;}
break;
- case 355:
-#line 2080 "pir.y"
+ case 356:
+#line 2083 "pir.y"
{ (yyval.targ) = new_reg(lexer, NUM_TYPE, (yyvsp[(1) - (1)].ival)); ;}
break;
- case 356:
-#line 2081 "pir.y"
+ case 357:
+#line 2084 "pir.y"
{ (yyval.targ) = new_reg(lexer, INT_TYPE, (yyvsp[(1) - (1)].ival)); ;}
break;
- case 357:
-#line 2082 "pir.y"
+ case 358:
+#line 2085 "pir.y"
{ (yyval.targ) = new_reg(lexer, STRING_TYPE, (yyvsp[(1) - (1)].ival)); ;}
break;
- case 360:
-#line 2090 "pir.y"
- { (yyval.sval) = "if"; ;}
- break;
-
case 361:
-#line 2091 "pir.y"
- { (yyval.sval) = "unless"; ;}
+#line 2093 "pir.y"
+ { (yyval.sval) = "if"; ;}
break;
case 362:
-#line 2092 "pir.y"
- { (yyval.sval) = "goto"; ;}
+#line 2094 "pir.y"
+ { (yyval.sval) = "unless"; ;}
break;
case 363:
-#line 2093 "pir.y"
- { (yyval.sval) = "int"; ;}
+#line 2095 "pir.y"
+ { (yyval.sval) = "goto"; ;}
break;
case 364:
-#line 2094 "pir.y"
- { (yyval.sval) = "num"; ;}
+#line 2096 "pir.y"
+ { (yyval.sval) = "int"; ;}
break;
case 365:
-#line 2095 "pir.y"
- { (yyval.sval) = "string"; ;}
+#line 2097 "pir.y"
+ { (yyval.sval) = "num"; ;}
break;
case 366:
-#line 2096 "pir.y"
- { (yyval.sval) = "pmc"; ;}
+#line 2098 "pir.y"
+ { (yyval.sval) = "string"; ;}
break;
case 367:
-#line 2097 "pir.y"
- { (yyval.sval) = "null"; ;}
+#line 2099 "pir.y"
+ { (yyval.sval) = "pmc"; ;}
break;
case 368:
#line 2100 "pir.y"
- { (yyval.sval) = "neg"; ;}
+ { (yyval.sval) = "null"; ;}
break;
case 369:
-#line 2101 "pir.y"
- { (yyval.sval) = "not"; ;}
+#line 2103 "pir.y"
+ { (yyval.sval) = "neg"; ;}
break;
case 370:
-#line 2102 "pir.y"
- { (yyval.sval) = "bnot"; ;}
+#line 2104 "pir.y"
+ { (yyval.sval) = "not"; ;}
break;
case 371:
#line 2105 "pir.y"
- { (yyval.ival) = OP_ADD; ;}
+ { (yyval.sval) = "bnot"; ;}
break;
case 372:
-#line 2106 "pir.y"
- { (yyval.ival) = OP_SUB; ;}
+#line 2108 "pir.y"
+ { (yyval.ival) = OP_ADD; ;}
break;
case 373:
-#line 2107 "pir.y"
- { (yyval.ival) = OP_DIV; ;}
+#line 2109 "pir.y"
+ { (yyval.ival) = OP_SUB; ;}
break;
case 374:
-#line 2108 "pir.y"
- { (yyval.ival) = OP_MUL; ;}
+#line 2110 "pir.y"
+ { (yyval.ival) = OP_DIV; ;}
break;
case 375:
-#line 2109 "pir.y"
- { (yyval.ival) = OP_MOD; ;}
+#line 2111 "pir.y"
+ { (yyval.ival) = OP_MUL; ;}
break;
case 376:
-#line 2110 "pir.y"
- { (yyval.ival) = OP_BOR; ;}
+#line 2112 "pir.y"
+ { (yyval.ival) = OP_MOD; ;}
break;
case 377:
-#line 2111 "pir.y"
- { (yyval.ival) = OP_BAND; ;}
+#line 2113 "pir.y"
+ { (yyval.ival) = OP_BOR; ;}
break;
case 378:
-#line 2112 "pir.y"
- { (yyval.ival) = OP_BXOR; ;}
+#line 2114 "pir.y"
+ { (yyval.ival) = OP_BAND; ;}
break;
case 379:
-#line 2113 "pir.y"
- { (yyval.ival) = OP_POW; ;}
+#line 2115 "pir.y"
+ { (yyval.ival) = OP_BXOR; ;}
break;
case 380:
-#line 2114 "pir.y"
- { (yyval.ival) = OP_CONCAT; ;}
+#line 2116 "pir.y"
+ { (yyval.ival) = OP_POW; ;}
break;
case 381:
-#line 2115 "pir.y"
- { (yyval.ival) = OP_LSR; ;}
+#line 2117 "pir.y"
+ { (yyval.ival) = OP_CONCAT; ;}
break;
case 382:
-#line 2116 "pir.y"
- { (yyval.ival) = OP_SHR; ;}
+#line 2118 "pir.y"
+ { (yyval.ival) = OP_LSR; ;}
break;
case 383:
-#line 2117 "pir.y"
- { (yyval.ival) = OP_SHL; ;}
+#line 2119 "pir.y"
+ { (yyval.ival) = OP_SHR; ;}
break;
case 384:
-#line 2118 "pir.y"
- { (yyval.ival) = OP_OR; ;}
+#line 2120 "pir.y"
+ { (yyval.ival) = OP_SHL; ;}
break;
case 385:
-#line 2119 "pir.y"
- { (yyval.ival) = OP_AND; ;}
+#line 2121 "pir.y"
+ { (yyval.ival) = OP_OR; ;}
break;
case 386:
-#line 2120 "pir.y"
- { (yyval.ival) = OP_FDIV; ;}
+#line 2122 "pir.y"
+ { (yyval.ival) = OP_AND; ;}
break;
case 387:
-#line 2121 "pir.y"
- { (yyval.ival) = OP_XOR; ;}
+#line 2123 "pir.y"
+ { (yyval.ival) = OP_FDIV; ;}
break;
case 388:
-#line 2122 "pir.y"
- { (yyval.ival) = OP_ISEQ; ;}
+#line 2124 "pir.y"
+ { (yyval.ival) = OP_XOR; ;}
break;
case 389:
-#line 2123 "pir.y"
- { (yyval.ival) = OP_ISLE; ;}
+#line 2125 "pir.y"
+ { (yyval.ival) = OP_ISEQ; ;}
break;
case 390:
-#line 2124 "pir.y"
- { (yyval.ival) = OP_ISLT; ;}
+#line 2126 "pir.y"
+ { (yyval.ival) = OP_ISLE; ;}
break;
case 391:
-#line 2125 "pir.y"
- { (yyval.ival) = OP_ISGE; ;}
+#line 2127 "pir.y"
+ { (yyval.ival) = OP_ISLT; ;}
break;
case 392:
-#line 2126 "pir.y"
- { (yyval.ival) = OP_ISGT; ;}
+#line 2128 "pir.y"
+ { (yyval.ival) = OP_ISGE; ;}
break;
case 393:
-#line 2127 "pir.y"
- { (yyval.ival) = OP_ISNE; ;}
+#line 2129 "pir.y"
+ { (yyval.ival) = OP_ISGT; ;}
break;
case 394:
-#line 2133 "pir.y"
- { (yyval.ival) = OP_MUL; ;}
+#line 2130 "pir.y"
+ { (yyval.ival) = OP_ISNE; ;}
break;
case 395:
-#line 2134 "pir.y"
- { (yyval.ival) = OP_MOD; ;}
+#line 2136 "pir.y"
+ { (yyval.ival) = OP_MUL; ;}
break;
case 396:
-#line 2135 "pir.y"
- { (yyval.ival) = OP_POW; ;}
+#line 2137 "pir.y"
+ { (yyval.ival) = OP_MOD; ;}
break;
case 397:
-#line 2136 "pir.y"
- { (yyval.ival) = OP_DIV; ;}
+#line 2138 "pir.y"
+ { (yyval.ival) = OP_POW; ;}
break;
case 398:
-#line 2137 "pir.y"
- { (yyval.ival) = OP_FDIV; ;}
+#line 2139 "pir.y"
+ { (yyval.ival) = OP_DIV; ;}
break;
case 399:
-#line 2138 "pir.y"
- { (yyval.ival) = OP_BOR; ;}
+#line 2140 "pir.y"
+ { (yyval.ival) = OP_FDIV; ;}
break;
case 400:
-#line 2139 "pir.y"
- { (yyval.ival) = OP_BAND; ;}
+#line 2141 "pir.y"
+ { (yyval.ival) = OP_BOR; ;}
break;
case 401:
-#line 2140 "pir.y"
- { (yyval.ival) = OP_BXOR; ;}
+#line 2142 "pir.y"
+ { (yyval.ival) = OP_BAND; ;}
break;
case 402:
-#line 2141 "pir.y"
- { (yyval.ival) = OP_CONCAT; ;}
+#line 2143 "pir.y"
+ { (yyval.ival) = OP_BXOR; ;}
break;
case 403:
-#line 2142 "pir.y"
- { (yyval.ival) = OP_SHR; ;}
+#line 2144 "pir.y"
+ { (yyval.ival) = OP_CONCAT; ;}
break;
case 404:
-#line 2143 "pir.y"
- { (yyval.ival) = OP_SHL; ;}
+#line 2145 "pir.y"
+ { (yyval.ival) = OP_SHR; ;}
break;
case 405:
-#line 2144 "pir.y"
+#line 2146 "pir.y"
+ { (yyval.ival) = OP_SHL; ;}
+ break;
+
+ case 406:
+#line 2147 "pir.y"
{ (yyval.ival) = OP_LSR; ;}
break;
- case 407:
-#line 2165 "pir.y"
+ case 408:
+#line 2168 "pir.y"
{ new_subr(lexer, "@start"); ;}
break;
- case 416:
-#line 2181 "pir.y"
+ case 417:
+#line 2184 "pir.y"
{ set_label(lexer, (yyvsp[(1) - (2)].sval)); ;}
break;
- case 421:
-#line 2191 "pir.y"
+ case 422:
+#line 2194 "pir.y"
{ set_sub_name(lexer, (yyvsp[(3) - (3)].sval)); ;}
break;
- case 422:
-#line 2195 "pir.y"
+ case 423:
+#line 2198 "pir.y"
{ new_subr(lexer, NULL); ;}
break;
- case 423:
-#line 2200 "pir.y"
+ case 424:
+#line 2203 "pir.y"
{
if (is_parrot_op(lexer, (yyvsp[(1) - (3)].sval)))
get_opinfo(lexer);
@@ -4729,7 +4738,7 @@
/* Line 1267 of yacc.c. */
-#line 4733 "pirparser.c"
+#line 4742 "pirparser.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -4943,7 +4952,7 @@
}
-#line 2211 "pir.y"
+#line 2214 "pir.y"
Modified: trunk/compilers/pirc/src/pirsymbol.c
==============================================================================
--- trunk/compilers/pirc/src/pirsymbol.c (original)
+++ trunk/compilers/pirc/src/pirsymbol.c Sun Jan 4 09:16:28 2009
@@ -51,6 +51,36 @@
#define NO_REG_ALLOCATED -1
+/* Conversion Look-Up Table (CLUT) for pir_type and value_type enums.
+ *
+ * Lookup table to convert value_type values into pir_type values.
+ * when indexing with a pir_type value, the value_type is returned;
+ * when looking up with a value_type, the corresponding
+ * pir_type value is returned. For both STRING_VAL and
+ * USTRING_VAL, STRING_TYPE is returned.
+ *
+ * Example input: INT_TYPE (value "0")
+ * output: INT_VAL (value "5")
+ *
+ * Example input: INT_VAL (value "5")
+ * output: INT_TYPE (value "0")
+ *
+ * When input is STRING_TYPE you'll only get STRING_VAL,
+ * never USTRING_VAL (indicating unicode string).
+ */
+static const int valuetype_pirtype_clut[10] = {
+ INT_VAL, /* INT_TYPE -> INT_VAL */
+ STRING_VAL, /* STRING_TYPE -> STRING_VAL */
+ PMC_VAL, /* PMC_TYPE -> PMC_VAL */
+ NUM_VAL, /* NUM_TYPE -> NUM_VAL */
+ UNKNOWN_TYPE, /* UNKNOWN_TYPE -> UNKNOWN_TYPE */
+ INT_TYPE, /* INT_VAL -> INT_TYPE */
+ STRING_TYPE, /* STRING_VAL -> STRING_TYPE */
+ PMC_TYPE, /* PMC_VAL -> PMC_TYPE */
+ NUM_TYPE, /* NUM_VAL -> NUM_TYPE */
+ STRING_TYPE /* USTRING_VAL -> STRING_TYPE */
+};
+
/*
=item C<static int
@@ -222,18 +252,20 @@
}
- if (b == NULL) { /* loop was broken because b == NULL, so it wasnt found; */
+ if (b == NULL) { /* loop was broken because b == NULL, so it wasn't found; */
b = new_bucket(lexer);
bucket_symbol(b) = iter;
store_bucket(table, b, hash);
iter->info.type = type;
+ fprintf(stderr, "declare_local(): [%s]\n", iter->info.id.name);
}
iter = iter->next;
}
-
}
+
+
/*
=item C<void
@@ -271,24 +303,7 @@
while (subiter != lexer->subs->next); /* iterate over all subs */
}
-/* Lookup table to convert value_type values into pir_type values.
- * when indexing with a pir_type value, the pir_type value itself
- * is returned; when looking up with a value_type, the corresponding
- * pir_type value is returned. For instance, for both STRING_VAL and
- * USTRING_VAL, STRING_TYPE is returned.
- */
-static const int convert_valuetype_to_pirtype[10] = {
- INT_TYPE,
- STRING_TYPE,
- PMC_TYPE,
- NUM_TYPE,
- UNKNOWN_TYPE,
- INT_TYPE, /* INT_VAL -> INT_TYPE */
- STRING_TYPE, /* STRING_VAL -> STRING_TYPE */
- PMC_TYPE, /* PMC_VAL -> PMC_TYPE */
- NUM_TYPE, /* NUM_VAL -> NUM_TYPE */
- STRING_TYPE /* USTRING_VAL -> STRING_TYPE */
-};
+
/*
@@ -341,12 +356,15 @@
/* it's not a symbol; try the constants */
c = find_global_constant(lexer, name);
if (c) {
- symbol *sym = new_symbol(lexer, name, convert_valuetype_to_pirtype[c->type]);
+ /* convert the constdecl->type (value_type) to a pir_type value */
+ symbol *sym = new_symbol(lexer, name, valuetype_pirtype_clut[c->type]);
/*
fprintf(stderr, "symbol type: %d ==> %d\n", c->type, convert_valuetype_to_pirtype[c->type]);
*/
+ /*
if (sym->info.color == NO_REG_ALLOCATED)
assign_vanilla_register(lexer, sym);
+ */
return sym;
}
@@ -622,7 +640,7 @@
bucket *b = new_bucket(lexer);
bucket_constant(b) = c;
store_bucket(table, b, hash);
- fprintf(stderr, "store global constant\n");
+ fprintf(stderr, "store global constant (%s)\n", c->name);
}
/*
-
[svn:parrot] r34926 - trunk/compilers/pirc/src
by kjs