slow_blink 0.0.3 → 0.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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;
|