mkbison 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 0f79c8c38f183e824448e08975a261a84a3d7ebb
4
- data.tar.gz: cbc9c678a8ca3ba6fca2e862edfd7a812935b1c8
3
+ metadata.gz: 71a987a62e2d5a4ff59028f97bbb5d3f58d2c8f2
4
+ data.tar.gz: b5780f28d873a785a96dc0ad3b444158409bed52
5
5
  SHA512:
6
- metadata.gz: 9deb16d96d0bf833aa091d94969bc962e4c99af6ef28ebd857ea8cdd74f421270f86102c3203c07d61860d335f7dc20ee7a3a23f54a0d264531e1b3ba2c6d519
7
- data.tar.gz: 62ed42614a334fb587029b663ccbb5c5f33bdd29b92ff2e6c56a0b26030b9cb692849eeffe6d0a00102059e7103661352a4f41bff26e528eda057ee3dbb1dd71
6
+ metadata.gz: 909d99dfc14789d8ffbbf7a2396e82f085f85448cd87ca75b8efa6e3fb779a4c317e1928a9a499e5d9f191c494e3f99206afcf94bada2022f57d93840d883a87
7
+ data.tar.gz: 47033ca52ad47487545b17d405fa2615c86a9c9ebdc5cff36ef14d4e739518490ae6c0be7035ea73881c0295c425862bee7f94f397a1717f5ea7485c7d7da656
@@ -62,7 +62,8 @@ grammar_rule:
62
62
  ;
63
63
 
64
64
  components:
65
- sequence[sequence]
65
+ { [] }
66
+ | sequence[sequence]
66
67
  { [sequence] }
67
68
  |
68
69
  components[sequences] PIPE sequence[sequence]
@@ -80,9 +81,6 @@ sequence:
80
81
  |
81
82
  sequence[sequence] IDENTIFIER[follower] LBRACK IDENTIFIER[tag] RBRACK
82
83
  { sequence << Bison::Nonterminal.new(follower, tag).tap{ |x| x.location = @follower } }
83
- |
84
- sequence[sequence] STRING[follower]
85
- { sequence << Bison::String.new(follower).tap{ |x| x.location = @follower } }
86
84
  ;
87
85
 
88
86
  %%
@@ -91,20 +89,6 @@ class BisonParser
91
89
  attr_accessor :section
92
90
 
93
91
  def lex
94
- x = real_lex
95
- Tokens.constants.each do |const|
96
- if Tokens.const_get(const) == x
97
- warn "Lex'd #{const}\t: #{lex_value.inspect}" if ENV['DEBUG_GRAMMAR']
98
- return x
99
- end
100
- end
101
-
102
- warn "Lex'd #{x.inspect}" if ENV['DEBUG_GRAMMAR']
103
-
104
- x
105
- end
106
-
107
- def real_lex
108
92
  self.section ||= 0
109
93
  self.lex_value = nil
110
94
 
@@ -126,7 +110,7 @@ class BisonParser
126
110
  break
127
111
  end
128
112
  end
129
-
113
+
130
114
  return nil unless c
131
115
 
132
116
  case c
@@ -164,20 +148,6 @@ class BisonParser
164
148
  end
165
149
  self.lex_value = number.to_i
166
150
  return Tokens::NUMBER
167
- when '"'
168
- string = ''
169
- while (c = self.read) && c != '"'
170
- string << c
171
- end
172
- self.lex_value = string
173
- return Tokens::STRING
174
- when "'"
175
- string = ''
176
- while (c = self.read) && c != "'"
177
- string << c
178
- end
179
- self.lex_value = string
180
- return Tokens::STRING
181
151
  end
182
152
 
183
153
  if c =~ /\w/
@@ -199,8 +169,6 @@ class BisonParser
199
169
  end
200
170
  end
201
171
 
202
- warn "Yielding literal #{c.inspect}"
203
-
204
- return c.ord
172
+ return nil
205
173
  end
206
174
  end
@@ -396,7 +396,7 @@ union yyalloc
396
396
  /* YYFINAL -- State number of the termination state. */
397
397
  #define YYFINAL 3
398
398
  /* YYLAST -- Last index in YYTABLE. */
399
- #define YYLAST 26
399
+ #define YYLAST 25
400
400
 
401
401
  /* YYNTOKENS -- Number of terminals. */
402
402
  #define YYNTOKENS 17
@@ -405,7 +405,7 @@ union yyalloc
405
405
  /* YYNRULES -- Number of rules. */
406
406
  #define YYNRULES 20
407
407
  /* YYNSTATES -- Number of states. */
408
- #define YYNSTATES 32
408
+ #define YYNSTATES 31
409
409
 
410
410
  /* YYTRANSLATE[YYX] -- Symbol number corresponding to YYX as returned
411
411
  by yylex, with out-of-bounds checking. */
@@ -454,8 +454,8 @@ static const yytype_uint8 yytranslate[] =
454
454
  static const yytype_uint8 yyrline[] =
455
455
  {
456
456
  0, 37, 37, 50, 56, 67, 73, 84, 92, 100,
457
- 108, 120, 126, 137, 148, 156, 168, 174, 183, 192,
458
- 202
457
+ 108, 120, 126, 137, 149, 155, 163, 175, 181, 190,
458
+ 199
459
459
  };
460
460
  #endif
461
461
 
@@ -487,7 +487,7 @@ static const yytype_uint16 yytoknum[] =
487
487
  #define yypact_value_is_default(Yystate) \
488
488
  (!!((Yystate) == (-8)))
489
489
 
490
- #define YYTABLE_NINF -1
490
+ #define YYTABLE_NINF -18
491
491
 
492
492
  #define yytable_value_is_error(Yytable_value) \
493
493
  0
@@ -496,10 +496,10 @@ static const yytype_uint16 yytoknum[] =
496
496
  STATE-NUM. */
497
497
  static const yytype_int8 yypact[] =
498
498
  {
499
- -8, 11, -7, -8, -6, -8, 8, 12, 13, 14,
500
- -2, -8, -8, -8, -8, 15, 2, -8, -8, -8,
501
- -8, -4, -3, -8, -8, 6, -8, -8, -3, 16,
502
- 17, -8
499
+ -8, 10, -7, -8, -6, -8, 8, 12, 13, 14,
500
+ -1, -8, -8, -8, -8, 15, 2, -8, -8, -3,
501
+ -8, -4, -2, -8, -8, 11, -8, -2, 17, 16,
502
+ -8
503
503
  };
504
504
 
505
505
  /* YYDEFACT[STATE-NUM] -- Default reduction number in state STATE-NUM.
@@ -508,15 +508,15 @@ static const yytype_int8 yypact[] =
508
508
  static const yytype_uint8 yydefact[] =
509
509
  {
510
510
  5, 0, 0, 1, 0, 11, 6, 0, 0, 0,
511
- 3, 10, 7, 8, 9, 0, 0, 2, 12, 16,
512
- 4, 0, 14, 13, 16, 18, 20, 17, 15, 0,
513
- 0, 19
511
+ 3, 10, 7, 8, 9, 0, 0, 2, 12, 14,
512
+ 4, 0, 15, 13, 17, 19, 18, 16, 0, 0,
513
+ 20
514
514
  };
515
515
 
516
516
  /* YYPGOTO[NTERM-NUM]. */
517
517
  static const yytype_int8 yypgoto[] =
518
518
  {
519
- -8, -8, -8, -8, -8, -8, -8, -8, -1
519
+ -8, -8, -8, -8, -8, -8, -8, -8, 0
520
520
  };
521
521
 
522
522
  /* YYDEFGOTO[NTERM-NUM]. */
@@ -528,18 +528,18 @@ static const yytype_int8 yydefgoto[] =
528
528
  /* YYTABLE[YYPACT[STATE-NUM]] -- What to do in state STATE-NUM. If
529
529
  positive, shift that token. If negative, reduce the rule whose
530
530
  number is the opposite. If YYTABLE_NINF, syntax error. */
531
- static const yytype_uint8 yytable[] =
531
+ static const yytype_int8 yytable[] =
532
532
  {
533
- 25, 15, 26, 23, 4, 5, 24, 7, 8, 9,
534
- 16, 3, 11, 27, 29, 12, 13, 14, 20, 30,
535
- 0, 19, 0, 28, 0, 0, 31
533
+ -17, 25, 15, 23, 4, 5, 24, 7, 8, 9,
534
+ 3, 16, 11, -17, 26, 12, 13, 14, 20, 28,
535
+ 29, 19, 0, 0, 27, 30
536
536
  };
537
537
 
538
538
  static const yytype_int8 yycheck[] =
539
539
  {
540
- 3, 3, 5, 7, 11, 12, 10, 13, 14, 15,
541
- 12, 0, 4, 16, 8, 3, 3, 3, 16, 3,
542
- -1, 6, -1, 24, -1, -1, 9
540
+ 3, 3, 3, 7, 11, 12, 10, 13, 14, 15,
541
+ 0, 12, 4, 16, 16, 3, 3, 3, 16, 8,
542
+ 3, 6, -1, -1, 24, 9
543
543
  };
544
544
 
545
545
  /* YYSTOS[STATE-NUM] -- The (internal number of the) accessing
@@ -548,15 +548,15 @@ static const yytype_uint8 yystos[] =
548
548
  {
549
549
  0, 18, 20, 0, 11, 12, 21, 13, 14, 15,
550
550
  22, 4, 3, 3, 3, 3, 12, 19, 23, 6,
551
- 16, 24, 25, 7, 10, 3, 5, 16, 25, 8,
552
- 3, 9
551
+ 16, 24, 25, 7, 10, 3, 16, 25, 8, 3,
552
+ 9
553
553
  };
554
554
 
555
555
  /* YYR1[YYN] -- Symbol number of symbol that rule YYN derives. */
556
556
  static const yytype_uint8 yyr1[] =
557
557
  {
558
558
  0, 17, 18, 19, 19, 20, 20, 21, 21, 21,
559
- 21, 22, 22, 23, 24, 24, 25, 25, 25, 25,
559
+ 21, 22, 22, 23, 24, 24, 24, 25, 25, 25,
560
560
  25
561
561
  };
562
562
 
@@ -564,8 +564,8 @@ static const yytype_uint8 yyr1[] =
564
564
  static const yytype_uint8 yyr2[] =
565
565
  {
566
566
  0, 2, 4, 0, 2, 0, 2, 3, 3, 3,
567
- 2, 0, 2, 4, 1, 3, 0, 2, 2, 5,
568
- 2
567
+ 2, 0, 2, 4, 0, 1, 3, 0, 2, 2,
568
+ 5
569
569
  };
570
570
 
571
571
 
@@ -1349,7 +1349,7 @@ yyreduce:
1349
1349
  rb_ivar_set(__actions, rb_intern("@tokens"), rb_ary_new3(2, INT2FIX((yylsp[-3]).first_line), INT2FIX((yylsp[-3]).first_column)));
1350
1350
  rb_ivar_set(__actions, rb_intern("@rules"), rb_ary_new3(2, INT2FIX((yylsp[-1]).first_line), INT2FIX((yylsp[-1]).first_column)));
1351
1351
  rb_ivar_set(__actions, rb_intern("@code"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1352
- (yyval) = rb_funcall(__actions, rb_intern("_0_grammar_file"), 3, (yyvsp[-3]), (yyvsp[-1]), (yyvsp[0]));
1352
+ (yyval) = rb_funcall(__actions, rb_intern("_0_grammar_file_a94c71c90dcf6de40d17336b9d39db58"), 3, (yyvsp[-3]), (yyvsp[-1]), (yyvsp[0]));
1353
1353
  }
1354
1354
  #line 1355 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1355
1355
  break;
@@ -1358,7 +1358,7 @@ yyreduce:
1358
1358
  #line 50 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1359
1359
  {
1360
1360
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1361
- (yyval) = rb_funcall(__actions, rb_intern("_0_optional_code"), 0);
1361
+ (yyval) = rb_funcall(__actions, rb_intern("_0_optional_code_99914b932bd37a50b983c5e7c90ae93b"), 0);
1362
1362
  }
1363
1363
  #line 1364 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1364
1364
  break;
@@ -1368,7 +1368,7 @@ yyreduce:
1368
1368
  {
1369
1369
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1370
1370
  rb_ivar_set(__actions, rb_intern("@actions"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1371
- (yyval) = rb_funcall(__actions, rb_intern("_1_optional_code"), 1, (yyvsp[0]));
1371
+ (yyval) = rb_funcall(__actions, rb_intern("_1_optional_code_1359d45d91e668b6af09d4ac3c336a88"), 1, (yyvsp[0]));
1372
1372
  }
1373
1373
  #line 1374 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1374
1374
  break;
@@ -1377,7 +1377,7 @@ yyreduce:
1377
1377
  #line 67 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1378
1378
  {
1379
1379
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1380
- (yyval) = rb_funcall(__actions, rb_intern("_0_token_list"), 0);
1380
+ (yyval) = rb_funcall(__actions, rb_intern("_0_token_list_99914b932bd37a50b983c5e7c90ae93b"), 0);
1381
1381
  }
1382
1382
  #line 1383 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1383
1383
  break;
@@ -1388,7 +1388,7 @@ yyreduce:
1388
1388
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1389
1389
  rb_ivar_set(__actions, rb_intern("@list"), rb_ary_new3(2, INT2FIX((yylsp[-1]).first_line), INT2FIX((yylsp[-1]).first_column)));
1390
1390
  rb_ivar_set(__actions, rb_intern("@token"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1391
- (yyval) = rb_funcall(__actions, rb_intern("_1_token_list"), 2, (yyvsp[-1]), (yyvsp[0]));
1391
+ (yyval) = rb_funcall(__actions, rb_intern("_1_token_list_21a28d2acdd128c24843b772a9881f2d"), 2, (yyvsp[-1]), (yyvsp[0]));
1392
1392
  }
1393
1393
  #line 1394 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1394
1394
  break;
@@ -1398,7 +1398,7 @@ yyreduce:
1398
1398
  {
1399
1399
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1400
1400
  rb_ivar_set(__actions, rb_intern("@name"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1401
- (yyval) = rb_funcall(__actions, rb_intern("_0_token"), 1, (yyvsp[0]));
1401
+ (yyval) = rb_funcall(__actions, rb_intern("_0_token_f014c38ad08ecac5d62c0e3fa23163b3"), 1, (yyvsp[0]));
1402
1402
  }
1403
1403
  #line 1404 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1404
1404
  break;
@@ -1408,7 +1408,7 @@ yyreduce:
1408
1408
  {
1409
1409
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1410
1410
  rb_ivar_set(__actions, rb_intern("@name"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1411
- (yyval) = rb_funcall(__actions, rb_intern("_1_token"), 1, (yyvsp[0]));
1411
+ (yyval) = rb_funcall(__actions, rb_intern("_1_token_f014c38ad08ecac5d62c0e3fa23163b3"), 1, (yyvsp[0]));
1412
1412
  }
1413
1413
  #line 1414 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1414
1414
  break;
@@ -1418,7 +1418,7 @@ yyreduce:
1418
1418
  {
1419
1419
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1420
1420
  rb_ivar_set(__actions, rb_intern("@name"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1421
- (yyval) = rb_funcall(__actions, rb_intern("_2_token"), 1, (yyvsp[0]));
1421
+ (yyval) = rb_funcall(__actions, rb_intern("_2_token_f014c38ad08ecac5d62c0e3fa23163b3"), 1, (yyvsp[0]));
1422
1422
  }
1423
1423
  #line 1424 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1424
1424
  break;
@@ -1429,7 +1429,7 @@ yyreduce:
1429
1429
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1430
1430
  rb_ivar_set(__actions, rb_intern("@token"), rb_ary_new3(2, INT2FIX((yylsp[-1]).first_line), INT2FIX((yylsp[-1]).first_column)));
1431
1431
  rb_ivar_set(__actions, rb_intern("@num"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1432
- (yyval) = rb_funcall(__actions, rb_intern("_3_token"), 2, (yyvsp[-1]), (yyvsp[0]));
1432
+ (yyval) = rb_funcall(__actions, rb_intern("_3_token_445055bddb5840e621fa399faa56aefc"), 2, (yyvsp[-1]), (yyvsp[0]));
1433
1433
  }
1434
1434
  #line 1435 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1435
1435
  break;
@@ -1438,7 +1438,7 @@ yyreduce:
1438
1438
  #line 120 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1439
1439
  {
1440
1440
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1441
- (yyval) = rb_funcall(__actions, rb_intern("_0_grammar_rules"), 0);
1441
+ (yyval) = rb_funcall(__actions, rb_intern("_0_grammar_rules_99914b932bd37a50b983c5e7c90ae93b"), 0);
1442
1442
  }
1443
1443
  #line 1444 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1444
1444
  break;
@@ -1449,7 +1449,7 @@ yyreduce:
1449
1449
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1450
1450
  rb_ivar_set(__actions, rb_intern("@list"), rb_ary_new3(2, INT2FIX((yylsp[-1]).first_line), INT2FIX((yylsp[-1]).first_column)));
1451
1451
  rb_ivar_set(__actions, rb_intern("@rule"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1452
- (yyval) = rb_funcall(__actions, rb_intern("_1_grammar_rules"), 2, (yyvsp[-1]), (yyvsp[0]));
1452
+ (yyval) = rb_funcall(__actions, rb_intern("_1_grammar_rules_d4b402a4ddf06c5292ab917a96fe105c"), 2, (yyvsp[-1]), (yyvsp[0]));
1453
1453
  }
1454
1454
  #line 1455 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1455
1455
  break;
@@ -1460,7 +1460,7 @@ yyreduce:
1460
1460
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1461
1461
  rb_ivar_set(__actions, rb_intern("@name"), rb_ary_new3(2, INT2FIX((yylsp[-3]).first_line), INT2FIX((yylsp[-3]).first_column)));
1462
1462
  rb_ivar_set(__actions, rb_intern("@components"), rb_ary_new3(2, INT2FIX((yylsp[-1]).first_line), INT2FIX((yylsp[-1]).first_column)));
1463
- (yyval) = rb_funcall(__actions, rb_intern("_0_grammar_rule"), 2, (yyvsp[-3]), (yyvsp[-1]));
1463
+ (yyval) = rb_funcall(__actions, rb_intern("_0_grammar_rule_bce7f6337f3284ba4a3537cc1d642c28"), 2, (yyvsp[-3]), (yyvsp[-1]));
1464
1464
  }
1465
1465
  #line 1466 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1466
1466
  break;
@@ -1469,28 +1469,28 @@ yyreduce:
1469
1469
  #line 149 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1470
1470
  {
1471
1471
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1472
- rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1473
- (yyval) = rb_funcall(__actions, rb_intern("_0_components"), 1, (yyvsp[0]));
1472
+ (yyval) = rb_funcall(__actions, rb_intern("_0_components_99914b932bd37a50b983c5e7c90ae93b"), 0);
1474
1473
  }
1475
- #line 1476 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1474
+ #line 1475 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1476
1475
  break;
1477
1476
 
1478
1477
  case 15:
1479
- #line 157 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1478
+ #line 156 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1480
1479
  {
1481
1480
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1482
- rb_ivar_set(__actions, rb_intern("@sequences"), rb_ary_new3(2, INT2FIX((yylsp[-2]).first_line), INT2FIX((yylsp[-2]).first_column)));
1483
1481
  rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1484
- (yyval) = rb_funcall(__actions, rb_intern("_1_components"), 2, (yyvsp[-2]), (yyvsp[0]));
1482
+ (yyval) = rb_funcall(__actions, rb_intern("_1_components_2403a823f1a9854a29da7cf64f191fbe"), 1, (yyvsp[0]));
1485
1483
  }
1486
- #line 1487 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1484
+ #line 1485 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1487
1485
  break;
1488
1486
 
1489
1487
  case 16:
1490
- #line 168 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1488
+ #line 164 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1491
1489
  {
1492
1490
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1493
- (yyval) = rb_funcall(__actions, rb_intern("_0_sequence"), 0);
1491
+ rb_ivar_set(__actions, rb_intern("@sequences"), rb_ary_new3(2, INT2FIX((yylsp[-2]).first_line), INT2FIX((yylsp[-2]).first_column)));
1492
+ rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1493
+ (yyval) = rb_funcall(__actions, rb_intern("_2_components_62da044340939f02b6c0b52917617e17"), 2, (yyvsp[-2]), (yyvsp[0]));
1494
1494
  }
1495
1495
  #line 1496 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1496
1496
  break;
@@ -1499,49 +1499,47 @@ yyreduce:
1499
1499
  #line 175 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1500
1500
  {
1501
1501
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1502
- rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX((yylsp[-1]).first_line), INT2FIX((yylsp[-1]).first_column)));
1503
- rb_ivar_set(__actions, rb_intern("@code"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1504
- (yyval) = rb_funcall(__actions, rb_intern("_1_sequence"), 2, (yyvsp[-1]), (yyvsp[0]));
1502
+ (yyval) = rb_funcall(__actions, rb_intern("_0_sequence_99914b932bd37a50b983c5e7c90ae93b"), 0);
1505
1503
  }
1506
- #line 1507 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1504
+ #line 1505 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1507
1505
  break;
1508
1506
 
1509
1507
  case 18:
1510
- #line 184 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1508
+ #line 182 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1511
1509
  {
1512
1510
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1513
1511
  rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX((yylsp[-1]).first_line), INT2FIX((yylsp[-1]).first_column)));
1514
- rb_ivar_set(__actions, rb_intern("@follower"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1515
- (yyval) = rb_funcall(__actions, rb_intern("_2_sequence"), 2, (yyvsp[-1]), (yyvsp[0]));
1512
+ rb_ivar_set(__actions, rb_intern("@code"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1513
+ (yyval) = rb_funcall(__actions, rb_intern("_1_sequence_512ceffccf6bb7565046f90d6d7762ad"), 2, (yyvsp[-1]), (yyvsp[0]));
1516
1514
  }
1517
- #line 1518 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1515
+ #line 1516 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1518
1516
  break;
1519
1517
 
1520
1518
  case 19:
1521
- #line 193 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1519
+ #line 191 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1522
1520
  {
1523
1521
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1524
- rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX((yylsp[-4]).first_line), INT2FIX((yylsp[-4]).first_column)));
1525
- rb_ivar_set(__actions, rb_intern("@follower"), rb_ary_new3(2, INT2FIX((yylsp[-3]).first_line), INT2FIX((yylsp[-3]).first_column)));
1526
- rb_ivar_set(__actions, rb_intern("@tag"), rb_ary_new3(2, INT2FIX((yylsp[-1]).first_line), INT2FIX((yylsp[-1]).first_column)));
1527
- (yyval) = rb_funcall(__actions, rb_intern("_3_sequence"), 3, (yyvsp[-4]), (yyvsp[-3]), (yyvsp[-1]));
1522
+ rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX((yylsp[-1]).first_line), INT2FIX((yylsp[-1]).first_column)));
1523
+ rb_ivar_set(__actions, rb_intern("@follower"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1524
+ (yyval) = rb_funcall(__actions, rb_intern("_2_sequence_4b2903c3aeb37d22d413a53653d0df28"), 2, (yyvsp[-1]), (yyvsp[0]));
1528
1525
  }
1529
- #line 1530 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1526
+ #line 1527 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1530
1527
  break;
1531
1528
 
1532
1529
  case 20:
1533
- #line 203 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1530
+ #line 200 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1661 */
1534
1531
  {
1535
1532
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX((yyloc).first_line), INT2FIX((yyloc).first_column)));
1536
- rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX((yylsp[-1]).first_line), INT2FIX((yylsp[-1]).first_column)));
1537
- rb_ivar_set(__actions, rb_intern("@follower"), rb_ary_new3(2, INT2FIX((yylsp[0]).first_line), INT2FIX((yylsp[0]).first_column)));
1538
- (yyval) = rb_funcall(__actions, rb_intern("_4_sequence"), 2, (yyvsp[-1]), (yyvsp[0]));
1533
+ rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX((yylsp[-4]).first_line), INT2FIX((yylsp[-4]).first_column)));
1534
+ rb_ivar_set(__actions, rb_intern("@follower"), rb_ary_new3(2, INT2FIX((yylsp[-3]).first_line), INT2FIX((yylsp[-3]).first_column)));
1535
+ rb_ivar_set(__actions, rb_intern("@tag"), rb_ary_new3(2, INT2FIX((yylsp[-1]).first_line), INT2FIX((yylsp[-1]).first_column)));
1536
+ (yyval) = rb_funcall(__actions, rb_intern("_3_sequence_68f2380aa0f3a7de0fb9b3482705a54c"), 3, (yyvsp[-4]), (yyvsp[-3]), (yyvsp[-1]));
1539
1537
  }
1540
- #line 1541 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1538
+ #line 1539 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1541
1539
  break;
1542
1540
 
1543
1541
 
1544
- #line 1545 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1542
+ #line 1543 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
1545
1543
  default: break;
1546
1544
  }
1547
1545
  /* User semantic actions sometimes alter yychar, and that requires
@@ -1776,7 +1774,7 @@ yyreturn:
1776
1774
  #endif
1777
1775
  return yyresult;
1778
1776
  }
1779
- #line 213 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1906 */
1777
+ #line 211 "../../../../ext/bison_parser/bison_parser.y" /* yacc.c:1906 */
1780
1778
 
1781
1779
 
1782
1780
  static VALUE cBisonParser;
@@ -40,7 +40,7 @@ grammar_file:
40
40
  rb_ivar_set(__actions, rb_intern("@tokens"), rb_ary_new3(2, INT2FIX(@1.first_line), INT2FIX(@1.first_column)));
41
41
  rb_ivar_set(__actions, rb_intern("@rules"), rb_ary_new3(2, INT2FIX(@3.first_line), INT2FIX(@3.first_column)));
42
42
  rb_ivar_set(__actions, rb_intern("@code"), rb_ary_new3(2, INT2FIX(@4.first_line), INT2FIX(@4.first_column)));
43
- $$ = rb_funcall(__actions, rb_intern("_0_grammar_file"), 3, $1, $3, $4);
43
+ $$ = rb_funcall(__actions, rb_intern("_0_grammar_file_a94c71c90dcf6de40d17336b9d39db58"), 3, $1, $3, $4);
44
44
  }
45
45
 
46
46
  ;
@@ -49,7 +49,7 @@ optional_code:
49
49
 
50
50
  {
51
51
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
52
- $$ = rb_funcall(__actions, rb_intern("_0_optional_code"), 0);
52
+ $$ = rb_funcall(__actions, rb_intern("_0_optional_code_99914b932bd37a50b983c5e7c90ae93b"), 0);
53
53
  }
54
54
 
55
55
  |
@@ -57,7 +57,7 @@ optional_code:
57
57
  {
58
58
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
59
59
  rb_ivar_set(__actions, rb_intern("@actions"), rb_ary_new3(2, INT2FIX(@2.first_line), INT2FIX(@2.first_column)));
60
- $$ = rb_funcall(__actions, rb_intern("_1_optional_code"), 1, $2);
60
+ $$ = rb_funcall(__actions, rb_intern("_1_optional_code_1359d45d91e668b6af09d4ac3c336a88"), 1, $2);
61
61
  }
62
62
 
63
63
  ;
@@ -66,7 +66,7 @@ token_list:
66
66
 
67
67
  {
68
68
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
69
- $$ = rb_funcall(__actions, rb_intern("_0_token_list"), 0);
69
+ $$ = rb_funcall(__actions, rb_intern("_0_token_list_99914b932bd37a50b983c5e7c90ae93b"), 0);
70
70
  }
71
71
 
72
72
  |
@@ -75,7 +75,7 @@ token_list:
75
75
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
76
76
  rb_ivar_set(__actions, rb_intern("@list"), rb_ary_new3(2, INT2FIX(@1.first_line), INT2FIX(@1.first_column)));
77
77
  rb_ivar_set(__actions, rb_intern("@token"), rb_ary_new3(2, INT2FIX(@2.first_line), INT2FIX(@2.first_column)));
78
- $$ = rb_funcall(__actions, rb_intern("_1_token_list"), 2, $1, $2);
78
+ $$ = rb_funcall(__actions, rb_intern("_1_token_list_21a28d2acdd128c24843b772a9881f2d"), 2, $1, $2);
79
79
  }
80
80
 
81
81
  ;
@@ -85,7 +85,7 @@ token:
85
85
  {
86
86
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
87
87
  rb_ivar_set(__actions, rb_intern("@name"), rb_ary_new3(2, INT2FIX(@3.first_line), INT2FIX(@3.first_column)));
88
- $$ = rb_funcall(__actions, rb_intern("_0_token"), 1, $3);
88
+ $$ = rb_funcall(__actions, rb_intern("_0_token_f014c38ad08ecac5d62c0e3fa23163b3"), 1, $3);
89
89
  }
90
90
 
91
91
  |
@@ -93,7 +93,7 @@ token:
93
93
  {
94
94
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
95
95
  rb_ivar_set(__actions, rb_intern("@name"), rb_ary_new3(2, INT2FIX(@3.first_line), INT2FIX(@3.first_column)));
96
- $$ = rb_funcall(__actions, rb_intern("_1_token"), 1, $3);
96
+ $$ = rb_funcall(__actions, rb_intern("_1_token_f014c38ad08ecac5d62c0e3fa23163b3"), 1, $3);
97
97
  }
98
98
 
99
99
  |
@@ -101,7 +101,7 @@ token:
101
101
  {
102
102
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
103
103
  rb_ivar_set(__actions, rb_intern("@name"), rb_ary_new3(2, INT2FIX(@3.first_line), INT2FIX(@3.first_column)));
104
- $$ = rb_funcall(__actions, rb_intern("_2_token"), 1, $3);
104
+ $$ = rb_funcall(__actions, rb_intern("_2_token_f014c38ad08ecac5d62c0e3fa23163b3"), 1, $3);
105
105
  }
106
106
 
107
107
  |
@@ -110,7 +110,7 @@ token:
110
110
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
111
111
  rb_ivar_set(__actions, rb_intern("@token"), rb_ary_new3(2, INT2FIX(@1.first_line), INT2FIX(@1.first_column)));
112
112
  rb_ivar_set(__actions, rb_intern("@num"), rb_ary_new3(2, INT2FIX(@2.first_line), INT2FIX(@2.first_column)));
113
- $$ = rb_funcall(__actions, rb_intern("_3_token"), 2, $1, $2);
113
+ $$ = rb_funcall(__actions, rb_intern("_3_token_445055bddb5840e621fa399faa56aefc"), 2, $1, $2);
114
114
  }
115
115
 
116
116
  ;
@@ -119,7 +119,7 @@ grammar_rules:
119
119
 
120
120
  {
121
121
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
122
- $$ = rb_funcall(__actions, rb_intern("_0_grammar_rules"), 0);
122
+ $$ = rb_funcall(__actions, rb_intern("_0_grammar_rules_99914b932bd37a50b983c5e7c90ae93b"), 0);
123
123
  }
124
124
 
125
125
  |
@@ -128,7 +128,7 @@ grammar_rules:
128
128
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
129
129
  rb_ivar_set(__actions, rb_intern("@list"), rb_ary_new3(2, INT2FIX(@1.first_line), INT2FIX(@1.first_column)));
130
130
  rb_ivar_set(__actions, rb_intern("@rule"), rb_ary_new3(2, INT2FIX(@2.first_line), INT2FIX(@2.first_column)));
131
- $$ = rb_funcall(__actions, rb_intern("_1_grammar_rules"), 2, $1, $2);
131
+ $$ = rb_funcall(__actions, rb_intern("_1_grammar_rules_d4b402a4ddf06c5292ab917a96fe105c"), 2, $1, $2);
132
132
  }
133
133
 
134
134
  ;
@@ -139,17 +139,24 @@ grammar_rule:
139
139
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
140
140
  rb_ivar_set(__actions, rb_intern("@name"), rb_ary_new3(2, INT2FIX(@1.first_line), INT2FIX(@1.first_column)));
141
141
  rb_ivar_set(__actions, rb_intern("@components"), rb_ary_new3(2, INT2FIX(@3.first_line), INT2FIX(@3.first_column)));
142
- $$ = rb_funcall(__actions, rb_intern("_0_grammar_rule"), 2, $1, $3);
142
+ $$ = rb_funcall(__actions, rb_intern("_0_grammar_rule_bce7f6337f3284ba4a3537cc1d642c28"), 2, $1, $3);
143
143
  }
144
144
 
145
145
  ;
146
146
 
147
147
  components:
148
+
149
+ {
150
+ rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
151
+ $$ = rb_funcall(__actions, rb_intern("_0_components_99914b932bd37a50b983c5e7c90ae93b"), 0);
152
+ }
153
+
154
+ |
148
155
  sequence
149
156
  {
150
157
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
151
158
  rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX(@1.first_line), INT2FIX(@1.first_column)));
152
- $$ = rb_funcall(__actions, rb_intern("_0_components"), 1, $1);
159
+ $$ = rb_funcall(__actions, rb_intern("_1_components_2403a823f1a9854a29da7cf64f191fbe"), 1, $1);
153
160
  }
154
161
 
155
162
  |
@@ -158,7 +165,7 @@ components:
158
165
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
159
166
  rb_ivar_set(__actions, rb_intern("@sequences"), rb_ary_new3(2, INT2FIX(@1.first_line), INT2FIX(@1.first_column)));
160
167
  rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX(@3.first_line), INT2FIX(@3.first_column)));
161
- $$ = rb_funcall(__actions, rb_intern("_1_components"), 2, $1, $3);
168
+ $$ = rb_funcall(__actions, rb_intern("_2_components_62da044340939f02b6c0b52917617e17"), 2, $1, $3);
162
169
  }
163
170
 
164
171
  ;
@@ -167,7 +174,7 @@ sequence:
167
174
 
168
175
  {
169
176
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
170
- $$ = rb_funcall(__actions, rb_intern("_0_sequence"), 0);
177
+ $$ = rb_funcall(__actions, rb_intern("_0_sequence_99914b932bd37a50b983c5e7c90ae93b"), 0);
171
178
  }
172
179
 
173
180
  |
@@ -176,7 +183,7 @@ sequence:
176
183
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
177
184
  rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX(@1.first_line), INT2FIX(@1.first_column)));
178
185
  rb_ivar_set(__actions, rb_intern("@code"), rb_ary_new3(2, INT2FIX(@2.first_line), INT2FIX(@2.first_column)));
179
- $$ = rb_funcall(__actions, rb_intern("_1_sequence"), 2, $1, $2);
186
+ $$ = rb_funcall(__actions, rb_intern("_1_sequence_512ceffccf6bb7565046f90d6d7762ad"), 2, $1, $2);
180
187
  }
181
188
 
182
189
  |
@@ -185,7 +192,7 @@ sequence:
185
192
  rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
186
193
  rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX(@1.first_line), INT2FIX(@1.first_column)));
187
194
  rb_ivar_set(__actions, rb_intern("@follower"), rb_ary_new3(2, INT2FIX(@2.first_line), INT2FIX(@2.first_column)));
188
- $$ = rb_funcall(__actions, rb_intern("_2_sequence"), 2, $1, $2);
195
+ $$ = rb_funcall(__actions, rb_intern("_2_sequence_4b2903c3aeb37d22d413a53653d0df28"), 2, $1, $2);
189
196
  }
190
197
 
191
198
  |
@@ -195,16 +202,7 @@ sequence:
195
202
  rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX(@1.first_line), INT2FIX(@1.first_column)));
196
203
  rb_ivar_set(__actions, rb_intern("@follower"), rb_ary_new3(2, INT2FIX(@2.first_line), INT2FIX(@2.first_column)));
197
204
  rb_ivar_set(__actions, rb_intern("@tag"), rb_ary_new3(2, INT2FIX(@4.first_line), INT2FIX(@4.first_column)));
198
- $$ = rb_funcall(__actions, rb_intern("_3_sequence"), 3, $1, $2, $4);
199
- }
200
-
201
- |
202
- sequence STRING
203
- {
204
- rb_ivar_set(__actions, rb_intern("@_"), rb_ary_new3(2, INT2FIX(@$.first_line), INT2FIX(@$.first_column)));
205
- rb_ivar_set(__actions, rb_intern("@sequence"), rb_ary_new3(2, INT2FIX(@1.first_line), INT2FIX(@1.first_column)));
206
- rb_ivar_set(__actions, rb_intern("@follower"), rb_ary_new3(2, INT2FIX(@2.first_line), INT2FIX(@2.first_column)));
207
- $$ = rb_funcall(__actions, rb_intern("_4_sequence"), 2, $1, $2);
205
+ $$ = rb_funcall(__actions, rb_intern("_3_sequence_68f2380aa0f3a7de0fb9b3482705a54c"), 3, $1, $2, $4);
208
206
  }
209
207
 
210
208
  ;
@@ -2,8 +2,6 @@ require 'mkmf'
2
2
 
3
3
  output = "#{File.dirname(__FILE__)}/bison_parser.c"
4
4
  bison_file = "#{File.dirname(__FILE__)}/bison_parser.y"
5
-
6
- bison = ENV['BISON_PATH'] || 'bison'
7
- system(bison, '-o', output, bison_file)
5
+ system('bison', '-o', output, bison_file)
8
6
 
9
7
  create_makefile 'bison_parser/bison_parser'
@@ -9,6 +9,5 @@ require 'bison/rule'
9
9
  require 'bison/sequence'
10
10
  require 'bison/action'
11
11
  require 'bison/nonterminal'
12
- require 'bison/string'
13
12
 
14
13
  require 'bison_parser'
@@ -48,7 +48,7 @@ module Bison
48
48
 
49
49
  def name
50
50
  base = "_#{sequence.index}_#{sequence.rule.name}"
51
- # base << "_#{Digest::MD5.hexdigest(predecessor_tags.inspect)}"
51
+ base << "_#{Digest::MD5.hexdigest(predecessor_tags.inspect)}"
52
52
  end
53
53
 
54
54
  # What to do about default $1/Qnil?
@@ -14,7 +14,7 @@ module Bison
14
14
  errors = []
15
15
  symbols = tokens.map(&:name) + rules.map(&:name)
16
16
  rules.map(&:components).flatten.map(&:elements).flatten.each do |el|
17
- if el.is_a?(Bison::Nonterminal) && !symbols.include?(el.name)
17
+ unless !(Bison::Nonterminal === el) || symbols.include?(el.name)
18
18
  errors << "#{el.location.join('.')}: #{el.name} is not defined"
19
19
  end
20
20
  end
@@ -1,3 +1,3 @@
1
1
  module Bison
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
@@ -3,20 +3,6 @@ class BisonParser
3
3
  attr_accessor :section
4
4
 
5
5
  def lex
6
- x = real_lex
7
- Tokens.constants.each do |const|
8
- if Tokens.const_get(const) == x
9
- warn "Lex'd #{const}\t: #{lex_value.inspect}" if ENV['DEBUG_GRAMMAR']
10
- return x
11
- end
12
- end
13
-
14
- warn "Lex'd #{x.inspect}" if ENV['DEBUG_GRAMMAR']
15
-
16
- x
17
- end
18
-
19
- def real_lex
20
6
  self.section ||= 0
21
7
  self.lex_value = nil
22
8
 
@@ -38,7 +24,7 @@ class BisonParser
38
24
  break
39
25
  end
40
26
  end
41
-
27
+
42
28
  return nil unless c
43
29
 
44
30
  case c
@@ -76,20 +62,6 @@ class BisonParser
76
62
  end
77
63
  self.lex_value = number.to_i
78
64
  return Tokens::NUMBER
79
- when '"'
80
- string = ''
81
- while (c = self.read) && c != '"'
82
- string << c
83
- end
84
- self.lex_value = string
85
- return Tokens::STRING
86
- when "'"
87
- string = ''
88
- while (c = self.read) && c != "'"
89
- string << c
90
- end
91
- self.lex_value = string
92
- return Tokens::STRING
93
65
  end
94
66
 
95
67
  if c =~ /\w/
@@ -111,9 +83,7 @@ class BisonParser
111
83
  end
112
84
  end
113
85
 
114
- warn "Yielding literal #{c.inspect}"
115
-
116
- return c.ord
86
+ return nil
117
87
  end
118
88
  end
119
89
 
@@ -2,80 +2,80 @@ class BisonParser
2
2
  class Actions
3
3
  attr_accessor :parser, :result
4
4
 
5
- def _0_grammar_file(tokens, rules, code)
5
+ def _0_grammar_file_a94c71c90dcf6de40d17336b9d39db58(tokens, rules, code)
6
6
  self.result = Bison::GrammarFile.new(tokens, rules, code)
7
7
  end
8
8
 
9
- def _0_optional_code()
9
+ def _0_optional_code_99914b932bd37a50b983c5e7c90ae93b()
10
10
  nil
11
11
  end
12
12
 
13
- def _1_optional_code(actions)
13
+ def _1_optional_code_1359d45d91e668b6af09d4ac3c336a88(actions)
14
14
  actions
15
15
  end
16
16
 
17
- def _0_token_list()
17
+ def _0_token_list_99914b932bd37a50b983c5e7c90ae93b()
18
18
  []
19
19
  end
20
20
 
21
- def _1_token_list(list, token)
21
+ def _1_token_list_21a28d2acdd128c24843b772a9881f2d(list, token)
22
22
  list << token
23
23
  end
24
24
 
25
- def _0_token(name)
25
+ def _0_token_f014c38ad08ecac5d62c0e3fa23163b3(name)
26
26
  Bison::Token.new(name)
27
27
  end
28
28
 
29
- def _1_token(name)
29
+ def _1_token_f014c38ad08ecac5d62c0e3fa23163b3(name)
30
30
  Bison::Token.new(name, :left)
31
31
  end
32
32
 
33
- def _2_token(name)
33
+ def _2_token_f014c38ad08ecac5d62c0e3fa23163b3(name)
34
34
  Bison::Token.new(name, :right)
35
35
  end
36
36
 
37
- def _3_token(token, num)
37
+ def _3_token_445055bddb5840e621fa399faa56aefc(token, num)
38
38
  token.tap{ |t| t.number = num }
39
39
  end
40
40
 
41
- def _0_grammar_rules()
41
+ def _0_grammar_rules_99914b932bd37a50b983c5e7c90ae93b()
42
42
  []
43
43
  end
44
44
 
45
- def _1_grammar_rules(list, rule)
45
+ def _1_grammar_rules_d4b402a4ddf06c5292ab917a96fe105c(list, rule)
46
46
  list << rule
47
47
  end
48
48
 
49
- def _0_grammar_rule(name, components)
49
+ def _0_grammar_rule_bce7f6337f3284ba4a3537cc1d642c28(name, components)
50
50
  Bison::Rule.new(name, components).tap{ |r| r.location = @name }
51
51
  end
52
52
 
53
- def _0_components(sequence)
53
+ def _0_components_99914b932bd37a50b983c5e7c90ae93b()
54
+ []
55
+ end
56
+
57
+ def _1_components_2403a823f1a9854a29da7cf64f191fbe(sequence)
54
58
  [sequence]
55
59
  end
56
60
 
57
- def _1_components(sequences, sequence)
61
+ def _2_components_62da044340939f02b6c0b52917617e17(sequences, sequence)
58
62
  sequences << sequence
59
63
  end
60
64
 
61
- def _0_sequence()
65
+ def _0_sequence_99914b932bd37a50b983c5e7c90ae93b()
62
66
  Bison::Sequence.new
63
67
  end
64
68
 
65
- def _1_sequence(sequence, code)
69
+ def _1_sequence_512ceffccf6bb7565046f90d6d7762ad(sequence, code)
66
70
  sequence << Bison::Action.new(code).tap{ |a| a.location = @code }
67
71
  end
68
72
 
69
- def _2_sequence(sequence, follower)
73
+ def _2_sequence_4b2903c3aeb37d22d413a53653d0df28(sequence, follower)
70
74
  sequence << Bison::Nonterminal.new(follower).tap{ |x| x.location = @follower }
71
75
  end
72
76
 
73
- def _3_sequence(sequence, follower, tag)
77
+ def _3_sequence_68f2380aa0f3a7de0fb9b3482705a54c(sequence, follower, tag)
74
78
  sequence << Bison::Nonterminal.new(follower, tag).tap{ |x| x.location = @follower }
75
79
  end
76
-
77
- def _4_sequence(sequence, follower)
78
- sequence << Bison::String.new(follower).tap{ |x| x.location = @follower }
79
- end
80
80
  end
81
81
  end
@@ -102,20 +102,17 @@ static int yylex(YYSTYPE *lval, YYLTYPE *lloc, VALUE actions) {
102
102
 
103
103
  if (vtok == Qnil) {
104
104
  *lval = Qnil;
105
- // fprintf(stderr, "parse is nil\n");
106
105
  return 0;
107
106
  }
108
107
 
109
108
  if (vtok & 1) {
110
109
  *lval = value;
111
- // fprintf(stderr, "parse is int: %d\n", FIX2INT(vtok));
112
110
  return FIX2INT(vtok);
113
111
  }
114
112
 
115
113
  if (RBASIC(vtok)->klass == rb_cString) {
116
114
  c = StringValueCStr(vtok)[0];
117
115
  *lval = rb_sprintf("%c", c);
118
- // fprintf(stderr, "parse is char: '%c' (%d)\n", c, (int)c);
119
116
  return c;
120
117
  }
121
118
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mkbison
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Woo