mkbison 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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