slow_blink 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/ext/slow_blink/ext_schema_parser/parser.c +245 -245
- data/lib/slow_blink/annotatable.rb +1 -2
- data/lib/slow_blink/annotation.rb +8 -1
- data/lib/slow_blink/compact_encoder.rb +1 -0
- data/lib/slow_blink/definition.rb +34 -10
- data/lib/slow_blink/enumeration.rb +15 -12
- data/lib/slow_blink/field.rb +9 -8
- data/lib/slow_blink/group.rb +61 -24
- data/lib/slow_blink/incremental_annotation.rb +7 -4
- data/lib/slow_blink/integer.rb +1 -1
- data/{test/tc_model.rb → lib/slow_blink/log.rb} +23 -40
- data/lib/slow_blink/message/binary.rb +39 -45
- data/lib/slow_blink/message/boolean.rb +25 -33
- data/lib/slow_blink/message/date.rb +2 -7
- data/lib/slow_blink/message/decimal.rb +1 -1
- data/lib/slow_blink/message/enumeration.rb +29 -33
- data/lib/slow_blink/message/field.rb +29 -37
- data/lib/slow_blink/message/fixed.rb +37 -45
- data/lib/slow_blink/message/floating_point.rb +24 -32
- data/lib/slow_blink/message/group.rb +172 -187
- data/lib/slow_blink/message/integer.rb +83 -132
- data/lib/slow_blink/message/model.rb +64 -63
- data/lib/slow_blink/message/sequence.rb +40 -48
- data/lib/slow_blink/message/string.rb +44 -51
- data/lib/slow_blink/message/time.rb +25 -40
- data/lib/slow_blink/message/time_of_day.rb +73 -86
- data/lib/slow_blink/name_with_id.rb +2 -6
- data/lib/slow_blink/namespace.rb +36 -36
- data/lib/slow_blink/ref.rb +29 -13
- data/lib/slow_blink/schema.rb +26 -10
- data/lib/slow_blink/schema_buffer.rb +14 -0
- data/lib/slow_blink/sequence.rb +16 -20
- data/lib/slow_blink/string.rb +0 -2
- data/lib/slow_blink/sym.rb +7 -5
- data/lib/slow_blink/type.rb +8 -5
- data/lib/slow_blink/version.rb +1 -1
- data/test/tc_field.rb +41 -0
- data/test/tc_group.rb +11 -0
- data/test/tc_model_static_group.rb +114 -0
- data/test/{tc_model_encode.rb → tc_model_think_blink.rb} +58 -13
- data/test/tc_types.rb +39 -0
- metadata +7 -6
@@ -118,10 +118,14 @@ static VALUE cDefinitionTypeRef;
|
|
118
118
|
static VALUE cFieldRef;
|
119
119
|
static VALUE cFieldTypeRef;
|
120
120
|
|
121
|
+
static VALUE cLog;
|
122
|
+
|
123
|
+
static VALUE cError;
|
124
|
+
|
121
125
|
/* generated **********************************************************/
|
122
126
|
|
123
127
|
|
124
|
-
#line
|
128
|
+
#line 129 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:207 */
|
125
129
|
|
126
130
|
# ifndef YY_NULLPTR
|
127
131
|
# if defined __cplusplus && 201103L <= __cplusplus
|
@@ -154,7 +158,7 @@ static YYLTYPE yyloc_default
|
|
154
158
|
|
155
159
|
/* Copy the second part of user declarations. */
|
156
160
|
|
157
|
-
#line
|
161
|
+
#line 162 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:230 */
|
158
162
|
|
159
163
|
#include <stdio.h>
|
160
164
|
#include <stdlib.h>
|
@@ -323,19 +327,19 @@ static const unsigned char yytranslate[] =
|
|
323
327
|
/* YYRLINE[YYN] -- source line where rule number YYN was defined. */
|
324
328
|
static const unsigned short int yyrline[] =
|
325
329
|
{
|
326
|
-
0,
|
327
|
-
|
328
|
-
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
|
333
|
-
|
334
|
-
|
335
|
-
|
336
|
-
|
337
|
-
|
338
|
-
|
330
|
+
0, 131, 131, 138, 144, 152, 157, 161, 167, 174,
|
331
|
+
180, 186, 190, 197, 205, 211, 219, 227, 235, 241,
|
332
|
+
248, 259, 264, 271, 273, 277, 279, 281, 283, 285,
|
333
|
+
287, 289, 295, 303, 311, 317, 325, 331, 339, 347,
|
334
|
+
352, 359, 365, 373, 379, 385, 391, 397, 403, 409,
|
335
|
+
415, 421, 427, 435, 441, 447, 453, 459, 468, 474,
|
336
|
+
481, 487, 494, 503, 505, 510, 517, 522, 526, 532,
|
337
|
+
538, 546, 548, 555, 563, 565, 570, 577, 585, 590,
|
338
|
+
596, 602, 608, 616, 622, 629, 631, 633, 635, 639,
|
339
|
+
641, 645, 647, 651, 656, 661, 666, 671, 676, 681,
|
340
|
+
686, 691, 696, 701, 706, 711, 716, 721, 726, 731,
|
341
|
+
736, 741, 746, 751, 756, 761, 768, 772, 774, 778,
|
342
|
+
785, 789, 791, 795, 799, 803
|
339
343
|
};
|
340
344
|
#endif
|
341
345
|
|
@@ -1134,152 +1138,152 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
|
|
1134
1138
|
switch (yyn)
|
1135
1139
|
{
|
1136
1140
|
case 2:
|
1137
|
-
#line
|
1141
|
+
#line 132 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1138
1142
|
{
|
1139
1143
|
*tree = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
|
1140
1144
|
}
|
1141
|
-
#line
|
1145
|
+
#line 1146 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1142
1146
|
break;
|
1143
1147
|
|
1144
1148
|
case 3:
|
1145
|
-
#line
|
1149
|
+
#line 139 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1146
1150
|
{
|
1147
1151
|
VALUE args[] = {filename, Qnil, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
|
1148
1152
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cNamespace);
|
1149
1153
|
}
|
1150
|
-
#line
|
1154
|
+
#line 1155 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1151
1155
|
break;
|
1152
1156
|
|
1153
1157
|
case 4:
|
1154
|
-
#line
|
1158
|
+
#line 145 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1155
1159
|
{
|
1156
1160
|
VALUE args[] = {filename, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
|
1157
1161
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cNamespace);
|
1158
1162
|
}
|
1159
|
-
#line
|
1163
|
+
#line 1164 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1160
1164
|
break;
|
1161
1165
|
|
1162
1166
|
case 5:
|
1163
|
-
#line
|
1167
|
+
#line 153 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1164
1168
|
{
|
1165
1169
|
((*yyvalp)) = rb_ary_new();
|
1166
1170
|
}
|
1167
|
-
#line
|
1171
|
+
#line 1172 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1168
1172
|
break;
|
1169
1173
|
|
1170
1174
|
case 7:
|
1171
|
-
#line
|
1175
|
+
#line 162 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1172
1176
|
{
|
1173
1177
|
((*yyvalp)) = rb_ary_new();
|
1174
1178
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1175
1179
|
}
|
1176
|
-
#line
|
1180
|
+
#line 1181 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1177
1181
|
break;
|
1178
1182
|
|
1179
1183
|
case 8:
|
1180
|
-
#line
|
1184
|
+
#line 168 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1181
1185
|
{
|
1182
1186
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1183
1187
|
}
|
1184
|
-
#line
|
1188
|
+
#line 1189 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1185
1189
|
break;
|
1186
1190
|
|
1187
1191
|
case 9:
|
1188
|
-
#line
|
1192
|
+
#line 175 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1189
1193
|
{
|
1190
1194
|
((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
|
1191
1195
|
rb_funcall(((*yyvalp)), rb_intern("annote"), 1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
|
1192
1196
|
}
|
1193
|
-
#line
|
1197
|
+
#line 1198 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1194
1198
|
break;
|
1195
1199
|
|
1196
1200
|
case 10:
|
1197
|
-
#line
|
1201
|
+
#line 181 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1198
1202
|
{
|
1199
1203
|
((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
|
1200
1204
|
rb_funcall(((*yyvalp)), rb_intern("annote"), 1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
|
1201
1205
|
}
|
1202
|
-
#line
|
1206
|
+
#line 1207 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1203
1207
|
break;
|
1204
1208
|
|
1205
1209
|
case 12:
|
1206
|
-
#line
|
1210
|
+
#line 191 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1207
1211
|
{
|
1208
1212
|
VALUE enumArgs[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
|
1209
1213
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), rb_class_new_instance(sizeof(enumArgs)/sizeof(*enumArgs),enumArgs, cENUMERATION), newLocation(filename, &(*yylocp))};
|
1210
1214
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cDefinition);
|
1211
1215
|
}
|
1212
|
-
#line
|
1216
|
+
#line 1217 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1213
1217
|
break;
|
1214
1218
|
|
1215
1219
|
case 13:
|
1216
|
-
#line
|
1220
|
+
#line 198 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1217
1221
|
{
|
1218
1222
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
|
1219
1223
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cDefinition);
|
1220
1224
|
}
|
1221
|
-
#line
|
1225
|
+
#line 1226 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1222
1226
|
break;
|
1223
1227
|
|
1224
1228
|
case 14:
|
1225
|
-
#line
|
1229
|
+
#line 206 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1226
1230
|
{
|
1227
1231
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), Qnil, rb_ary_new(), newLocation(filename, &(*yylocp))};
|
1228
1232
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cGroup);
|
1229
1233
|
}
|
1230
|
-
#line
|
1234
|
+
#line 1235 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1231
1235
|
break;
|
1232
1236
|
|
1233
1237
|
case 15:
|
1234
|
-
#line
|
1238
|
+
#line 212 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1235
1239
|
{
|
1236
1240
|
VALUE refArgs[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), Qfalse, newLocation(filename, &(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc))};
|
1237
1241
|
VALUE ref = rb_class_new_instance(sizeof(refArgs)/sizeof(*refArgs),refArgs, cREF);
|
1238
1242
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), ref, rb_ary_new(), newLocation(filename, &(*yylocp))};
|
1239
1243
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cGroup);
|
1240
1244
|
}
|
1241
|
-
#line
|
1245
|
+
#line 1246 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1242
1246
|
break;
|
1243
1247
|
|
1244
1248
|
case 16:
|
1245
|
-
#line
|
1249
|
+
#line 220 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1246
1250
|
{
|
1247
1251
|
VALUE refArgs[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), Qfalse, newLocation(filename, &(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yyloc))};
|
1248
1252
|
VALUE ref = rb_class_new_instance(sizeof(refArgs)/sizeof(*refArgs),refArgs, cREF);
|
1249
1253
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval), ref, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
|
1250
1254
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cGroup);
|
1251
1255
|
}
|
1252
|
-
#line
|
1256
|
+
#line 1257 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1253
1257
|
break;
|
1254
1258
|
|
1255
1259
|
case 17:
|
1256
|
-
#line
|
1260
|
+
#line 228 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1257
1261
|
{
|
1258
1262
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), Qnil, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
|
1259
1263
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cGroup);
|
1260
1264
|
}
|
1261
|
-
#line
|
1265
|
+
#line 1266 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1262
1266
|
break;
|
1263
1267
|
|
1264
1268
|
case 18:
|
1265
|
-
#line
|
1269
|
+
#line 236 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1266
1270
|
{
|
1267
1271
|
((*yyvalp)) = rb_ary_new();
|
1268
1272
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1269
1273
|
}
|
1270
|
-
#line
|
1274
|
+
#line 1275 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1271
1275
|
break;
|
1272
1276
|
|
1273
1277
|
case 19:
|
1274
|
-
#line
|
1278
|
+
#line 242 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1275
1279
|
{
|
1276
1280
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1277
1281
|
}
|
1278
|
-
#line
|
1282
|
+
#line 1283 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1279
1283
|
break;
|
1280
1284
|
|
1281
1285
|
case 20:
|
1282
|
-
#line
|
1286
|
+
#line 249 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1283
1287
|
{
|
1284
1288
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yyloc))};
|
1285
1289
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cField);
|
@@ -1287,665 +1291,665 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
|
|
1287
1291
|
rb_funcall(((*yyvalp)), rb_intern("annote"), 1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
|
1288
1292
|
rb_funcall((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), rb_intern("annote"), 1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
|
1289
1293
|
}
|
1290
|
-
#line
|
1294
|
+
#line 1295 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1291
1295
|
break;
|
1292
1296
|
|
1293
1297
|
case 21:
|
1294
|
-
#line
|
1298
|
+
#line 260 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1295
1299
|
{
|
1296
1300
|
((*yyvalp)) = Qfalse;
|
1297
1301
|
}
|
1298
|
-
#line
|
1302
|
+
#line 1303 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1299
1303
|
break;
|
1300
1304
|
|
1301
1305
|
case 22:
|
1302
|
-
#line
|
1306
|
+
#line 265 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1303
1307
|
{
|
1304
1308
|
((*yyvalp)) = Qtrue;
|
1305
1309
|
}
|
1306
|
-
#line
|
1310
|
+
#line 1311 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1307
1311
|
break;
|
1308
1312
|
|
1309
1313
|
case 31:
|
1310
|
-
#line
|
1314
|
+
#line 290 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1311
1315
|
{
|
1312
1316
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1313
1317
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cBOOLEAN);
|
1314
1318
|
}
|
1315
|
-
#line
|
1319
|
+
#line 1320 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1316
1320
|
break;
|
1317
1321
|
|
1318
1322
|
case 32:
|
1319
|
-
#line
|
1323
|
+
#line 296 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1320
1324
|
{
|
1321
1325
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1322
1326
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cOBJECT);
|
1323
1327
|
}
|
1324
|
-
#line
|
1328
|
+
#line 1329 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1325
1329
|
break;
|
1326
1330
|
|
1327
1331
|
case 33:
|
1328
|
-
#line
|
1332
|
+
#line 304 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1329
1333
|
{
|
1330
1334
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), newLocation(filename, &(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yyloc))};
|
1331
1335
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cSEQUENCE);
|
1332
1336
|
}
|
1333
|
-
#line
|
1337
|
+
#line 1338 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1334
1338
|
break;
|
1335
1339
|
|
1336
1340
|
case 34:
|
1337
|
-
#line
|
1341
|
+
#line 312 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1338
1342
|
{
|
1339
1343
|
VALUE args[] = {Qnil, newLocation(filename, &(*yylocp))};
|
1340
1344
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cSTRING);
|
1341
1345
|
}
|
1342
|
-
#line
|
1346
|
+
#line 1347 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1343
1347
|
break;
|
1344
1348
|
|
1345
1349
|
case 35:
|
1346
|
-
#line
|
1350
|
+
#line 318 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1347
1351
|
{
|
1348
1352
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
|
1349
1353
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cSTRING);
|
1350
1354
|
}
|
1351
|
-
#line
|
1355
|
+
#line 1356 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1352
1356
|
break;
|
1353
1357
|
|
1354
1358
|
case 36:
|
1355
|
-
#line
|
1359
|
+
#line 326 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1356
1360
|
{
|
1357
1361
|
VALUE args[] = {Qnil, newLocation(filename, &(*yylocp))};
|
1358
1362
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cBINARY);
|
1359
1363
|
}
|
1360
|
-
#line
|
1364
|
+
#line 1365 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1361
1365
|
break;
|
1362
1366
|
|
1363
1367
|
case 37:
|
1364
|
-
#line
|
1368
|
+
#line 332 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1365
1369
|
{
|
1366
1370
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
|
1367
1371
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cBINARY);
|
1368
1372
|
}
|
1369
|
-
#line
|
1373
|
+
#line 1374 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1370
1374
|
break;
|
1371
1375
|
|
1372
1376
|
case 38:
|
1373
|
-
#line
|
1377
|
+
#line 340 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1374
1378
|
{
|
1375
1379
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
|
1376
1380
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cFIXED);
|
1377
1381
|
}
|
1378
|
-
#line
|
1382
|
+
#line 1383 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1379
1383
|
break;
|
1380
1384
|
|
1381
1385
|
case 39:
|
1382
|
-
#line
|
1386
|
+
#line 348 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1383
1387
|
{
|
1384
1388
|
((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval);
|
1385
1389
|
}
|
1386
|
-
#line
|
1390
|
+
#line 1391 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1387
1391
|
break;
|
1388
1392
|
|
1389
1393
|
case 40:
|
1390
|
-
#line
|
1394
|
+
#line 353 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1391
1395
|
{
|
1392
1396
|
((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval);
|
1393
1397
|
}
|
1394
|
-
#line
|
1398
|
+
#line 1399 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1395
1399
|
break;
|
1396
1400
|
|
1397
1401
|
case 41:
|
1398
|
-
#line
|
1402
|
+
#line 360 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1399
1403
|
{
|
1400
1404
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), Qfalse, newLocation(filename, &(*yylocp))};
|
1401
1405
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cREF);
|
1402
1406
|
}
|
1403
|
-
#line
|
1407
|
+
#line 1408 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1404
1408
|
break;
|
1405
1409
|
|
1406
1410
|
case 42:
|
1407
|
-
#line
|
1411
|
+
#line 366 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1408
1412
|
{
|
1409
1413
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), Qtrue, newLocation(filename, &(*yylocp))};
|
1410
1414
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cREF);
|
1411
1415
|
}
|
1412
|
-
#line
|
1416
|
+
#line 1417 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1413
1417
|
break;
|
1414
1418
|
|
1415
1419
|
case 43:
|
1416
|
-
#line
|
1420
|
+
#line 374 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1417
1421
|
{
|
1418
1422
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1419
1423
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cI8);
|
1420
1424
|
}
|
1421
|
-
#line
|
1425
|
+
#line 1426 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1422
1426
|
break;
|
1423
1427
|
|
1424
1428
|
case 44:
|
1425
|
-
#line
|
1429
|
+
#line 380 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1426
1430
|
{
|
1427
1431
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1428
1432
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cI16);
|
1429
1433
|
}
|
1430
|
-
#line
|
1434
|
+
#line 1435 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1431
1435
|
break;
|
1432
1436
|
|
1433
1437
|
case 45:
|
1434
|
-
#line
|
1438
|
+
#line 386 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1435
1439
|
{
|
1436
1440
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1437
1441
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cI32);
|
1438
1442
|
}
|
1439
|
-
#line
|
1443
|
+
#line 1444 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1440
1444
|
break;
|
1441
1445
|
|
1442
1446
|
case 46:
|
1443
|
-
#line
|
1447
|
+
#line 392 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1444
1448
|
{
|
1445
1449
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1446
1450
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cI64);
|
1447
1451
|
}
|
1448
|
-
#line
|
1452
|
+
#line 1453 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1449
1453
|
break;
|
1450
1454
|
|
1451
1455
|
case 47:
|
1452
|
-
#line
|
1456
|
+
#line 398 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1453
1457
|
{
|
1454
1458
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1455
1459
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cU8);
|
1456
1460
|
}
|
1457
|
-
#line
|
1461
|
+
#line 1462 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1458
1462
|
break;
|
1459
1463
|
|
1460
1464
|
case 48:
|
1461
|
-
#line
|
1465
|
+
#line 404 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1462
1466
|
{
|
1463
1467
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1464
1468
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cU16);
|
1465
1469
|
}
|
1466
|
-
#line
|
1470
|
+
#line 1471 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1467
1471
|
break;
|
1468
1472
|
|
1469
1473
|
case 49:
|
1470
|
-
#line
|
1474
|
+
#line 410 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1471
1475
|
{
|
1472
1476
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1473
1477
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cU32);
|
1474
1478
|
}
|
1475
|
-
#line
|
1479
|
+
#line 1480 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1476
1480
|
break;
|
1477
1481
|
|
1478
1482
|
case 50:
|
1479
|
-
#line
|
1483
|
+
#line 416 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1480
1484
|
{
|
1481
1485
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1482
1486
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cU64);
|
1483
1487
|
}
|
1484
|
-
#line
|
1488
|
+
#line 1489 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1485
1489
|
break;
|
1486
1490
|
|
1487
1491
|
case 51:
|
1488
|
-
#line
|
1492
|
+
#line 422 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1489
1493
|
{
|
1490
1494
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1491
1495
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cFLOATING_POINT);
|
1492
1496
|
}
|
1493
|
-
#line
|
1497
|
+
#line 1498 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1494
1498
|
break;
|
1495
1499
|
|
1496
1500
|
case 52:
|
1497
|
-
#line
|
1501
|
+
#line 428 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1498
1502
|
{
|
1499
1503
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1500
1504
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cDECIMAL);
|
1501
1505
|
}
|
1502
|
-
#line
|
1506
|
+
#line 1507 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1503
1507
|
break;
|
1504
1508
|
|
1505
1509
|
case 53:
|
1506
|
-
#line
|
1510
|
+
#line 436 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1507
1511
|
{
|
1508
1512
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1509
1513
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cDATE);
|
1510
1514
|
}
|
1511
|
-
#line
|
1515
|
+
#line 1516 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1512
1516
|
break;
|
1513
1517
|
|
1514
1518
|
case 54:
|
1515
|
-
#line
|
1519
|
+
#line 442 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1516
1520
|
{
|
1517
1521
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1518
1522
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cTIME_OF_DAY_MILLI);
|
1519
1523
|
}
|
1520
|
-
#line
|
1524
|
+
#line 1525 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1521
1525
|
break;
|
1522
1526
|
|
1523
1527
|
case 55:
|
1524
|
-
#line
|
1528
|
+
#line 448 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1525
1529
|
{
|
1526
1530
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1527
1531
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cTIME_OF_DAY_NANO);
|
1528
1532
|
}
|
1529
|
-
#line
|
1533
|
+
#line 1534 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1530
1534
|
break;
|
1531
1535
|
|
1532
1536
|
case 56:
|
1533
|
-
#line
|
1537
|
+
#line 454 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1534
1538
|
{
|
1535
1539
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1536
1540
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cNANO_TIME);
|
1537
1541
|
}
|
1538
|
-
#line
|
1542
|
+
#line 1543 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1539
1543
|
break;
|
1540
1544
|
|
1541
1545
|
case 57:
|
1542
|
-
#line
|
1546
|
+
#line 460 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1543
1547
|
{
|
1544
1548
|
VALUE args[] = {newLocation(filename, &(*yylocp))};
|
1545
1549
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cMILLI_TIME);
|
1546
1550
|
}
|
1547
|
-
#line
|
1551
|
+
#line 1552 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1548
1552
|
break;
|
1549
1553
|
|
1550
1554
|
case 58:
|
1551
|
-
#line
|
1555
|
+
#line 469 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1552
1556
|
{
|
1553
1557
|
((*yyvalp)) = rb_ary_new();
|
1554
1558
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1555
1559
|
}
|
1556
|
-
#line
|
1560
|
+
#line 1561 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1557
1561
|
break;
|
1558
1562
|
|
1559
1563
|
case 59:
|
1560
|
-
#line
|
1564
|
+
#line 475 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1561
1565
|
{
|
1562
1566
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1563
1567
|
}
|
1564
|
-
#line
|
1568
|
+
#line 1569 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1565
1569
|
break;
|
1566
1570
|
|
1567
1571
|
case 60:
|
1568
|
-
#line
|
1572
|
+
#line 482 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1569
1573
|
{
|
1570
1574
|
((*yyvalp)) = rb_ary_new();
|
1571
1575
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1572
1576
|
}
|
1573
|
-
#line
|
1577
|
+
#line 1578 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1574
1578
|
break;
|
1575
1579
|
|
1576
1580
|
case 61:
|
1577
|
-
#line
|
1581
|
+
#line 488 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1578
1582
|
{
|
1579
1583
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1580
1584
|
}
|
1581
|
-
#line
|
1585
|
+
#line 1586 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1582
1586
|
break;
|
1583
1587
|
|
1584
1588
|
case 62:
|
1585
|
-
#line
|
1589
|
+
#line 495 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1586
1590
|
{
|
1587
1591
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yyloc))};
|
1588
1592
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cSym);
|
1589
1593
|
rb_funcall(((*yyvalp)), rb_intern("annote"), 1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
|
1590
1594
|
}
|
1591
|
-
#line
|
1595
|
+
#line 1596 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1592
1596
|
break;
|
1593
1597
|
|
1594
1598
|
case 64:
|
1595
|
-
#line
|
1599
|
+
#line 506 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1596
1600
|
{
|
1597
1601
|
((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
|
1598
1602
|
}
|
1599
|
-
#line
|
1603
|
+
#line 1604 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1600
1604
|
break;
|
1601
1605
|
|
1602
1606
|
case 65:
|
1603
|
-
#line
|
1607
|
+
#line 511 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1604
1608
|
{
|
1605
1609
|
((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
|
1606
1610
|
}
|
1607
|
-
#line
|
1611
|
+
#line 1612 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1608
1612
|
break;
|
1609
1613
|
|
1610
1614
|
case 66:
|
1611
|
-
#line
|
1615
|
+
#line 518 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1612
1616
|
{
|
1613
1617
|
((*yyvalp)) = rb_ary_new();
|
1614
1618
|
}
|
1615
|
-
#line
|
1619
|
+
#line 1620 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1616
1620
|
break;
|
1617
1621
|
|
1618
1622
|
case 68:
|
1619
|
-
#line
|
1623
|
+
#line 527 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1620
1624
|
{
|
1621
1625
|
((*yyvalp)) = rb_ary_new();
|
1622
1626
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1623
1627
|
}
|
1624
|
-
#line
|
1628
|
+
#line 1629 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1625
1629
|
break;
|
1626
1630
|
|
1627
1631
|
case 69:
|
1628
|
-
#line
|
1632
|
+
#line 533 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1629
1633
|
{
|
1630
1634
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1631
1635
|
}
|
1632
|
-
#line
|
1636
|
+
#line 1637 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1633
1637
|
break;
|
1634
1638
|
|
1635
1639
|
case 70:
|
1636
|
-
#line
|
1640
|
+
#line 539 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1637
1641
|
{
|
1638
1642
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yyloc))};
|
1639
1643
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cAnnotation);
|
1640
1644
|
}
|
1641
|
-
#line
|
1645
|
+
#line 1646 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1642
1646
|
break;
|
1643
1647
|
|
1644
1648
|
case 72:
|
1645
|
-
#line
|
1649
|
+
#line 549 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1646
1650
|
{
|
1647
1651
|
rb_str_append(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1648
1652
|
}
|
1649
|
-
#line
|
1653
|
+
#line 1654 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1650
1654
|
break;
|
1651
1655
|
|
1652
1656
|
case 73:
|
1653
|
-
#line
|
1657
|
+
#line 556 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1654
1658
|
{
|
1655
1659
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
|
1656
1660
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cNameWithID);
|
1657
1661
|
}
|
1658
|
-
#line
|
1662
|
+
#line 1663 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1659
1663
|
break;
|
1660
1664
|
|
1661
1665
|
case 75:
|
1662
|
-
#line
|
1666
|
+
#line 566 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1663
1667
|
{
|
1664
1668
|
((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
|
1665
1669
|
}
|
1666
|
-
#line
|
1670
|
+
#line 1671 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1667
1671
|
break;
|
1668
1672
|
|
1669
1673
|
case 76:
|
1670
|
-
#line
|
1674
|
+
#line 571 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1671
1675
|
{
|
1672
1676
|
((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
|
1673
1677
|
}
|
1674
|
-
#line
|
1678
|
+
#line 1679 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1675
1679
|
break;
|
1676
1680
|
|
1677
1681
|
case 77:
|
1678
|
-
#line
|
1682
|
+
#line 578 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1679
1683
|
{
|
1680
1684
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
|
1681
1685
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cIncrementalAnnotation);
|
1682
1686
|
}
|
1683
|
-
#line
|
1687
|
+
#line 1688 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1684
1688
|
break;
|
1685
1689
|
|
1686
1690
|
case 78:
|
1687
|
-
#line
|
1691
|
+
#line 586 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1688
1692
|
{
|
1689
1693
|
((*yyvalp)) = rb_class_new_instance(0, NULL, cSchemaRef);
|
1690
1694
|
}
|
1691
|
-
#line
|
1695
|
+
#line 1696 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1692
1696
|
break;
|
1693
1697
|
|
1694
1698
|
case 79:
|
1695
|
-
#line
|
1699
|
+
#line 591 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1696
1700
|
{
|
1697
1701
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
|
1698
1702
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cDefinitionRef);
|
1699
1703
|
}
|
1700
|
-
#line
|
1704
|
+
#line 1705 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1701
1705
|
break;
|
1702
1706
|
|
1703
1707
|
case 80:
|
1704
|
-
#line
|
1708
|
+
#line 597 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1705
1709
|
{
|
1706
1710
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)};
|
1707
1711
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cDefinitionTypeRef);
|
1708
1712
|
}
|
1709
|
-
#line
|
1713
|
+
#line 1714 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1710
1714
|
break;
|
1711
1715
|
|
1712
1716
|
case 81:
|
1713
|
-
#line
|
1717
|
+
#line 603 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1714
1718
|
{
|
1715
1719
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
|
1716
1720
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cFieldRef);
|
1717
1721
|
}
|
1718
|
-
#line
|
1722
|
+
#line 1723 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1719
1723
|
break;
|
1720
1724
|
|
1721
1725
|
case 82:
|
1722
|
-
#line
|
1726
|
+
#line 609 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1723
1727
|
{
|
1724
1728
|
VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)};
|
1725
1729
|
((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cFieldTypeRef);
|
1726
1730
|
}
|
1727
|
-
#line
|
1731
|
+
#line 1732 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1728
1732
|
break;
|
1729
1733
|
|
1730
1734
|
case 83:
|
1731
|
-
#line
|
1735
|
+
#line 617 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1732
1736
|
{
|
1733
1737
|
((*yyvalp)) = rb_ary_new();
|
1734
1738
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1735
1739
|
}
|
1736
|
-
#line
|
1740
|
+
#line 1741 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1737
1741
|
break;
|
1738
1742
|
|
1739
1743
|
case 84:
|
1740
|
-
#line
|
1744
|
+
#line 623 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1741
1745
|
{
|
1742
1746
|
rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
|
1743
1747
|
}
|
1744
|
-
#line
|
1748
|
+
#line 1749 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1745
1749
|
break;
|
1746
1750
|
|
1747
1751
|
case 93:
|
1748
|
-
#line
|
1752
|
+
#line 652 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1749
1753
|
{
|
1750
1754
|
((*yyvalp)) = rb_str_new2("i8");
|
1751
1755
|
}
|
1752
|
-
#line
|
1756
|
+
#line 1757 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1753
1757
|
break;
|
1754
1758
|
|
1755
1759
|
case 94:
|
1756
|
-
#line
|
1760
|
+
#line 657 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1757
1761
|
{
|
1758
1762
|
((*yyvalp)) = rb_str_new2("i16");
|
1759
1763
|
}
|
1760
|
-
#line
|
1764
|
+
#line 1765 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1761
1765
|
break;
|
1762
1766
|
|
1763
1767
|
case 95:
|
1764
|
-
#line
|
1768
|
+
#line 662 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1765
1769
|
{
|
1766
1770
|
((*yyvalp)) = rb_str_new2("i32");
|
1767
1771
|
}
|
1768
|
-
#line
|
1772
|
+
#line 1773 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1769
1773
|
break;
|
1770
1774
|
|
1771
1775
|
case 96:
|
1772
|
-
#line
|
1776
|
+
#line 667 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1773
1777
|
{
|
1774
1778
|
((*yyvalp)) = rb_str_new2("i64");
|
1775
1779
|
}
|
1776
|
-
#line
|
1780
|
+
#line 1781 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1777
1781
|
break;
|
1778
1782
|
|
1779
1783
|
case 97:
|
1780
|
-
#line
|
1784
|
+
#line 672 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1781
1785
|
{
|
1782
1786
|
((*yyvalp)) = rb_str_new2("u8");
|
1783
1787
|
}
|
1784
|
-
#line
|
1788
|
+
#line 1789 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1785
1789
|
break;
|
1786
1790
|
|
1787
1791
|
case 98:
|
1788
|
-
#line
|
1792
|
+
#line 677 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1789
1793
|
{
|
1790
1794
|
((*yyvalp)) = rb_str_new2("u16");
|
1791
1795
|
}
|
1792
|
-
#line
|
1796
|
+
#line 1797 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1793
1797
|
break;
|
1794
1798
|
|
1795
1799
|
case 99:
|
1796
|
-
#line
|
1800
|
+
#line 682 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1797
1801
|
{
|
1798
1802
|
((*yyvalp)) = rb_str_new2("u32");
|
1799
1803
|
}
|
1800
|
-
#line
|
1804
|
+
#line 1805 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1801
1805
|
break;
|
1802
1806
|
|
1803
1807
|
case 100:
|
1804
|
-
#line
|
1808
|
+
#line 687 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1805
1809
|
{
|
1806
1810
|
((*yyvalp)) = rb_str_new2("u64");
|
1807
1811
|
}
|
1808
|
-
#line
|
1812
|
+
#line 1813 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1809
1813
|
break;
|
1810
1814
|
|
1811
1815
|
case 101:
|
1812
|
-
#line
|
1816
|
+
#line 692 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1813
1817
|
{
|
1814
1818
|
((*yyvalp)) = rb_str_new2("f64");
|
1815
1819
|
}
|
1816
|
-
#line
|
1820
|
+
#line 1821 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1817
1821
|
break;
|
1818
1822
|
|
1819
1823
|
case 102:
|
1820
|
-
#line
|
1824
|
+
#line 697 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1821
1825
|
{
|
1822
1826
|
((*yyvalp)) = rb_str_new2("decimal");
|
1823
1827
|
}
|
1824
|
-
#line
|
1828
|
+
#line 1829 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1825
1829
|
break;
|
1826
1830
|
|
1827
1831
|
case 103:
|
1828
|
-
#line
|
1832
|
+
#line 702 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1829
1833
|
{
|
1830
1834
|
((*yyvalp)) = rb_str_new2("date");
|
1831
1835
|
}
|
1832
|
-
#line
|
1836
|
+
#line 1837 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1833
1837
|
break;
|
1834
1838
|
|
1835
1839
|
case 104:
|
1836
|
-
#line
|
1840
|
+
#line 707 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1837
1841
|
{
|
1838
1842
|
((*yyvalp)) = rb_str_new2("timeOfDayMilli");
|
1839
1843
|
}
|
1840
|
-
#line
|
1844
|
+
#line 1845 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1841
1845
|
break;
|
1842
1846
|
|
1843
1847
|
case 105:
|
1844
|
-
#line
|
1848
|
+
#line 712 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1845
1849
|
{
|
1846
1850
|
((*yyvalp)) = rb_str_new2("timeOfDayNano");
|
1847
1851
|
}
|
1848
|
-
#line
|
1852
|
+
#line 1853 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1849
1853
|
break;
|
1850
1854
|
|
1851
1855
|
case 106:
|
1852
|
-
#line
|
1856
|
+
#line 717 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1853
1857
|
{
|
1854
1858
|
((*yyvalp)) = rb_str_new2("nanoTime");
|
1855
1859
|
}
|
1856
|
-
#line
|
1860
|
+
#line 1861 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1857
1861
|
break;
|
1858
1862
|
|
1859
1863
|
case 107:
|
1860
|
-
#line
|
1864
|
+
#line 722 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1861
1865
|
{
|
1862
1866
|
((*yyvalp)) = rb_str_new2("milliTime");
|
1863
1867
|
}
|
1864
|
-
#line
|
1868
|
+
#line 1869 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1865
1869
|
break;
|
1866
1870
|
|
1867
1871
|
case 108:
|
1868
|
-
#line
|
1872
|
+
#line 727 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1869
1873
|
{
|
1870
1874
|
((*yyvalp)) = rb_str_new2("boolean");
|
1871
1875
|
}
|
1872
|
-
#line
|
1876
|
+
#line 1877 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1873
1877
|
break;
|
1874
1878
|
|
1875
1879
|
case 109:
|
1876
|
-
#line
|
1880
|
+
#line 732 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1877
1881
|
{
|
1878
1882
|
((*yyvalp)) = rb_str_new2("string");
|
1879
1883
|
}
|
1880
|
-
#line
|
1884
|
+
#line 1885 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1881
1885
|
break;
|
1882
1886
|
|
1883
1887
|
case 110:
|
1884
|
-
#line
|
1888
|
+
#line 737 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1885
1889
|
{
|
1886
1890
|
((*yyvalp)) = rb_str_new2("binary");
|
1887
1891
|
}
|
1888
|
-
#line
|
1892
|
+
#line 1893 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1889
1893
|
break;
|
1890
1894
|
|
1891
1895
|
case 111:
|
1892
|
-
#line
|
1896
|
+
#line 742 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1893
1897
|
{
|
1894
1898
|
((*yyvalp)) = rb_str_new2("fixed");
|
1895
1899
|
}
|
1896
|
-
#line
|
1900
|
+
#line 1901 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1897
1901
|
break;
|
1898
1902
|
|
1899
1903
|
case 112:
|
1900
|
-
#line
|
1904
|
+
#line 747 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1901
1905
|
{
|
1902
1906
|
((*yyvalp)) = rb_str_new2("object");
|
1903
1907
|
}
|
1904
|
-
#line
|
1908
|
+
#line 1909 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1905
1909
|
break;
|
1906
1910
|
|
1907
1911
|
case 113:
|
1908
|
-
#line
|
1912
|
+
#line 752 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1909
1913
|
{
|
1910
1914
|
((*yyvalp)) = rb_str_new2("namespace");
|
1911
1915
|
}
|
1912
|
-
#line
|
1916
|
+
#line 1917 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1913
1917
|
break;
|
1914
1918
|
|
1915
1919
|
case 114:
|
1916
|
-
#line
|
1920
|
+
#line 757 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1917
1921
|
{
|
1918
1922
|
((*yyvalp)) = rb_str_new2("type");
|
1919
1923
|
}
|
1920
|
-
#line
|
1924
|
+
#line 1925 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1921
1925
|
break;
|
1922
1926
|
|
1923
1927
|
case 115:
|
1924
|
-
#line
|
1928
|
+
#line 762 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1925
1929
|
{
|
1926
1930
|
((*yyvalp)) = rb_str_new2("schema");
|
1927
1931
|
}
|
1928
|
-
#line
|
1932
|
+
#line 1933 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1929
1933
|
break;
|
1930
1934
|
|
1931
1935
|
case 119:
|
1932
|
-
#line
|
1936
|
+
#line 779 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1933
1937
|
{
|
1934
1938
|
((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
|
1935
1939
|
}
|
1936
|
-
#line
|
1940
|
+
#line 1941 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1937
1941
|
break;
|
1938
1942
|
|
1939
1943
|
case 125:
|
1940
|
-
#line
|
1944
|
+
#line 804 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
|
1941
1945
|
{
|
1942
1946
|
((*yyvalp)) = Qnil;
|
1943
1947
|
}
|
1944
|
-
#line
|
1948
|
+
#line 1949 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1945
1949
|
break;
|
1946
1950
|
|
1947
1951
|
|
1948
|
-
#line
|
1952
|
+
#line 1953 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
|
1949
1953
|
default: break;
|
1950
1954
|
}
|
1951
1955
|
|
@@ -3718,7 +3722,7 @@ yypdumpstack (yyGLRStack* yystackp)
|
|
3718
3722
|
|
3719
3723
|
|
3720
3724
|
|
3721
|
-
#line
|
3725
|
+
#line 809 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:2551 */
|
3722
3726
|
|
3723
3727
|
|
3724
3728
|
/* functions **********************************************************/
|
@@ -3770,47 +3774,19 @@ void Init_ext_schema_parser(void)
|
|
3770
3774
|
cFieldRef = rb_const_get(cSlowBlink, rb_intern("FieldRef"));
|
3771
3775
|
cFieldTypeRef = rb_const_get(cSlowBlink, rb_intern("FieldTypeRef"));
|
3772
3776
|
|
3777
|
+
cLog = rb_const_get(cSlowBlink, rb_intern("Log"));
|
3778
|
+
|
3779
|
+
cError = rb_const_get(cSlowBlink, rb_intern("Error"));
|
3780
|
+
|
3773
3781
|
rb_define_singleton_method(cNamespace, "parse", parseFileBuffer, -1);
|
3774
3782
|
}
|
3775
3783
|
|
3776
3784
|
void yyerror(YYLTYPE *locp, yyscan_t scanner, VALUE filename, VALUE *tree, char const *msg, ... )
|
3777
3785
|
{
|
3778
|
-
|
3779
|
-
|
3780
|
-
|
3781
|
-
|
3782
|
-
int hdrLen;
|
3783
|
-
|
3784
|
-
if(filename != Qnil){
|
3785
|
-
|
3786
|
-
hdrLen = snprintf(error, sizeof(error), "%s:%i:%i: error: ", (const char *)RSTRING_PTR(filename), locp->first_line, locp->first_column);
|
3787
|
-
}
|
3788
|
-
else{
|
3789
|
-
|
3790
|
-
hdrLen = snprintf(error, sizeof(error), "%i:%i: error: ", locp->first_line, locp->first_column);
|
3791
|
-
}
|
3792
|
-
|
3793
|
-
if((hdrLen > 0) && (hdrLen <= sizeof(error))){
|
3794
|
-
|
3795
|
-
va_list argptr;
|
3796
|
-
va_start(argptr, msg);
|
3797
|
-
retval = vsnprintf(&error[hdrLen], sizeof(error) - hdrLen, msg, argptr);
|
3798
|
-
va_end(argptr);
|
3799
|
-
|
3800
|
-
if((retval > 0) && ((hdrLen + retval) <= sizeof(error))){
|
3801
|
-
|
3802
|
-
rbString = rb_str_new((const char *)error, (hdrLen + retval));
|
3803
|
-
rb_io_puts(1, &rbString, rb_stderr);
|
3804
|
-
}
|
3805
|
-
else{
|
3806
|
-
|
3807
|
-
rb_bug("yyerror buffer is too short to contain error message");
|
3808
|
-
}
|
3809
|
-
}
|
3810
|
-
else{
|
3811
|
-
|
3812
|
-
rb_bug("yyerror buffer is too short to contain error message");
|
3813
|
-
}
|
3786
|
+
VALUE message = newLocation(filename, locp);
|
3787
|
+
rb_str_append(message, rb_str_new2(": error: "));
|
3788
|
+
rb_str_append(message, rb_str_new2(msg));
|
3789
|
+
rb_funcall(cLog, rb_intern("error"), 1, message);
|
3814
3790
|
}
|
3815
3791
|
|
3816
3792
|
/* static functions ***************************************************/
|
@@ -3821,23 +3797,47 @@ static VALUE parseFileBuffer(int argc, VALUE* argv, VALUE self)
|
|
3821
3797
|
VALUE tree = Qnil;
|
3822
3798
|
VALUE buffer;
|
3823
3799
|
VALUE opts;
|
3800
|
+
VALUE filename;
|
3801
|
+
int retval;
|
3824
3802
|
|
3825
3803
|
rb_scan_args(argc, argv, "10:", &buffer, &opts);
|
3826
3804
|
|
3805
|
+
if(buffer == Qnil){
|
3806
|
+
rb_raise(cError, "error: input must be a string");
|
3807
|
+
}
|
3808
|
+
|
3827
3809
|
if(opts == Qnil){
|
3828
3810
|
opts = rb_hash_new();
|
3829
3811
|
}
|
3830
3812
|
|
3831
|
-
|
3813
|
+
filename = rb_hash_aref(opts, ID2SYM(rb_intern("filename")));
|
3832
3814
|
|
3833
3815
|
if(yylex_init(&scanner) == 0){
|
3834
3816
|
|
3835
|
-
|
3817
|
+
if(yy_scan_bytes((const char *)RSTRING_PTR(buffer), RSTRING_LEN(buffer), scanner)){
|
3818
|
+
|
3819
|
+
retval = yyparse(scanner, filename, &tree);
|
3836
3820
|
|
3837
|
-
|
3821
|
+
yylex_destroy(scanner);
|
3822
|
+
|
3823
|
+
switch(retval){
|
3824
|
+
case 0:
|
3825
|
+
break;
|
3826
|
+
case 1:
|
3827
|
+
rb_raise(cError, "parse error");
|
3828
|
+
break;
|
3829
|
+
case 2:
|
3830
|
+
rb_bug("yyparse: bison parser reports memory exhaustion");
|
3831
|
+
break;
|
3832
|
+
default:
|
3833
|
+
rb_bug("yyparse: unknown return code");
|
3834
|
+
break;
|
3835
|
+
}
|
3838
3836
|
}
|
3837
|
+
else{
|
3839
3838
|
|
3840
|
-
|
3839
|
+
yylex_destroy(scanner);
|
3840
|
+
}
|
3841
3841
|
}
|
3842
3842
|
|
3843
3843
|
return tree;
|