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 +4 -4
- data/bison_parser.rby +4 -36
- data/ext/bison_parser/bison_parser.c +65 -67
- data/ext/bison_parser/bison_parser.y +25 -27
- data/ext/bison_parser/extconf.rb +1 -3
- data/lib/bison.rb +0 -1
- data/lib/bison/action.rb +1 -1
- data/lib/bison/grammar_file.rb +1 -1
- data/lib/bison/version.rb +1 -1
- data/lib/bison_parser.rb +2 -32
- data/lib/bison_parser/actions.rb +22 -22
- data/templates/parser.y.erb +0 -3
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 71a987a62e2d5a4ff59028f97bbb5d3f58d2c8f2
|
4
|
+
data.tar.gz: b5780f28d873a785a96dc0ad3b444158409bed52
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 909d99dfc14789d8ffbbf7a2396e82f085f85448cd87ca75b8efa6e3fb779a4c317e1928a9a499e5d9f191c494e3f99206afcf94bada2022f57d93840d883a87
|
7
|
+
data.tar.gz: 47033ca52ad47487545b17d405fa2615c86a9c9ebdc5cff36ef14d4e739518490ae6c0be7035ea73881c0295c425862bee7f94f397a1717f5ea7485c7d7da656
|
data/bison_parser.rby
CHANGED
@@ -62,7 +62,8 @@ grammar_rule:
|
|
62
62
|
;
|
63
63
|
|
64
64
|
components:
|
65
|
-
|
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
|
-
|
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
|
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
|
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,
|
458
|
-
|
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 -
|
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,
|
500
|
-
-
|
501
|
-
-8, -4, -
|
502
|
-
|
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,
|
512
|
-
4, 0,
|
513
|
-
|
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,
|
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
|
531
|
+
static const yytype_int8 yytable[] =
|
532
532
|
{
|
533
|
-
|
534
|
-
|
535
|
-
|
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,
|
541
|
-
|
542
|
-
|
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,
|
552
|
-
|
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,
|
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,
|
568
|
-
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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
|
-
|
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
|
1474
|
+
#line 1475 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
|
1476
1475
|
break;
|
1477
1476
|
|
1478
1477
|
case 15:
|
1479
|
-
#line
|
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("
|
1482
|
+
(yyval) = rb_funcall(__actions, rb_intern("_1_components_2403a823f1a9854a29da7cf64f191fbe"), 1, (yyvsp[0]));
|
1485
1483
|
}
|
1486
|
-
#line
|
1484
|
+
#line 1485 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
|
1487
1485
|
break;
|
1488
1486
|
|
1489
1487
|
case 16:
|
1490
|
-
#line
|
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
|
-
(
|
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
|
-
|
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
|
1504
|
+
#line 1505 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
|
1507
1505
|
break;
|
1508
1506
|
|
1509
1507
|
case 18:
|
1510
|
-
#line
|
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("@
|
1515
|
-
(yyval) = rb_funcall(__actions, rb_intern("
|
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
|
1515
|
+
#line 1516 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
|
1518
1516
|
break;
|
1519
1517
|
|
1520
1518
|
case 19:
|
1521
|
-
#line
|
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[-
|
1525
|
-
rb_ivar_set(__actions, rb_intern("@follower"), rb_ary_new3(2, INT2FIX((yylsp[
|
1526
|
-
|
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
|
1526
|
+
#line 1527 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
|
1530
1527
|
break;
|
1531
1528
|
|
1532
1529
|
case 20:
|
1533
|
-
#line
|
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[-
|
1537
|
-
rb_ivar_set(__actions, rb_intern("@follower"), rb_ary_new3(2, INT2FIX((yylsp[
|
1538
|
-
(
|
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
|
1538
|
+
#line 1539 "../../../../ext/bison_parser/bison_parser.c" /* yacc.c:1661 */
|
1541
1539
|
break;
|
1542
1540
|
|
1543
1541
|
|
1544
|
-
#line
|
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
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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("
|
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
|
;
|
data/ext/bison_parser/extconf.rb
CHANGED
@@ -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'
|
data/lib/bison.rb
CHANGED
data/lib/bison/action.rb
CHANGED
@@ -48,7 +48,7 @@ module Bison
|
|
48
48
|
|
49
49
|
def name
|
50
50
|
base = "_#{sequence.index}_#{sequence.rule.name}"
|
51
|
-
|
51
|
+
base << "_#{Digest::MD5.hexdigest(predecessor_tags.inspect)}"
|
52
52
|
end
|
53
53
|
|
54
54
|
# What to do about default $1/Qnil?
|
data/lib/bison/grammar_file.rb
CHANGED
@@ -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
|
-
|
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
|
data/lib/bison/version.rb
CHANGED
data/lib/bison_parser.rb
CHANGED
@@ -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
|
-
|
115
|
-
|
116
|
-
return c.ord
|
86
|
+
return nil
|
117
87
|
end
|
118
88
|
end
|
119
89
|
|
data/lib/bison_parser/actions.rb
CHANGED
@@ -2,80 +2,80 @@ class BisonParser
|
|
2
2
|
class Actions
|
3
3
|
attr_accessor :parser, :result
|
4
4
|
|
5
|
-
def
|
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
|
9
|
+
def _0_optional_code_99914b932bd37a50b983c5e7c90ae93b()
|
10
10
|
nil
|
11
11
|
end
|
12
12
|
|
13
|
-
def
|
13
|
+
def _1_optional_code_1359d45d91e668b6af09d4ac3c336a88(actions)
|
14
14
|
actions
|
15
15
|
end
|
16
16
|
|
17
|
-
def
|
17
|
+
def _0_token_list_99914b932bd37a50b983c5e7c90ae93b()
|
18
18
|
[]
|
19
19
|
end
|
20
20
|
|
21
|
-
def
|
21
|
+
def _1_token_list_21a28d2acdd128c24843b772a9881f2d(list, token)
|
22
22
|
list << token
|
23
23
|
end
|
24
24
|
|
25
|
-
def
|
25
|
+
def _0_token_f014c38ad08ecac5d62c0e3fa23163b3(name)
|
26
26
|
Bison::Token.new(name)
|
27
27
|
end
|
28
28
|
|
29
|
-
def
|
29
|
+
def _1_token_f014c38ad08ecac5d62c0e3fa23163b3(name)
|
30
30
|
Bison::Token.new(name, :left)
|
31
31
|
end
|
32
32
|
|
33
|
-
def
|
33
|
+
def _2_token_f014c38ad08ecac5d62c0e3fa23163b3(name)
|
34
34
|
Bison::Token.new(name, :right)
|
35
35
|
end
|
36
36
|
|
37
|
-
def
|
37
|
+
def _3_token_445055bddb5840e621fa399faa56aefc(token, num)
|
38
38
|
token.tap{ |t| t.number = num }
|
39
39
|
end
|
40
40
|
|
41
|
-
def
|
41
|
+
def _0_grammar_rules_99914b932bd37a50b983c5e7c90ae93b()
|
42
42
|
[]
|
43
43
|
end
|
44
44
|
|
45
|
-
def
|
45
|
+
def _1_grammar_rules_d4b402a4ddf06c5292ab917a96fe105c(list, rule)
|
46
46
|
list << rule
|
47
47
|
end
|
48
48
|
|
49
|
-
def
|
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
|
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
|
61
|
+
def _2_components_62da044340939f02b6c0b52917617e17(sequences, sequence)
|
58
62
|
sequences << sequence
|
59
63
|
end
|
60
64
|
|
61
|
-
def
|
65
|
+
def _0_sequence_99914b932bd37a50b983c5e7c90ae93b()
|
62
66
|
Bison::Sequence.new
|
63
67
|
end
|
64
68
|
|
65
|
-
def
|
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
|
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
|
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
|
data/templates/parser.y.erb
CHANGED
@@ -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
|
|