[ruby/yarp] Parse individual snippets of test/fixtures/*.txt

* To ensure the parser does not try to read bytes further than the end of each snippet.

https://github.com/ruby/yarp/commit/1c4438bdde
This commit is contained in:
Benoit Daloze 2023-07-05 21:59:28 +02:00 committed by Takashi Kokubun
parent 3f64defe13
commit 1ad0d19876
Notes: git 2023-08-17 00:48:06 +00:00
5 changed files with 386 additions and 366 deletions

View File

@ -51,6 +51,8 @@ A::>>
A::<<
A::\
#
C
A::alias
@ -163,6 +165,7 @@ A::**
A::~
A::_::
C
A::_..

View File

@ -37,7 +37,7 @@
%[foo[]]
"foo" +
#
"bar"
%q{abc}

View File

@ -45,11 +45,6 @@ class ParseTest < Test::Unit::TestCase
end
end
def test_parse_dollar0
parsed_result = YARP.parse("$0", "-e")
assert_equal 2, parsed_result.value.location.length
end
def test_parse_takes_file_path
filepath = "filepath.rb"
parsed_result = YARP.parse("def foo; __FILE__; end", filepath)
@ -124,6 +119,26 @@ class ParseTest < Test::Unit::TestCase
end
end
Dir["*.txt", base: base].each do |relative|
# We test every snippet (separated by \n\n) in isolation
# to ensure the parser does not try to read bytes further than the end of each snippet
define_method "test_individual_snippets_#{relative}" do
filepath = File.join(base, relative)
# First, read the source from the filepath. Use binmode to avoid converting CRLF on Windows,
# and explicitly set the external encoding to UTF-8 to override the binmode default.
file_contents = File.read(filepath, binmode: true, external_encoding: Encoding::UTF_8)
file_contents.split(/(?<=\S)\n\n(?=\S)/).each do |snippet|
snippet = snippet.rstrip
result = YARP.parse(snippet, relative)
assert_empty result.errors
assert_equal_nodes(result.value, YARP.load(snippet, YARP.dump(snippet, relative)))
end
end
end
private
def ignore_warnings

View File

@ -1,6 +1,6 @@
ProgramNode(0...709)(
ProgramNode(0...715)(
[],
StatementsNode(0...709)(
StatementsNode(0...715)(
[ConstantPathNode(0...4)(
ConstantReadNode(0...1)(),
ConstantReadNode(3...4)(),
@ -235,14 +235,15 @@ ProgramNode(0...709)(
0,
"<<"
),
CallNode(196...210)(
ConstantPathNode(196...203)(
ConstantReadNode(196...197)(),
ConstantReadNode(202...203)(),
(197...199)
),
(203...205),
(205...210),
ConstantPathNode(196...204)(
ConstantReadNode(196...197)(),
ConstantReadNode(203...204)(),
(197...199)
),
CallNode(206...214)(
ConstantReadNode(206...207)(),
(207...209),
(209...214),
nil,
nil,
nil,
@ -250,10 +251,10 @@ ProgramNode(0...709)(
0,
"alias"
),
CallNode(212...218)(
ConstantReadNode(212...213)(),
(213...215),
(215...218),
CallNode(216...222)(
ConstantReadNode(216...217)(),
(217...219),
(219...222),
nil,
nil,
nil,
@ -261,10 +262,10 @@ ProgramNode(0...709)(
0,
"and"
),
CallNode(220...228)(
ConstantReadNode(220...221)(),
(221...223),
(223...228),
CallNode(224...232)(
ConstantReadNode(224...225)(),
(225...227),
(227...232),
nil,
nil,
nil,
@ -272,15 +273,15 @@ ProgramNode(0...709)(
0,
"begin"
),
ConstantPathNode(230...238)(
ConstantReadNode(230...231)(),
ConstantReadNode(233...238)(),
(231...233)
ConstantPathNode(234...242)(
ConstantReadNode(234...235)(),
ConstantReadNode(237...242)(),
(235...237)
),
CallNode(240...248)(
ConstantReadNode(240...241)(),
(241...243),
(243...248),
CallNode(244...252)(
ConstantReadNode(244...245)(),
(245...247),
(247...252),
nil,
nil,
nil,
@ -288,10 +289,10 @@ ProgramNode(0...709)(
0,
"break"
),
CallNode(250...258)(
ConstantReadNode(250...251)(),
(251...253),
(253...258),
CallNode(254...262)(
ConstantReadNode(254...255)(),
(255...257),
(257...262),
nil,
nil,
nil,
@ -299,10 +300,10 @@ ProgramNode(0...709)(
0,
"class"
),
CallNode(260...266)(
ConstantReadNode(260...261)(),
(261...263),
(263...266),
CallNode(264...270)(
ConstantReadNode(264...265)(),
(265...267),
(267...270),
nil,
nil,
nil,
@ -310,10 +311,10 @@ ProgramNode(0...709)(
0,
"def"
),
CallNode(268...278)(
ConstantReadNode(268...269)(),
(269...271),
(271...278),
CallNode(272...282)(
ConstantReadNode(272...273)(),
(273...275),
(275...282),
nil,
nil,
nil,
@ -321,10 +322,10 @@ ProgramNode(0...709)(
0,
"defined"
),
CallNode(280...285)(
ConstantReadNode(280...281)(),
(281...283),
(283...285),
CallNode(284...289)(
ConstantReadNode(284...285)(),
(285...287),
(287...289),
nil,
nil,
nil,
@ -332,10 +333,10 @@ ProgramNode(0...709)(
0,
"do"
),
CallNode(287...294)(
ConstantReadNode(287...288)(),
(288...290),
(290...294),
CallNode(291...298)(
ConstantReadNode(291...292)(),
(292...294),
(294...298),
nil,
nil,
nil,
@ -343,10 +344,10 @@ ProgramNode(0...709)(
0,
"else"
),
CallNode(296...304)(
ConstantReadNode(296...297)(),
(297...299),
(299...304),
CallNode(300...308)(
ConstantReadNode(300...301)(),
(301...303),
(303...308),
nil,
nil,
nil,
@ -354,10 +355,10 @@ ProgramNode(0...709)(
0,
"elsif"
),
CallNode(306...312)(
ConstantReadNode(306...307)(),
(307...309),
(309...312),
CallNode(310...316)(
ConstantReadNode(310...311)(),
(311...313),
(313...316),
nil,
nil,
nil,
@ -365,15 +366,15 @@ ProgramNode(0...709)(
0,
"end"
),
ConstantPathNode(314...320)(
ConstantReadNode(314...315)(),
ConstantReadNode(317...320)(),
(315...317)
ConstantPathNode(318...324)(
ConstantReadNode(318...319)(),
ConstantReadNode(321...324)(),
(319...321)
),
CallNode(322...331)(
ConstantReadNode(322...323)(),
(323...325),
(325...331),
CallNode(326...335)(
ConstantReadNode(326...327)(),
(327...329),
(329...335),
nil,
nil,
nil,
@ -381,10 +382,10 @@ ProgramNode(0...709)(
0,
"ensure"
),
CallNode(333...341)(
ConstantReadNode(333...334)(),
(334...336),
(336...341),
CallNode(337...345)(
ConstantReadNode(337...338)(),
(338...340),
(340...345),
nil,
nil,
nil,
@ -392,10 +393,10 @@ ProgramNode(0...709)(
0,
"false"
),
CallNode(343...349)(
ConstantReadNode(343...344)(),
(344...346),
(346...349),
CallNode(347...353)(
ConstantReadNode(347...348)(),
(348...350),
(350...353),
nil,
nil,
nil,
@ -403,10 +404,10 @@ ProgramNode(0...709)(
0,
"for"
),
CallNode(351...356)(
ConstantReadNode(351...352)(),
(352...354),
(354...356),
CallNode(355...360)(
ConstantReadNode(355...356)(),
(356...358),
(358...360),
nil,
nil,
nil,
@ -414,10 +415,10 @@ ProgramNode(0...709)(
0,
"if"
),
CallNode(358...363)(
ConstantReadNode(358...359)(),
(359...361),
(361...363),
CallNode(362...367)(
ConstantReadNode(362...363)(),
(363...365),
(365...367),
nil,
nil,
nil,
@ -425,10 +426,10 @@ ProgramNode(0...709)(
0,
"in"
),
CallNode(365...372)(
ConstantReadNode(365...366)(),
(366...368),
(368...372),
CallNode(369...376)(
ConstantReadNode(369...370)(),
(370...372),
(372...376),
nil,
nil,
nil,
@ -436,10 +437,10 @@ ProgramNode(0...709)(
0,
"next"
),
CallNode(374...380)(
ConstantReadNode(374...375)(),
(375...377),
(377...380),
CallNode(378...384)(
ConstantReadNode(378...379)(),
(379...381),
(381...384),
nil,
nil,
nil,
@ -447,10 +448,10 @@ ProgramNode(0...709)(
0,
"nil"
),
CallNode(382...388)(
ConstantReadNode(382...383)(),
(383...385),
(385...388),
CallNode(386...392)(
ConstantReadNode(386...387)(),
(387...389),
(389...392),
nil,
nil,
nil,
@ -458,10 +459,10 @@ ProgramNode(0...709)(
0,
"not"
),
CallNode(390...395)(
ConstantReadNode(390...391)(),
(391...393),
(393...395),
CallNode(394...399)(
ConstantReadNode(394...395)(),
(395...397),
(397...399),
nil,
nil,
nil,
@ -469,10 +470,10 @@ ProgramNode(0...709)(
0,
"or"
),
CallNode(397...404)(
ConstantReadNode(397...398)(),
(398...400),
(400...404),
CallNode(401...408)(
ConstantReadNode(401...402)(),
(402...404),
(404...408),
nil,
nil,
nil,
@ -480,10 +481,10 @@ ProgramNode(0...709)(
0,
"redo"
),
CallNode(406...415)(
ConstantReadNode(406...407)(),
(407...409),
(409...415),
CallNode(410...419)(
ConstantReadNode(410...411)(),
(411...413),
(413...419),
nil,
nil,
nil,
@ -491,10 +492,10 @@ ProgramNode(0...709)(
0,
"rescue"
),
CallNode(417...425)(
ConstantReadNode(417...418)(),
(418...420),
(420...425),
CallNode(421...429)(
ConstantReadNode(421...422)(),
(422...424),
(424...429),
nil,
nil,
nil,
@ -502,10 +503,10 @@ ProgramNode(0...709)(
0,
"retry"
),
CallNode(427...436)(
ConstantReadNode(427...428)(),
(428...430),
(430...436),
CallNode(431...440)(
ConstantReadNode(431...432)(),
(432...434),
(434...440),
nil,
nil,
nil,
@ -513,10 +514,10 @@ ProgramNode(0...709)(
0,
"return"
),
CallNode(438...445)(
ConstantReadNode(438...439)(),
(439...441),
(441...445),
CallNode(442...449)(
ConstantReadNode(442...443)(),
(443...445),
(445...449),
nil,
nil,
nil,
@ -524,10 +525,10 @@ ProgramNode(0...709)(
0,
"self"
),
CallNode(447...455)(
ConstantReadNode(447...448)(),
(448...450),
(450...455),
CallNode(451...459)(
ConstantReadNode(451...452)(),
(452...454),
(454...459),
nil,
nil,
nil,
@ -535,10 +536,10 @@ ProgramNode(0...709)(
0,
"super"
),
CallNode(457...464)(
ConstantReadNode(457...458)(),
(458...460),
(460...464),
CallNode(461...468)(
ConstantReadNode(461...462)(),
(462...464),
(464...468),
nil,
nil,
nil,
@ -546,10 +547,10 @@ ProgramNode(0...709)(
0,
"then"
),
CallNode(466...473)(
ConstantReadNode(466...467)(),
(467...469),
(469...473),
CallNode(470...477)(
ConstantReadNode(470...471)(),
(471...473),
(473...477),
nil,
nil,
nil,
@ -557,10 +558,10 @@ ProgramNode(0...709)(
0,
"true"
),
CallNode(475...483)(
ConstantReadNode(475...476)(),
(476...478),
(478...483),
CallNode(479...487)(
ConstantReadNode(479...480)(),
(480...482),
(482...487),
nil,
nil,
nil,
@ -568,10 +569,10 @@ ProgramNode(0...709)(
0,
"undef"
),
CallNode(485...494)(
ConstantReadNode(485...486)(),
(486...488),
(488...494),
CallNode(489...498)(
ConstantReadNode(489...490)(),
(490...492),
(492...498),
nil,
nil,
nil,
@ -579,10 +580,10 @@ ProgramNode(0...709)(
0,
"unless"
),
CallNode(496...504)(
ConstantReadNode(496...497)(),
(497...499),
(499...504),
CallNode(500...508)(
ConstantReadNode(500...501)(),
(501...503),
(503...508),
nil,
nil,
nil,
@ -590,10 +591,10 @@ ProgramNode(0...709)(
0,
"until"
),
CallNode(506...513)(
ConstantReadNode(506...507)(),
(507...509),
(509...513),
CallNode(510...517)(
ConstantReadNode(510...511)(),
(511...513),
(513...517),
nil,
nil,
nil,
@ -601,10 +602,10 @@ ProgramNode(0...709)(
0,
"when"
),
CallNode(515...523)(
ConstantReadNode(515...516)(),
(516...518),
(518...523),
CallNode(519...527)(
ConstantReadNode(519...520)(),
(520...522),
(522...527),
nil,
nil,
nil,
@ -612,10 +613,10 @@ ProgramNode(0...709)(
0,
"while"
),
CallNode(525...533)(
ConstantReadNode(525...526)(),
(526...528),
(528...533),
CallNode(529...537)(
ConstantReadNode(529...530)(),
(530...532),
(532...537),
nil,
nil,
nil,
@ -623,10 +624,10 @@ ProgramNode(0...709)(
0,
"yield"
),
CallNode(535...550)(
ConstantReadNode(535...536)(),
(536...538),
(538...550),
CallNode(539...554)(
ConstantReadNode(539...540)(),
(540...542),
(542...554),
nil,
nil,
nil,
@ -634,10 +635,10 @@ ProgramNode(0...709)(
0,
"__ENCODING__"
),
CallNode(552...563)(
ConstantReadNode(552...553)(),
(553...555),
(555...563),
CallNode(556...567)(
ConstantReadNode(556...557)(),
(557...559),
(559...567),
nil,
nil,
nil,
@ -645,10 +646,10 @@ ProgramNode(0...709)(
0,
"__FILE__"
),
CallNode(565...576)(
ConstantReadNode(565...566)(),
(566...568),
(568...576),
CallNode(569...580)(
ConstantReadNode(569...570)(),
(570...572),
(572...580),
nil,
nil,
nil,
@ -656,10 +657,10 @@ ProgramNode(0...709)(
0,
"__LINE__"
),
CallNode(578...582)(
ConstantReadNode(578...579)(),
(579...581),
(581...582),
CallNode(582...586)(
ConstantReadNode(582...583)(),
(583...585),
(585...586),
nil,
nil,
nil,
@ -667,10 +668,10 @@ ProgramNode(0...709)(
0,
"<"
),
CallNode(584...590)(
ConstantReadNode(584...585)(),
(585...587),
(587...590),
CallNode(588...594)(
ConstantReadNode(588...589)(),
(589...591),
(591...594),
nil,
nil,
nil,
@ -678,10 +679,10 @@ ProgramNode(0...709)(
0,
"<=>"
),
CallNode(592...597)(
ConstantReadNode(592...593)(),
(593...595),
(595...597),
CallNode(596...601)(
ConstantReadNode(596...597)(),
(597...599),
(599...601),
nil,
nil,
nil,
@ -689,10 +690,10 @@ ProgramNode(0...709)(
0,
"<<"
),
CallNode(599...603)(
ConstantReadNode(599...600)(),
(600...602),
(602...603),
CallNode(603...607)(
ConstantReadNode(603...604)(),
(604...606),
(606...607),
nil,
nil,
nil,
@ -700,10 +701,10 @@ ProgramNode(0...709)(
0,
"-"
),
CallNode(605...609)(
ConstantReadNode(605...606)(),
(606...608),
(608...609),
CallNode(609...613)(
ConstantReadNode(609...610)(),
(610...612),
(612...613),
nil,
nil,
nil,
@ -711,16 +712,16 @@ ProgramNode(0...709)(
0,
"%"
),
CallNode(611...616)(
ConstantReadNode(611...612)(),
(612...614),
(615...616),
CallNode(615...620)(
ConstantReadNode(615...616)(),
(616...618),
(619...620),
nil,
ArgumentsNode(615...616)(
[CallNode(615...616)(
ArgumentsNode(619...620)(
[CallNode(619...620)(
nil,
nil,
(615...616),
(619...620),
nil,
nil,
nil,
@ -734,16 +735,16 @@ ProgramNode(0...709)(
0,
"i"
),
CallNode(618...623)(
ConstantReadNode(618...619)(),
(619...621),
(622...623),
CallNode(622...627)(
ConstantReadNode(622...623)(),
(623...625),
(626...627),
nil,
ArgumentsNode(622...623)(
[CallNode(622...623)(
ArgumentsNode(626...627)(
[CallNode(626...627)(
nil,
nil,
(622...623),
(626...627),
nil,
nil,
nil,
@ -757,16 +758,16 @@ ProgramNode(0...709)(
0,
"w"
),
CallNode(625...630)(
ConstantReadNode(625...626)(),
(626...628),
(629...630),
CallNode(629...634)(
ConstantReadNode(629...630)(),
(630...632),
(633...634),
nil,
ArgumentsNode(629...630)(
[CallNode(629...630)(
ArgumentsNode(633...634)(
[CallNode(633...634)(
nil,
nil,
(629...630),
(633...634),
nil,
nil,
nil,
@ -780,32 +781,32 @@ ProgramNode(0...709)(
0,
"x"
),
CallNode(632...637)(
ConstantReadNode(632...633)(),
(633...635),
(636...637),
CallNode(636...641)(
ConstantReadNode(636...637)(),
(637...639),
(640...641),
nil,
ArgumentsNode(636...637)([ConstantReadNode(636...637)()]),
ArgumentsNode(640...641)([ConstantReadNode(640...641)()]),
nil,
nil,
0,
"I"
),
CallNode(639...644)(
ConstantReadNode(639...640)(),
(640...642),
(643...644),
CallNode(643...648)(
ConstantReadNode(643...644)(),
(644...646),
(647...648),
nil,
ArgumentsNode(643...644)([ConstantReadNode(643...644)()]),
ArgumentsNode(647...648)([ConstantReadNode(647...648)()]),
nil,
nil,
0,
"W"
),
CallNode(646...650)(
ConstantReadNode(646...647)(),
(647...649),
(649...650),
CallNode(650...654)(
ConstantReadNode(650...651)(),
(651...653),
(653...654),
nil,
nil,
nil,
@ -813,10 +814,10 @@ ProgramNode(0...709)(
0,
"|"
),
CallNode(652...656)(
ConstantReadNode(652...653)(),
(653...655),
(655...656),
CallNode(656...660)(
ConstantReadNode(656...657)(),
(657...659),
(659...660),
nil,
nil,
nil,
@ -824,10 +825,10 @@ ProgramNode(0...709)(
0,
"+"
),
CallNode(658...662)(
ConstantReadNode(658...659)(),
(659...661),
(661...662),
CallNode(662...666)(
ConstantReadNode(662...663)(),
(663...665),
(665...666),
nil,
nil,
nil,
@ -835,10 +836,10 @@ ProgramNode(0...709)(
0,
"/"
),
CallNode(664...668)(
ConstantReadNode(664...665)(),
(665...667),
(667...668),
CallNode(668...672)(
ConstantReadNode(668...669)(),
(669...671),
(671...672),
nil,
nil,
nil,
@ -846,10 +847,10 @@ ProgramNode(0...709)(
0,
"*"
),
CallNode(670...675)(
ConstantReadNode(670...671)(),
(671...673),
(673...675),
CallNode(674...679)(
ConstantReadNode(674...675)(),
(675...677),
(677...679),
nil,
nil,
nil,
@ -857,10 +858,10 @@ ProgramNode(0...709)(
0,
"**"
),
CallNode(677...681)(
ConstantReadNode(677...678)(),
(678...680),
(680...681),
CallNode(681...685)(
ConstantReadNode(681...682)(),
(682...684),
(684...685),
nil,
nil,
nil,
@ -868,25 +869,11 @@ ProgramNode(0...709)(
0,
"~"
),
RangeNode(683...709)(
CallNode(683...695)(
ConstantPathNode(683...692)(
CallNode(683...687)(
ConstantReadNode(683...684)(),
(684...686),
(686...687),
nil,
nil,
nil,
nil,
0,
"_"
),
ConstantReadNode(691...692)(),
(687...689)
),
(692...694),
(694...695),
ConstantPathNode(687...695)(
CallNode(687...691)(
ConstantReadNode(687...688)(),
(688...690),
(690...691),
nil,
nil,
nil,
@ -894,10 +881,25 @@ ProgramNode(0...709)(
0,
"_"
),
CallNode(699...709)(
ConstantReadNode(699...700)(),
(700...702),
(702...709),
ConstantReadNode(694...695)(),
(691...693)
),
RangeNode(697...715)(
CallNode(697...701)(
ConstantReadNode(697...698)(),
(698...700),
(700...701),
nil,
nil,
nil,
nil,
0,
"_"
),
CallNode(705...715)(
ConstantReadNode(705...706)(),
(706...708),
(708...715),
nil,
nil,
nil,
@ -905,7 +907,7 @@ ProgramNode(0...709)(
0,
"__END__"
),
(695...697),
(701...703),
0
)]
)

View File

@ -1,6 +1,6 @@
ProgramNode(0...497)(
ProgramNode(0...498)(
[],
StatementsNode(0...497)(
StatementsNode(0...498)(
[StringNode(0...6)((0...2), (2...5), (5...6), "abc"),
StringNode(8...14)((8...10), (10...13), (13...14), "abc"),
StringNode(16...22)((16...18), (18...21), (21...22), "abc"),
@ -49,35 +49,35 @@ ProgramNode(0...497)(
(156...157)
),
StringNode(159...167)((159...161), (161...166), (166...167), "foo[]"),
CallNode(169...183)(
CallNode(169...184)(
StringNode(169...174)((169...170), (170...173), (173...174), "foo"),
nil,
(175...176),
nil,
ArgumentsNode(178...183)(
[StringNode(178...183)((178...179), (179...182), (182...183), "bar")]
ArgumentsNode(179...184)(
[StringNode(179...184)((179...180), (180...183), (183...184), "bar")]
),
nil,
nil,
0,
"+"
),
StringNode(185...192)((185...188), (188...191), (191...192), "abc"),
SymbolNode(194...201)((194...197), (197...200), (200...201), "abc"),
StringNode(203...209)((203...205), (205...208), (208...209), "abc"),
StringNode(211...213)((211...212), (212...212), (212...213), ""),
StringNode(215...220)((215...216), (216...219), (219...220), "abc"),
StringNode(222...229)((222...223), (223...228), (228...229), "\#@---"),
InterpolatedStringNode(231...247)(
(231...232),
[StringNode(232...236)(nil, (232...236), nil, "aaa "),
EmbeddedStatementsNode(236...242)(
(236...238),
StatementsNode(238...241)(
[CallNode(238...241)(
StringNode(186...193)((186...189), (189...192), (192...193), "abc"),
SymbolNode(195...202)((195...198), (198...201), (201...202), "abc"),
StringNode(204...210)((204...206), (206...209), (209...210), "abc"),
StringNode(212...214)((212...213), (213...213), (213...214), ""),
StringNode(216...221)((216...217), (217...220), (220...221), "abc"),
StringNode(223...230)((223...224), (224...229), (229...230), "\#@---"),
InterpolatedStringNode(232...248)(
(232...233),
[StringNode(233...237)(nil, (233...237), nil, "aaa "),
EmbeddedStatementsNode(237...243)(
(237...239),
StatementsNode(239...242)(
[CallNode(239...242)(
nil,
nil,
(238...241),
(239...242),
nil,
nil,
nil,
@ -86,50 +86,50 @@ ProgramNode(0...497)(
"bbb"
)]
),
(241...242)
(242...243)
),
StringNode(242...246)(nil, (242...246), nil, " ccc")],
(246...247)
StringNode(243...247)(nil, (243...247), nil, " ccc")],
(247...248)
),
StringNode(249...254)((249...250), (250...253), (253...254), "abc"),
ArrayNode(256...265)(
[StringNode(259...260)(nil, (259...260), nil, "a"),
StringNode(261...262)(nil, (261...262), nil, "b"),
StringNode(263...264)(nil, (263...264), nil, "c")],
(256...259),
(264...265)
StringNode(250...255)((250...251), (251...254), (254...255), "abc"),
ArrayNode(257...266)(
[StringNode(260...261)(nil, (260...261), nil, "a"),
StringNode(262...263)(nil, (262...263), nil, "b"),
StringNode(264...265)(nil, (264...265), nil, "c")],
(257...260),
(265...266)
),
ArrayNode(267...284)(
[StringNode(270...273)(nil, (270...273), nil, "a[]"),
StringNode(274...279)(nil, (274...279), nil, "b[[]]"),
StringNode(280...283)(nil, (280...283), nil, "c[]")],
(267...270),
(283...284)
ArrayNode(268...285)(
[StringNode(271...274)(nil, (271...274), nil, "a[]"),
StringNode(275...280)(nil, (275...280), nil, "b[[]]"),
StringNode(281...284)(nil, (281...284), nil, "c[]")],
(268...271),
(284...285)
),
ArrayNode(286...304)(
[StringNode(289...297)(nil, (289...297), nil, "foo\\ bar"),
StringNode(298...303)(nil, (298...303), nil, "\\\#{1}")],
(286...289),
(303...304)
ArrayNode(287...305)(
[StringNode(290...298)(nil, (290...298), nil, "foo\\ bar"),
StringNode(299...304)(nil, (299...304), nil, "\\\#{1}")],
(287...290),
(304...305)
),
ArrayNode(306...322)(
[StringNode(309...317)(nil, (309...317), nil, "foo\\ bar"),
StringNode(318...321)(nil, (318...321), nil, "baz")],
(306...309),
(321...322)
ArrayNode(307...323)(
[StringNode(310...318)(nil, (310...318), nil, "foo\\ bar"),
StringNode(319...322)(nil, (319...322), nil, "baz")],
(307...310),
(322...323)
),
ArrayNode(324...338)(
[StringNode(327...328)(nil, (327...328), nil, "a"),
InterpolatedStringNode(0...335)(
ArrayNode(325...339)(
[StringNode(328...329)(nil, (328...329), nil, "a"),
InterpolatedStringNode(0...336)(
nil,
[StringNode(329...330)(nil, (329...330), nil, "b"),
EmbeddedStatementsNode(330...334)(
(330...332),
StatementsNode(332...333)(
[CallNode(332...333)(
[StringNode(330...331)(nil, (330...331), nil, "b"),
EmbeddedStatementsNode(331...335)(
(331...333),
StatementsNode(333...334)(
[CallNode(333...334)(
nil,
nil,
(332...333),
(333...334),
nil,
nil,
nil,
@ -138,64 +138,64 @@ ProgramNode(0...497)(
"c"
)]
),
(333...334)
(334...335)
),
StringNode(334...335)(nil, (334...335), nil, "d")],
StringNode(335...336)(nil, (335...336), nil, "d")],
nil
),
StringNode(336...337)(nil, (336...337), nil, "e")],
(324...327),
(337...338)
StringNode(337...338)(nil, (337...338), nil, "e")],
(325...328),
(338...339)
),
ArrayNode(340...349)(
[StringNode(343...344)(nil, (343...344), nil, "a"),
StringNode(345...346)(nil, (345...346), nil, "b"),
StringNode(347...348)(nil, (347...348), nil, "c")],
(340...343),
(348...349)
ArrayNode(341...350)(
[StringNode(344...345)(nil, (344...345), nil, "a"),
StringNode(346...347)(nil, (346...347), nil, "b"),
StringNode(348...349)(nil, (348...349), nil, "c")],
(341...344),
(349...350)
),
ArrayNode(351...368)(
[StringNode(357...358)(nil, (357...358), nil, "a"),
StringNode(361...362)(nil, (361...362), nil, "b"),
StringNode(365...366)(nil, (365...366), nil, "c")],
(351...354),
(367...368)
ArrayNode(352...369)(
[StringNode(358...359)(nil, (358...359), nil, "a"),
StringNode(362...363)(nil, (362...363), nil, "b"),
StringNode(366...367)(nil, (366...367), nil, "c")],
(352...355),
(368...369)
),
StringNode(370...385)(
(370...371),
(371...384),
(384...385),
StringNode(371...386)(
(371...372),
(372...385),
(385...386),
"' foo ' bar"
),
StringNode(387...402)(
(387...388),
(388...401),
(401...402),
StringNode(388...403)(
(388...389),
(389...402),
(402...403),
"\\ foo \\ bar"
),
InterpolatedStringNode(404...411)(
(404...405),
[EmbeddedVariableNode(405...410)(
(405...406),
GlobalVariableReadNode(406...410)()
InterpolatedStringNode(405...412)(
(405...406),
[EmbeddedVariableNode(406...411)(
(406...407),
GlobalVariableReadNode(407...411)()
)],
(410...411)
(411...412)
),
InterpolatedStringNode(413...420)(
(413...414),
[EmbeddedVariableNode(414...419)(
(414...415),
InstanceVariableReadNode(415...419)()
InterpolatedStringNode(414...421)(
(414...415),
[EmbeddedVariableNode(415...420)(
(415...416),
InstanceVariableReadNode(416...420)()
)],
(419...420)
(420...421)
),
StringNode(422...437)((422...423), (423...436), (436...437), "\a # a"),
StringNode(439...452)((439...440), (440...451), (451...452), "\a # a"),
StringNode(454...460)((454...456), (456...459), (459...460), "abc"),
StringNode(462...468)((462...464), (464...467), (467...468), "abc"),
StringNode(470...476)((470...472), (472...475), (475...476), "abc"),
StringNode(478...484)((478...480), (480...483), (483...484), "abc"),
StringNode(486...488)((486...487), (487...488), nil, "a"),
StringNode(490...497)((490...493), (493...496), (496...497), "abc")]
StringNode(423...438)((423...424), (424...437), (437...438), "\a # a"),
StringNode(440...453)((440...441), (441...452), (452...453), "\a # a"),
StringNode(455...461)((455...457), (457...460), (460...461), "abc"),
StringNode(463...469)((463...465), (465...468), (468...469), "abc"),
StringNode(471...477)((471...473), (473...476), (476...477), "abc"),
StringNode(479...485)((479...481), (481...484), (484...485), "abc"),
StringNode(487...489)((487...488), (488...489), nil, "a"),
StringNode(491...498)((491...494), (494...497), (497...498), "abc")]
)
)