summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-06-08 20:38:37 -0700
committerKaz Kylheku <kaz@kylheku.com>2021-06-08 20:38:37 -0700
commit3783930365c3e91aae780f4f8728f1a029012539 (patch)
tree7e45be134ae816114c5f41fb38c3f3faa1a79b16
parentf791ed11cf3a801990f26a0ed7c0455c05df59df (diff)
downloadtxr-3783930365c3e91aae780f4f8728f1a029012539.tar.gz
txr-3783930365c3e91aae780f4f8728f1a029012539.tar.bz2
txr-3783930365c3e91aae780f4f8728f1a029012539.zip
parser: new *read-unknown-structs* variable.
* parser.c (read_unknown_structs_s): New symbol variable. (parser_common_init): Initialize read_unknown_structs flag member of the parser structure from the new special variable. (parse_init): Initialize read_unknown_struct_s variable. Register the *read-unknown-structs* dynamic variable. * parser.h (struct parser): New member, read_unknown_structs. (read_unknown_structs_s): Declared. * parser.y (struct): Generate the struct literal syntax not only for quasiquoted structures, but for structures with an unknown type name, if the read_unkonwn_structs flag is set. * txr.1: Documented. * share/txr/stdlib/doc-syms.tl: Regenerated. * y.tab.c.shipped: Regenerated.
-rw-r--r--parser.c6
-rw-r--r--parser.h3
-rw-r--r--parser.y7
-rw-r--r--share/txr/stdlib/doc-syms.tl1
-rw-r--r--txr.119
-rw-r--r--y.tab.c.shipped557
6 files changed, 310 insertions, 283 deletions
diff --git a/parser.c b/parser.c
index 85b80202..ad7694e6 100644
--- a/parser.c
+++ b/parser.c
@@ -72,7 +72,7 @@
val parser_s, unique_s, circref_s;
val listener_hist_len_s, listener_multi_line_p_s, listener_sel_inclusive_p_s;
val listener_pprint_s, listener_greedy_eval_s;
-val rec_source_loc_s;
+val rec_source_loc_s, read_unknown_structs_s;
val json_s;
val intr_s;
static lino_t *lino_ctx;
@@ -120,6 +120,7 @@ void parser_common_init(parser_t *p)
int i;
yyscan_t yyscan;
val rec_source_loc_var = lookup_var(nil, rec_source_loc_s);
+ val read_unknown_structs_var = lookup_var(nil, read_unknown_structs_s);
p->parser = nil;
p->lineno = 1;
@@ -146,6 +147,7 @@ void parser_common_init(parser_t *p)
}
p->tok_idx = 0;
p->rec_source_loc = !nilp(cdr(rec_source_loc_var));
+ p->read_unknown_structs = !nilp(cdr(read_unknown_structs_var));
}
void parser_cleanup(parser_t *p)
@@ -1850,6 +1852,7 @@ void parse_init(void)
listener_pprint_s = intern(lit("*listener-pprint-p*"), user_package);
listener_greedy_eval_s = intern(lit("*listener-greedy-eval-p*"), user_package);
rec_source_loc_s = intern(lit("*rec-source-loc*"), user_package);
+ read_unknown_structs_s = intern(lit("*read-unknown-structs*"), user_package);
json_s = intern(lit("json"), user_package);
unique_s = gensym(nil);
protect(&stream_parser_hash, &unique_s, &catch_all, convert(val *, 0));
@@ -1863,6 +1866,7 @@ void parse_init(void)
reg_var(listener_pprint_s, nil);
reg_var(listener_greedy_eval_s, nil);
reg_var(rec_source_loc_s, nil);
+ reg_var(read_unknown_structs_s, nil);
reg_fun(circref_s, func_n1(circref));
reg_fun(intern(lit("parse-errors"), user_package), func_n1(parse_errors));
reg_fun(intern(lit("repl"), system_package), func_n4(repl));
diff --git a/parser.h b/parser.h
index a8a64b97..53bfa5ad 100644
--- a/parser.h
+++ b/parser.h
@@ -65,6 +65,7 @@ struct parser {
struct yy_token tok_pushback[4];
int tok_idx;
int rec_source_loc;
+ int read_unknown_structs;
};
#endif
@@ -74,7 +75,7 @@ extern const int have_yydebug;
extern const wchar_t *spec_file;
extern val form_to_ln_hash;
extern val parser_s, unique_s, circref_s;
-extern val rec_source_loc_s;
+extern val rec_source_loc_s, read_unknown_structs_s;
extern val json_s;
void yydebug_onoff(int);
void yyerror(scanner_t *scanner, parser_t *, const char *s);
diff --git a/parser.y b/parser.y
index bdc72010..d7c31c8b 100644
--- a/parser.y
+++ b/parser.y
@@ -903,9 +903,10 @@ hash : HASH_H list { if (parser->quasi_level > 0 && unquotes_occur(
yybadtok(yychar, lit("hash literal")); }
;
-struct : HASH_S list { if (parser->quasi_level > 0 && unquotes_occur($2, 0))
- $$ = rl(cons(struct_lit_s, $2),
- num($1));
+struct : HASH_S list { if ((parser->quasi_level > 0 && unquotes_occur($2, 0)) ||
+ (parser->read_unknown_structs &&
+ !find_struct_type(first($2))))
+ { $$ = rl(cons(struct_lit_s, $2), num($1)); }
else
{ val strct = make_struct_lit(first($2),
rest($2));
diff --git a/share/txr/stdlib/doc-syms.tl b/share/txr/stdlib/doc-syms.tl
index 7c065945..fef65fc6 100644
--- a/share/txr/stdlib/doc-syms.tl
+++ b/share/txr/stdlib/doc-syms.tl
@@ -44,6 +44,7 @@
("*r" "N-03A7AE5A")
("*random-state*" "N-033875AD")
("*random-warmup*" "N-010348CD")
+ ("*read-unknown-structs*" "N-0174F337")
("*rec-source-loc*" "N-014AFEA9")
("*stddebug*" "N-006566FB")
("*stderr*" "N-006566FB")
diff --git a/txr.1 b/txr.1
index dcbc568b..f34c1b06 100644
--- a/txr.1
+++ b/txr.1
@@ -54351,6 +54351,25 @@ circle notation label. The "ordinary structure that is reachable from the
slots" denotes structure that is directly reachable by traversing conses,
ranges, vectors, hashes and struct slots: all printable aggregate objects.
+.coNP Special variable @ *read-unknown-structs*
+.desc
+The
+.code *read-unknown-structs*
+variable controls the behavior of the parser upon encountering
+structure literal
+.code #S
+syntax which specifies an unknown structure type.
+
+If this variable's value is
+.code nil
+then such a literal is erroneous; an exception is thrown. Otherwise, such
+a structure is converted not into a structure object, which is impossible,
+but into a list object whose first element is the symbol
+.codn sys:struct-lit .
+The remaining elements are taken from the
+.code #S
+syntax.
+
.coNP Function @ format
.synb
.mets (format < stream-designator < format-string << format-arg *)
diff --git a/y.tab.c.shipped b/y.tab.c.shipped
index 0babc8e1..59ad07a0 100644
--- a/y.tab.c.shipped
+++ b/y.tab.c.shipped
@@ -851,32 +851,32 @@ static const yytype_uint16 yyrline[] =
779, 780, 782, 785, 788, 792, 795, 798, 806, 809,
815, 821, 828, 829, 830, 831, 832, 833, 837, 842,
845, 849, 852, 853, 855, 857, 860, 865, 874, 879,
- 882, 887, 892, 896, 902, 906, 913, 917, 921, 925,
- 930, 934, 947, 951, 953, 953, 957, 958, 959, 960,
- 962, 963, 968, 969, 974, 974, 979, 979, 984, 984,
- 987, 988, 990, 992, 996, 1000, 1009, 1011, 1015, 1022,
- 1033, 1034, 1036, 1039, 1043, 1047, 1048, 1054, 1055, 1056,
- 1057, 1061, 1066, 1070, 1075, 1079, 1083, 1084, 1085, 1089,
- 1090, 1091, 1094, 1097, 1098, 1101, 1103, 1108, 1111, 1111,
- 1115, 1115, 1119, 1119, 1122, 1122, 1125, 1128, 1130, 1134,
- 1136, 1142, 1143, 1145, 1146, 1147, 1148, 1149, 1150, 1151,
- 1152, 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161,
- 1163, 1163, 1167, 1167, 1171, 1171, 1175, 1175, 1178, 1181,
- 1182, 1184, 1185, 1187, 1188, 1189, 1190, 1191, 1192, 1193,
- 1194, 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203,
- 1205, 1205, 1209, 1209, 1213, 1213, 1217, 1220, 1226, 1230,
- 1236, 1237, 1240, 1241, 1242, 1242, 1245, 1248, 1249, 1252,
- 1253, 1254, 1257, 1260, 1265, 1269, 1275, 1278, 1279, 1280,
- 1281, 1284, 1285, 1286, 1289, 1290, 1291, 1292, 1293, 1300,
- 1301, 1303, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1314,
- 1315, 1318, 1319, 1320, 1323, 1325, 1326, 1327, 1328, 1329,
- 1330, 1331, 1332, 1333, 1334, 1335, 1336, 1339, 1353, 1354,
- 1358, 1359, 1361, 1365, 1378, 1380, 1384, 1389, 1390, 1393,
- 1397, 1399, 1403, 1404, 1405, 1407, 1414, 1415, 1417, 1418,
- 1421, 1422, 1423, 1424, 1427, 1428, 1429, 1431, 1435, 1436,
- 1437, 1439, 1445, 1447, 1450, 1455, 1457, 1461, 1462, 1469,
- 1470, 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1480,
- 1482, 1484, 1486, 1488, 1490, 1492, 1497
+ 882, 887, 892, 896, 902, 906, 914, 918, 922, 926,
+ 931, 935, 948, 952, 954, 954, 958, 959, 960, 961,
+ 963, 964, 969, 970, 975, 975, 980, 980, 985, 985,
+ 988, 989, 991, 993, 997, 1001, 1010, 1012, 1016, 1023,
+ 1034, 1035, 1037, 1040, 1044, 1048, 1049, 1055, 1056, 1057,
+ 1058, 1062, 1067, 1071, 1076, 1080, 1084, 1085, 1086, 1090,
+ 1091, 1092, 1095, 1098, 1099, 1102, 1104, 1109, 1112, 1112,
+ 1116, 1116, 1120, 1120, 1123, 1123, 1126, 1129, 1131, 1135,
+ 1137, 1143, 1144, 1146, 1147, 1148, 1149, 1150, 1151, 1152,
+ 1153, 1154, 1155, 1156, 1157, 1158, 1159, 1160, 1161, 1162,
+ 1164, 1164, 1168, 1168, 1172, 1172, 1176, 1176, 1179, 1182,
+ 1183, 1185, 1186, 1188, 1189, 1190, 1191, 1192, 1193, 1194,
+ 1195, 1196, 1197, 1198, 1199, 1200, 1201, 1202, 1203, 1204,
+ 1206, 1206, 1210, 1210, 1214, 1214, 1218, 1221, 1227, 1231,
+ 1237, 1238, 1241, 1242, 1243, 1243, 1246, 1249, 1250, 1253,
+ 1254, 1255, 1258, 1261, 1266, 1270, 1276, 1279, 1280, 1281,
+ 1282, 1285, 1286, 1287, 1290, 1291, 1292, 1293, 1294, 1301,
+ 1302, 1304, 1305, 1306, 1307, 1308, 1309, 1310, 1311, 1315,
+ 1316, 1319, 1320, 1321, 1324, 1326, 1327, 1328, 1329, 1330,
+ 1331, 1332, 1333, 1334, 1335, 1336, 1337, 1340, 1354, 1355,
+ 1359, 1360, 1362, 1366, 1379, 1381, 1385, 1390, 1391, 1394,
+ 1398, 1400, 1404, 1405, 1406, 1408, 1415, 1416, 1418, 1419,
+ 1422, 1423, 1424, 1425, 1428, 1429, 1430, 1432, 1436, 1437,
+ 1438, 1440, 1446, 1448, 1451, 1456, 1458, 1462, 1463, 1470,
+ 1471, 1472, 1473, 1474, 1475, 1476, 1477, 1478, 1479, 1481,
+ 1483, 1485, 1487, 1489, 1491, 1493, 1498
};
#endif
@@ -4987,9 +4987,10 @@ yyreduce:
/* Line 1806 of yacc.c */
#line 906 "parser.y"
- { if (parser->quasi_level > 0 && unquotes_occur((yyvsp[(2) - (2)].val), 0))
- (yyval.val) = rl(cons(struct_lit_s, (yyvsp[(2) - (2)].val)),
- num((yyvsp[(1) - (2)].lineno)));
+ { if ((parser->quasi_level > 0 && unquotes_occur((yyvsp[(2) - (2)].val), 0)) ||
+ (parser->read_unknown_structs &&
+ !find_struct_type(first((yyvsp[(2) - (2)].val)))))
+ { (yyval.val) = rl(cons(struct_lit_s, (yyvsp[(2) - (2)].val)), num((yyvsp[(1) - (2)].lineno))); }
else
{ val strct = make_struct_lit(first((yyvsp[(2) - (2)].val)),
rest((yyvsp[(2) - (2)].val)));
@@ -4999,7 +5000,7 @@ yyreduce:
case 216:
/* Line 1806 of yacc.c */
-#line 913 "parser.y"
+#line 914 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("struct literal")); }
break;
@@ -5007,7 +5008,7 @@ yyreduce:
case 217:
/* Line 1806 of yacc.c */
-#line 917 "parser.y"
+#line 918 "parser.y"
{ if (length((yyvsp[(2) - (2)].val)) != two)
yyerr("range literal needs two elements");
{ val range = rcons(first((yyvsp[(2) - (2)].val)), second((yyvsp[(2) - (2)].val)));
@@ -5017,7 +5018,7 @@ yyreduce:
case 218:
/* Line 1806 of yacc.c */
-#line 921 "parser.y"
+#line 922 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("range literal")); }
break;
@@ -5025,7 +5026,7 @@ yyreduce:
case 219:
/* Line 1806 of yacc.c */
-#line 925 "parser.y"
+#line 926 "parser.y"
{ if (gt(length((yyvsp[(2) - (2)].val)), three))
yyerr("excess elements in tree node");
{ val tn = tnode(first((yyvsp[(2) - (2)].val)), second((yyvsp[(2) - (2)].val)),
@@ -5036,7 +5037,7 @@ yyreduce:
case 220:
/* Line 1806 of yacc.c */
-#line 930 "parser.y"
+#line 931 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("tree node literal")); }
break;
@@ -5044,7 +5045,7 @@ yyreduce:
case 221:
/* Line 1806 of yacc.c */
-#line 934 "parser.y"
+#line 935 "parser.y"
{ if (parser->quasi_level > 0 && unquotes_occur((yyvsp[(2) - (2)].val), 0))
(yyval.val) = rl(cons(tree_lit_s, (yyvsp[(2) - (2)].val)), num((yyvsp[(1) - (2)].lineno)));
else
@@ -5063,7 +5064,7 @@ yyreduce:
case 222:
/* Line 1806 of yacc.c */
-#line 947 "parser.y"
+#line 948 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("tree node literal")); }
break;
@@ -5071,7 +5072,7 @@ yyreduce:
case 223:
/* Line 1806 of yacc.c */
-#line 951 "parser.y"
+#line 952 "parser.y"
{ (yyval.val) = list(json_s, quote_s, (yyvsp[(2) - (2)].val), nao);
end_of_json(scnr); }
break;
@@ -5079,14 +5080,14 @@ yyreduce:
case 224:
/* Line 1806 of yacc.c */
-#line 953 "parser.y"
+#line 954 "parser.y"
{ parser->quasi_level++; }
break;
case 225:
/* Line 1806 of yacc.c */
-#line 954 "parser.y"
+#line 955 "parser.y"
{ parser->quasi_level--;
end_of_json(scnr);
(yyval.val) = list(json_s, sys_qquote_s, (yyvsp[(4) - (4)].val), nao); }
@@ -5095,28 +5096,28 @@ yyreduce:
case 226:
/* Line 1806 of yacc.c */
-#line 957 "parser.y"
+#line 958 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 227:
/* Line 1806 of yacc.c */
-#line 958 "parser.y"
+#line 959 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 228:
/* Line 1806 of yacc.c */
-#line 959 "parser.y"
+#line 960 "parser.y"
{ (yyval.val) = null_string; }
break;
case 229:
/* Line 1806 of yacc.c */
-#line 960 "parser.y"
+#line 961 "parser.y"
{ (yyval.val) = (yyvsp[(2) - (3)].val);
rl((yyval.val), num(parser->lineno)); }
break;
@@ -5124,14 +5125,14 @@ yyreduce:
case 230:
/* Line 1806 of yacc.c */
-#line 962 "parser.y"
+#line 963 "parser.y"
{ (yyval.val) = vector(zero, nil); }
break;
case 231:
/* Line 1806 of yacc.c */
-#line 963 "parser.y"
+#line 964 "parser.y"
{ (yyval.val) = if3(vectorp((yyvsp[(2) - (3)].val)),
(yyvsp[(2) - (3)].val),
rl(cons(vector_lit_s,
@@ -5142,14 +5143,14 @@ yyreduce:
case 232:
/* Line 1806 of yacc.c */
-#line 968 "parser.y"
+#line 969 "parser.y"
{ (yyval.val) = make_hash(nil, nil, t); }
break;
case 233:
/* Line 1806 of yacc.c */
-#line 969 "parser.y"
+#line 970 "parser.y"
{ (yyval.val) = if3(hashp((yyvsp[(2) - (3)].val)),
(yyvsp[(2) - (3)].val),
rl(cons(hash_lit_s,
@@ -5160,14 +5161,14 @@ yyreduce:
case 234:
/* Line 1806 of yacc.c */
-#line 974 "parser.y"
+#line 975 "parser.y"
{ parser->quasi_level--; }
break;
case 235:
/* Line 1806 of yacc.c */
-#line 975 "parser.y"
+#line 976 "parser.y"
{ parser->quasi_level++;
end_of_json_unquote(scnr);
(yyval.val) = rl(rlc(list(sys_unquote_s, (yyvsp[(3) - (3)].val), nao), (yyvsp[(3) - (3)].val)),
@@ -5177,14 +5178,14 @@ yyreduce:
case 236:
/* Line 1806 of yacc.c */
-#line 979 "parser.y"
+#line 980 "parser.y"
{ parser->quasi_level--; }
break;
case 237:
/* Line 1806 of yacc.c */
-#line 980 "parser.y"
+#line 981 "parser.y"
{ parser->quasi_level++;
end_of_json_unquote(scnr);
(yyval.val) = rl(rlc(list(sys_splice_s, (yyvsp[(3) - (3)].val), nao), (yyvsp[(3) - (3)].val)),
@@ -5194,14 +5195,14 @@ yyreduce:
case 238:
/* Line 1806 of yacc.c */
-#line 984 "parser.y"
+#line 985 "parser.y"
{ parser_circ_def(parser, (yyvsp[(1) - (1)].val), unique_s); }
break;
case 239:
/* Line 1806 of yacc.c */
-#line 985 "parser.y"
+#line 986 "parser.y"
{ parser_circ_def(parser, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val));
(yyval.val) = (yyvsp[(3) - (3)].val); }
break;
@@ -5209,14 +5210,14 @@ yyreduce:
case 240:
/* Line 1806 of yacc.c */
-#line 987 "parser.y"
+#line 988 "parser.y"
{ (yyval.val) = parser_circ_ref(parser, (yyvsp[(1) - (1)].val)); }
break;
case 241:
/* Line 1806 of yacc.c */
-#line 988 "parser.y"
+#line 989 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("JSON string")); }
break;
@@ -5224,7 +5225,7 @@ yyreduce:
case 242:
/* Line 1806 of yacc.c */
-#line 990 "parser.y"
+#line 991 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("JSON array")); }
break;
@@ -5232,7 +5233,7 @@ yyreduce:
case 243:
/* Line 1806 of yacc.c */
-#line 992 "parser.y"
+#line 993 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("JSON hash")); }
break;
@@ -5240,7 +5241,7 @@ yyreduce:
case 244:
/* Line 1806 of yacc.c */
-#line 996 "parser.y"
+#line 997 "parser.y"
{ (yyval.val) = if3(parser->quasi_level > 0 &&
unquotes_occur((yyvsp[(1) - (1)].val), 0),
cons((yyvsp[(1) - (1)].val), nil),
@@ -5250,7 +5251,7 @@ yyreduce:
case 245:
/* Line 1806 of yacc.c */
-#line 1000 "parser.y"
+#line 1001 "parser.y"
{ if (consp((yyvsp[(1) - (3)].val)))
{ (yyval.val) = cons((yyvsp[(3) - (3)].val), (yyvsp[(1) - (3)].val)); }
else if (parser->quasi_level > 0 &&
@@ -5265,7 +5266,7 @@ yyreduce:
case 246:
/* Line 1806 of yacc.c */
-#line 1009 "parser.y"
+#line 1010 "parser.y"
{ yyerr("missing comma in JSON array");
(yyval.val) = (yyvsp[(1) - (2)].val); }
break;
@@ -5273,7 +5274,7 @@ yyreduce:
case 247:
/* Line 1806 of yacc.c */
-#line 1011 "parser.y"
+#line 1012 "parser.y"
{ yybadtok(yychar, lit("JSON array"));
(yyval.val) = (yyvsp[(1) - (2)].val); }
break;
@@ -5281,7 +5282,7 @@ yyreduce:
case 248:
/* Line 1806 of yacc.c */
-#line 1015 "parser.y"
+#line 1016 "parser.y"
{ if (parser->quasi_level > 0 &&
(unquotes_occur((yyvsp[(1) - (3)].val), 0) ||
unquotes_occur((yyvsp[(3) - (3)].val), 0)))
@@ -5294,7 +5295,7 @@ yyreduce:
case 249:
/* Line 1806 of yacc.c */
-#line 1023 "parser.y"
+#line 1024 "parser.y"
{ if (consp((yyvsp[(1) - (5)].val)))
{ (yyval.val) = cons(list((yyvsp[(3) - (5)].val), (yyvsp[(5) - (5)].val), nao), (yyvsp[(1) - (5)].val)); }
else if (parser->quasi_level > 0 &&
@@ -5310,28 +5311,28 @@ yyreduce:
case 250:
/* Line 1806 of yacc.c */
-#line 1033 "parser.y"
+#line 1034 "parser.y"
{ yyerr("missing colon in JSON hash"); }
break;
case 251:
/* Line 1806 of yacc.c */
-#line 1035 "parser.y"
+#line 1036 "parser.y"
{ yyerr("missing comma in JSON hash"); }
break;
case 252:
/* Line 1806 of yacc.c */
-#line 1036 "parser.y"
+#line 1037 "parser.y"
{ yybadtok(yychar, lit("JSON hash")); }
break;
case 253:
/* Line 1806 of yacc.c */
-#line 1039 "parser.y"
+#line 1040 "parser.y"
{ if ((yyvsp[(1) - (1)].lexeme)[0] == ':' && (yyvsp[(1) - (1)].lexeme)[1] == 0)
{ (yyval.val) = nil; }
else
@@ -5341,21 +5342,21 @@ yyreduce:
case 254:
/* Line 1806 of yacc.c */
-#line 1043 "parser.y"
+#line 1044 "parser.y"
{ (yyval.val) = nil; }
break;
case 255:
/* Line 1806 of yacc.c */
-#line 1047 "parser.y"
+#line 1048 "parser.y"
{ (yyval.val) = rl((yyvsp[(2) - (3)].val), num((yyvsp[(1) - (3)].lineno))); }
break;
case 256:
/* Line 1806 of yacc.c */
-#line 1048 "parser.y"
+#line 1049 "parser.y"
{ val a = car((yyvsp[(3) - (4)].val));
val ur = uref_helper(parser, a);
if (ur == a)
@@ -5367,28 +5368,28 @@ yyreduce:
case 257:
/* Line 1806 of yacc.c */
-#line 1054 "parser.y"
+#line 1055 "parser.y"
{ (yyval.val) = nil; }
break;
case 258:
/* Line 1806 of yacc.c */
-#line 1055 "parser.y"
+#line 1056 "parser.y"
{ (yyval.val) = (yyvsp[(3) - (4)].val); }
break;
case 259:
/* Line 1806 of yacc.c */
-#line 1056 "parser.y"
+#line 1057 "parser.y"
{ (yyval.val) = (yyvsp[(3) - (4)].val); }
break;
case 260:
/* Line 1806 of yacc.c */
-#line 1057 "parser.y"
+#line 1058 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("expression")); }
break;
@@ -5396,7 +5397,7 @@ yyreduce:
case 261:
/* Line 1806 of yacc.c */
-#line 1061 "parser.y"
+#line 1062 "parser.y"
{ if (consp((yyvsp[(2) - (2)].val)))
(yyval.val) = rl(cons(expr_s, cons((yyvsp[(2) - (2)].val), nil)), num((yyvsp[(1) - (2)].lineno)));
else
@@ -5407,7 +5408,7 @@ yyreduce:
case 262:
/* Line 1806 of yacc.c */
-#line 1066 "parser.y"
+#line 1067 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("meta expression")); }
break;
@@ -5415,7 +5416,7 @@ yyreduce:
case 263:
/* Line 1806 of yacc.c */
-#line 1070 "parser.y"
+#line 1071 "parser.y"
{ if (consp((yyvsp[(2) - (2)].val)))
(yyval.val) = rl(cons(expr_s, cons((yyvsp[(2) - (2)].val), nil)), num((yyvsp[(1) - (2)].chr)));
else
@@ -5426,7 +5427,7 @@ yyreduce:
case 264:
/* Line 1806 of yacc.c */
-#line 1075 "parser.y"
+#line 1076 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("meta expression")); }
break;
@@ -5434,7 +5435,7 @@ yyreduce:
case 265:
/* Line 1806 of yacc.c */
-#line 1079 "parser.y"
+#line 1080 "parser.y"
{ val a = car((yyvsp[(3) - (4)].val));
val ur = uref_helper(parser, a);
(yyval.val) = rlcp_tree(cons(dwim_s,
@@ -5444,21 +5445,21 @@ yyreduce:
case 266:
/* Line 1806 of yacc.c */
-#line 1083 "parser.y"
+#line 1084 "parser.y"
{ (yyval.val) = rl(cons(dwim_s, (yyvsp[(2) - (3)].val)), num((yyvsp[(1) - (3)].lineno))); }
break;
case 267:
/* Line 1806 of yacc.c */
-#line 1084 "parser.y"
+#line 1085 "parser.y"
{ (yyval.val) = rl(cons(dwim_s, nil), num((yyvsp[(1) - (2)].lineno))); }
break;
case 268:
/* Line 1806 of yacc.c */
-#line 1085 "parser.y"
+#line 1086 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("DWIM expression")); }
break;
@@ -5466,28 +5467,28 @@ yyreduce:
case 272:
/* Line 1806 of yacc.c */
-#line 1094 "parser.y"
+#line 1095 "parser.y"
{ (yyval.val) = rlc(expand_meta((yyvsp[(1) - (1)].val), nil), (yyvsp[(1) - (1)].val)); }
break;
case 273:
/* Line 1806 of yacc.c */
-#line 1097 "parser.y"
+#line 1098 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 274:
/* Line 1806 of yacc.c */
-#line 1098 "parser.y"
+#line 1099 "parser.y"
{ (yyval.val) = nil; }
break;
case 275:
/* Line 1806 of yacc.c */
-#line 1101 "parser.y"
+#line 1102 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val)->c.cdr;
(yyvsp[(1) - (1)].val)->c.cdr = nil; }
break;
@@ -5495,7 +5496,7 @@ yyreduce:
case 276:
/* Line 1806 of yacc.c */
-#line 1104 "parser.y"
+#line 1105 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (3)].val)->c.cdr;
(yyvsp[(1) - (3)].val)->c.cdr = (yyvsp[(3) - (3)].val); }
break;
@@ -5503,7 +5504,7 @@ yyreduce:
case 277:
/* Line 1806 of yacc.c */
-#line 1108 "parser.y"
+#line 1109 "parser.y"
{ (yyval.val) = cons((yyvsp[(1) - (1)].val), nil);
rlc((yyval.val), (yyvsp[(1) - (1)].val));
(yyval.val)->c.cdr = (yyval.val); }
@@ -5512,14 +5513,14 @@ yyreduce:
case 278:
/* Line 1806 of yacc.c */
-#line 1111 "parser.y"
+#line 1112 "parser.y"
{ parser->ignore = 1; }
break;
case 279:
/* Line 1806 of yacc.c */
-#line 1112 "parser.y"
+#line 1113 "parser.y"
{ parser->ignore = 0;
(yyval.val) = cons(nil, nil);
(yyval.val)->c.cdr = (yyval.val); }
@@ -5528,14 +5529,14 @@ yyreduce:
case 280:
/* Line 1806 of yacc.c */
-#line 1115 "parser.y"
+#line 1116 "parser.y"
{ parser->ignore = 1; }
break;
case 281:
/* Line 1806 of yacc.c */
-#line 1116 "parser.y"
+#line 1117 "parser.y"
{ parser->ignore = 0;
(yyval.val) = cons(nil, nil);
(yyval.val)->c.cdr = (yyval.val); }
@@ -5544,14 +5545,14 @@ yyreduce:
case 282:
/* Line 1806 of yacc.c */
-#line 1119 "parser.y"
+#line 1120 "parser.y"
{ parser->ignore = 1; }
break;
case 283:
/* Line 1806 of yacc.c */
-#line 1120 "parser.y"
+#line 1121 "parser.y"
{ parser->ignore = 0;
(yyval.val) = (yyvsp[(1) - (4)].val); }
break;
@@ -5559,14 +5560,14 @@ yyreduce:
case 284:
/* Line 1806 of yacc.c */
-#line 1122 "parser.y"
+#line 1123 "parser.y"
{ parser->ignore = 1; }
break;
case 285:
/* Line 1806 of yacc.c */
-#line 1123 "parser.y"
+#line 1124 "parser.y"
{ parser->ignore = 0;
(yyval.val) = (yyvsp[(1) - (5)].val); }
break;
@@ -5574,7 +5575,7 @@ yyreduce:
case 286:
/* Line 1806 of yacc.c */
-#line 1125 "parser.y"
+#line 1126 "parser.y"
{ uses_or2;
(yyval.val) = rlc(cons((yyvsp[(2) - (2)].val), (yyvsp[(1) - (2)].val)->c.cdr), or2((yyvsp[(2) - (2)].val), (yyvsp[(1) - (2)].val)->c.cdr));
(yyvsp[(1) - (2)].val)->c.cdr = (yyval.val); }
@@ -5583,7 +5584,7 @@ yyreduce:
case 287:
/* Line 1806 of yacc.c */
-#line 1128 "parser.y"
+#line 1129 "parser.y"
{ (yyval.val) = lastcons(rl((yyvsp[(2) - (2)].val), num((yyvsp[(1) - (2)].lineno))));
(yyval.val)->c.cdr = (yyvsp[(2) - (2)].val); }
break;
@@ -5591,7 +5592,7 @@ yyreduce:
case 288:
/* Line 1806 of yacc.c */
-#line 1131 "parser.y"
+#line 1132 "parser.y"
{ (yyval.val) = lastcons(rl((yyvsp[(3) - (3)].val), num((yyvsp[(2) - (3)].lineno))));
(yyval.val)->c.cdr = (yyvsp[(1) - (3)].val)->c.cdr;
(yyvsp[(1) - (3)].val)->c.cdr = (yyvsp[(3) - (3)].val); }
@@ -5600,7 +5601,7 @@ yyreduce:
case 289:
/* Line 1806 of yacc.c */
-#line 1134 "parser.y"
+#line 1135 "parser.y"
{ (yyval.val) = lastcons(rl((yyvsp[(2) - (2)].val), num((yyvsp[(1) - (2)].lineno))));
(yyval.val)->c.cdr = (yyvsp[(2) - (2)].val); }
break;
@@ -5608,7 +5609,7 @@ yyreduce:
case 290:
/* Line 1806 of yacc.c */
-#line 1137 "parser.y"
+#line 1138 "parser.y"
{ (yyval.val) = lastcons(rl((yyvsp[(3) - (3)].val), num((yyvsp[(2) - (3)].lineno))));
(yyval.val)->c.cdr = (yyvsp[(1) - (3)].val)->c.cdr;
(yyvsp[(1) - (3)].val)->c.cdr = (yyvsp[(3) - (3)].val); }
@@ -5617,14 +5618,14 @@ yyreduce:
case 291:
/* Line 1806 of yacc.c */
-#line 1142 "parser.y"
+#line 1143 "parser.y"
{ (yyval.val) = ifnign(symhlpr((yyvsp[(1) - (1)].lexeme), t)); }
break;
case 292:
/* Line 1806 of yacc.c */
-#line 1143 "parser.y"
+#line 1144 "parser.y"
{ (yyval.val) = cons(var_s, cons((yyvsp[(1) - (1)].val), nil));
rl((yyval.val), num(parser->lineno)); }
break;
@@ -5632,119 +5633,119 @@ yyreduce:
case 293:
/* Line 1806 of yacc.c */
-#line 1145 "parser.y"
+#line 1146 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 294:
/* Line 1806 of yacc.c */
-#line 1146 "parser.y"
+#line 1147 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 295:
/* Line 1806 of yacc.c */
-#line 1147 "parser.y"
+#line 1148 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 296:
/* Line 1806 of yacc.c */
-#line 1148 "parser.y"
+#line 1149 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 297:
/* Line 1806 of yacc.c */
-#line 1149 "parser.y"
+#line 1150 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 298:
/* Line 1806 of yacc.c */
-#line 1150 "parser.y"
+#line 1151 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 299:
/* Line 1806 of yacc.c */
-#line 1151 "parser.y"
+#line 1152 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 300:
/* Line 1806 of yacc.c */
-#line 1152 "parser.y"
+#line 1153 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 301:
/* Line 1806 of yacc.c */
-#line 1153 "parser.y"
+#line 1154 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 302:
/* Line 1806 of yacc.c */
-#line 1154 "parser.y"
+#line 1155 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 303:
/* Line 1806 of yacc.c */
-#line 1155 "parser.y"
+#line 1156 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 304:
/* Line 1806 of yacc.c */
-#line 1156 "parser.y"
+#line 1157 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 305:
/* Line 1806 of yacc.c */
-#line 1157 "parser.y"
+#line 1158 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 306:
/* Line 1806 of yacc.c */
-#line 1158 "parser.y"
+#line 1159 "parser.y"
{ (yyval.val) = rl((yyvsp[(2) - (2)].val), num((yyvsp[(1) - (2)].lineno))); }
break;
case 307:
/* Line 1806 of yacc.c */
-#line 1159 "parser.y"
+#line 1160 "parser.y"
{ (yyval.val) = rl(cons(quasilist_s, (yyvsp[(2) - (2)].val)), num((yyvsp[(1) - (2)].lineno))); }
break;
case 308:
/* Line 1806 of yacc.c */
-#line 1160 "parser.y"
+#line 1161 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 309:
/* Line 1806 of yacc.c */
-#line 1161 "parser.y"
+#line 1162 "parser.y"
{ (yyval.val) = rl(rlc(list(quote_s, (yyvsp[(2) - (2)].val), nao), (yyvsp[(2) - (2)].val)),
num(parser->lineno)); }
break;
@@ -5752,14 +5753,14 @@ yyreduce:
case 310:
/* Line 1806 of yacc.c */
-#line 1163 "parser.y"
+#line 1164 "parser.y"
{ parser->quasi_level++; }
break;
case 311:
/* Line 1806 of yacc.c */
-#line 1164 "parser.y"
+#line 1165 "parser.y"
{ parser->quasi_level--;
(yyval.val) = rl(rlc(list(sys_qquote_s, (yyvsp[(3) - (3)].val), nao), (yyvsp[(3) - (3)].val)),
num(parser->lineno)); }
@@ -5768,14 +5769,14 @@ yyreduce:
case 312:
/* Line 1806 of yacc.c */
-#line 1167 "parser.y"
+#line 1168 "parser.y"
{ parser->quasi_level--; }
break;
case 313:
/* Line 1806 of yacc.c */
-#line 1168 "parser.y"
+#line 1169 "parser.y"
{ parser->quasi_level++;
(yyval.val) = rl(rlc(list(sys_unquote_s, (yyvsp[(3) - (3)].val), nao), (yyvsp[(3) - (3)].val)),
num(parser->lineno)); }
@@ -5784,14 +5785,14 @@ yyreduce:
case 314:
/* Line 1806 of yacc.c */
-#line 1171 "parser.y"
+#line 1172 "parser.y"
{ parser->quasi_level--; }
break;
case 315:
/* Line 1806 of yacc.c */
-#line 1172 "parser.y"
+#line 1173 "parser.y"
{ parser->quasi_level++;
(yyval.val) = rl(rlc(list(sys_splice_s, (yyvsp[(3) - (3)].val), nao), (yyvsp[(3) - (3)].val)),
num(parser->lineno)); }
@@ -5800,14 +5801,14 @@ yyreduce:
case 316:
/* Line 1806 of yacc.c */
-#line 1175 "parser.y"
+#line 1176 "parser.y"
{ parser_circ_def(parser, (yyvsp[(1) - (1)].val), unique_s); }
break;
case 317:
/* Line 1806 of yacc.c */
-#line 1176 "parser.y"
+#line 1177 "parser.y"
{ parser_circ_def(parser, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val));
(yyval.val) = (yyvsp[(3) - (3)].val); }
break;
@@ -5815,35 +5816,35 @@ yyreduce:
case 318:
/* Line 1806 of yacc.c */
-#line 1178 "parser.y"
+#line 1179 "parser.y"
{ (yyval.val) = parser_circ_ref(parser, (yyvsp[(1) - (1)].val)); }
break;
case 319:
/* Line 1806 of yacc.c */
-#line 1181 "parser.y"
+#line 1182 "parser.y"
{ (yyval.val) = uref_helper(parser, (yyvsp[(2) - (2)].val)); }
break;
case 320:
/* Line 1806 of yacc.c */
-#line 1182 "parser.y"
+#line 1183 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 321:
/* Line 1806 of yacc.c */
-#line 1184 "parser.y"
+#line 1185 "parser.y"
{ (yyval.val) = ifnign(symhlpr((yyvsp[(1) - (1)].lexeme), t)); }
break;
case 322:
/* Line 1806 of yacc.c */
-#line 1185 "parser.y"
+#line 1186 "parser.y"
{ (yyval.val) = cons(var_s, cons((yyvsp[(1) - (1)].val), nil));
rl((yyval.val), num(parser->lineno)); }
break;
@@ -5851,119 +5852,119 @@ yyreduce:
case 323:
/* Line 1806 of yacc.c */
-#line 1187 "parser.y"
+#line 1188 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 324:
/* Line 1806 of yacc.c */
-#line 1188 "parser.y"
+#line 1189 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 325:
/* Line 1806 of yacc.c */
-#line 1189 "parser.y"
+#line 1190 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 326:
/* Line 1806 of yacc.c */
-#line 1190 "parser.y"
+#line 1191 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 327:
/* Line 1806 of yacc.c */
-#line 1191 "parser.y"
+#line 1192 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 328:
/* Line 1806 of yacc.c */
-#line 1192 "parser.y"
+#line 1193 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 329:
/* Line 1806 of yacc.c */
-#line 1193 "parser.y"
+#line 1194 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 330:
/* Line 1806 of yacc.c */
-#line 1194 "parser.y"
+#line 1195 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 331:
/* Line 1806 of yacc.c */
-#line 1195 "parser.y"
+#line 1196 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 332:
/* Line 1806 of yacc.c */
-#line 1196 "parser.y"
+#line 1197 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 333:
/* Line 1806 of yacc.c */
-#line 1197 "parser.y"
+#line 1198 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 334:
/* Line 1806 of yacc.c */
-#line 1198 "parser.y"
+#line 1199 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 335:
/* Line 1806 of yacc.c */
-#line 1199 "parser.y"
+#line 1200 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 336:
/* Line 1806 of yacc.c */
-#line 1200 "parser.y"
+#line 1201 "parser.y"
{ (yyval.val) = rl((yyvsp[(2) - (2)].val), num((yyvsp[(1) - (2)].lineno))); }
break;
case 337:
/* Line 1806 of yacc.c */
-#line 1201 "parser.y"
+#line 1202 "parser.y"
{ (yyval.val) = rl(cons(quasilist_s, (yyvsp[(2) - (2)].val)), num((yyvsp[(1) - (2)].lineno))); }
break;
case 338:
/* Line 1806 of yacc.c */
-#line 1202 "parser.y"
+#line 1203 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 339:
/* Line 1806 of yacc.c */
-#line 1203 "parser.y"
+#line 1204 "parser.y"
{ (yyval.val) = rl(rlc(list(quote_s, (yyvsp[(2) - (2)].val), nao), (yyvsp[(2) - (2)].val)),
num(parser->lineno)); }
break;
@@ -5971,14 +5972,14 @@ yyreduce:
case 340:
/* Line 1806 of yacc.c */
-#line 1205 "parser.y"
+#line 1206 "parser.y"
{ parser->quasi_level++; }
break;
case 341:
/* Line 1806 of yacc.c */
-#line 1206 "parser.y"
+#line 1207 "parser.y"
{ parser->quasi_level--;
(yyval.val) = rl(rlc(list(sys_qquote_s, (yyvsp[(3) - (3)].val), nao), (yyvsp[(3) - (3)].val)),
num(parser->lineno)); }
@@ -5987,14 +5988,14 @@ yyreduce:
case 342:
/* Line 1806 of yacc.c */
-#line 1209 "parser.y"
+#line 1210 "parser.y"
{ parser->quasi_level--; }
break;
case 343:
/* Line 1806 of yacc.c */
-#line 1210 "parser.y"
+#line 1211 "parser.y"
{ parser->quasi_level++;
(yyval.val) = rl(rlc(list(sys_unquote_s, (yyvsp[(3) - (3)].val), nao), (yyvsp[(3) - (3)].val)),
num(parser->lineno)); }
@@ -6003,14 +6004,14 @@ yyreduce:
case 344:
/* Line 1806 of yacc.c */
-#line 1213 "parser.y"
+#line 1214 "parser.y"
{ parser->quasi_level--; }
break;
case 345:
/* Line 1806 of yacc.c */
-#line 1214 "parser.y"
+#line 1215 "parser.y"
{ parser->quasi_level++;
(yyval.val) = rl(rlc(list(sys_splice_s, (yyvsp[(3) - (3)].val), nao), (yyvsp[(3) - (3)].val)),
num(parser->lineno)); }
@@ -6019,7 +6020,7 @@ yyreduce:
case 346:
/* Line 1806 of yacc.c */
-#line 1217 "parser.y"
+#line 1218 "parser.y"
{ uses_or2;
(yyval.val) = rlc(list(rcons_s, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val), nao),
or2((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val))); }
@@ -6028,7 +6029,7 @@ yyreduce:
case 347:
/* Line 1806 of yacc.c */
-#line 1221 "parser.y"
+#line 1222 "parser.y"
{ uses_or2;
(yyval.val) = rlc(list(rcons_s, (yyvsp[(1) - (4)].val),
uref_helper(parser, (yyvsp[(4) - (4)].val)),
@@ -6039,7 +6040,7 @@ yyreduce:
case 348:
/* Line 1806 of yacc.c */
-#line 1227 "parser.y"
+#line 1228 "parser.y"
{ uses_or2;
(yyval.val) = rlc(list(rcons_s, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val), nao),
or2((yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val))); }
@@ -6048,7 +6049,7 @@ yyreduce:
case 349:
/* Line 1806 of yacc.c */
-#line 1231 "parser.y"
+#line 1232 "parser.y"
{ uses_or2;
(yyval.val) = rlc(list(rcons_s, (yyvsp[(1) - (4)].val),
uref_helper(parser, (yyvsp[(4) - (4)].val)),
@@ -6059,14 +6060,14 @@ yyreduce:
case 350:
/* Line 1806 of yacc.c */
-#line 1236 "parser.y"
+#line 1237 "parser.y"
{ (yyval.val) = qref_helper(parser, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val)); }
break;
case 351:
/* Line 1806 of yacc.c */
-#line 1237 "parser.y"
+#line 1238 "parser.y"
{ (yyval.val) = qref_helper(parser,
cons(t, cons((yyvsp[(1) - (3)].val), nil)),
(yyvsp[(3) - (3)].val)); }
@@ -6075,28 +6076,28 @@ yyreduce:
case 352:
/* Line 1806 of yacc.c */
-#line 1240 "parser.y"
+#line 1241 "parser.y"
{ (yyval.val) = uref_helper(parser, (yyvsp[(2) - (2)].val)); }
break;
case 353:
/* Line 1806 of yacc.c */
-#line 1241 "parser.y"
+#line 1242 "parser.y"
{ (yyval.val) = uoref_helper(parser, (yyvsp[(2) - (2)].val)); }
break;
case 354:
/* Line 1806 of yacc.c */
-#line 1242 "parser.y"
+#line 1243 "parser.y"
{ parser_circ_def(parser, (yyvsp[(1) - (1)].val), unique_s); }
break;
case 355:
/* Line 1806 of yacc.c */
-#line 1243 "parser.y"
+#line 1244 "parser.y"
{ parser_circ_def(parser, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val));
(yyval.val) = (yyvsp[(3) - (3)].val); }
break;
@@ -6104,49 +6105,49 @@ yyreduce:
case 356:
/* Line 1806 of yacc.c */
-#line 1245 "parser.y"
+#line 1246 "parser.y"
{ (yyval.val) = parser_circ_ref(parser, (yyvsp[(1) - (1)].val)); }
break;
case 357:
/* Line 1806 of yacc.c */
-#line 1248 "parser.y"
+#line 1249 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 358:
/* Line 1806 of yacc.c */
-#line 1249 "parser.y"
+#line 1250 "parser.y"
{ (yyval.val) = nil; }
break;
case 359:
/* Line 1806 of yacc.c */
-#line 1252 "parser.y"
+#line 1253 "parser.y"
{ (yyval.val) = uref_helper(parser, (yyvsp[(2) - (2)].val)); }
break;
case 360:
/* Line 1806 of yacc.c */
-#line 1253 "parser.y"
+#line 1254 "parser.y"
{ (yyval.val) = uoref_helper(parser, (yyvsp[(2) - (2)].val)); }
break;
case 361:
/* Line 1806 of yacc.c */
-#line 1254 "parser.y"
+#line 1255 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 362:
/* Line 1806 of yacc.c */
-#line 1257 "parser.y"
+#line 1258 "parser.y"
{ (yyval.val) = regex_compile((yyvsp[(2) - (3)].val), nil);
end_of_regex(scnr);
rl((yyval.val), num(parser->lineno)); }
@@ -6155,7 +6156,7 @@ yyreduce:
case 363:
/* Line 1806 of yacc.c */
-#line 1260 "parser.y"
+#line 1261 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("regex"));
end_of_regex(scnr); }
@@ -6164,7 +6165,7 @@ yyreduce:
case 364:
/* Line 1806 of yacc.c */
-#line 1266 "parser.y"
+#line 1267 "parser.y"
{ (yyval.val) = regex_compile((yyvsp[(2) - (3)].val), nil);
end_of_regex(scnr);
rl((yyval.val), num(parser->lineno)); }
@@ -6173,7 +6174,7 @@ yyreduce:
case 365:
/* Line 1806 of yacc.c */
-#line 1270 "parser.y"
+#line 1271 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("regex"));
end_of_regex(scnr); }
@@ -6182,7 +6183,7 @@ yyreduce:
case 366:
/* Line 1806 of yacc.c */
-#line 1275 "parser.y"
+#line 1276 "parser.y"
{ (yyval.val) = if3(cdr((yyvsp[(1) - (1)].val)),
cons(compound_s, (yyvsp[(1) - (1)].val)),
car((yyvsp[(1) - (1)].val))); }
@@ -6191,84 +6192,84 @@ yyreduce:
case 367:
/* Line 1806 of yacc.c */
-#line 1278 "parser.y"
+#line 1279 "parser.y"
{ (yyval.val) = list(or_s, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val), nao); }
break;
case 368:
/* Line 1806 of yacc.c */
-#line 1279 "parser.y"
+#line 1280 "parser.y"
{ (yyval.val) = list(and_s, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val), nao); }
break;
case 369:
/* Line 1806 of yacc.c */
-#line 1280 "parser.y"
+#line 1281 "parser.y"
{ (yyval.val) = list(compl_s, (yyvsp[(2) - (2)].val), nao); }
break;
case 370:
/* Line 1806 of yacc.c */
-#line 1281 "parser.y"
+#line 1282 "parser.y"
{ (yyval.val) = nil; }
break;
case 371:
/* Line 1806 of yacc.c */
-#line 1284 "parser.y"
+#line 1285 "parser.y"
{ (yyval.val) = cons((yyvsp[(1) - (1)].val), nil); }
break;
case 372:
/* Line 1806 of yacc.c */
-#line 1285 "parser.y"
+#line 1286 "parser.y"
{ (yyval.val) = cons((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].val)); }
break;
case 373:
/* Line 1806 of yacc.c */
-#line 1286 "parser.y"
+#line 1287 "parser.y"
{ (yyval.val) = list((yyvsp[(1) - (3)].val), list(compl_s, (yyvsp[(3) - (3)].val), nao), nao); }
break;
case 374:
/* Line 1806 of yacc.c */
-#line 1289 "parser.y"
+#line 1290 "parser.y"
{ (yyval.val) = list(zeroplus_s, (yyvsp[(1) - (2)].val), nao); }
break;
case 375:
/* Line 1806 of yacc.c */
-#line 1290 "parser.y"
+#line 1291 "parser.y"
{ (yyval.val) = list(oneplus_s, (yyvsp[(1) - (2)].val), nao); }
break;
case 376:
/* Line 1806 of yacc.c */
-#line 1291 "parser.y"
+#line 1292 "parser.y"
{ (yyval.val) = list(optional_s, (yyvsp[(1) - (2)].val), nao); }
break;
case 377:
/* Line 1806 of yacc.c */
-#line 1292 "parser.y"
+#line 1293 "parser.y"
{ (yyval.val) = list(nongreedy_s, (yyvsp[(1) - (3)].val), (yyvsp[(3) - (3)].val), nao); }
break;
case 378:
/* Line 1806 of yacc.c */
-#line 1293 "parser.y"
+#line 1294 "parser.y"
{ if (first((yyvsp[(2) - (3)].val)) == chr('^'))
{ if (rest((yyvsp[(2) - (3)].val)))
(yyval.val) = cons(cset_s, rest((yyvsp[(2) - (3)].val)));
@@ -6281,14 +6282,14 @@ yyreduce:
case 379:
/* Line 1806 of yacc.c */
-#line 1300 "parser.y"
+#line 1301 "parser.y"
{ (yyval.val) = cons(set_s, nil); }
break;
case 380:
/* Line 1806 of yacc.c */
-#line 1301 "parser.y"
+#line 1302 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("regex character class")); }
break;
@@ -6296,56 +6297,56 @@ yyreduce:
case 381:
/* Line 1806 of yacc.c */
-#line 1303 "parser.y"
+#line 1304 "parser.y"
{ (yyval.val) = wild_s; }
break;
case 382:
/* Line 1806 of yacc.c */
-#line 1304 "parser.y"
+#line 1305 "parser.y"
{ (yyval.val) = chr(']'); }
break;
case 383:
/* Line 1806 of yacc.c */
-#line 1305 "parser.y"
+#line 1306 "parser.y"
{ (yyval.val) = chr('-'); }
break;
case 384:
/* Line 1806 of yacc.c */
-#line 1306 "parser.y"
+#line 1307 "parser.y"
{ (yyval.val) = chr((yyvsp[(1) - (1)].chr)); }
break;
case 385:
/* Line 1806 of yacc.c */
-#line 1307 "parser.y"
+#line 1308 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 386:
/* Line 1806 of yacc.c */
-#line 1308 "parser.y"
+#line 1309 "parser.y"
{ (yyval.val) = list(compound_s, string_own((yyvsp[(1) - (1)].lexeme)), nao); }
break;
case 387:
/* Line 1806 of yacc.c */
-#line 1309 "parser.y"
+#line 1310 "parser.y"
{ (yyval.val) = (yyvsp[(2) - (3)].val); }
break;
case 388:
/* Line 1806 of yacc.c */
-#line 1310 "parser.y"
+#line 1311 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("regex subexpression")); }
break;
@@ -6353,133 +6354,133 @@ yyreduce:
case 389:
/* Line 1806 of yacc.c */
-#line 1314 "parser.y"
+#line 1315 "parser.y"
{ (yyval.val) = cons((yyvsp[(1) - (1)].val), nil); }
break;
case 390:
/* Line 1806 of yacc.c */
-#line 1315 "parser.y"
+#line 1316 "parser.y"
{ (yyval.val) = cons((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].val)); }
break;
case 391:
/* Line 1806 of yacc.c */
-#line 1318 "parser.y"
+#line 1319 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 392:
/* Line 1806 of yacc.c */
-#line 1319 "parser.y"
+#line 1320 "parser.y"
{ (yyval.val) = chr((yyvsp[(1) - (1)].chr)); }
break;
case 393:
/* Line 1806 of yacc.c */
-#line 1320 "parser.y"
+#line 1321 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 394:
/* Line 1806 of yacc.c */
-#line 1323 "parser.y"
+#line 1324 "parser.y"
{ (yyval.val) = cons(chr((yyvsp[(1) - (3)].chr)), chr((yyvsp[(3) - (3)].chr))); }
break;
case 395:
/* Line 1806 of yacc.c */
-#line 1325 "parser.y"
+#line 1326 "parser.y"
{ (yyval.chr) = '?'; }
break;
case 396:
/* Line 1806 of yacc.c */
-#line 1326 "parser.y"
+#line 1327 "parser.y"
{ (yyval.chr) = '.'; }
break;
case 397:
/* Line 1806 of yacc.c */
-#line 1327 "parser.y"
+#line 1328 "parser.y"
{ (yyval.chr) = '*'; }
break;
case 398:
/* Line 1806 of yacc.c */
-#line 1328 "parser.y"
+#line 1329 "parser.y"
{ (yyval.chr) = '+'; }
break;
case 399:
/* Line 1806 of yacc.c */
-#line 1329 "parser.y"
+#line 1330 "parser.y"
{ (yyval.chr) = '('; }
break;
case 400:
/* Line 1806 of yacc.c */
-#line 1330 "parser.y"
+#line 1331 "parser.y"
{ (yyval.chr) = ')'; }
break;
case 401:
/* Line 1806 of yacc.c */
-#line 1331 "parser.y"
+#line 1332 "parser.y"
{ (yyval.chr) = '|'; }
break;
case 402:
/* Line 1806 of yacc.c */
-#line 1332 "parser.y"
+#line 1333 "parser.y"
{ (yyval.chr) = '~'; }
break;
case 403:
/* Line 1806 of yacc.c */
-#line 1333 "parser.y"
+#line 1334 "parser.y"
{ (yyval.chr) = '&'; }
break;
case 404:
/* Line 1806 of yacc.c */
-#line 1334 "parser.y"
+#line 1335 "parser.y"
{ (yyval.chr) = '%'; }
break;
case 405:
/* Line 1806 of yacc.c */
-#line 1335 "parser.y"
+#line 1336 "parser.y"
{ (yyval.chr) = '/'; }
break;
case 406:
/* Line 1806 of yacc.c */
-#line 1336 "parser.y"
+#line 1337 "parser.y"
{ (yyval.chr) = (yyvsp[(1) - (1)].chr); }
break;
case 407:
/* Line 1806 of yacc.c */
-#line 1339 "parser.y"
+#line 1340 "parser.y"
{ switch ((yyvsp[(1) - (1)].chr))
{ case 's':
(yyval.val) = space_k; break;
@@ -6498,7 +6499,7 @@ yyreduce:
case 409:
/* Line 1806 of yacc.c */
-#line 1354 "parser.y"
+#line 1355 "parser.y"
{ yyerr("newline expected after directive");
yyerrok; }
break;
@@ -6506,14 +6507,14 @@ yyreduce:
case 410:
/* Line 1806 of yacc.c */
-#line 1358 "parser.y"
+#line 1359 "parser.y"
{ (yyval.val) = null_string; }
break;
case 411:
/* Line 1806 of yacc.c */
-#line 1359 "parser.y"
+#line 1360 "parser.y"
{ (yyval.val) = (yyvsp[(2) - (3)].val);
rl((yyval.val), num(parser->lineno)); }
break;
@@ -6521,7 +6522,7 @@ yyreduce:
case 412:
/* Line 1806 of yacc.c */
-#line 1361 "parser.y"
+#line 1362 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("string literal")); }
break;
@@ -6529,7 +6530,7 @@ yyreduce:
case 413:
/* Line 1806 of yacc.c */
-#line 1365 "parser.y"
+#line 1366 "parser.y"
{ wchar_t ch;
val str = string_own((yyvsp[(2) - (2)].lexeme));
const wchar_t *cstr = c_str(str);
@@ -6548,7 +6549,7 @@ yyreduce:
case 414:
/* Line 1806 of yacc.c */
-#line 1378 "parser.y"
+#line 1379 "parser.y"
{ (yyval.val) = chr((yyvsp[(2) - (2)].chr));
end_of_char(scnr); }
break;
@@ -6556,7 +6557,7 @@ yyreduce:
case 415:
/* Line 1806 of yacc.c */
-#line 1380 "parser.y"
+#line 1381 "parser.y"
{ free((yyvsp[(2) - (2)].lexeme));
yyerrorf(scnr,
lit("invalid UTF-8 used as character name"),
@@ -6566,7 +6567,7 @@ yyreduce:
case 416:
/* Line 1806 of yacc.c */
-#line 1384 "parser.y"
+#line 1385 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar,
lit("character literal")); }
@@ -6575,14 +6576,14 @@ yyreduce:
case 417:
/* Line 1806 of yacc.c */
-#line 1389 "parser.y"
+#line 1390 "parser.y"
{ (yyval.val) = null_string; }
break;
case 418:
/* Line 1806 of yacc.c */
-#line 1390 "parser.y"
+#line 1391 "parser.y"
{ (yyval.val) = cons(quasi_s, (yyvsp[(2) - (3)].val));
rlc((yyval.val), (yyvsp[(2) - (3)].val));
rl((yyval.val), num(parser->lineno)); }
@@ -6591,7 +6592,7 @@ yyreduce:
case 419:
/* Line 1806 of yacc.c */
-#line 1393 "parser.y"
+#line 1394 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("quasistring")); }
break;
@@ -6599,7 +6600,7 @@ yyreduce:
case 420:
/* Line 1806 of yacc.c */
-#line 1397 "parser.y"
+#line 1398 "parser.y"
{ (yyval.val) = cons((yyvsp[(1) - (1)].val), nil);
rl((yyval.val), num(parser->lineno)); }
break;
@@ -6607,7 +6608,7 @@ yyreduce:
case 421:
/* Line 1806 of yacc.c */
-#line 1399 "parser.y"
+#line 1400 "parser.y"
{ (yyval.val) = cons((yyvsp[(1) - (2)].val), (yyvsp[(2) - (2)].val));
rl((yyval.val), num(parser->lineno)); }
break;
@@ -6615,21 +6616,21 @@ yyreduce:
case 422:
/* Line 1806 of yacc.c */
-#line 1403 "parser.y"
+#line 1404 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 423:
/* Line 1806 of yacc.c */
-#line 1404 "parser.y"
+#line 1405 "parser.y"
{ (yyval.val) = (yyvsp[(1) - (1)].val); }
break;
case 424:
/* Line 1806 of yacc.c */
-#line 1405 "parser.y"
+#line 1406 "parser.y"
{ (yyval.val) = cons(var_s, cons((yyvsp[(1) - (1)].val), nil));
rl((yyval.val), num(parser->lineno)); }
break;
@@ -6637,7 +6638,7 @@ yyreduce:
case 425:
/* Line 1806 of yacc.c */
-#line 1407 "parser.y"
+#line 1408 "parser.y"
{ if (integerp((yyvsp[(2) - (2)].val)) || symbolp((yyvsp[(2) - (2)].val)))
(yyval.val) = rlcp_tree(cons(var_s, cons((yyvsp[(2) - (2)].val), nil)),
(yyvsp[(2) - (2)].val));
@@ -6648,14 +6649,14 @@ yyreduce:
case 426:
/* Line 1806 of yacc.c */
-#line 1414 "parser.y"
+#line 1415 "parser.y"
{ (yyval.val) = mkstring(one, chr((yyvsp[(1) - (1)].chr))); }
break;
case 427:
/* Line 1806 of yacc.c */
-#line 1415 "parser.y"
+#line 1416 "parser.y"
{ val ch = mkstring(one, chr((yyvsp[(1) - (2)].chr)));
(yyval.val) = string_extend(ch, (yyvsp[(2) - (2)].val)); }
break;
@@ -6663,63 +6664,63 @@ yyreduce:
case 428:
/* Line 1806 of yacc.c */
-#line 1417 "parser.y"
+#line 1418 "parser.y"
{ (yyval.val) = string_own((yyvsp[(1) - (1)].lexeme)); }
break;
case 429:
/* Line 1806 of yacc.c */
-#line 1418 "parser.y"
+#line 1419 "parser.y"
{ (yyval.val) = string_extend(string_own((yyvsp[(1) - (2)].lexeme)), (yyvsp[(2) - (2)].val)); }
break;
case 430:
/* Line 1806 of yacc.c */
-#line 1421 "parser.y"
+#line 1422 "parser.y"
{ (yyval.val) = mkstring(one, chr((yyvsp[(1) - (1)].chr))); }
break;
case 431:
/* Line 1806 of yacc.c */
-#line 1422 "parser.y"
+#line 1423 "parser.y"
{ (yyval.val) = string_extend((yyvsp[(1) - (2)].val), chr((yyvsp[(2) - (2)].chr))); }
break;
case 432:
/* Line 1806 of yacc.c */
-#line 1423 "parser.y"
+#line 1424 "parser.y"
{ (yyval.val) = string_own((yyvsp[(1) - (1)].lexeme)); }
break;
case 433:
/* Line 1806 of yacc.c */
-#line 1424 "parser.y"
+#line 1425 "parser.y"
{ (yyval.val) = string_extend((yyvsp[(1) - (2)].val), string_own((yyvsp[(2) - (2)].lexeme))); }
break;
case 434:
/* Line 1806 of yacc.c */
-#line 1427 "parser.y"
+#line 1428 "parser.y"
{ (yyval.val) = nil; }
break;
case 435:
/* Line 1806 of yacc.c */
-#line 1428 "parser.y"
+#line 1429 "parser.y"
{ (yyval.val) = (yyvsp[(2) - (2)].val); }
break;
case 436:
/* Line 1806 of yacc.c */
-#line 1429 "parser.y"
+#line 1430 "parser.y"
{ val word = (yyvsp[(1) - (2)].val);
(yyval.val) = rlc(cons(word, (yyvsp[(2) - (2)].val)), (yyvsp[(1) - (2)].val)); }
break;
@@ -6727,7 +6728,7 @@ yyreduce:
case 437:
/* Line 1806 of yacc.c */
-#line 1431 "parser.y"
+#line 1432 "parser.y"
{ (yyval.val) = nil;
yybadtok(yychar, lit("word list")); }
break;
@@ -6735,21 +6736,21 @@ yyreduce:
case 438:
/* Line 1806 of yacc.c */
-#line 1435 "parser.y"
+#line 1436 "parser.y"
{ (yyval.val) = nil; }
break;
case 439:
/* Line 1806 of yacc.c */
-#line 1436 "parser.y"
+#line 1437 "parser.y"
{ (yyval.val) = (yyvsp[(2) - (2)].val); }
break;
case 440:
/* Line 1806 of yacc.c */
-#line 1437 "parser.y"
+#line 1438 "parser.y"
{ val qword = cons(quasi_s, (yyvsp[(1) - (2)].val));
(yyval.val) = rlc(cons(qword, nil), (yyvsp[(1) - (2)].val)); }
break;
@@ -6757,7 +6758,7 @@ yyreduce:
case 441:
/* Line 1806 of yacc.c */
-#line 1441 "parser.y"
+#line 1442 "parser.y"
{ val qword = cons(quasi_s, (yyvsp[(1) - (3)].val));
(yyval.val) = rlc(cons(qword, (yyvsp[(3) - (3)].val)), (yyvsp[(1) - (3)].val)); }
break;
@@ -6765,7 +6766,7 @@ yyreduce:
case 442:
/* Line 1806 of yacc.c */
-#line 1445 "parser.y"
+#line 1446 "parser.y"
{ (yyval.val) = make_buf(zero, nil, nil);
end_of_buflit(scnr); }
break;
@@ -6773,7 +6774,7 @@ yyreduce:
case 443:
/* Line 1806 of yacc.c */
-#line 1447 "parser.y"
+#line 1448 "parser.y"
{ end_of_buflit(scnr);
buf_trim((yyvsp[(2) - (3)].val));
(yyval.val) = (yyvsp[(2) - (3)].val); }
@@ -6782,7 +6783,7 @@ yyreduce:
case 444:
/* Line 1806 of yacc.c */
-#line 1450 "parser.y"
+#line 1451 "parser.y"
{ yyerr("unterminated buffer literal");
end_of_buflit(scnr);
yyerrok; }
@@ -6791,7 +6792,7 @@ yyreduce:
case 445:
/* Line 1806 of yacc.c */
-#line 1455 "parser.y"
+#line 1456 "parser.y"
{ buf_put_u8((yyvsp[(1) - (2)].val), length_buf((yyval.val)), (yyvsp[(2) - (2)].val));
(yyval.val) = (yyvsp[(1) - (2)].val); }
break;
@@ -6799,7 +6800,7 @@ yyreduce:
case 446:
/* Line 1806 of yacc.c */
-#line 1457 "parser.y"
+#line 1458 "parser.y"
{ (yyval.val) = make_buf(zero, nil, num_fast(512));
buf_put_u8((yyval.val), zero, (yyvsp[(1) - (1)].val)); }
break;
@@ -6807,14 +6808,14 @@ yyreduce:
case 447:
/* Line 1806 of yacc.c */
-#line 1461 "parser.y"
+#line 1462 "parser.y"
{ (yyval.val) = num((yyvsp[(1) - (2)].chr) << 4 | (yyvsp[(2) - (2)].chr)); }
break;
case 448:
/* Line 1806 of yacc.c */
-#line 1462 "parser.y"
+#line 1463 "parser.y"
{ (yyval.val) = zero;
yyerr("unpaired digit in buffer literal");
yyerrok; }
@@ -6823,119 +6824,119 @@ yyreduce:
case 449:
/* Line 1806 of yacc.c */
-#line 1469 "parser.y"
+#line 1470 "parser.y"
{ (yyval.val) = mkexp(all_s, nil, num(parser->lineno)); }
break;
case 450:
/* Line 1806 of yacc.c */
-#line 1470 "parser.y"
+#line 1471 "parser.y"
{ (yyval.val) = mkexp(some_s, nil, num(parser->lineno)); }
break;
case 451:
/* Line 1806 of yacc.c */
-#line 1471 "parser.y"
+#line 1472 "parser.y"
{ (yyval.val) = mkexp(none_s, nil, num(parser->lineno)); }
break;
case 452:
/* Line 1806 of yacc.c */
-#line 1472 "parser.y"
+#line 1473 "parser.y"
{ (yyval.val) = mkexp(maybe_s, nil, num(parser->lineno)); }
break;
case 453:
/* Line 1806 of yacc.c */
-#line 1473 "parser.y"
+#line 1474 "parser.y"
{ (yyval.val) = mkexp(cases_s, nil, num(parser->lineno)); }
break;
case 454:
/* Line 1806 of yacc.c */
-#line 1474 "parser.y"
+#line 1475 "parser.y"
{ (yyval.val) = mkexp(and_s, nil, num(parser->lineno)); }
break;
case 455:
/* Line 1806 of yacc.c */
-#line 1475 "parser.y"
+#line 1476 "parser.y"
{ (yyval.val) = mkexp(or_s, nil, num(parser->lineno)); }
break;
case 456:
/* Line 1806 of yacc.c */
-#line 1476 "parser.y"
+#line 1477 "parser.y"
{ (yyval.val) = mkexp(try_s, nil, num(parser->lineno)); }
break;
case 457:
/* Line 1806 of yacc.c */
-#line 1477 "parser.y"
+#line 1478 "parser.y"
{ (yyval.val) = mkexp(finally_s, nil, num(parser->lineno)); }
break;
case 458:
/* Line 1806 of yacc.c */
-#line 1479 "parser.y"
+#line 1480 "parser.y"
{ (yyval.val) = mkexp(block_s, (yyvsp[(2) - (3)].val), nil); }
break;
case 459:
/* Line 1806 of yacc.c */
-#line 1481 "parser.y"
+#line 1482 "parser.y"
{ (yyval.val) = mkexp(choose_s, (yyvsp[(2) - (3)].val), nil); }
break;
case 460:
/* Line 1806 of yacc.c */
-#line 1483 "parser.y"
+#line 1484 "parser.y"
{ (yyval.val) = mkexp(collect_s, (yyvsp[(2) - (3)].val), nil); }
break;
case 461:
/* Line 1806 of yacc.c */
-#line 1485 "parser.y"
+#line 1486 "parser.y"
{ (yyval.val) = mkexp(coll_s, (yyvsp[(2) - (3)].val), nil); }
break;
case 462:
/* Line 1806 of yacc.c */
-#line 1487 "parser.y"
+#line 1488 "parser.y"
{ (yyval.val) = mkexp(gather_s, (yyvsp[(2) - (3)].val), nil); }
break;
case 463:
/* Line 1806 of yacc.c */
-#line 1489 "parser.y"
+#line 1490 "parser.y"
{ (yyval.val) = mkexp(define_s, (yyvsp[(2) - (3)].val), nil); }
break;
case 464:
/* Line 1806 of yacc.c */
-#line 1491 "parser.y"
+#line 1492 "parser.y"
{ (yyval.val) = mkexp(catch_s, (yyvsp[(2) - (3)].val), nil); }
break;
case 465:
/* Line 1806 of yacc.c */
-#line 1493 "parser.y"
+#line 1494 "parser.y"
{ (yyval.val) = mkexp(if_s,
cons((yyvsp[(2) - (5)].val),
cons((yyvsp[(3) - (5)].val), (yyvsp[(4) - (5)].val))),
@@ -6945,14 +6946,14 @@ yyreduce:
case 466:
/* Line 1806 of yacc.c */
-#line 1498 "parser.y"
+#line 1499 "parser.y"
{ yyerr("@(output) doesn't nest"); }
break;
/* Line 1806 of yacc.c */
-#line 6986 "y.tab.c"
+#line 6987 "y.tab.c"
default: break;
}
/* User semantic actions sometimes alter yychar, and that requires
@@ -7183,7 +7184,7 @@ yyreturn:
/* Line 2067 of yacc.c */
-#line 1502 "parser.y"
+#line 1503 "parser.y"
const int have_yydebug = YYDEBUG;