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.
Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/ext/slow_blink/ext_schema_parser/parser.c +245 -245
  3. data/lib/slow_blink/annotatable.rb +1 -2
  4. data/lib/slow_blink/annotation.rb +8 -1
  5. data/lib/slow_blink/compact_encoder.rb +1 -0
  6. data/lib/slow_blink/definition.rb +34 -10
  7. data/lib/slow_blink/enumeration.rb +15 -12
  8. data/lib/slow_blink/field.rb +9 -8
  9. data/lib/slow_blink/group.rb +61 -24
  10. data/lib/slow_blink/incremental_annotation.rb +7 -4
  11. data/lib/slow_blink/integer.rb +1 -1
  12. data/{test/tc_model.rb → lib/slow_blink/log.rb} +23 -40
  13. data/lib/slow_blink/message/binary.rb +39 -45
  14. data/lib/slow_blink/message/boolean.rb +25 -33
  15. data/lib/slow_blink/message/date.rb +2 -7
  16. data/lib/slow_blink/message/decimal.rb +1 -1
  17. data/lib/slow_blink/message/enumeration.rb +29 -33
  18. data/lib/slow_blink/message/field.rb +29 -37
  19. data/lib/slow_blink/message/fixed.rb +37 -45
  20. data/lib/slow_blink/message/floating_point.rb +24 -32
  21. data/lib/slow_blink/message/group.rb +172 -187
  22. data/lib/slow_blink/message/integer.rb +83 -132
  23. data/lib/slow_blink/message/model.rb +64 -63
  24. data/lib/slow_blink/message/sequence.rb +40 -48
  25. data/lib/slow_blink/message/string.rb +44 -51
  26. data/lib/slow_blink/message/time.rb +25 -40
  27. data/lib/slow_blink/message/time_of_day.rb +73 -86
  28. data/lib/slow_blink/name_with_id.rb +2 -6
  29. data/lib/slow_blink/namespace.rb +36 -36
  30. data/lib/slow_blink/ref.rb +29 -13
  31. data/lib/slow_blink/schema.rb +26 -10
  32. data/lib/slow_blink/schema_buffer.rb +14 -0
  33. data/lib/slow_blink/sequence.rb +16 -20
  34. data/lib/slow_blink/string.rb +0 -2
  35. data/lib/slow_blink/sym.rb +7 -5
  36. data/lib/slow_blink/type.rb +8 -5
  37. data/lib/slow_blink/version.rb +1 -1
  38. data/test/tc_field.rb +41 -0
  39. data/test/tc_group.rb +11 -0
  40. data/test/tc_model_static_group.rb +114 -0
  41. data/test/{tc_model_encode.rb → tc_model_think_blink.rb} +58 -13
  42. data/test/tc_types.rb +39 -0
  43. 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 125 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:207 */
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 158 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:230 */
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, 127, 127, 134, 140, 148, 153, 157, 163, 170,
327
- 176, 182, 186, 193, 201, 207, 215, 223, 231, 237,
328
- 244, 255, 260, 267, 269, 273, 275, 277, 279, 281,
329
- 283, 285, 291, 299, 307, 313, 321, 327, 335, 343,
330
- 348, 355, 361, 369, 375, 381, 387, 393, 399, 405,
331
- 411, 417, 423, 431, 437, 443, 449, 455, 464, 470,
332
- 477, 483, 490, 499, 501, 506, 513, 518, 522, 528,
333
- 534, 542, 544, 551, 559, 561, 566, 573, 581, 586,
334
- 592, 598, 604, 612, 618, 625, 627, 629, 631, 635,
335
- 637, 641, 643, 647, 652, 657, 662, 667, 672, 677,
336
- 682, 687, 692, 697, 702, 707, 712, 717, 722, 727,
337
- 732, 737, 742, 747, 752, 757, 764, 768, 770, 774,
338
- 781, 785, 787, 791, 795, 799
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 128 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1142 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 135 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1151 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 141 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1160 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 149 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1168 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 158 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1177 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 164 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1185 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 171 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1194 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 177 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1203 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 187 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1213 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 194 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1222 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 202 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1231 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 208 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1242 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 216 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1253 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 224 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1262 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 232 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1271 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 238 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1279 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 245 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1291 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 256 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1298
+ #line 260 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1295
1299
  {
1296
1300
  ((*yyvalp)) = Qfalse;
1297
1301
  }
1298
- #line 1299 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 261 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1306
+ #line 265 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1303
1307
  {
1304
1308
  ((*yyvalp)) = Qtrue;
1305
1309
  }
1306
- #line 1307 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 286 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1316 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 292 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1325 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 300 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1334 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 308 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1343 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 314 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1352 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 322 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1361 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 328 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1370 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 336 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1379 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 344 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1387 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 349 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1395 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 356 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1404 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 362 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1413 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 370 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1422 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 376 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1431 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 382 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1440 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 388 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1449 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 394 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1458 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 400 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1467 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 406 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1476 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 412 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1485 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 418 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1494 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 424 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1503 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 432 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1512 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 438 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1521 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 444 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1530 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 450 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1539 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 456 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1548 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 465 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1557 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 471 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1565 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 478 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1574 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 484 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1582 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 491 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1592 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 502 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1600 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 507 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1608 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 514 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1616 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 523 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1625 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 529 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1633 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 535 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1642 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 545 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1650 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 552 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1659 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 562 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1667 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 567 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1675 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 574 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1684 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 582 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1692 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 587 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1701 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 593 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1710 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 599 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1719 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 605 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1728 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 613 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1737 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 619 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1745 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 648 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1753 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 653 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1761 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 658 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1769 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 663 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1777 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 668 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1785 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 673 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1793 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 678 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1801 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 683 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1809 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 688 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1817 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 693 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1825 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 698 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1833 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 703 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1841 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 708 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1849 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 713 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1857 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 718 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1865 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 723 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1873 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 728 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1881 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 733 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1889 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 738 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1897 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 743 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1905 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 748 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1913 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 753 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1921 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 758 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1929 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 775 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
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 1937 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 800 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1944
+ #line 804 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1941
1945
  {
1942
1946
  ((*yyvalp)) = Qnil;
1943
1947
  }
1944
- #line 1945 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1948
+ #line 1949 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1945
1949
  break;
1946
1950
 
1947
1951
 
1948
- #line 1949 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
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 805 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:2551 */
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
- int retval;
3779
- VALUE rbString;
3780
- char error[500];
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
- VALUE filename = rb_hash_aref(opts, ID2SYM(rb_intern("filename")));
3813
+ filename = rb_hash_aref(opts, ID2SYM(rb_intern("filename")));
3832
3814
 
3833
3815
  if(yylex_init(&scanner) == 0){
3834
3816
 
3835
- if(yy_scan_bytes((const char *)RSTRING_PTR(buffer), RSTRING_LEN(buffer), scanner)){
3817
+ if(yy_scan_bytes((const char *)RSTRING_PTR(buffer), RSTRING_LEN(buffer), scanner)){
3818
+
3819
+ retval = yyparse(scanner, filename, &tree);
3836
3820
 
3837
- yyparse(scanner, filename, &tree);
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
- yylex_destroy(scanner);
3839
+ yylex_destroy(scanner);
3840
+ }
3841
3841
  }
3842
3842
 
3843
3843
  return tree;