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.
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;