slow_blink 0.0.6 → 0.0.7

Sign up to get free protection for your applications and to get access to all the features.
Files changed (62) hide show
  1. checksums.yaml +4 -4
  2. data/ext/slow_blink/ext_schema_parser/lexer.c +2793 -839
  3. data/ext/slow_blink/ext_schema_parser/lexer.h +14 -137
  4. data/ext/slow_blink/ext_schema_parser/parser.c +616 -670
  5. data/ext/slow_blink/ext_schema_parser/parser.h +6 -4
  6. data/ext/slow_blink/message/ext_compact_encoder/blink_compact.c +642 -0
  7. data/ext/slow_blink/message/ext_compact_encoder/blink_compact.h +411 -0
  8. data/ext/slow_blink/message/ext_compact_encoder/blink_debug.h +46 -0
  9. data/ext/slow_blink/message/ext_compact_encoder/blink_stream.c +314 -0
  10. data/ext/slow_blink/message/ext_compact_encoder/blink_stream.h +185 -0
  11. data/ext/slow_blink/message/ext_compact_encoder/ext_compact_encoder.c +382 -269
  12. data/lib/slow_blink/definition.rb +18 -53
  13. data/lib/slow_blink/dynamic_group.rb +8 -0
  14. data/lib/slow_blink/enum.rb +101 -0
  15. data/lib/slow_blink/field.rb +63 -33
  16. data/lib/slow_blink/generate_c/model.rb +89 -0
  17. data/lib/slow_blink/group.rb +119 -100
  18. data/lib/slow_blink/message/binary.rb +3 -4
  19. data/lib/slow_blink/message/boolean.rb +3 -4
  20. data/lib/slow_blink/message/date.rb +3 -4
  21. data/lib/slow_blink/message/decimal.rb +3 -5
  22. data/lib/slow_blink/message/{enumeration.rb → enum.rb} +17 -17
  23. data/lib/slow_blink/message/field.rb +77 -27
  24. data/lib/slow_blink/message/fixed.rb +5 -21
  25. data/lib/slow_blink/message/floating_point.rb +3 -4
  26. data/lib/slow_blink/message/group.rb +90 -161
  27. data/lib/slow_blink/message/integer.rb +24 -32
  28. data/lib/slow_blink/message/model.rb +50 -110
  29. data/lib/slow_blink/message/string.rb +3 -4
  30. data/lib/slow_blink/message/time.rb +5 -5
  31. data/lib/slow_blink/message/time_of_day.rb +5 -12
  32. data/lib/slow_blink/ref.rb +22 -71
  33. data/lib/slow_blink/schema.rb +64 -85
  34. data/lib/slow_blink/schema_buffer.rb +1 -4
  35. data/lib/slow_blink/static_group.rb +37 -0
  36. data/lib/slow_blink/string.rb +4 -5
  37. data/lib/slow_blink/sym.rb +8 -28
  38. data/lib/slow_blink/type.rb +10 -19
  39. data/lib/slow_blink/version.rb +1 -1
  40. data/lib/slow_blink.rb +1 -0
  41. data/test/tc_compact_encoder.rb +114 -147
  42. data/test/tc_inputs.rb +2 -4
  43. data/test/tc_model_string.rb +29 -0
  44. data/test/tc_schema_new.rb +212 -0
  45. metadata +17 -26
  46. data/ext/slow_blink/ext_schema_parser/common.h +0 -27
  47. data/ext/slow_blink/message/ext_compact_encoder/compact_encoder.c +0 -258
  48. data/ext/slow_blink/message/ext_compact_encoder/compact_encoder.h +0 -92
  49. data/lib/slow_blink/annotatable.rb +0 -48
  50. data/lib/slow_blink/annotation.rb +0 -47
  51. data/lib/slow_blink/enumeration.rb +0 -90
  52. data/lib/slow_blink/incremental_annotation.rb +0 -151
  53. data/lib/slow_blink/log.rb +0 -51
  54. data/lib/slow_blink/message/sequence.rb +0 -98
  55. data/lib/slow_blink/name_with_id.rb +0 -49
  56. data/lib/slow_blink/namespace.rb +0 -143
  57. data/lib/slow_blink/sequence.rb +0 -57
  58. data/test/tc_field.rb +0 -94
  59. data/test/tc_group.rb +0 -114
  60. data/test/tc_incr_annote.rb +0 -22
  61. data/test/tc_namespace.rb +0 -8
  62. data/test/tc_types.rb +0 -218
@@ -1,8 +1,8 @@
1
- /* A Bison parser, made by GNU Bison 3.0.2. */
1
+ /* A Bison parser, made by GNU Bison 3.0.4. */
2
2
 
3
3
  /* Skeleton implementation for Bison GLR parsers in C
4
4
 
5
- Copyright (C) 2002-2013 Free Software Foundation, Inc.
5
+ Copyright (C) 2002-2015 Free Software Foundation, Inc.
6
6
 
7
7
  This program is free software: you can redistribute it and/or modify
8
8
  it under the terms of the GNU General Public License as published by
@@ -36,7 +36,7 @@
36
36
  #define YYBISON 1
37
37
 
38
38
  /* Bison version. */
39
- #define YYBISON_VERSION "3.0.2"
39
+ #define YYBISON_VERSION "3.0.4"
40
40
 
41
41
  /* Skeleton name. */
42
42
  #define YYSKELETON_NAME "glr.c"
@@ -50,82 +50,27 @@
50
50
 
51
51
 
52
52
  /* First part of user declarations. */
53
- #line 6 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:207 */
53
+ #line 6 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:240 */
54
54
 
55
55
 
56
- /* includes ***********************************************************/
56
+ typedef void * yyscan_t;
57
+ #define YY_TYPEDEF_YY_SCANNER_T
57
58
 
58
- #include <stdio.h>
59
- #include <stdlib.h>
60
- #include <stdbool.h>
61
59
  #include <ruby.h>
62
- #include <assert.h>
63
60
 
61
+ #include "parser.h"
64
62
  #include "lexer.h"
65
63
 
66
- /* function prototypes ************************************************/
67
-
68
- void yyerror(YYLTYPE *locp, yyscan_t scanner, VALUE filename, VALUE *tree, char const *msg, ... );
69
-
70
- /* static function prototypes *****************************************/
64
+ void yyerror(YYLTYPE *locp, yyscan_t scanner, VALUE filename, VALUE *tree, char const *msg);
71
65
 
72
66
  static VALUE parseFileBuffer(int argc, VALUE* argv, VALUE self);
73
- static VALUE newLocation(VALUE filename, const YYLTYPE *location);
74
-
75
- /* static variables ***************************************************/
67
+ static VALUE newLocation(VALUE filename, const YYLTYPE *locp);
76
68
 
77
69
  static VALUE cSlowBlink;
78
-
79
- static VALUE cNameWithID;
80
-
81
- static VALUE cNamespace;
82
- static VALUE cGroup;
83
- static VALUE cField;
84
- static VALUE cAnnotation;
85
- static VALUE cIncrementalAnnotation;
86
-
87
- static VALUE cDefinition;
88
- static VALUE cENUMERATION;
89
- static VALUE cSym;
90
-
91
- static VALUE cI8;
92
- static VALUE cI16;
93
- static VALUE cI32;
94
- static VALUE cI64;
95
- static VALUE cU8;
96
- static VALUE cU16;
97
- static VALUE cU32;
98
- static VALUE cU64;
99
- static VALUE cFLOATING_POINT;
100
- static VALUE cDECIMAL;
101
- static VALUE cFIXED;
102
- static VALUE cSEQUENCE;
103
- static VALUE cSTRING;
104
- static VALUE cBOOLEAN;
105
- static VALUE cOBJECT;
106
- static VALUE cBINARY;
107
- static VALUE cREF;
108
-
109
- static VALUE cDATE;
110
- static VALUE cTIME_OF_DAY_MILLI;
111
- static VALUE cTIME_OF_DAY_NANO;
112
- static VALUE cMILLI_TIME;
113
- static VALUE cNANO_TIME;
114
-
115
- static VALUE cSchemaRef;
116
- static VALUE cDefinitionRef;
117
- static VALUE cDefinitionTypeRef;
118
- static VALUE cFieldRef;
119
- static VALUE cFieldTypeRef;
120
-
121
- static VALUE cLog;
122
-
123
70
  static VALUE cParseError;
124
71
 
125
- /* generated **********************************************************/
126
72
 
127
-
128
- #line 129 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:207 */
73
+ #line 74 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:240 */
129
74
 
130
75
  # ifndef YY_NULLPTR
131
76
  # if defined __cplusplus && 201103L <= __cplusplus
@@ -158,7 +103,7 @@ static YYLTYPE yyloc_default
158
103
 
159
104
  /* Copy the second part of user declarations. */
160
105
 
161
- #line 162 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:230 */
106
+ #line 107 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:263 */
162
107
 
163
108
  #include <stdio.h>
164
109
  #include <stdlib.h>
@@ -263,18 +208,18 @@ static YYLTYPE yyloc_default
263
208
  #endif
264
209
 
265
210
  /* YYFINAL -- State number of the termination state. */
266
- #define YYFINAL 49
211
+ #define YYFINAL 10
267
212
  /* YYLAST -- Last index in YYTABLE. */
268
- #define YYLAST 180
213
+ #define YYLAST 188
269
214
 
270
215
  /* YYNTOKENS -- Number of terminals. */
271
- #define YYNTOKENS 49
216
+ #define YYNTOKENS 50
272
217
  /* YYNNTS -- Number of nonterminals. */
273
- #define YYNNTS 46
218
+ #define YYNNTS 48
274
219
  /* YYNRULES -- Number of rules. */
275
220
  #define YYNRULES 125
276
221
  /* YYNRULES -- Number of states. */
277
- #define YYNSTATES 158
222
+ #define YYNSTATES 159
278
223
  /* YYMAXRHS -- Maximum number of symbols on right-hand side of rule. */
279
224
  #define YYMAXRHS 5
280
225
  /* YYMAXLEFT -- Maximum number of symbols to the left of a handle
@@ -283,7 +228,7 @@ static YYLTYPE yyloc_default
283
228
 
284
229
  /* YYTRANSLATE(X) -- Bison symbol number corresponding to X. */
285
230
  #define YYUNDEFTOK 2
286
- #define YYMAXUTOK 290
231
+ #define YYMAXUTOK 291
287
232
 
288
233
  #define YYTRANSLATE(YYX) \
289
234
  ((unsigned int) (YYX) <= YYMAXUTOK ? yytranslate[YYX] : YYUNDEFTOK)
@@ -295,15 +240,15 @@ static const unsigned char yytranslate[] =
295
240
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
296
241
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
297
242
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
298
- 42, 43, 44, 2, 38, 2, 48, 46, 2, 2,
299
- 2, 2, 2, 2, 2, 2, 2, 2, 37, 2,
300
- 2, 36, 2, 39, 47, 2, 2, 2, 2, 2,
243
+ 43, 44, 45, 2, 39, 2, 49, 47, 2, 2,
244
+ 2, 2, 2, 2, 2, 2, 2, 2, 38, 2,
245
+ 2, 37, 2, 40, 48, 2, 2, 2, 2, 2,
301
246
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
302
247
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
303
- 2, 40, 2, 41, 2, 2, 2, 2, 2, 2,
248
+ 2, 41, 2, 42, 2, 2, 2, 2, 2, 2,
304
249
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
305
250
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
306
- 2, 2, 2, 2, 45, 2, 2, 2, 2, 2,
251
+ 2, 2, 2, 2, 46, 2, 2, 2, 2, 2,
307
252
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
308
253
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
309
254
  2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
@@ -320,26 +265,26 @@ static const unsigned char yytranslate[] =
320
265
  5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
321
266
  15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
322
267
  25, 26, 27, 28, 29, 30, 31, 32, 33, 34,
323
- 35
268
+ 35, 36
324
269
  };
325
270
 
326
271
  #if YYDEBUG
327
272
  /* YYRLINE[YYN] -- source line where rule number YYN was defined. */
328
273
  static const unsigned short int yyrline[] =
329
274
  {
330
- 0, 130, 130, 137, 143, 151, 156, 160, 166, 173,
331
- 179, 185, 189, 196, 204, 210, 218, 226, 234, 240,
332
- 247, 258, 263, 270, 272, 276, 278, 280, 282, 284,
333
- 286, 288, 294, 302, 310, 316, 324, 330, 338, 346,
334
- 351, 358, 364, 372, 378, 384, 390, 396, 402, 408,
335
- 414, 420, 426, 434, 440, 446, 452, 458, 467, 473,
336
- 480, 486, 493, 502, 504, 509, 516, 521, 525, 531,
337
- 537, 545, 547, 554, 562, 564, 569, 576, 584, 589,
338
- 595, 601, 607, 615, 621, 628, 630, 632, 634, 638,
339
- 640, 644, 646, 650, 655, 660, 665, 670, 675, 680,
340
- 685, 690, 695, 700, 705, 710, 715, 720, 725, 730,
341
- 735, 740, 745, 750, 755, 760, 767, 771, 773, 777,
342
- 784, 788, 790, 794, 798, 802
275
+ 0, 75, 75, 82, 88, 97, 104, 109, 116, 122,
276
+ 128, 132, 143, 145, 149, 161, 163, 172, 177, 184,
277
+ 190, 197, 211, 216, 223, 225, 229, 234, 236, 238,
278
+ 243, 248, 250, 257, 266, 273, 279, 288, 294, 303,
279
+ 313, 318, 325, 332, 342, 349, 356, 363, 370, 377,
280
+ 384, 391, 398, 405, 414, 421, 428, 435, 442, 452,
281
+ 460, 467, 475, 482, 492, 494, 499, 506, 511, 515,
282
+ 521, 527, 535, 537, 544, 554, 556, 561, 568, 578,
283
+ 585, 592, 600, 608, 619, 625, 632, 634, 636, 638,
284
+ 642, 644, 648, 650, 654, 659, 664, 669, 674, 679,
285
+ 684, 689, 694, 699, 704, 709, 714, 719, 724, 729,
286
+ 734, 739, 744, 749, 754, 759, 764, 771, 775, 777,
287
+ 781, 785, 787, 791, 795, 799
343
288
  };
344
289
  #endif
345
290
 
@@ -348,48 +293,48 @@ static const unsigned short int yyrline[] =
348
293
  First, the terminals, then, starting at YYNTOKENS, nonterminals. */
349
294
  static const char *const yytname[] =
350
295
  {
351
- "$end", "error", "$undefined", "\"i8\"", "\"i16\"", "\"i32\"",
352
- "\"i64\"", "\"u8\"", "\"u16\"", "\"u32\"", "\"u64\"", "\"f64\"",
353
- "\"decimal\"", "\"date\"", "\"timeOfDayMilli\"", "\"timeOfDayNano\"",
354
- "\"nanotime\"", "\"millitime\"", "\"boolean\"", "\"string\"",
355
- "\"object\"", "\"namespace\"", "\"type\"", "\"schema\"", "\"binary\"",
356
- "\"fixed\"", "\"<-\"", "\"->\"", "\"hexnum\"", "\"uint\"", "\"int\"",
357
- "\"name\"", "\"ncName\"", "\"\\\\ncName\"", "\"cName\"",
358
- "\"\\\"<annotation>\\\" or '<annotation>'\"", "'='", "':'", "','", "'?'",
359
- "'['", "']'", "'('", "')'", "'*'", "'|'", "'/'", "'@'", "'.'", "$accept",
360
- "top", "namespace", "defs", "defList", "def", "define", "groupDef",
361
- "fields", "field", "opt", "type", "single", "sequence", "string",
362
- "binary", "fixed", "size", "ref", "number", "time", "enum", "symList",
363
- "sym", "val", "annots", "annotList", "annot", "literal", "nameWithId",
364
- "id", "incrAnnot", "compRef", "incrAnnotList", "incrAnnotItem", "qName",
365
- "qNameOrKeyword", "keyword", "cName", "name", "nsDecl", "literalSegment",
366
- "int", "uInt", "hexNum", "e", YY_NULLPTR
296
+ "EOF", "error", "$undefined", "\"i8\"", "\"i16\"", "\"i32\"", "\"i64\"",
297
+ "\"u8\"", "\"u16\"", "\"u32\"", "\"u64\"", "\"f64\"", "\"decimal\"",
298
+ "\"date\"", "\"timeOfDayMilli\"", "\"timeOfDayNano\"", "\"nanotime\"",
299
+ "\"millitime\"", "\"boolean\"", "\"string\"", "\"object\"",
300
+ "\"namespace\"", "\"type\"", "\"schema\"", "\"binary\"", "\"fixed\"",
301
+ "\"<-\"", "\"->\"", "\"hexnum\"", "\"uint\"", "\"int\"", "\"name\"",
302
+ "\"ncName\"", "\"\\\\ncName\"", "\"cName\"",
303
+ "\"\\\"<annotation>\\\" or '<annotation>'\"", "UNKNOWN", "'='", "':'",
304
+ "','", "'?'", "'['", "']'", "'('", "')'", "'*'", "'|'", "'/'", "'@'",
305
+ "'.'", "$accept", "top", "namespace", "nsDecl", "defs", "def", "define",
306
+ "enumOrType", "groupDef", "super", "body", "fields", "field", "opt",
307
+ "type", "single", "sequence", "string", "binary", "fixed", "size", "ref",
308
+ "number", "time", "enum", "symList", "sym", "val", "annots", "annotList",
309
+ "annot", "literal", "nameWithId", "id", "incrAnnot", "compRef",
310
+ "incrAnnotList", "incrAnnotItem", "qName", "qNameOrKeyword", "keyword",
311
+ "cName", "name", "literalSegment", "int", "uInt", "hexNum", "e", YY_NULLPTR
367
312
  };
368
313
  #endif
369
314
 
370
- #define YYPACT_NINF -93
371
- #define YYTABLE_NINF -62
315
+ #define YYPACT_NINF -91
316
+ #define YYTABLE_NINF -63
372
317
 
373
318
  /* YYPACT[STATE-NUM] -- Index in YYTABLE of the portion describing
374
319
  STATE-NUM. */
375
320
  static const short int yypact[] =
376
321
  {
377
- 80, -25, -93, -93, -93, -93, 146, 21, -93, -93,
378
- 92, -93, -25, 3, -93, -93, -4, -6, -93, -93,
379
- 96, 47, -93, -93, -93, -93, -93, -93, -93, -93,
380
- -93, -93, -93, -93, -93, -93, -93, -93, -93, -93,
381
- -93, -93, -93, -93, -93, -93, -93, 12, -93, -93,
382
- -93, -93, -93, -93, -18, 5, -93, 76, 30, -16,
383
- -93, 22, 3, 75, 36, -17, -93, -93, -93, -93,
384
- -93, -93, -93, 76, -93, 13, -93, 22, -93, 24,
385
- -93, 20, -93, -93, -93, -93, -93, -93, -93, -93,
386
- -93, -93, -93, -93, -93, -93, -93, -93, 33, -93,
387
- 33, 33, 3, -93, 56, -93, -93, -93, -93, -93,
388
- -93, -93, -93, 19, -93, -25, 53, 71, -93, -93,
389
- -93, -93, -93, 88, -93, 3, 3, -17, -93, -93,
390
- -93, -93, 61, 3, 65, -93, 3, -93, -93, -25,
391
- 74, 78, -93, 73, 43, -93, -93, 24, 93, -93,
392
- -93, -93, -93, -93, -93, -93, -93, -93
322
+ 19, -13, 17, -91, -91, 67, -91, -91, -91, -91,
323
+ -91, 70, -91, -91, 64, -91, -13, 7, -91, -91,
324
+ 33, 14, -91, -91, -91, -91, -91, -91, -91, -91,
325
+ -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
326
+ -91, -91, -91, -91, -91, -91, -91, -91, -91, 28,
327
+ -91, -91, -91, 9, -3, -91, 77, 68, -17, 60,
328
+ 18, -23, 81, -91, 29, -91, -91, -91, -91, -91,
329
+ -91, -91, 77, -91, 61, -91, 60, -91, -91, -91,
330
+ -91, -91, -91, -91, -91, -91, -91, -91, -91, -91,
331
+ -91, -91, -91, -91, 66, -91, 66, 66, 7, -91,
332
+ -91, 71, -91, -91, -91, -91, -91, -91, -91, -91,
333
+ 73, -91, -13, 72, -91, 7, -91, -91, -91, -91,
334
+ -91, -91, -91, 91, -91, 29, -91, -91, -91, -91,
335
+ 74, 7, 75, -91, 82, -91, 154, -91, 76, 79,
336
+ -91, 80, -16, -91, -91, 7, 7, -91, -91, -91,
337
+ -91, -91, -91, -91, -13, 87, -91, -91, -91
393
338
  };
394
339
 
395
340
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -397,42 +342,42 @@ static const short int yypact[] =
397
342
  means the default is an error. */
398
343
  static const unsigned char yydefact[] =
399
344
  {
400
- 125, 0, 78, 117, 118, 116, 0, 0, 2, 3,
401
- 6, 7, 0, 67, 68, 11, 0, 79, 90, 89,
402
- 125, 66, 119, 93, 94, 95, 96, 97, 98, 99,
403
- 100, 101, 102, 103, 104, 105, 106, 107, 108, 109,
404
- 112, 113, 114, 115, 110, 111, 91, 0, 92, 1,
405
- 8, 66, 9, 10, 14, 125, 69, 0, 77, 0,
406
- 4, 0, 125, 0, 0, 0, 73, 74, 87, 86,
407
- 85, 88, 83, 0, 80, 81, 120, 70, 71, 17,
408
- 18, 0, 43, 44, 45, 46, 47, 48, 49, 50,
409
- 51, 52, 53, 54, 55, 56, 57, 31, 34, 32,
410
- 36, 0, 125, 13, 23, 24, 28, 29, 30, 25,
411
- 27, 26, 12, 0, 60, 0, 41, 15, 124, 123,
412
- 75, 76, 84, 0, 72, 125, 125, 0, 35, 37,
413
- 38, 58, 0, 125, 125, 42, 125, 82, 19, 0,
414
- 0, 0, 33, 59, 0, 62, 63, 16, 125, 39,
415
- 40, 122, 121, 64, 65, 22, 20, 21
345
+ 125, 0, 0, 2, 125, 3, 6, 118, 119, 5,
346
+ 1, 4, 79, 117, 0, 7, 0, 68, 69, 10,
347
+ 0, 80, 91, 90, 67, 94, 95, 96, 97, 98,
348
+ 99, 100, 101, 102, 103, 104, 105, 106, 107, 108,
349
+ 109, 110, 113, 114, 115, 116, 111, 112, 92, 0,
350
+ 93, 8, 9, 125, 125, 70, 0, 78, 0, 0,
351
+ 0, 0, 125, 15, 0, 74, 75, 88, 87, 86,
352
+ 89, 84, 0, 81, 82, 120, 71, 72, 44, 45,
353
+ 46, 47, 48, 49, 50, 51, 52, 53, 54, 55,
354
+ 56, 57, 58, 32, 35, 33, 37, 0, 125, 11,
355
+ 13, 24, 25, 29, 30, 31, 26, 28, 27, 12,
356
+ 0, 61, 0, 42, 16, 125, 14, 17, 124, 123,
357
+ 76, 77, 85, 0, 73, 0, 36, 38, 39, 59,
358
+ 0, 125, 125, 43, 18, 19, 0, 83, 0, 0,
359
+ 34, 60, 0, 63, 64, 125, 125, 40, 41, 122,
360
+ 121, 65, 66, 20, 0, 125, 23, 21, 22
416
361
  };
417
362
 
418
363
  /* YYPGOTO[NTERM-NUM]. */
419
364
  static const signed char yypgoto[] =
420
365
  {
421
- -93, -93, -93, 111, -93, 123, -93, -93, -1, 11,
422
- -93, 57, -93, -93, -93, -93, -93, -86, -93, -93,
423
- -93, -93, -93, -92, -93, -59, -93, -8, -93, -2,
424
- -93, -93, -93, -93, 68, -5, -93, -93, -93, 1,
425
- -93, 67, -93, 15, -81, 0
366
+ -91, -91, -91, -91, 124, -91, -91, -91, -91, -91,
367
+ -91, -91, -15, -91, -7, -91, -91, -91, -91, -91,
368
+ -5, -91, -91, -91, -91, -91, -90, -91, -4, -91,
369
+ -11, -91, -21, -91, -91, -91, -91, 59, -12, -91,
370
+ -91, -91, 2, 58, -91, 10, -86, 0
426
371
  };
427
372
 
428
373
  /* YYDEFGOTO[NTERM-NUM]. */
429
374
  static const short int yydefgoto[] =
430
375
  {
431
- -1, 7, 8, 9, 10, 11, 52, 53, 79, 80,
432
- 156, 103, 104, 105, 106, 107, 108, 128, 109, 110,
433
- 111, 112, 113, 114, 145, 12, 13, 14, 77, 54,
434
- 66, 15, 16, 58, 72, 17, 47, 48, 18, 19,
435
- 20, 78, 153, 120, 121, 51
376
+ -1, 2, 3, 4, 5, 15, 51, 99, 52, 62,
377
+ 116, 134, 135, 157, 100, 101, 102, 103, 104, 105,
378
+ 126, 106, 107, 108, 109, 110, 111, 143, 112, 17,
379
+ 18, 76, 53, 65, 19, 20, 57, 71, 21, 49,
380
+ 50, 22, 23, 77, 151, 120, 121, 24
436
381
  };
437
382
 
438
383
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
@@ -440,105 +385,105 @@ static const short int yydefgoto[] =
440
385
  number is the opposite. If YYTABLE_NINF, syntax error. */
441
386
  static const short int yytable[] =
442
387
  {
443
- 21, 46, 22, 81, 115, 56, 74, 3, 4, 62,
444
- 131, 118, 119, 55, 129, 130, 3, 4, 63, 64,
445
- 21, 49, 57, 82, 83, 84, 85, 86, 87, 88,
446
- 89, 90, 91, 92, 93, 94, 95, 96, 97, 98,
447
- 99, 143, 59, 115, 100, 101, 141, -5, 61, 71,
448
- 6, 65, 3, 4, 5, 67, 73, 76, 116, 117,
449
- 75, 123, 125, 154, 133, 71, 81, 139, 3, 4,
450
- 5, 118, 151, 152, 115, 127, 116, 81, 82, 83,
451
- 84, 85, 86, 87, 88, 89, 90, 91, 92, 93,
452
- 94, 95, 96, 97, 98, 99, 132, 135, 136, 100,
453
- 101, 1, 142, 2, 68, 69, 70, 3, 4, 5,
454
- 137, 144, 3, 4, 5, 2, 134, 149, -61, 2,
455
- 102, 150, 6, 6, 3, 4, 5, 6, 3, 4,
456
- 5, 60, 155, 50, 146, 147, 138, 148, 126, 6,
457
- 55, 122, 140, 6, 124, 0, 0, 0, 157, 23,
458
- 24, 25, 26, 27, 28, 29, 30, 31, 32, 33,
459
- 34, 35, 36, 37, 38, 39, 40, 41, 42, 43,
460
- 44, 45, 0, 0, 0, 0, 0, 0, 3, 4,
461
- 5
388
+ 6, 16, 48, 9, 6, 73, 55, 16, 129, 7,
389
+ 8, 13, 118, 149, 150, 7, 8, 10, 54, 7,
390
+ 8, 78, 79, 80, 81, 82, 83, 84, 85, 86,
391
+ 87, 88, 89, 90, 91, 92, 93, 94, 95, 139,
392
+ 1, 141, 96, 97, 64, 70, 60, 61, 113, 114,
393
+ 7, 8, 13, 63, 66, 14, 152, 118, 119, 56,
394
+ 74, 70, 117, 58, 98, 59, 14, 25, 26, 27,
395
+ 28, 29, 30, 31, 32, 33, 34, 35, 36, 37,
396
+ 38, 39, 40, 41, 42, 43, 44, 45, 46, 47,
397
+ 12, 127, 128, 12, 72, 75, 7, 8, 13, 7,
398
+ 8, 13, 7, 8, 13, 67, 68, 69, 115, 125,
399
+ 123, 136, 130, 137, 132, 14, 140, 133, 14, 131,
400
+ 147, 145, 142, 148, 113, 14, -62, 156, 11, 146,
401
+ 153, 122, 144, 155, 124, 138, 0, 0, 0, 0,
402
+ 0, 136, 154, 0, 0, 0, 0, 0, 0, 0,
403
+ 0, 0, 0, 0, 0, 158, 54, 78, 79, 80,
404
+ 81, 82, 83, 84, 85, 86, 87, 88, 89, 90,
405
+ 91, 92, 93, 94, 95, 0, 0, 0, 96, 97,
406
+ 0, 0, 0, 0, 0, 0, 7, 8, 13
462
407
  };
463
408
 
464
409
  static const short int yycheck[] =
465
410
  {
466
- 0, 6, 1, 62, 63, 13, 22, 32, 33, 27,
467
- 102, 28, 29, 12, 100, 101, 32, 33, 36, 37,
468
- 20, 0, 26, 3, 4, 5, 6, 7, 8, 9,
469
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
470
- 20, 133, 48, 102, 24, 25, 127, 0, 36, 57,
471
- 47, 46, 32, 33, 34, 55, 26, 35, 63, 64,
472
- 59, 48, 38, 144, 45, 73, 125, 126, 32, 33,
473
- 34, 28, 29, 30, 133, 42, 81, 136, 3, 4,
474
- 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
475
- 15, 16, 17, 18, 19, 20, 40, 44, 27, 24,
476
- 25, 21, 41, 23, 28, 29, 30, 32, 33, 34,
477
- 22, 46, 32, 33, 34, 23, 115, 43, 45, 23,
478
- 45, 43, 47, 47, 32, 33, 34, 47, 32, 33,
479
- 34, 20, 39, 10, 134, 136, 125, 139, 81, 47,
480
- 139, 73, 127, 47, 77, -1, -1, -1, 148, 3,
481
- 4, 5, 6, 7, 8, 9, 10, 11, 12, 13,
482
- 14, 15, 16, 17, 18, 19, 20, 21, 22, 23,
483
- 24, 25, -1, -1, -1, -1, -1, -1, 32, 33,
484
- 34
411
+ 0, 5, 14, 1, 4, 22, 17, 11, 98, 32,
412
+ 33, 34, 28, 29, 30, 32, 33, 0, 16, 32,
413
+ 33, 3, 4, 5, 6, 7, 8, 9, 10, 11,
414
+ 12, 13, 14, 15, 16, 17, 18, 19, 20, 125,
415
+ 21, 131, 24, 25, 47, 56, 37, 38, 60, 61,
416
+ 32, 33, 34, 53, 54, 48, 142, 28, 29, 26,
417
+ 58, 72, 62, 49, 46, 37, 48, 3, 4, 5,
418
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
419
+ 16, 17, 18, 19, 20, 21, 22, 23, 24, 25,
420
+ 23, 96, 97, 23, 26, 35, 32, 33, 34, 32,
421
+ 33, 34, 32, 33, 34, 28, 29, 30, 27, 43,
422
+ 49, 115, 41, 22, 112, 48, 42, 45, 48, 46,
423
+ 44, 39, 47, 44, 136, 48, 46, 40, 4, 136,
424
+ 145, 72, 132, 154, 76, 125, -1, -1, -1, -1,
425
+ -1, 145, 146, -1, -1, -1, -1, -1, -1, -1,
426
+ -1, -1, -1, -1, -1, 155, 154, 3, 4, 5,
427
+ 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,
428
+ 16, 17, 18, 19, 20, -1, -1, -1, 24, 25,
429
+ -1, -1, -1, -1, -1, -1, 32, 33, 34
485
430
  };
486
431
 
487
432
  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
488
433
  symbol of state STATE-NUM. */
489
434
  static const unsigned char yystos[] =
490
435
  {
491
- 0, 21, 23, 32, 33, 34, 47, 50, 51, 52,
492
- 53, 54, 74, 75, 76, 80, 81, 84, 87, 88,
493
- 89, 94, 88, 3, 4, 5, 6, 7, 8, 9,
494
- 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
495
- 20, 21, 22, 23, 24, 25, 84, 85, 86, 0,
496
- 54, 94, 55, 56, 78, 88, 76, 26, 82, 48,
497
- 52, 36, 27, 36, 37, 46, 79, 94, 28, 29,
498
- 30, 76, 83, 26, 22, 88, 35, 77, 90, 57,
499
- 58, 74, 3, 4, 5, 6, 7, 8, 9, 10,
500
- 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
501
- 24, 25, 45, 60, 61, 62, 63, 64, 65, 67,
502
- 68, 69, 70, 71, 72, 74, 84, 84, 28, 29,
503
- 92, 93, 83, 48, 90, 38, 60, 42, 66, 66,
504
- 66, 72, 40, 45, 88, 44, 27, 22, 58, 74,
505
- 92, 93, 41, 72, 46, 73, 94, 57, 78, 43,
506
- 43, 29, 30, 91, 93, 39, 59, 94
436
+ 0, 21, 51, 52, 53, 54, 97, 32, 33, 92,
437
+ 0, 54, 23, 34, 48, 55, 78, 79, 80, 84,
438
+ 85, 88, 91, 92, 97, 3, 4, 5, 6, 7,
439
+ 8, 9, 10, 11, 12, 13, 14, 15, 16, 17,
440
+ 18, 19, 20, 21, 22, 23, 24, 25, 88, 89,
441
+ 90, 56, 58, 82, 92, 80, 26, 86, 49, 37,
442
+ 37, 38, 59, 97, 47, 83, 97, 28, 29, 30,
443
+ 80, 87, 26, 22, 92, 35, 81, 93, 3, 4,
444
+ 5, 6, 7, 8, 9, 10, 11, 12, 13, 14,
445
+ 15, 16, 17, 18, 19, 20, 24, 25, 46, 57,
446
+ 64, 65, 66, 67, 68, 69, 71, 72, 73, 74,
447
+ 75, 76, 78, 88, 88, 27, 60, 97, 28, 29,
448
+ 95, 96, 87, 49, 93, 43, 70, 70, 70, 76,
449
+ 41, 46, 92, 45, 61, 62, 78, 22, 95, 96,
450
+ 42, 76, 47, 77, 97, 39, 64, 44, 44, 29,
451
+ 30, 94, 96, 62, 78, 82, 40, 63, 97
507
452
  };
508
453
 
509
454
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
510
455
  static const unsigned char yyr1[] =
511
456
  {
512
- 0, 49, 50, 51, 51, 52, 52, 53, 53, 54,
513
- 54, 54, 55, 55, 56, 56, 56, 56, 57, 57,
514
- 58, 59, 59, 60, 60, 61, 61, 61, 61, 61,
515
- 61, 61, 61, 62, 63, 63, 64, 64, 65, 66,
516
- 66, 67, 67, 68, 68, 68, 68, 68, 68, 68,
517
- 68, 68, 68, 69, 69, 69, 69, 69, 70, 70,
518
- 71, 71, 72, 73, 73, 73, 74, 74, 75, 75,
519
- 76, 77, 77, 78, 79, 79, 79, 80, 81, 81,
520
- 81, 81, 81, 82, 82, 83, 83, 83, 83, 84,
521
- 84, 85, 85, 86, 86, 86, 86, 86, 86, 86,
522
- 86, 86, 86, 86, 86, 86, 86, 86, 86, 86,
523
- 86, 86, 86, 86, 86, 86, 87, 88, 88, 89,
524
- 90, 91, 91, 92, 93, 94
457
+ 0, 50, 51, 52, 52, 53, 54, 54, 55, 55,
458
+ 55, 56, 57, 57, 58, 59, 59, 60, 60, 61,
459
+ 61, 62, 63, 63, 64, 64, 65, 65, 65, 65,
460
+ 65, 65, 65, 65, 66, 67, 67, 68, 68, 69,
461
+ 70, 70, 71, 71, 72, 72, 72, 72, 72, 72,
462
+ 72, 72, 72, 72, 73, 73, 73, 73, 73, 74,
463
+ 74, 75, 75, 76, 77, 77, 77, 78, 78, 79,
464
+ 79, 80, 81, 81, 82, 83, 83, 83, 84, 85,
465
+ 85, 85, 85, 85, 86, 86, 87, 87, 87, 87,
466
+ 88, 88, 89, 89, 90, 90, 90, 90, 90, 90,
467
+ 90, 90, 90, 90, 90, 90, 90, 90, 90, 90,
468
+ 90, 90, 90, 90, 90, 90, 90, 91, 92, 92,
469
+ 93, 94, 94, 95, 96, 97
525
470
  };
526
471
 
527
472
  /* YYR2[YYN] -- Number of symbols on the right hand side of rule YYN. */
528
473
  static const unsigned char yyr2[] =
529
474
  {
530
- 0, 2, 1, 1, 2, 1, 1, 1, 2, 2,
531
- 2, 1, 3, 3, 1, 3, 5, 3, 1, 3,
532
- 5, 1, 1, 1, 1, 1, 1, 1, 1, 1,
533
- 1, 1, 1, 3, 1, 2, 1, 2, 2, 3,
534
- 3, 1, 2, 1, 1, 1, 1, 1, 1, 1,
535
- 1, 1, 1, 1, 1, 1, 1, 1, 2, 3,
536
- 1, 3, 3, 1, 2, 2, 1, 1, 1, 2,
537
- 4, 1, 2, 2, 1, 2, 2, 2, 1, 1,
538
- 3, 3, 5, 2, 3, 1, 1, 1, 1, 1,
475
+ 0, 2, 1, 1, 2, 2, 1, 2, 2, 2,
476
+ 1, 3, 1, 1, 3, 1, 2, 1, 2, 1,
477
+ 3, 5, 1, 1, 1, 1, 1, 1, 1, 1,
478
+ 1, 1, 1, 1, 3, 1, 2, 1, 2, 2,
479
+ 3, 3, 1, 2, 1, 1, 1, 1, 1, 1,
480
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
481
+ 3, 1, 3, 3, 1, 2, 2, 1, 1, 1,
482
+ 2, 4, 1, 2, 2, 1, 2, 2, 2, 1,
483
+ 1, 3, 3, 5, 2, 3, 1, 1, 1, 1,
484
+ 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
539
485
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
540
486
  1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
541
- 1, 1, 1, 1, 1, 1, 1, 1, 1, 2,
542
487
  1, 1, 1, 1, 1, 0
543
488
  };
544
489
 
@@ -609,20 +554,20 @@ static const unsigned char yyconflp[] =
609
554
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
610
555
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
611
556
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
557
+ 9, 11, 0, 0, 0, 0, 0, 0, 0, 0,
612
558
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
613
559
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
614
560
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
561
+ 0, 0, 0, 0, 0, 0, 0, 0, 0, 1,
562
+ 3, 0, 5, 7, 0, 0, 0, 0, 0, 0,
615
563
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
616
564
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
617
- 0, 0, 0, 0, 0, 0, 0, 13, 15, 0,
618
- 0, 0, 1, 3, 0, 0, 0, 0, 0, 0,
619
- 0, 0, 0, 0, 5, 7, 0, 0, 9, 11,
620
565
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
621
566
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
622
567
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
623
568
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
624
569
  0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
625
- 0
570
+ 0, 0, 0, 0, 0, 0, 0, 0, 0
626
571
  };
627
572
 
628
573
  /* YYCONFL[I] -- lists of conflicting rule numbers, each terminated by
@@ -630,7 +575,7 @@ static const unsigned char yyconflp[] =
630
575
  static const short int yyconfl[] =
631
576
  {
632
577
  0, 125, 0, 125, 0, 125, 0, 125, 0, 125,
633
- 0, 125, 0, 125, 0, 125, 0
578
+ 0, 125, 0
634
579
  };
635
580
 
636
581
  /* Error token number */
@@ -1135,818 +1080,871 @@ yyuserAction (yyRuleNum yyn, size_t yyrhslen, yyGLRStackItem* yyvsp,
1135
1080
  switch (yyn)
1136
1081
  {
1137
1082
  case 2:
1138
- #line 131 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1083
+ #line 76 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1139
1084
  {
1140
1085
  *tree = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1141
1086
  }
1142
- #line 1143 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1087
+ #line 1088 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1143
1088
  break;
1144
1089
 
1145
1090
  case 3:
1146
- #line 138 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1091
+ #line 83 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1147
1092
  {
1148
- VALUE args[] = {filename, Qnil, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
1149
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cNamespace);
1093
+ ((*yyvalp)) = rb_hash_new();
1094
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("defs")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1150
1095
  }
1151
- #line 1152 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1096
+ #line 1097 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1152
1097
  break;
1153
1098
 
1154
1099
  case 4:
1155
- #line 144 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1100
+ #line 89 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1156
1101
  {
1157
- VALUE args[] = {filename, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
1158
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cNamespace);
1102
+ ((*yyvalp)) = rb_hash_new();
1103
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("defs")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1104
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("name")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
1159
1105
  }
1160
- #line 1161 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1106
+ #line 1107 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1161
1107
  break;
1162
1108
 
1163
1109
  case 5:
1164
- #line 152 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1110
+ #line 98 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1165
1111
  {
1166
- ((*yyvalp)) = rb_ary_new();
1112
+ ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1167
1113
  }
1168
- #line 1169 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1114
+ #line 1115 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1169
1115
  break;
1170
1116
 
1171
- case 7:
1172
- #line 161 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1117
+ case 6:
1118
+ #line 105 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1173
1119
  {
1174
1120
  ((*yyvalp)) = rb_ary_new();
1175
- rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1176
1121
  }
1177
- #line 1178 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1122
+ #line 1123 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1178
1123
  break;
1179
1124
 
1180
- case 8:
1181
- #line 167 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1125
+ case 7:
1126
+ #line 110 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1182
1127
  {
1183
1128
  rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1184
1129
  }
1185
- #line 1186 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1186
- break;
1187
-
1188
- case 9:
1189
- #line 174 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1190
- {
1191
- ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1192
- rb_funcall(((*yyvalp)), rb_intern("annote"), 1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
1193
- }
1194
- #line 1195 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1130
+ #line 1131 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1195
1131
  break;
1196
1132
 
1197
- case 10:
1198
- #line 180 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1133
+ case 8:
1134
+ #line 117 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1199
1135
  {
1200
1136
  ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1201
- rb_funcall(((*yyvalp)), rb_intern("annote"), 1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
1137
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("annotes")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
1202
1138
  }
1203
- #line 1204 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1139
+ #line 1140 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1204
1140
  break;
1205
1141
 
1206
- case 12:
1207
- #line 190 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1142
+ case 9:
1143
+ #line 123 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1208
1144
  {
1209
- VALUE enumArgs[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
1210
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), rb_class_new_instance(sizeof(enumArgs)/sizeof(*enumArgs),enumArgs, cENUMERATION), newLocation(filename, &(*yylocp))};
1211
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cDefinition);
1145
+ ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1146
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("annotes")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
1212
1147
  }
1213
- #line 1214 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1148
+ #line 1149 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1214
1149
  break;
1215
1150
 
1216
- case 13:
1217
- #line 197 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1151
+ case 11:
1152
+ #line 133 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1218
1153
  {
1219
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
1220
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cDefinition);
1154
+ ((*yyvalp)) = rb_hash_new();
1155
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("Definition")));
1156
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("name")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
1157
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("type")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1158
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1221
1159
  }
1222
- #line 1223 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1160
+ #line 1161 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1223
1161
  break;
1224
1162
 
1225
1163
  case 14:
1226
- #line 205 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1164
+ #line 150 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1227
1165
  {
1228
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), Qnil, rb_ary_new(), newLocation(filename, &(*yylocp))};
1229
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cGroup);
1166
+ ((*yyvalp)) = rb_hash_new();
1167
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("Group")));
1168
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("name")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
1169
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("super")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
1170
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("fields")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1171
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1230
1172
  }
1231
- #line 1232 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1173
+ #line 1174 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1232
1174
  break;
1233
1175
 
1234
- case 15:
1235
- #line 211 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1176
+ case 16:
1177
+ #line 164 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1236
1178
  {
1237
- VALUE refArgs[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), Qfalse, newLocation(filename, &(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc))};
1238
- VALUE ref = rb_class_new_instance(sizeof(refArgs)/sizeof(*refArgs),refArgs, cREF);
1239
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), ref, rb_ary_new(), newLocation(filename, &(*yylocp))};
1240
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cGroup);
1179
+ ((*yyvalp)) = rb_hash_new();
1180
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yyloc)));
1181
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("ref")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1241
1182
  }
1242
- #line 1243 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1183
+ #line 1184 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1243
1184
  break;
1244
1185
 
1245
- case 16:
1246
- #line 219 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1186
+ case 17:
1187
+ #line 173 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1247
1188
  {
1248
- VALUE refArgs[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), Qfalse, newLocation(filename, &(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yyloc))};
1249
- VALUE ref = rb_class_new_instance(sizeof(refArgs)/sizeof(*refArgs),refArgs, cREF);
1250
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval), ref, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
1251
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cGroup);
1189
+ ((*yyvalp)) = rb_ary_new();
1252
1190
  }
1253
- #line 1254 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1191
+ #line 1192 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1254
1192
  break;
1255
1193
 
1256
- case 17:
1257
- #line 227 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1194
+ case 18:
1195
+ #line 178 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1258
1196
  {
1259
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), Qnil, (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
1260
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cGroup);
1197
+ ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1261
1198
  }
1262
- #line 1263 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1199
+ #line 1200 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1263
1200
  break;
1264
1201
 
1265
- case 18:
1266
- #line 235 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1202
+ case 19:
1203
+ #line 185 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1267
1204
  {
1268
1205
  ((*yyvalp)) = rb_ary_new();
1269
1206
  rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1270
1207
  }
1271
- #line 1272 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1208
+ #line 1209 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1272
1209
  break;
1273
1210
 
1274
- case 19:
1275
- #line 241 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1211
+ case 20:
1212
+ #line 191 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1276
1213
  {
1277
1214
  rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1278
1215
  }
1279
- #line 1280 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1216
+ #line 1217 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1280
1217
  break;
1281
1218
 
1282
- case 20:
1283
- #line 248 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1219
+ case 21:
1220
+ #line 198 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1284
1221
  {
1285
- 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))};
1286
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args),args, cField);
1287
-
1288
- rb_funcall(((*yyvalp)), rb_intern("annote"), 1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
1289
- rb_funcall((((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), rb_intern("annote"), 1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
1222
+ ((*yyvalp)) = rb_hash_new();
1223
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("Field")));
1224
+ rb_hash_aset((((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval), ID2SYM(rb_intern("annotes")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
1225
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("type")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-3)].yystate.yysemantics.yysval));
1226
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("annotes")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
1227
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("name")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
1228
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("optional")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1229
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1290
1230
  }
1291
- #line 1292 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1231
+ #line 1232 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1292
1232
  break;
1293
1233
 
1294
- case 21:
1295
- #line 259 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1234
+ case 22:
1235
+ #line 212 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1296
1236
  {
1297
1237
  ((*yyvalp)) = Qfalse;
1298
1238
  }
1299
- #line 1300 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1239
+ #line 1240 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1300
1240
  break;
1301
1241
 
1302
- case 22:
1303
- #line 264 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1242
+ case 23:
1243
+ #line 217 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1304
1244
  {
1305
1245
  ((*yyvalp)) = Qtrue;
1306
1246
  }
1307
- #line 1308 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1247
+ #line 1248 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1308
1248
  break;
1309
1249
 
1310
- case 31:
1311
- #line 289 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1250
+ case 26:
1251
+ #line 230 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1312
1252
  {
1313
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1314
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cBOOLEAN);
1253
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("REF")));
1315
1254
  }
1316
- #line 1317 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1255
+ #line 1256 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1256
+ break;
1257
+
1258
+ case 29:
1259
+ #line 239 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1260
+ {
1261
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("STRING")));
1262
+ }
1263
+ #line 1264 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1264
+ break;
1265
+
1266
+ case 30:
1267
+ #line 244 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1268
+ {
1269
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("BINARY")));
1270
+ }
1271
+ #line 1272 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1317
1272
  break;
1318
1273
 
1319
1274
  case 32:
1320
- #line 295 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1275
+ #line 251 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1321
1276
  {
1322
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1323
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cOBJECT);
1277
+ ((*yyvalp)) = rb_hash_new();
1278
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("BOOL")));
1279
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1324
1280
  }
1325
- #line 1326 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1281
+ #line 1282 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1326
1282
  break;
1327
1283
 
1328
1284
  case 33:
1329
- #line 303 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1285
+ #line 258 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1330
1286
  {
1331
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), newLocation(filename, &(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yyloc))};
1332
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cSEQUENCE);
1287
+ ((*yyvalp)) = rb_hash_new();
1288
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("OBJECT")));
1289
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1333
1290
  }
1334
- #line 1335 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1291
+ #line 1292 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1335
1292
  break;
1336
1293
 
1337
1294
  case 34:
1338
- #line 311 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1295
+ #line 267 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1339
1296
  {
1340
- VALUE args[] = {Qnil, newLocation(filename, &(*yylocp))};
1341
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cSTRING);
1297
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("sequence")), Qtrue);
1342
1298
  }
1343
- #line 1344 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1299
+ #line 1300 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1344
1300
  break;
1345
1301
 
1346
1302
  case 35:
1347
- #line 317 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1303
+ #line 274 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1348
1304
  {
1349
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
1350
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cSTRING);
1305
+ ((*yyvalp)) = rb_hash_new();
1306
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1351
1307
  }
1352
- #line 1353 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1308
+ #line 1309 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1353
1309
  break;
1354
1310
 
1355
1311
  case 36:
1356
- #line 325 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1312
+ #line 280 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1357
1313
  {
1358
- VALUE args[] = {Qnil, newLocation(filename, &(*yylocp))};
1359
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cBINARY);
1314
+ ((*yyvalp)) = rb_hash_new();
1315
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1316
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("size")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1360
1317
  }
1361
- #line 1362 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1318
+ #line 1319 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1362
1319
  break;
1363
1320
 
1364
1321
  case 37:
1365
- #line 331 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1322
+ #line 289 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1366
1323
  {
1367
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
1368
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cBINARY);
1324
+ ((*yyvalp)) = rb_hash_new();
1325
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1369
1326
  }
1370
- #line 1371 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1327
+ #line 1328 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1371
1328
  break;
1372
1329
 
1373
1330
  case 38:
1374
- #line 339 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1331
+ #line 295 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1375
1332
  {
1376
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
1377
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cFIXED);
1333
+ ((*yyvalp)) = rb_hash_new();
1334
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("size")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1335
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1378
1336
  }
1379
- #line 1380 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1337
+ #line 1338 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1380
1338
  break;
1381
1339
 
1382
1340
  case 39:
1383
- #line 347 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1341
+ #line 304 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1384
1342
  {
1385
- ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval);
1343
+ ((*yyvalp)) = rb_hash_new();
1344
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("FIXED")));
1345
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("size")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1346
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1386
1347
  }
1387
- #line 1388 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1348
+ #line 1349 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1388
1349
  break;
1389
1350
 
1390
1351
  case 40:
1391
- #line 352 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1352
+ #line 314 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1392
1353
  {
1393
1354
  ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval);
1394
1355
  }
1395
- #line 1396 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1356
+ #line 1357 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1396
1357
  break;
1397
1358
 
1398
1359
  case 41:
1399
- #line 359 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1360
+ #line 319 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1400
1361
  {
1401
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), Qfalse, newLocation(filename, &(*yylocp))};
1402
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cREF);
1362
+ ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval);
1403
1363
  }
1404
- #line 1405 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1364
+ #line 1365 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1405
1365
  break;
1406
1366
 
1407
1367
  case 42:
1408
- #line 365 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1368
+ #line 326 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1409
1369
  {
1410
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), Qtrue, newLocation(filename, &(*yylocp))};
1411
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cREF);
1370
+ ((*yyvalp)) = rb_hash_new();
1371
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("ref")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1372
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1412
1373
  }
1413
- #line 1414 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1374
+ #line 1375 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1414
1375
  break;
1415
1376
 
1416
1377
  case 43:
1417
- #line 373 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1378
+ #line 333 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1418
1379
  {
1419
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1420
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cI8);
1380
+ ((*yyvalp)) = rb_hash_new();
1381
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("ref")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
1382
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("dynamic")), Qtrue);
1383
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1421
1384
  }
1422
- #line 1423 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1385
+ #line 1386 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1423
1386
  break;
1424
1387
 
1425
1388
  case 44:
1426
- #line 379 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1389
+ #line 343 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1427
1390
  {
1428
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1429
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cI16);
1391
+ ((*yyvalp)) = rb_hash_new();
1392
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("I8")));
1393
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1430
1394
  }
1431
- #line 1432 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1395
+ #line 1396 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1432
1396
  break;
1433
1397
 
1434
1398
  case 45:
1435
- #line 385 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1399
+ #line 350 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1436
1400
  {
1437
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1438
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cI32);
1401
+ ((*yyvalp)) = rb_hash_new();
1402
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("I16")));
1403
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1439
1404
  }
1440
- #line 1441 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1405
+ #line 1406 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1441
1406
  break;
1442
1407
 
1443
1408
  case 46:
1444
- #line 391 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1409
+ #line 357 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1445
1410
  {
1446
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1447
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cI64);
1411
+ ((*yyvalp)) = rb_hash_new();
1412
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("I32")));
1413
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1448
1414
  }
1449
- #line 1450 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1415
+ #line 1416 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1450
1416
  break;
1451
1417
 
1452
1418
  case 47:
1453
- #line 397 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1419
+ #line 364 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1454
1420
  {
1455
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1456
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cU8);
1421
+ ((*yyvalp)) = rb_hash_new();
1422
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("I64")));
1423
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1457
1424
  }
1458
- #line 1459 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1425
+ #line 1426 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1459
1426
  break;
1460
1427
 
1461
1428
  case 48:
1462
- #line 403 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1429
+ #line 371 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1463
1430
  {
1464
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1465
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cU16);
1431
+ ((*yyvalp)) = rb_hash_new();
1432
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("U8")));
1433
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1466
1434
  }
1467
- #line 1468 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1435
+ #line 1436 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1468
1436
  break;
1469
1437
 
1470
1438
  case 49:
1471
- #line 409 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1439
+ #line 378 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1472
1440
  {
1473
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1474
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cU32);
1441
+ ((*yyvalp)) = rb_hash_new();
1442
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("U16")));
1443
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1475
1444
  }
1476
- #line 1477 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1445
+ #line 1446 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1477
1446
  break;
1478
1447
 
1479
1448
  case 50:
1480
- #line 415 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1449
+ #line 385 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1481
1450
  {
1482
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1483
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cU64);
1451
+ ((*yyvalp)) = rb_hash_new();
1452
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("U32")));
1453
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1484
1454
  }
1485
- #line 1486 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1455
+ #line 1456 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1486
1456
  break;
1487
1457
 
1488
1458
  case 51:
1489
- #line 421 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1459
+ #line 392 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1490
1460
  {
1491
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1492
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cFLOATING_POINT);
1461
+ ((*yyvalp)) = rb_hash_new();
1462
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("U64")));
1463
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1493
1464
  }
1494
- #line 1495 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1465
+ #line 1466 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1495
1466
  break;
1496
1467
 
1497
1468
  case 52:
1498
- #line 427 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1469
+ #line 399 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1499
1470
  {
1500
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1501
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cDECIMAL);
1471
+ ((*yyvalp)) = rb_hash_new();
1472
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("FLOATING_POINT")));
1473
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1502
1474
  }
1503
- #line 1504 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1475
+ #line 1476 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1504
1476
  break;
1505
1477
 
1506
1478
  case 53:
1507
- #line 435 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1479
+ #line 406 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1508
1480
  {
1509
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1510
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cDATE);
1481
+ ((*yyvalp)) = rb_hash_new();
1482
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("DECIMAL")));
1483
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1511
1484
  }
1512
- #line 1513 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1485
+ #line 1486 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1513
1486
  break;
1514
1487
 
1515
1488
  case 54:
1516
- #line 441 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1489
+ #line 415 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1517
1490
  {
1518
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1519
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cTIME_OF_DAY_MILLI);
1491
+ ((*yyvalp)) = rb_hash_new();
1492
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("DATE")));
1493
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1520
1494
  }
1521
- #line 1522 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1495
+ #line 1496 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1522
1496
  break;
1523
1497
 
1524
1498
  case 55:
1525
- #line 447 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1499
+ #line 422 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1526
1500
  {
1527
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1528
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cTIME_OF_DAY_NANO);
1501
+ ((*yyvalp)) = rb_hash_new();
1502
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("TIME_OF_DAY_MILLI")));
1503
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1529
1504
  }
1530
- #line 1531 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1505
+ #line 1506 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1531
1506
  break;
1532
1507
 
1533
1508
  case 56:
1534
- #line 453 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1509
+ #line 429 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1535
1510
  {
1536
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1537
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cNANO_TIME);
1511
+ ((*yyvalp)) = rb_hash_new();
1512
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("TIME_OF_DAY_NANO")));
1513
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1538
1514
  }
1539
- #line 1540 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1515
+ #line 1516 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1540
1516
  break;
1541
1517
 
1542
1518
  case 57:
1543
- #line 459 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1519
+ #line 436 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1544
1520
  {
1545
- VALUE args[] = {newLocation(filename, &(*yylocp))};
1546
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cMILLI_TIME);
1521
+ ((*yyvalp)) = rb_hash_new();
1522
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("NANO_TIME")));
1523
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1547
1524
  }
1548
- #line 1549 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1525
+ #line 1526 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1549
1526
  break;
1550
1527
 
1551
1528
  case 58:
1552
- #line 468 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1529
+ #line 443 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1553
1530
  {
1554
- ((*yyvalp)) = rb_ary_new();
1555
- rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1531
+ ((*yyvalp)) = rb_hash_new();
1532
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("MILLI_TIME")));
1533
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1556
1534
  }
1557
- #line 1558 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1535
+ #line 1536 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1558
1536
  break;
1559
1537
 
1560
1538
  case 59:
1561
- #line 474 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1539
+ #line 453 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1562
1540
  {
1563
- rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1541
+ ((*yyvalp)) = rb_hash_new();
1542
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("ENUM")));
1543
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("syms")), rb_ary_new());
1544
+ rb_ary_push(rb_hash_aref(((*yyvalp)), ID2SYM(rb_intern("syms"))), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1564
1545
  }
1565
- #line 1566 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1546
+ #line 1547 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1566
1547
  break;
1567
1548
 
1568
1549
  case 60:
1569
- #line 481 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1550
+ #line 461 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1570
1551
  {
1571
- ((*yyvalp)) = rb_ary_new();
1572
- rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1552
+ rb_ary_push(rb_hash_aref(((*yyvalp)), ID2SYM(rb_intern("syms"))), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1573
1553
  }
1574
- #line 1575 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1554
+ #line 1555 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1575
1555
  break;
1576
1556
 
1577
1557
  case 61:
1578
- #line 487 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1558
+ #line 468 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1579
1559
  {
1580
- rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1560
+ ((*yyvalp)) = rb_hash_new();
1561
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("ENUM")));
1562
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("syms")), rb_ary_new());
1563
+ rb_ary_push(rb_hash_aref(((*yyvalp)), ID2SYM(rb_intern("syms"))), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1581
1564
  }
1582
- #line 1583 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1565
+ #line 1566 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1583
1566
  break;
1584
1567
 
1585
1568
  case 62:
1586
- #line 494 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1569
+ #line 476 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1587
1570
  {
1588
- 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))};
1589
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cSym);
1590
- rb_funcall(((*yyvalp)), rb_intern("annote"), 1, (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
1571
+ rb_ary_push(rb_hash_aref(((*yyvalp)), ID2SYM(rb_intern("syms"))), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1591
1572
  }
1592
- #line 1593 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1573
+ #line 1574 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1593
1574
  break;
1594
1575
 
1595
- case 64:
1596
- #line 505 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1576
+ case 63:
1577
+ #line 483 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1597
1578
  {
1598
- ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1579
+ ((*yyvalp)) = rb_hash_new();
1580
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("annotes")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
1581
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("name")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
1582
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("value")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1599
1583
  }
1600
- #line 1601 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1584
+ #line 1585 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1601
1585
  break;
1602
1586
 
1603
1587
  case 65:
1604
- #line 510 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1588
+ #line 495 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1605
1589
  {
1606
1590
  ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1607
1591
  }
1608
- #line 1609 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1592
+ #line 1593 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1609
1593
  break;
1610
1594
 
1611
1595
  case 66:
1612
- #line 517 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1596
+ #line 500 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1613
1597
  {
1614
- ((*yyvalp)) = rb_ary_new();
1598
+ ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1615
1599
  }
1616
- #line 1617 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1600
+ #line 1601 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1617
1601
  break;
1618
1602
 
1619
- case 68:
1620
- #line 526 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1603
+ case 67:
1604
+ #line 507 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1621
1605
  {
1622
1606
  ((*yyvalp)) = rb_ary_new();
1623
- rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1624
1607
  }
1625
- #line 1626 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1608
+ #line 1609 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1626
1609
  break;
1627
1610
 
1628
1611
  case 69:
1629
- #line 532 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1612
+ #line 516 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1630
1613
  {
1631
- rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1614
+ ((*yyvalp)) = rb_ary_new();
1615
+ rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1632
1616
  }
1633
- #line 1634 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1617
+ #line 1618 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1634
1618
  break;
1635
1619
 
1636
1620
  case 70:
1637
- #line 538 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1621
+ #line 522 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1638
1622
  {
1639
- 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))};
1640
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cAnnotation);
1623
+ rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1641
1624
  }
1642
- #line 1643 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1625
+ #line 1626 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1643
1626
  break;
1644
1627
 
1645
- case 72:
1646
- #line 548 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1628
+ case 71:
1629
+ #line 528 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1647
1630
  {
1648
- rb_str_append(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1631
+ ((*yyvalp)) = rb_hash_new();
1632
+ rb_hash_aset(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1649
1633
  }
1650
- #line 1651 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1634
+ #line 1635 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1651
1635
  break;
1652
1636
 
1653
1637
  case 73:
1654
- #line 555 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1638
+ #line 538 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1655
1639
  {
1656
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
1657
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cNameWithID);
1640
+ rb_str_append(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1658
1641
  }
1659
- #line 1660 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1642
+ #line 1643 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1660
1643
  break;
1661
1644
 
1662
- case 75:
1663
- #line 565 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1645
+ case 74:
1646
+ #line 545 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1664
1647
  {
1665
- ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1648
+ ((*yyvalp)) = rb_hash_new();
1649
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("name")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval));
1650
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("id")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1651
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1666
1652
  }
1667
- #line 1668 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1653
+ #line 1654 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1668
1654
  break;
1669
1655
 
1670
1656
  case 76:
1671
- #line 570 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1657
+ #line 557 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1672
1658
  {
1673
1659
  ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1674
1660
  }
1675
- #line 1676 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1661
+ #line 1662 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1676
1662
  break;
1677
1663
 
1678
1664
  case 77:
1679
- #line 577 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1665
+ #line 562 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1680
1666
  {
1681
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-1)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval), newLocation(filename, &(*yylocp))};
1682
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cIncrementalAnnotation);
1667
+ ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1683
1668
  }
1684
- #line 1685 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1669
+ #line 1670 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1685
1670
  break;
1686
1671
 
1687
1672
  case 78:
1688
- #line 585 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1673
+ #line 569 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1689
1674
  {
1690
- ((*yyvalp)) = rb_class_new_instance(0, NULL, cSchemaRef);
1675
+ ((*yyvalp)) = rb_hash_new();
1676
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("class")), ID2SYM(rb_intern("IncrementalAnnotation")));
1677
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("annotes")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1678
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1691
1679
  }
1692
- #line 1693 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1680
+ #line 1681 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1693
1681
  break;
1694
1682
 
1695
1683
  case 79:
1696
- #line 590 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1684
+ #line 579 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1697
1685
  {
1698
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
1699
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cDefinitionRef);
1686
+ ((*yyvalp)) = rb_hash_new();
1687
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("ref")), ID2SYM(rb_intern("SCHEMA")));
1688
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1700
1689
  }
1701
- #line 1702 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1690
+ #line 1691 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1702
1691
  break;
1703
1692
 
1704
1693
  case 80:
1705
- #line 596 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1694
+ #line 586 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1706
1695
  {
1707
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)};
1708
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cDefinitionTypeRef);
1696
+ ((*yyvalp)) = rb_hash_new();
1697
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("ref")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1698
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1709
1699
  }
1710
- #line 1711 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1700
+ #line 1701 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1711
1701
  break;
1712
1702
 
1713
1703
  case 81:
1714
- #line 602 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1704
+ #line 593 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1715
1705
  {
1716
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval)};
1717
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cFieldRef);
1706
+ ((*yyvalp)) = rb_hash_new();
1707
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("ref")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
1708
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("type")), Qtrue);
1709
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1718
1710
  }
1719
- #line 1720 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1711
+ #line 1712 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1720
1712
  break;
1721
1713
 
1722
1714
  case 82:
1723
- #line 608 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1715
+ #line 601 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1724
1716
  {
1725
- VALUE args[] = {(((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval), (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval)};
1726
- ((*yyvalp)) = rb_class_new_instance(sizeof(args)/sizeof(*args), args, cFieldTypeRef);
1717
+ ((*yyvalp)) = rb_hash_new();
1718
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("ref")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
1719
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("name")), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1720
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1727
1721
  }
1728
- #line 1729 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1722
+ #line 1723 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1729
1723
  break;
1730
1724
 
1731
1725
  case 83:
1732
- #line 616 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1726
+ #line 609 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1733
1727
  {
1734
- ((*yyvalp)) = rb_ary_new();
1735
- rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1728
+ ((*yyvalp)) = rb_hash_new();
1729
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("ref")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-4)].yystate.yysemantics.yysval));
1730
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("type")), Qtrue);
1731
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("name")), (((yyGLRStackItem const *)yyvsp)[YYFILL (-2)].yystate.yysemantics.yysval));
1732
+ rb_hash_aset(((*yyvalp)), ID2SYM(rb_intern("loc")), newLocation(filename, &(*yylocp)));
1736
1733
  }
1737
- #line 1738 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1734
+ #line 1735 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1738
1735
  break;
1739
1736
 
1740
1737
  case 84:
1741
- #line 622 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1738
+ #line 620 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1742
1739
  {
1740
+ ((*yyvalp)) = rb_ary_new();
1743
1741
  rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1744
1742
  }
1745
- #line 1746 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1743
+ #line 1744 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1746
1744
  break;
1747
1745
 
1748
- case 93:
1749
- #line 651 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1746
+ case 85:
1747
+ #line 626 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1750
1748
  {
1751
- ((*yyvalp)) = rb_str_new2("i8");
1749
+ rb_ary_push(((*yyvalp)), (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval));
1752
1750
  }
1753
- #line 1754 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1751
+ #line 1752 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1754
1752
  break;
1755
1753
 
1756
1754
  case 94:
1757
- #line 656 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1755
+ #line 655 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1758
1756
  {
1759
- ((*yyvalp)) = rb_str_new2("i16");
1757
+ ((*yyvalp)) = rb_str_new2("i8");
1760
1758
  }
1761
- #line 1762 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1759
+ #line 1760 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1762
1760
  break;
1763
1761
 
1764
1762
  case 95:
1765
- #line 661 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1763
+ #line 660 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1766
1764
  {
1767
- ((*yyvalp)) = rb_str_new2("i32");
1765
+ ((*yyvalp)) = rb_str_new2("i16");
1768
1766
  }
1769
- #line 1770 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1767
+ #line 1768 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1770
1768
  break;
1771
1769
 
1772
1770
  case 96:
1773
- #line 666 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1771
+ #line 665 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1774
1772
  {
1775
- ((*yyvalp)) = rb_str_new2("i64");
1773
+ ((*yyvalp)) = rb_str_new2("i32");
1776
1774
  }
1777
- #line 1778 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1775
+ #line 1776 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1778
1776
  break;
1779
1777
 
1780
1778
  case 97:
1781
- #line 671 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1779
+ #line 670 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1782
1780
  {
1783
- ((*yyvalp)) = rb_str_new2("u8");
1781
+ ((*yyvalp)) = rb_str_new2("i64");
1784
1782
  }
1785
- #line 1786 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1783
+ #line 1784 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1786
1784
  break;
1787
1785
 
1788
1786
  case 98:
1789
- #line 676 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1787
+ #line 675 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1790
1788
  {
1791
- ((*yyvalp)) = rb_str_new2("u16");
1789
+ ((*yyvalp)) = rb_str_new2("u8");
1792
1790
  }
1793
- #line 1794 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1791
+ #line 1792 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1794
1792
  break;
1795
1793
 
1796
1794
  case 99:
1797
- #line 681 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1795
+ #line 680 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1798
1796
  {
1799
- ((*yyvalp)) = rb_str_new2("u32");
1797
+ ((*yyvalp)) = rb_str_new2("u16");
1800
1798
  }
1801
- #line 1802 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1799
+ #line 1800 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1802
1800
  break;
1803
1801
 
1804
1802
  case 100:
1805
- #line 686 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1803
+ #line 685 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1806
1804
  {
1807
- ((*yyvalp)) = rb_str_new2("u64");
1805
+ ((*yyvalp)) = rb_str_new2("u32");
1808
1806
  }
1809
- #line 1810 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1807
+ #line 1808 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1810
1808
  break;
1811
1809
 
1812
1810
  case 101:
1813
- #line 691 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1811
+ #line 690 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1814
1812
  {
1815
- ((*yyvalp)) = rb_str_new2("f64");
1813
+ ((*yyvalp)) = rb_str_new2("u64");
1816
1814
  }
1817
- #line 1818 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1815
+ #line 1816 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1818
1816
  break;
1819
1817
 
1820
1818
  case 102:
1821
- #line 696 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1819
+ #line 695 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1822
1820
  {
1823
- ((*yyvalp)) = rb_str_new2("decimal");
1821
+ ((*yyvalp)) = rb_str_new2("f64");
1824
1822
  }
1825
- #line 1826 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1823
+ #line 1824 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1826
1824
  break;
1827
1825
 
1828
1826
  case 103:
1829
- #line 701 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1827
+ #line 700 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1830
1828
  {
1831
- ((*yyvalp)) = rb_str_new2("date");
1829
+ ((*yyvalp)) = rb_str_new2("decimal");
1832
1830
  }
1833
- #line 1834 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1831
+ #line 1832 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1834
1832
  break;
1835
1833
 
1836
1834
  case 104:
1837
- #line 706 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1835
+ #line 705 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1838
1836
  {
1839
- ((*yyvalp)) = rb_str_new2("timeOfDayMilli");
1837
+ ((*yyvalp)) = rb_str_new2("date");
1840
1838
  }
1841
- #line 1842 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1839
+ #line 1840 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1842
1840
  break;
1843
1841
 
1844
1842
  case 105:
1845
- #line 711 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1843
+ #line 710 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1846
1844
  {
1847
- ((*yyvalp)) = rb_str_new2("timeOfDayNano");
1845
+ ((*yyvalp)) = rb_str_new2("timeOfDayMilli");
1848
1846
  }
1849
- #line 1850 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1847
+ #line 1848 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1850
1848
  break;
1851
1849
 
1852
1850
  case 106:
1853
- #line 716 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1851
+ #line 715 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1854
1852
  {
1855
- ((*yyvalp)) = rb_str_new2("nanoTime");
1853
+ ((*yyvalp)) = rb_str_new2("timeOfDayNano");
1856
1854
  }
1857
- #line 1858 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1855
+ #line 1856 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1858
1856
  break;
1859
1857
 
1860
1858
  case 107:
1861
- #line 721 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1859
+ #line 720 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1862
1860
  {
1863
- ((*yyvalp)) = rb_str_new2("milliTime");
1861
+ ((*yyvalp)) = rb_str_new2("nanoTime");
1864
1862
  }
1865
- #line 1866 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1863
+ #line 1864 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1866
1864
  break;
1867
1865
 
1868
1866
  case 108:
1869
- #line 726 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1867
+ #line 725 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1870
1868
  {
1871
- ((*yyvalp)) = rb_str_new2("boolean");
1869
+ ((*yyvalp)) = rb_str_new2("milliTime");
1872
1870
  }
1873
- #line 1874 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1871
+ #line 1872 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1874
1872
  break;
1875
1873
 
1876
1874
  case 109:
1877
- #line 731 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1875
+ #line 730 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1878
1876
  {
1879
- ((*yyvalp)) = rb_str_new2("string");
1877
+ ((*yyvalp)) = rb_str_new2("boolean");
1880
1878
  }
1881
- #line 1882 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1879
+ #line 1880 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1882
1880
  break;
1883
1881
 
1884
1882
  case 110:
1885
- #line 736 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1883
+ #line 735 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1886
1884
  {
1887
- ((*yyvalp)) = rb_str_new2("binary");
1885
+ ((*yyvalp)) = rb_str_new2("string");
1888
1886
  }
1889
- #line 1890 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1887
+ #line 1888 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1890
1888
  break;
1891
1889
 
1892
1890
  case 111:
1893
- #line 741 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1891
+ #line 740 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1894
1892
  {
1895
- ((*yyvalp)) = rb_str_new2("fixed");
1893
+ ((*yyvalp)) = rb_str_new2("binary");
1896
1894
  }
1897
- #line 1898 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1895
+ #line 1896 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1898
1896
  break;
1899
1897
 
1900
1898
  case 112:
1901
- #line 746 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1899
+ #line 745 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1902
1900
  {
1903
- ((*yyvalp)) = rb_str_new2("object");
1901
+ ((*yyvalp)) = rb_str_new2("fixed");
1904
1902
  }
1905
- #line 1906 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1903
+ #line 1904 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1906
1904
  break;
1907
1905
 
1908
1906
  case 113:
1909
- #line 751 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1907
+ #line 750 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1910
1908
  {
1911
- ((*yyvalp)) = rb_str_new2("namespace");
1909
+ ((*yyvalp)) = rb_str_new2("object");
1912
1910
  }
1913
- #line 1914 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1911
+ #line 1912 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1914
1912
  break;
1915
1913
 
1916
1914
  case 114:
1917
- #line 756 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1915
+ #line 755 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1918
1916
  {
1919
- ((*yyvalp)) = rb_str_new2("type");
1917
+ ((*yyvalp)) = rb_str_new2("namespace");
1920
1918
  }
1921
- #line 1922 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1919
+ #line 1920 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1922
1920
  break;
1923
1921
 
1924
1922
  case 115:
1925
- #line 761 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1923
+ #line 760 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1926
1924
  {
1927
- ((*yyvalp)) = rb_str_new2("schema");
1925
+ ((*yyvalp)) = rb_str_new2("type");
1928
1926
  }
1929
- #line 1930 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1927
+ #line 1928 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1930
1928
  break;
1931
1929
 
1932
- case 119:
1933
- #line 778 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1930
+ case 116:
1931
+ #line 765 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1934
1932
  {
1935
- ((*yyvalp)) = (((yyGLRStackItem const *)yyvsp)[YYFILL (0)].yystate.yysemantics.yysval);
1933
+ ((*yyvalp)) = rb_str_new2("schema");
1936
1934
  }
1937
- #line 1938 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1935
+ #line 1936 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1938
1936
  break;
1939
1937
 
1940
1938
  case 125:
1941
- #line 803 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:783 */
1939
+ #line 800 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:816 */
1942
1940
  {
1943
1941
  ((*yyvalp)) = Qnil;
1944
1942
  }
1945
- #line 1946 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1943
+ #line 1944 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1946
1944
  break;
1947
1945
 
1948
1946
 
1949
- #line 1950 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:783 */
1947
+ #line 1948 "ext/slow_blink/ext_schema_parser/parser.c" /* glr.c:816 */
1950
1948
  default: break;
1951
1949
  }
1952
1950
 
@@ -2044,7 +2042,7 @@ yylhsNonterm (yyRuleNum yyrule)
2044
2042
  }
2045
2043
 
2046
2044
  #define yypact_value_is_default(Yystate) \
2047
- (!!((Yystate) == (-93)))
2045
+ (!!((Yystate) == (-91)))
2048
2046
 
2049
2047
  /** True iff LR state YYSTATE has only a default reduction (regardless
2050
2048
  * of token). */
@@ -3719,75 +3717,24 @@ yypdumpstack (yyGLRStack* yystackp)
3719
3717
 
3720
3718
 
3721
3719
 
3722
- #line 808 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:2551 */
3723
-
3724
-
3725
- /* functions **********************************************************/
3720
+ #line 805 "etc/slow_blink/ext_schema_parser/parser.y" /* glr.c:2584 */
3726
3721
 
3727
3722
 
3728
3723
  void Init_ext_schema_parser(void)
3729
3724
  {
3730
3725
  cSlowBlink = rb_define_module("SlowBlink");
3731
-
3732
- cNamespace = rb_const_get(cSlowBlink, rb_intern("Namespace"));
3733
- cGroup = rb_const_get(cSlowBlink, rb_intern("Group"));
3734
- cField = rb_const_get(cSlowBlink, rb_intern("Field"));
3735
- cDefinition = rb_const_get(cSlowBlink, rb_intern("Definition"));
3736
-
3737
- cNameWithID = rb_const_get(cSlowBlink, rb_intern("NameWithID"));
3738
-
3739
- cAnnotation = rb_const_get(cSlowBlink, rb_intern("Annotation"));
3740
- cIncrementalAnnotation = rb_const_get(cSlowBlink, rb_intern("IncrementalAnnotation"));
3741
-
3742
- cENUMERATION = rb_const_get(cSlowBlink, rb_intern("ENUMERATION"));
3743
- cSym = rb_const_get(cSlowBlink, rb_intern("Sym"));
3744
-
3745
- cU8 = rb_const_get(cSlowBlink, rb_intern("U8"));
3746
- cU16 = rb_const_get(cSlowBlink, rb_intern("U16"));
3747
- cU32 = rb_const_get(cSlowBlink, rb_intern("U32"));
3748
- cU64 = rb_const_get(cSlowBlink, rb_intern("U64"));
3749
- cI8 = rb_const_get(cSlowBlink, rb_intern("I8"));
3750
- cI16 = rb_const_get(cSlowBlink, rb_intern("I16"));
3751
- cI32 = rb_const_get(cSlowBlink, rb_intern("I32"));
3752
- cI64 = rb_const_get(cSlowBlink, rb_intern("I64"));
3753
- cFLOATING_POINT = rb_const_get(cSlowBlink, rb_intern("FLOATING_POINT"));
3754
- cDECIMAL = rb_const_get(cSlowBlink, rb_intern("DECIMAL"));
3755
- cFIXED = rb_const_get(cSlowBlink, rb_intern("FIXED"));
3756
- cBINARY = rb_const_get(cSlowBlink, rb_intern("BINARY"));
3757
- cSTRING = rb_const_get(cSlowBlink, rb_intern("STRING"));
3758
- cBOOLEAN = rb_const_get(cSlowBlink, rb_intern("BOOLEAN"));
3759
- cDATE = rb_const_get(cSlowBlink, rb_intern("DATE"));
3760
- cMILLI_TIME = rb_const_get(cSlowBlink, rb_intern("MILLI_TIME"));
3761
- cNANO_TIME = rb_const_get(cSlowBlink, rb_intern("NANO_TIME"));
3762
- cTIME_OF_DAY_MILLI = rb_const_get(cSlowBlink, rb_intern("TIME_OF_DAY_MILLI"));
3763
- cTIME_OF_DAY_NANO = rb_const_get(cSlowBlink, rb_intern("TIME_OF_DAY_NANO"));
3764
- cSEQUENCE = rb_const_get(cSlowBlink, rb_intern("SEQUENCE"));
3765
- cREF = rb_const_get(cSlowBlink, rb_intern("REF"));
3766
- cOBJECT = rb_const_get(cSlowBlink, rb_intern("OBJECT"));
3767
-
3768
- cSchemaRef = rb_const_get(cSlowBlink, rb_intern("SchemaRef"));
3769
- cDefinitionRef = rb_const_get(cSlowBlink, rb_intern("DefinitionRef"));
3770
- cDefinitionTypeRef = rb_const_get(cSlowBlink, rb_intern("DefinitionTypeRef"));
3771
- cFieldRef = rb_const_get(cSlowBlink, rb_intern("FieldRef"));
3772
- cFieldTypeRef = rb_const_get(cSlowBlink, rb_intern("FieldTypeRef"));
3773
-
3774
- cLog = rb_const_get(cSlowBlink, rb_intern("Log"));
3775
-
3776
3726
  cParseError = rb_const_get(cSlowBlink, rb_intern("ParseError"));
3777
-
3778
- rb_define_singleton_method(cNamespace, "parse", parseFileBuffer, -1);
3727
+ rb_define_singleton_method(cSlowBlink, "parse_file_buffer", parseFileBuffer, -1);
3779
3728
  }
3780
3729
 
3781
- void yyerror(YYLTYPE *locp, yyscan_t scanner, VALUE filename, VALUE *tree, char const *msg, ... )
3730
+ void yyerror(YYLTYPE *locp, yyscan_t scanner, VALUE filename, VALUE *tree, char const *msg)
3782
3731
  {
3783
3732
  VALUE message = newLocation(filename, locp);
3784
- rb_str_append(message, rb_str_new2(": error: "));
3785
- rb_str_append(message, rb_str_new2(msg));
3786
- rb_funcall(cLog, rb_intern("error"), 1, message);
3733
+ rb_str_append(message, rb_str_new2(" error: "));
3734
+ rb_str_append(message, rb_funcall(rb_str_new2(msg), rb_intern("sub"), 2, rb_str_new2("UNKNOWN"), rb_str_new2(yyget_text(scanner))));
3735
+ rb_funcall(rb_stderr, rb_intern("puts"), 1, message);
3787
3736
  }
3788
3737
 
3789
- /* static functions ***************************************************/
3790
-
3791
3738
  static VALUE parseFileBuffer(int argc, VALUE* argv, VALUE self)
3792
3739
  {
3793
3740
  yyscan_t scanner;
@@ -3795,7 +3742,7 @@ static VALUE parseFileBuffer(int argc, VALUE* argv, VALUE self)
3795
3742
  VALUE buffer;
3796
3743
  VALUE opts;
3797
3744
  VALUE filename;
3798
- int retval;
3745
+ int retval = 0;
3799
3746
 
3800
3747
  rb_scan_args(argc, argv, "10:", &buffer, &opts);
3801
3748
 
@@ -3814,45 +3761,44 @@ static VALUE parseFileBuffer(int argc, VALUE* argv, VALUE self)
3814
3761
  if(yy_scan_bytes((const char *)RSTRING_PTR(buffer), RSTRING_LEN(buffer), scanner)){
3815
3762
 
3816
3763
  retval = yyparse(scanner, filename, &tree);
3817
-
3818
- yylex_destroy(scanner);
3819
-
3820
- switch(retval){
3821
- case 0:
3822
- break;
3823
- case 1:
3824
- rb_raise(cParseError, "parse error");
3825
- break;
3826
- case 2:
3827
- rb_bug("yyparse: bison parser reports memory exhaustion");
3828
- break;
3829
- default:
3830
- rb_bug("yyparse: unknown return code");
3831
- break;
3832
- }
3833
3764
  }
3834
- else{
3835
3765
 
3836
- yylex_destroy(scanner);
3837
- }
3766
+ yylex_destroy(scanner);
3767
+
3768
+ switch(retval){
3769
+ case 0:
3770
+ break;
3771
+ case 1:
3772
+ case 2:
3773
+ rb_raise(cParseError, "parse error");
3774
+ break;
3775
+ default:
3776
+ rb_bug("yyparse: unknown return code");
3777
+ break;
3778
+ }
3838
3779
  }
3839
3780
 
3840
3781
  return tree;
3841
3782
  }
3842
3783
 
3843
- static VALUE newLocation(VALUE filename, const YYLTYPE *location)
3784
+ static VALUE newLocation(VALUE filename, const YYLTYPE *locp)
3844
3785
  {
3845
- char msg[500];
3846
- int len = 0;
3786
+ VALUE retval = rb_str_new2("");
3847
3787
 
3848
3788
  if(filename != Qnil){
3849
3789
 
3850
- len = snprintf(msg, sizeof(msg), "%s:%i:%i", (const char *)RSTRING_PTR(filename), location->first_line, location->first_column);
3790
+ retval = filename;
3791
+ rb_str_append(retval, rb_str_new2(":"));
3851
3792
  }
3852
3793
  else{
3853
3794
 
3854
- len = snprintf(msg, sizeof(msg), "%i:%i", location->first_line, location->first_column);
3795
+ retval = rb_str_new2("");
3855
3796
  }
3856
-
3857
- return rb_str_new(msg, len);
3797
+
3798
+ rb_str_append(retval, rb_funcall(INT2NUM(locp->first_line), rb_intern("to_s"), 0));
3799
+ rb_str_append(retval, rb_str_new2(":"));
3800
+ rb_str_append(retval, rb_funcall(INT2NUM(locp->first_column), rb_intern("to_s"), 0));
3801
+ rb_str_append(retval, rb_str_new2(":"));
3802
+
3803
+ return retval;
3858
3804
  }