[ruby/yarp] Flatten multitarget into multiwrite

https://github.com/ruby/yarp/commit/1021dac372
This commit is contained in:
Kevin Newton 2023-09-07 14:20:18 -04:00 committed by git
parent f39b576e76
commit c7d61181d0
42 changed files with 638 additions and 783 deletions

View File

@ -223,7 +223,7 @@ module YARP
def test_ClassVariableTargetNode def test_ClassVariableTargetNode
assert_location(ClassVariableTargetNode, "@@foo, @@bar = baz", 0...5) do |node| assert_location(ClassVariableTargetNode, "@@foo, @@bar = baz", 0...5) do |node|
node.target.targets.first node.targets.first
end end
end end
@ -251,7 +251,7 @@ module YARP
def test_ConstantPathTargetNode def test_ConstantPathTargetNode
assert_location(ConstantPathTargetNode, "::Foo, ::Bar = baz", 0...5) do |node| assert_location(ConstantPathTargetNode, "::Foo, ::Bar = baz", 0...5) do |node|
node.target.targets.first node.targets.first
end end
end end
@ -280,7 +280,7 @@ module YARP
def test_ConstantTargetNode def test_ConstantTargetNode
assert_location(ConstantTargetNode, "Foo, Bar = baz", 0...3) do |node| assert_location(ConstantTargetNode, "Foo, Bar = baz", 0...3) do |node|
node.target.targets.first node.targets.first
end end
end end
@ -378,7 +378,7 @@ module YARP
def test_GlobalVariableTargetNode def test_GlobalVariableTargetNode
assert_location(GlobalVariableTargetNode, "$foo, $bar = baz", 0...4) do |node| assert_location(GlobalVariableTargetNode, "$foo, $bar = baz", 0...4) do |node|
node.target.targets.first node.targets.first
end end
end end
@ -430,7 +430,7 @@ module YARP
def test_InstanceVariableTargetNode def test_InstanceVariableTargetNode
assert_location(InstanceVariableTargetNode, "@foo, @bar = baz", 0...4) do |node| assert_location(InstanceVariableTargetNode, "@foo, @bar = baz", 0...4) do |node|
node.target.targets.first node.targets.first
end end
end end
@ -517,7 +517,7 @@ module YARP
def test_LocalVariableTargetNode def test_LocalVariableTargetNode
assert_location(LocalVariableTargetNode, "foo, bar = baz", 0...3) do |node| assert_location(LocalVariableTargetNode, "foo, bar = baz", 0...3) do |node|
node.target.targets.first node.targets.first
end end
end end
@ -539,7 +539,7 @@ module YARP
def test_MultiTargetNode def test_MultiTargetNode
assert_location(MultiTargetNode, "for foo, bar in baz do end", 4...12, &:index) assert_location(MultiTargetNode, "for foo, bar in baz do end", 4...12, &:index)
assert_location(MultiTargetNode, "foo, bar = baz", 0...8, &:target) assert_location(MultiTargetNode, "foo, (bar, baz) = qux", 5...15) { |node| node.targets.last }
end end
def test_MultiWriteNode def test_MultiWriteNode
@ -695,7 +695,7 @@ module YARP
end end
def test_SplatNode def test_SplatNode
assert_location(SplatNode, "*foo = bar", 0...4) { |node| node.target.targets.first } assert_location(SplatNode, "*foo = bar", 0...4) { |node| node.targets.first }
end end
def test_StatementsNode def test_StatementsNode

View File

@ -317,52 +317,50 @@ ProgramNode(0...511)(
"[]=" "[]="
), ),
MultiWriteNode(191...212)( MultiWriteNode(191...212)(
MultiTargetNode(191...205)( [CallNode(191...197)(
[CallNode(191...197)( CallNode(191...194)(
CallNode(191...194)(
nil,
nil,
(191...194),
nil,
nil,
nil,
nil,
2,
"foo"
),
nil, nil,
(194...197),
(194...195),
ArgumentsNode(195...196)([IntegerNode(195...196)()]),
(196...197),
nil, nil,
0, (191...194),
"[]=" nil,
nil,
nil,
nil,
2,
"foo"
), ),
CallNode(199...205)( nil,
CallNode(199...202)( (194...197),
nil, (194...195),
nil, ArgumentsNode(195...196)([IntegerNode(195...196)()]),
(199...202), (196...197),
nil, nil,
nil, 0,
nil, "[]="
nil, ),
2, CallNode(199...205)(
"bar" CallNode(199...202)(
),
nil, nil,
(202...205),
(202...203),
ArgumentsNode(203...204)([IntegerNode(203...204)()]),
(204...205),
nil, nil,
0, (199...202),
"[]=" nil,
)], nil,
nil, nil,
nil nil,
), 2,
"bar"
),
nil,
(202...205),
(202...203),
ArgumentsNode(203...204)([IntegerNode(203...204)()]),
(204...205),
nil,
0,
"[]="
)],
nil,
nil,
(206...207), (206...207),
ArrayNode(208...212)( ArrayNode(208...212)(
[IntegerNode(208...209)(), IntegerNode(211...212)()], [IntegerNode(208...209)(), IntegerNode(211...212)()],

View File

@ -348,52 +348,50 @@ ProgramNode(0...1237)(
"b" "b"
), ),
MultiWriteNode(181...204)( MultiWriteNode(181...204)(
MultiTargetNode(181...197)( [CallNode(181...188)(
[CallNode(181...188)( CallNode(181...184)(
CallNode(181...184)( nil,
nil, nil,
nil, (181...184),
(181...184),
nil,
nil,
nil,
nil,
2,
"foo"
),
(184...185),
(185...188),
nil, nil,
nil, nil,
nil, nil,
nil, nil,
0, 2,
"foo=" "foo"
), ),
CallNode(190...197)( (184...185),
CallNode(190...193)( (185...188),
nil, nil,
nil, nil,
(190...193), nil,
nil, nil,
nil, 0,
nil, "foo="
nil, ),
2, CallNode(190...197)(
"bar" CallNode(190...193)(
), nil,
(193...194), nil,
(194...197), (190...193),
nil, nil,
nil, nil,
nil, nil,
nil, nil,
0, 2,
"bar=" "bar"
)], ),
nil, (193...194),
nil (194...197),
), nil,
nil,
nil,
nil,
0,
"bar="
)],
nil,
nil,
(198...199), (198...199),
ArrayNode(200...204)( ArrayNode(200...204)(
[IntegerNode(200...201)(), IntegerNode(203...204)()], [IntegerNode(200...201)(), IntegerNode(203...204)()],

View File

@ -2,12 +2,10 @@ ProgramNode(0...8)(
[:a], [:a],
StatementsNode(0...8)( StatementsNode(0...8)(
[MultiWriteNode(0...8)( [MultiWriteNode(0...8)(
MultiTargetNode(0...4)( [MultiTargetNode(0...1)([SplatNode(0...1)((0...1), nil)], nil, nil),
[MultiTargetNode(0...1)([SplatNode(0...1)((0...1), nil)], nil, nil), LocalVariableTargetNode(3...4)(:a, 0)],
LocalVariableTargetNode(3...4)(:a, 0)], nil,
nil, nil,
nil
),
(5...6), (5...6),
CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 2, "b") CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 2, "b")
)] )]

View File

@ -2,22 +2,20 @@ ProgramNode(0...11)(
[:a], [:a],
StatementsNode(0...11)( StatementsNode(0...11)(
[MultiWriteNode(0...11)( [MultiWriteNode(0...11)(
MultiTargetNode(0...7)( [LocalVariableTargetNode(0...1)(:a, 0),
[LocalVariableTargetNode(0...1)(:a, 0), CallNode(3...7)(
CallNode(3...7)( CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 2, "b"),
CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 2, "b"), (4...6),
(4...6), (6...7),
(6...7), nil,
nil, nil,
nil, nil,
nil, nil,
nil, 0,
0, "c="
"c=" )],
)], nil,
nil, nil,
nil
),
(8...9), (8...9),
CallNode(10...11)(nil, nil, (10...11), nil, nil, nil, nil, 2, "d") CallNode(10...11)(nil, nil, (10...11), nil, nil, nil, nil, 2, "d")
)] )]

View File

@ -2,22 +2,20 @@ ProgramNode(0...10)(
[:a], [:a],
StatementsNode(0...10)( StatementsNode(0...10)(
[MultiWriteNode(0...10)( [MultiWriteNode(0...10)(
MultiTargetNode(0...6)( [LocalVariableTargetNode(0...1)(:a, 0),
[LocalVariableTargetNode(0...1)(:a, 0), CallNode(3...6)(
CallNode(3...6)( CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 2, "b"),
CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 2, "b"), (4...5),
(4...5), (5...6),
(5...6), nil,
nil, nil,
nil, nil,
nil, nil,
nil, 0,
0, "C="
"C=" )],
)], nil,
nil, nil,
nil
),
(7...8), (7...8),
CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 2, "d") CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 2, "d")
)] )]

View File

@ -2,13 +2,11 @@ ProgramNode(0...12)(
[:a, :b, :c], [:a, :b, :c],
StatementsNode(0...12)( StatementsNode(0...12)(
[MultiWriteNode(0...12)( [MultiWriteNode(0...12)(
MultiTargetNode(0...8)( [LocalVariableTargetNode(0...1)(:a, 0),
[LocalVariableTargetNode(0...1)(:a, 0), SplatNode(3...5)((3...4), LocalVariableTargetNode(4...5)(:b, 0)),
SplatNode(3...5)((3...4), LocalVariableTargetNode(4...5)(:b, 0)), LocalVariableTargetNode(7...8)(:c, 0)],
LocalVariableTargetNode(7...8)(:c, 0)], nil,
nil, nil,
nil
),
(9...10), (9...10),
CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 2, "d") CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 2, "d")
)] )]

View File

@ -2,16 +2,14 @@ ProgramNode(0...14)(
[:a], [:a],
StatementsNode(0...14)( StatementsNode(0...14)(
[MultiWriteNode(0...14)( [MultiWriteNode(0...14)(
MultiTargetNode(0...7)( [LocalVariableTargetNode(0...1)(:a, 0),
[LocalVariableTargetNode(0...1)(:a, 0), ConstantPathTargetNode(3...7)(
ConstantPathTargetNode(3...7)( CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 2, "b"),
CallNode(3...4)(nil, nil, (3...4), nil, nil, nil, nil, 2, "b"), ConstantReadNode(6...7)(:C),
ConstantReadNode(6...7)(:C), (4...6)
(4...6) )],
)], nil,
nil, nil,
nil
),
(8...9), (8...9),
ArrayNode(10...14)( ArrayNode(10...14)(
[IntegerNode(10...11)(), IntegerNode(13...14)()], [IntegerNode(10...11)(), IntegerNode(13...14)()],

View File

@ -2,20 +2,18 @@ ProgramNode(0...15)(
[], [],
StatementsNode(0...15)( StatementsNode(0...15)(
[MultiWriteNode(0...15)( [MultiWriteNode(0...15)(
MultiTargetNode(0...8)( [ConstantPathTargetNode(0...3)(
[ConstantPathTargetNode(0...3)( nil,
nil, ConstantReadNode(2...3)(:A),
ConstantReadNode(2...3)(:A), (0...2)
(0...2) ),
), ConstantPathTargetNode(5...8)(
ConstantPathTargetNode(5...8)( nil,
nil, ConstantReadNode(7...8)(:B),
ConstantReadNode(7...8)(:B), (5...7)
(5...7) )],
)], nil,
nil, nil,
nil
),
(9...10), (9...10),
ArrayNode(11...15)( ArrayNode(11...15)(
[IntegerNode(11...12)(), IntegerNode(14...15)()], [IntegerNode(11...12)(), IntegerNode(14...15)()],

View File

@ -2,12 +2,9 @@ ProgramNode(0...10)(
[:a], [:a],
StatementsNode(0...10)( StatementsNode(0...10)(
[MultiWriteNode(0...10)( [MultiWriteNode(0...10)(
MultiTargetNode(0...2)( [LocalVariableTargetNode(0...1)(:a, 0), SplatNode(1...2)((1...2), nil)],
[LocalVariableTargetNode(0...1)(:a, 0), nil,
SplatNode(1...2)((1...2), nil)], nil,
nil,
nil
),
(3...4), (3...4),
CallNode(5...10)( CallNode(5...10)(
CallNode(5...6)(nil, nil, (5...6), nil, nil, nil, nil, 2, "b"), CallNode(5...6)(nil, nil, (5...6), nil, nil, nil, nil, 2, "b"),

View File

@ -2,16 +2,14 @@ ProgramNode(1...9)(
[:a, :b], [:a, :b],
StatementsNode(1...9)( StatementsNode(1...9)(
[MultiWriteNode(1...9)( [MultiWriteNode(1...9)(
MultiTargetNode(1...6)( [MultiTargetNode(1...6)(
[MultiTargetNode(1...6)( [LocalVariableTargetNode(2...3)(:a, 0),
[LocalVariableTargetNode(2...3)(:a, 0), LocalVariableTargetNode(4...5)(:b, 0)],
LocalVariableTargetNode(4...5)(:b, 0)], (1...2),
(1...2), (5...6)
(5...6) )],
)], nil,
nil, nil,
nil
),
(7...8), (7...8),
CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 2, "c") CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 2, "c")
)] )]

View File

@ -2,11 +2,9 @@ ProgramNode(0...12)(
[:a], [:a],
StatementsNode(0...12)( StatementsNode(0...12)(
[MultiWriteNode(0...12)( [MultiWriteNode(0...12)(
MultiTargetNode(0...2)( [SplatNode(0...2)((0...1), LocalVariableTargetNode(1...2)(:a, 0))],
[SplatNode(0...2)((0...1), LocalVariableTargetNode(1...2)(:a, 0))], nil,
nil, nil,
nil
),
(3...4), (3...4),
ArrayNode(5...12)( ArrayNode(5...12)(
[IntegerNode(5...6)(), IntegerNode(8...9)(), IntegerNode(11...12)()], [IntegerNode(5...6)(), IntegerNode(8...9)(), IntegerNode(11...12)()],

View File

@ -2,12 +2,10 @@ ProgramNode(0...12)(
[:a, :b], [:a, :b],
StatementsNode(0...12)( StatementsNode(0...12)(
[MultiWriteNode(0...12)( [MultiWriteNode(0...12)(
MultiTargetNode(0...6)( [LocalVariableTargetNode(1...2)(:a, 0),
[LocalVariableTargetNode(1...2)(:a, 0), LocalVariableTargetNode(4...5)(:b, 0)],
LocalVariableTargetNode(4...5)(:b, 0)], (0...1),
(0...1), (5...6),
(5...6)
),
(7...8), (7...8),
CallNode(9...12)( CallNode(9...12)(
CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 2, "c"), CallNode(9...10)(nil, nil, (9...10), nil, nil, nil, nil, 2, "c"),

View File

@ -2,16 +2,14 @@ ProgramNode(0...9)(
[:a, :b], [:a, :b],
StatementsNode(0...9)( StatementsNode(0...9)(
[MultiWriteNode(0...9)( [MultiWriteNode(0...9)(
MultiTargetNode(0...5)( [MultiTargetNode(0...2)(
[MultiTargetNode(0...2)( [SplatNode(0...2)((0...1), LocalVariableTargetNode(1...2)(:a, 0))],
[SplatNode(0...2)((0...1), LocalVariableTargetNode(1...2)(:a, 0))], nil,
nil, nil
nil ),
), LocalVariableTargetNode(4...5)(:b, 0)],
LocalVariableTargetNode(4...5)(:b, 0)], nil,
nil, nil,
nil
),
(6...7), (6...7),
CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 2, "c") CallNode(8...9)(nil, nil, (8...9), nil, nil, nil, nil, 2, "c")
)] )]

View File

@ -2,17 +2,15 @@ ProgramNode(0...12)(
[:a, :b, :c], [:a, :b, :c],
StatementsNode(0...12)( StatementsNode(0...12)(
[MultiWriteNode(0...12)( [MultiWriteNode(0...12)(
MultiTargetNode(0...8)( [MultiTargetNode(0...2)(
[MultiTargetNode(0...2)( [SplatNode(0...2)((0...1), LocalVariableTargetNode(1...2)(:a, 0))],
[SplatNode(0...2)((0...1), LocalVariableTargetNode(1...2)(:a, 0))], nil,
nil, nil
nil ),
), LocalVariableTargetNode(4...5)(:b, 0),
LocalVariableTargetNode(4...5)(:b, 0), LocalVariableTargetNode(7...8)(:c, 0)],
LocalVariableTargetNode(7...8)(:c, 0)], nil,
nil, nil,
nil
),
(9...10), (9...10),
CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 2, "d") CallNode(11...12)(nil, nil, (11...12), nil, nil, nil, nil, 2, "d")
)] )]

View File

@ -2,7 +2,9 @@ ProgramNode(0...5)(
[], [],
StatementsNode(0...5)( StatementsNode(0...5)(
[MultiWriteNode(0...5)( [MultiWriteNode(0...5)(
MultiTargetNode(0...1)([SplatNode(0...1)((0...1), nil)], nil, nil), [SplatNode(0...1)((0...1), nil)],
nil,
nil,
(2...3), (2...3),
IntegerNode(4...5)() IntegerNode(4...5)()
)] )]

View File

@ -2,13 +2,11 @@ ProgramNode(0...11)(
[:a, :b], [:a, :b],
StatementsNode(0...11)( StatementsNode(0...11)(
[MultiWriteNode(0...11)( [MultiWriteNode(0...11)(
MultiTargetNode(0...7)( [LocalVariableTargetNode(0...1)(:a, 0),
[LocalVariableTargetNode(0...1)(:a, 0), SplatNode(3...4)((3...4), nil),
SplatNode(3...4)((3...4), nil), LocalVariableTargetNode(6...7)(:b, 0)],
LocalVariableTargetNode(6...7)(:b, 0)], nil,
nil, nil,
nil
),
(8...9), (8...9),
CallNode(10...11)(nil, nil, (10...11), nil, nil, nil, nil, 2, "c") CallNode(10...11)(nil, nil, (10...11), nil, nil, nil, nil, 2, "c")
)] )]

View File

@ -2,14 +2,12 @@ ProgramNode(0...14)(
[:a, :b, :c], [:a, :b, :c],
StatementsNode(0...14)( StatementsNode(0...14)(
[MultiWriteNode(0...14)( [MultiWriteNode(0...14)(
MultiTargetNode(0...10)( [LocalVariableTargetNode(0...1)(:a, 0),
[LocalVariableTargetNode(0...1)(:a, 0), LocalVariableTargetNode(3...4)(:b, 0),
LocalVariableTargetNode(3...4)(:b, 0), LocalVariableTargetNode(6...7)(:c, 0),
LocalVariableTargetNode(6...7)(:c, 0), SplatNode(9...10)((9...10), nil)],
SplatNode(9...10)((9...10), nil)], nil,
nil, nil,
nil
),
(11...12), (11...12),
CallNode(13...14)(nil, nil, (13...14), nil, nil, nil, nil, 2, "f") CallNode(13...14)(nil, nil, (13...14), nil, nil, nil, nil, 2, "f")
)] )]

View File

@ -2,17 +2,12 @@ ProgramNode(0...15)(
[:a, :b, :c, :s], [:a, :b, :c, :s],
StatementsNode(0...15)( StatementsNode(0...15)(
[MultiWriteNode(0...15)( [MultiWriteNode(0...15)(
MultiTargetNode(0...11)( [LocalVariableTargetNode(0...1)(:a, 0),
[LocalVariableTargetNode(0...1)(:a, 0), LocalVariableTargetNode(3...4)(:b, 0),
LocalVariableTargetNode(3...4)(:b, 0), LocalVariableTargetNode(6...7)(:c, 0),
LocalVariableTargetNode(6...7)(:c, 0), SplatNode(9...11)((9...10), LocalVariableTargetNode(10...11)(:s, 0))],
SplatNode(9...11)( nil,
(9...10), nil,
LocalVariableTargetNode(10...11)(:s, 0)
)],
nil,
nil
),
(12...13), (12...13),
CallNode(14...15)(nil, nil, (14...15), nil, nil, nil, nil, 2, "f") CallNode(14...15)(nil, nil, (14...15), nil, nil, nil, nil, 2, "f")
)] )]

View File

@ -2,14 +2,12 @@ ProgramNode(0...14)(
[:x, :y, :z], [:x, :y, :z],
StatementsNode(0...14)( StatementsNode(0...14)(
[MultiWriteNode(0...14)( [MultiWriteNode(0...14)(
MultiTargetNode(0...10)( [MultiTargetNode(0...1)([SplatNode(0...1)((0...1), nil)], nil, nil),
[MultiTargetNode(0...1)([SplatNode(0...1)((0...1), nil)], nil, nil), LocalVariableTargetNode(3...4)(:x, 0),
LocalVariableTargetNode(3...4)(:x, 0), LocalVariableTargetNode(6...7)(:y, 0),
LocalVariableTargetNode(6...7)(:y, 0), LocalVariableTargetNode(9...10)(:z, 0)],
LocalVariableTargetNode(9...10)(:z, 0)], nil,
nil, nil,
nil
),
(11...12), (11...12),
CallNode(13...14)(nil, nil, (13...14), nil, nil, nil, nil, 2, "f") CallNode(13...14)(nil, nil, (13...14), nil, nil, nil, nil, 2, "f")
)] )]

View File

@ -2,18 +2,16 @@ ProgramNode(0...15)(
[:s, :x, :y, :z], [:s, :x, :y, :z],
StatementsNode(0...15)( StatementsNode(0...15)(
[MultiWriteNode(0...15)( [MultiWriteNode(0...15)(
MultiTargetNode(0...11)( [MultiTargetNode(0...2)(
[MultiTargetNode(0...2)( [SplatNode(0...2)((0...1), LocalVariableTargetNode(1...2)(:s, 0))],
[SplatNode(0...2)((0...1), LocalVariableTargetNode(1...2)(:s, 0))], nil,
nil, nil
nil ),
), LocalVariableTargetNode(4...5)(:x, 0),
LocalVariableTargetNode(4...5)(:x, 0), LocalVariableTargetNode(7...8)(:y, 0),
LocalVariableTargetNode(7...8)(:y, 0), LocalVariableTargetNode(10...11)(:z, 0)],
LocalVariableTargetNode(10...11)(:z, 0)], nil,
nil, nil,
nil
),
(12...13), (12...13),
CallNode(14...15)(nil, nil, (14...15), nil, nil, nil, nil, 2, "f") CallNode(14...15)(nil, nil, (14...15), nil, nil, nil, nil, 2, "f")
)] )]

View File

@ -2,17 +2,15 @@ ProgramNode(0...23)(
[:a, :b, :c, :x, :y, :z], [:a, :b, :c, :x, :y, :z],
StatementsNode(0...23)( StatementsNode(0...23)(
[MultiWriteNode(0...23)( [MultiWriteNode(0...23)(
MultiTargetNode(0...19)( [LocalVariableTargetNode(0...1)(:a, 0),
[LocalVariableTargetNode(0...1)(:a, 0), LocalVariableTargetNode(3...4)(:b, 0),
LocalVariableTargetNode(3...4)(:b, 0), LocalVariableTargetNode(6...7)(:c, 0),
LocalVariableTargetNode(6...7)(:c, 0), SplatNode(9...10)((9...10), nil),
SplatNode(9...10)((9...10), nil), LocalVariableTargetNode(12...13)(:x, 0),
LocalVariableTargetNode(12...13)(:x, 0), LocalVariableTargetNode(15...16)(:y, 0),
LocalVariableTargetNode(15...16)(:y, 0), LocalVariableTargetNode(18...19)(:z, 0)],
LocalVariableTargetNode(18...19)(:z, 0)], nil,
nil, nil,
nil
),
(20...21), (20...21),
CallNode(22...23)(nil, nil, (22...23), nil, nil, nil, nil, 2, "f") CallNode(22...23)(nil, nil, (22...23), nil, nil, nil, nil, 2, "f")
)] )]

View File

@ -2,17 +2,15 @@ ProgramNode(0...24)(
[:a, :b, :c, :s, :x, :y, :z], [:a, :b, :c, :s, :x, :y, :z],
StatementsNode(0...24)( StatementsNode(0...24)(
[MultiWriteNode(0...24)( [MultiWriteNode(0...24)(
MultiTargetNode(0...20)( [LocalVariableTargetNode(0...1)(:a, 0),
[LocalVariableTargetNode(0...1)(:a, 0), LocalVariableTargetNode(3...4)(:b, 0),
LocalVariableTargetNode(3...4)(:b, 0), LocalVariableTargetNode(6...7)(:c, 0),
LocalVariableTargetNode(6...7)(:c, 0), SplatNode(9...11)((9...10), LocalVariableTargetNode(10...11)(:s, 0)),
SplatNode(9...11)((9...10), LocalVariableTargetNode(10...11)(:s, 0)), LocalVariableTargetNode(13...14)(:x, 0),
LocalVariableTargetNode(13...14)(:x, 0), LocalVariableTargetNode(16...17)(:y, 0),
LocalVariableTargetNode(16...17)(:y, 0), LocalVariableTargetNode(19...20)(:z, 0)],
LocalVariableTargetNode(19...20)(:z, 0)], nil,
nil, nil,
nil
),
(21...22), (21...22),
CallNode(23...24)(nil, nil, (23...24), nil, nil, nil, nil, 2, "f") CallNode(23...24)(nil, nil, (23...24), nil, nil, nil, nil, 2, "f")
)] )]

View File

@ -2,12 +2,10 @@ ProgramNode(0...18)(
[:a, :b], [:a, :b],
StatementsNode(0...18)( StatementsNode(0...18)(
[MultiWriteNode(0...18)( [MultiWriteNode(0...18)(
MultiTargetNode(0...4)( [LocalVariableTargetNode(0...1)(:a, 0),
[LocalVariableTargetNode(0...1)(:a, 0), LocalVariableTargetNode(3...4)(:b, 0)],
LocalVariableTargetNode(3...4)(:b, 0)], nil,
nil, nil,
nil
),
(5...6), (5...6),
RescueModifierNode(7...18)( RescueModifierNode(7...18)(
CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 2, "f"), CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 2, "f"),

View File

@ -2,12 +2,10 @@ ProgramNode(0...10)(
[:a, :b], [:a, :b],
StatementsNode(0...10)( StatementsNode(0...10)(
[MultiWriteNode(0...8)( [MultiWriteNode(0...8)(
MultiTargetNode(0...4)( [LocalVariableTargetNode(0...1)(:a, 0),
[LocalVariableTargetNode(0...1)(:a, 0), LocalVariableTargetNode(3...4)(:b, 0)],
LocalVariableTargetNode(3...4)(:b, 0)], nil,
nil, nil,
nil
),
(5...6), (5...6),
CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 2, "c") CallNode(7...8)(nil, nil, (7...8), nil, nil, nil, nil, 2, "c")
), ),

View File

@ -8,12 +8,10 @@ ProgramNode(0...704)(
(3...4) (3...4)
), ),
MultiWriteNode(7...24)( MultiWriteNode(7...24)(
MultiTargetNode(7...15)( [GlobalVariableTargetNode(8...10)(:$a),
[GlobalVariableTargetNode(8...10)(:$a), GlobalVariableTargetNode(12...14)(:$b)],
GlobalVariableTargetNode(12...14)(:$b)], (7...8),
(7...8), (14...15),
(14...15)
),
(16...17), (16...17),
ArrayNode(18...24)( ArrayNode(18...24)(
[IntegerNode(19...20)(), IntegerNode(22...23)()], [IntegerNode(19...20)(), IntegerNode(22...23)()],
@ -22,41 +20,35 @@ ProgramNode(0...704)(
) )
), ),
MultiWriteNode(25...38)( MultiWriteNode(25...38)(
MultiTargetNode(25...34)( [MultiTargetNode(26...30)(
[MultiTargetNode(26...30)( [LocalVariableTargetNode(27...28)(:a, 0),
[LocalVariableTargetNode(27...28)(:a, 0), SplatNode(28...29)((28...29), nil)],
SplatNode(28...29)((28...29), nil)], (26...27),
(26...27), (29...30)
(29...30) ),
), LocalVariableTargetNode(32...33)(:b, 0)],
LocalVariableTargetNode(32...33)(:b, 0)], (25...26),
(25...26), (33...34),
(33...34)
),
(35...36), (35...36),
IntegerNode(37...38)() IntegerNode(37...38)()
), ),
MultiWriteNode(39...48)( MultiWriteNode(39...48)(
MultiTargetNode(39...43)( [SplatNode(40...42)(
[SplatNode(40...42)( (40...41),
(40...41), LocalVariableTargetNode(41...42)(:a, 0)
LocalVariableTargetNode(41...42)(:a, 0) )],
)], (39...40),
(39...40), (42...43),
(42...43)
),
(44...45), (44...45),
ArrayNode(46...48)([], (46...47), (47...48)) ArrayNode(46...48)([], (46...47), (47...48))
), ),
MultiWriteNode(49...64)( MultiWriteNode(49...64)(
MultiTargetNode(49...55)( [SplatNode(50...54)(
[SplatNode(50...54)( (50...51),
(50...51), LocalVariableTargetNode(51...54)(:foo, 0)
LocalVariableTargetNode(51...54)(:foo, 0) )],
)], (49...50),
(49...50), (54...55),
(54...55)
),
(56...57), (56...57),
ArrayNode(58...64)( ArrayNode(58...64)(
[IntegerNode(59...60)(), IntegerNode(62...63)()], [IntegerNode(59...60)(), IntegerNode(62...63)()],
@ -65,12 +57,10 @@ ProgramNode(0...704)(
) )
), ),
MultiWriteNode(65...84)( MultiWriteNode(65...84)(
MultiTargetNode(65...75)( [ClassVariableTargetNode(66...69)(:@@a),
[ClassVariableTargetNode(66...69)(:@@a), ClassVariableTargetNode(71...74)(:@@b)],
ClassVariableTargetNode(71...74)(:@@b)], (65...66),
(65...66), (74...75),
(74...75)
),
(76...77), (76...77),
ArrayNode(78...84)( ArrayNode(78...84)(
[IntegerNode(79...80)(), IntegerNode(82...83)()], [IntegerNode(79...80)(), IntegerNode(82...83)()],
@ -79,12 +69,10 @@ ProgramNode(0...704)(
) )
), ),
MultiWriteNode(85...102)( MultiWriteNode(85...102)(
MultiTargetNode(85...93)( [InstanceVariableTargetNode(86...88)(:@a),
[InstanceVariableTargetNode(86...88)(:@a), InstanceVariableTargetNode(90...92)(:@b)],
InstanceVariableTargetNode(90...92)(:@b)], (85...86),
(85...86), (92...93),
(92...93)
),
(94...95), (94...95),
ArrayNode(96...102)( ArrayNode(96...102)(
[IntegerNode(97...98)(), IntegerNode(100...101)()], [IntegerNode(97...98)(), IntegerNode(100...101)()],
@ -93,17 +81,15 @@ ProgramNode(0...704)(
) )
), ),
MultiWriteNode(103...128)( MultiWriteNode(103...128)(
MultiTargetNode(103...114)( [LocalVariableTargetNode(104...105)(:a, 0),
[LocalVariableTargetNode(104...105)(:a, 0), MultiTargetNode(107...113)(
MultiTargetNode(107...113)( [LocalVariableTargetNode(108...109)(:b, 0),
[LocalVariableTargetNode(108...109)(:b, 0), LocalVariableTargetNode(111...112)(:c, 0)],
LocalVariableTargetNode(111...112)(:c, 0)], (107...108),
(107...108), (112...113)
(112...113) )],
)], (103...104),
(103...104), (113...114),
(113...114)
),
(115...116), (115...116),
ArrayNode(117...128)( ArrayNode(117...128)(
[IntegerNode(118...119)(), [IntegerNode(118...119)(),
@ -117,12 +103,10 @@ ProgramNode(0...704)(
) )
), ),
MultiWriteNode(129...144)( MultiWriteNode(129...144)(
MultiTargetNode(129...135)( [LocalVariableTargetNode(130...131)(:a, 0),
[LocalVariableTargetNode(130...131)(:a, 0), SplatNode(133...134)((133...134), nil)],
SplatNode(133...134)((133...134), nil)], (129...130),
(129...130), (134...135),
(134...135)
),
(136...137), (136...137),
ArrayNode(138...144)( ArrayNode(138...144)(
[IntegerNode(139...140)(), IntegerNode(142...143)()], [IntegerNode(139...140)(), IntegerNode(142...143)()],
@ -131,15 +115,13 @@ ProgramNode(0...704)(
) )
), ),
MultiWriteNode(145...163)( MultiWriteNode(145...163)(
MultiTargetNode(145...154)( [LocalVariableTargetNode(146...147)(:a, 0),
[LocalVariableTargetNode(146...147)(:a, 0), SplatNode(149...153)(
SplatNode(149...153)( (149...150),
(149...150), LocalVariableTargetNode(150...153)(:foo, 0)
LocalVariableTargetNode(150...153)(:foo, 0) )],
)], (145...146),
(145...146), (153...154),
(153...154)
),
(155...156), (155...156),
ArrayNode(157...163)( ArrayNode(157...163)(
[IntegerNode(158...159)(), IntegerNode(161...162)()], [IntegerNode(158...159)(), IntegerNode(161...162)()],
@ -148,12 +130,10 @@ ProgramNode(0...704)(
) )
), ),
MultiWriteNode(164...179)( MultiWriteNode(164...179)(
MultiTargetNode(164...170)( [LocalVariableTargetNode(165...166)(:a, 0),
[LocalVariableTargetNode(165...166)(:a, 0), LocalVariableTargetNode(168...169)(:b, 0)],
LocalVariableTargetNode(168...169)(:b, 0)], (164...165),
(164...165), (169...170),
(169...170)
),
(171...172), (171...172),
ArrayNode(173...179)( ArrayNode(173...179)(
[IntegerNode(174...175)(), IntegerNode(177...178)()], [IntegerNode(174...175)(), IntegerNode(177...178)()],
@ -162,52 +142,46 @@ ProgramNode(0...704)(
) )
), ),
MultiWriteNode(180...192)( MultiWriteNode(180...192)(
MultiTargetNode(180...186)( [LocalVariableTargetNode(181...182)(:a, 0),
[LocalVariableTargetNode(181...182)(:a, 0), LocalVariableTargetNode(184...185)(:b, 0)],
LocalVariableTargetNode(184...185)(:b, 0)], (180...181),
(180...181), (185...186),
(185...186)
),
(187...188), (187...188),
LocalVariableReadNode(189...192)(:foo, 0) LocalVariableReadNode(189...192)(:foo, 0)
), ),
MultiWriteNode(193...203)( MultiWriteNode(193...203)(
MultiTargetNode(193...197)( [LocalVariableTargetNode(194...195)(:a, 0),
[LocalVariableTargetNode(194...195)(:a, 0), SplatNode(195...196)((195...196), nil)],
SplatNode(195...196)((195...196), nil)], (193...194),
(193...194), (196...197),
(196...197)
),
(198...199), (198...199),
LocalVariableReadNode(200...203)(:foo, 0) LocalVariableReadNode(200...203)(:foo, 0)
), ),
MultiWriteNode(204...227)( MultiWriteNode(204...227)(
MultiTargetNode(204...218)( [CallNode(205...210)(
[CallNode(205...210)( LocalVariableReadNode(205...206)(:a, 0),
LocalVariableReadNode(205...206)(:a, 0), (206...207),
(206...207), (207...210),
(207...210), nil,
nil, nil,
nil, nil,
nil, nil,
nil, 0,
0, "foo="
"foo=" ),
), CallNode(212...217)(
CallNode(212...217)( LocalVariableReadNode(212...213)(:a, 0),
LocalVariableReadNode(212...213)(:a, 0), (213...214),
(213...214), (214...217),
(214...217), nil,
nil, nil,
nil, nil,
nil, nil,
nil, 0,
0, "bar="
"bar=" )],
)], (204...205),
(204...205), (217...218),
(217...218)
),
(219...220), (219...220),
ArrayNode(221...227)( ArrayNode(221...227)(
[IntegerNode(222...223)(), IntegerNode(225...226)()], [IntegerNode(222...223)(), IntegerNode(225...226)()],
@ -216,37 +190,35 @@ ProgramNode(0...704)(
) )
), ),
MultiWriteNode(228...252)( MultiWriteNode(228...252)(
MultiTargetNode(228...243)( [CallNode(229...236)(
[CallNode(229...236)( LocalVariableReadNode(229...230)(:a, 0),
LocalVariableReadNode(229...230)(:a, 0), nil,
nil, (230...236),
(230...236), (230...231),
(230...231), ArgumentsNode(231...235)(
ArgumentsNode(231...235)( [SplatNode(231...235)(
[SplatNode(231...235)( (231...232),
(231...232), LocalVariableReadNode(232...235)(:foo, 0)
LocalVariableReadNode(232...235)(:foo, 0) )]
)]
),
(235...236),
nil,
0,
"[]="
), ),
CallNode(238...242)( (235...236),
LocalVariableReadNode(238...239)(:a, 0), nil,
nil, 0,
(239...242), "[]="
(239...240), ),
ArgumentsNode(240...241)([IntegerNode(240...241)()]), CallNode(238...242)(
(241...242), LocalVariableReadNode(238...239)(:a, 0),
nil, nil,
0, (239...242),
"[]=" (239...240),
)], ArgumentsNode(240...241)([IntegerNode(240...241)()]),
(228...229), (241...242),
(242...243) nil,
), 0,
"[]="
)],
(228...229),
(242...243),
(244...245), (244...245),
ArrayNode(246...252)( ArrayNode(246...252)(
[IntegerNode(247...248)(), IntegerNode(250...251)()], [IntegerNode(247...248)(), IntegerNode(250...251)()],
@ -255,32 +227,30 @@ ProgramNode(0...704)(
) )
), ),
MultiWriteNode(253...274)( MultiWriteNode(253...274)(
MultiTargetNode(253...265)( [CallNode(254...258)(
[CallNode(254...258)( LocalVariableReadNode(254...255)(:a, 0),
LocalVariableReadNode(254...255)(:a, 0), nil,
nil, (255...258),
(255...258), (255...256),
(255...256), ArgumentsNode(256...257)([IntegerNode(256...257)()]),
ArgumentsNode(256...257)([IntegerNode(256...257)()]), (257...258),
(257...258), nil,
nil, 0,
0, "[]="
"[]=" ),
), CallNode(260...264)(
CallNode(260...264)( LocalVariableReadNode(260...261)(:a, 0),
LocalVariableReadNode(260...261)(:a, 0), nil,
nil, (261...264),
(261...264), (261...262),
(261...262), ArgumentsNode(262...263)([IntegerNode(262...263)()]),
ArgumentsNode(262...263)([IntegerNode(262...263)()]), (263...264),
(263...264), nil,
nil, 0,
0, "[]="
"[]=" )],
)], (253...254),
(253...254), (264...265),
(264...265)
),
(266...267), (266...267),
ArrayNode(268...274)( ArrayNode(268...274)(
[IntegerNode(269...270)(), IntegerNode(272...273)()], [IntegerNode(269...270)(), IntegerNode(272...273)()],
@ -289,24 +259,22 @@ ProgramNode(0...704)(
) )
), ),
MultiWriteNode(275...287)( MultiWriteNode(275...287)(
MultiTargetNode(275...283)( [SplatNode(276...282)(
[SplatNode(276...282)( (276...277),
(276...277), CallNode(277...282)(
CallNode(277...282)( LocalVariableReadNode(277...278)(:c, 0),
LocalVariableReadNode(277...278)(:c, 0), (278...279),
(278...279), (279...282),
(279...282), nil,
nil, nil,
nil, nil,
nil, nil,
nil, 0,
0, "foo="
"foo=" )
) )],
)], (275...276),
(275...276), (282...283),
(282...283)
),
(284...285), (284...285),
IntegerNode(286...287)() IntegerNode(286...287)()
), ),
@ -361,12 +329,10 @@ ProgramNode(0...704)(
ParenthesesNode(355...367)( ParenthesesNode(355...367)(
StatementsNode(356...366)( StatementsNode(356...366)(
[MultiWriteNode(356...366)( [MultiWriteNode(356...366)(
MultiTargetNode(356...362)( [LocalVariableTargetNode(357...358)(:b, 0),
[LocalVariableTargetNode(357...358)(:b, 0), LocalVariableTargetNode(360...361)(:c, 0)],
LocalVariableTargetNode(360...361)(:c, 0)], (356...357),
(356...357), (361...362),
(361...362)
),
(363...364), (363...364),
IntegerNode(365...366)() IntegerNode(365...366)()
)] )]

View File

@ -18,12 +18,10 @@ ProgramNode(0...56)(
ParenthesesNode(38...55)( ParenthesesNode(38...55)(
StatementsNode(39...54)( StatementsNode(39...54)(
[MultiWriteNode(39...54)( [MultiWriteNode(39...54)(
MultiTargetNode(39...45)( [LocalVariableTargetNode(40...41)(:a, 0),
[LocalVariableTargetNode(40...41)(:a, 0), LocalVariableTargetNode(43...44)(:b, 0)],
LocalVariableTargetNode(43...44)(:b, 0)], (39...40),
(39...40), (44...45),
(44...45)
),
(46...47), (46...47),
ArrayNode(48...54)( ArrayNode(48...54)(
[IntegerNode(49...50)(), IntegerNode(52...53)()], [IntegerNode(49...50)(), IntegerNode(52...53)()],

View File

@ -12,12 +12,10 @@ ProgramNode(0...999)(
ParenthesesNode(19...31)( ParenthesesNode(19...31)(
StatementsNode(20...30)( StatementsNode(20...30)(
[MultiWriteNode(20...30)( [MultiWriteNode(20...30)(
MultiTargetNode(20...26)( [LocalVariableTargetNode(21...22)(:a, 0),
[LocalVariableTargetNode(21...22)(:a, 0), LocalVariableTargetNode(24...25)(:_, 0)],
LocalVariableTargetNode(24...25)(:_, 0)], (20...21),
(20...21), (25...26),
(25...26)
),
(27...28), (27...28),
CallNode(29...30)( CallNode(29...30)(
nil, nil,

View File

@ -9,12 +9,10 @@ ProgramNode(0...293)(
(13...14) (13...14)
), ),
MultiWriteNode(18...34)( MultiWriteNode(18...34)(
MultiTargetNode(18...30)( [ClassVariableTargetNode(18...23)(:@@foo),
[ClassVariableTargetNode(18...23)(:@@foo), ClassVariableTargetNode(25...30)(:@@bar)],
ClassVariableTargetNode(25...30)(:@@bar)], nil,
nil, nil,
nil
),
(31...32), (31...32),
IntegerNode(33...34)() IntegerNode(33...34)()
), ),
@ -51,12 +49,10 @@ ProgramNode(0...293)(
(89...90) (89...90)
), ),
MultiWriteNode(94...108)( MultiWriteNode(94...108)(
MultiTargetNode(94...104)( [GlobalVariableTargetNode(94...98)(:$foo),
[GlobalVariableTargetNode(94...98)(:$foo), GlobalVariableTargetNode(100...104)(:$bar)],
GlobalVariableTargetNode(100...104)(:$bar)], nil,
nil, nil,
nil
),
(105...106), (105...106),
IntegerNode(107...108)() IntegerNode(107...108)()
), ),
@ -71,12 +67,10 @@ ProgramNode(0...293)(
(115...116) (115...116)
), ),
MultiWriteNode(123...137)( MultiWriteNode(123...137)(
MultiTargetNode(123...133)( [InstanceVariableTargetNode(123...127)(:@foo),
[InstanceVariableTargetNode(123...127)(:@foo), InstanceVariableTargetNode(129...133)(:@bar)],
InstanceVariableTargetNode(129...133)(:@bar)], nil,
nil, nil,
nil
),
(134...135), (134...135),
IntegerNode(136...137)() IntegerNode(136...137)()
), ),
@ -120,12 +114,10 @@ ProgramNode(0...293)(
(177...178) (177...178)
), ),
MultiWriteNode(185...198)( MultiWriteNode(185...198)(
MultiTargetNode(185...191)( [LocalVariableTargetNode(185...188)(:foo, 0),
[LocalVariableTargetNode(185...188)(:foo, 0), SplatNode(190...191)((190...191), nil)],
SplatNode(190...191)((190...191), nil)], nil,
nil, nil,
nil
),
(192...193), (192...193),
ArrayNode(194...198)( ArrayNode(194...198)(
[IntegerNode(194...195)(), IntegerNode(197...198)()], [IntegerNode(194...195)(), IntegerNode(197...198)()],
@ -134,12 +126,10 @@ ProgramNode(0...293)(
) )
), ),
MultiWriteNode(200...211)( MultiWriteNode(200...211)(
MultiTargetNode(200...204)( [LocalVariableTargetNode(200...203)(:foo, 0),
[LocalVariableTargetNode(200...203)(:foo, 0), SplatNode(203...204)((203...204), nil)],
SplatNode(203...204)((203...204), nil)], nil,
nil, nil,
nil
),
(205...206), (205...206),
ArrayNode(207...211)( ArrayNode(207...211)(
[IntegerNode(207...208)(), IntegerNode(210...211)()], [IntegerNode(207...208)(), IntegerNode(210...211)()],
@ -148,15 +138,13 @@ ProgramNode(0...293)(
) )
), ),
MultiWriteNode(213...229)( MultiWriteNode(213...229)(
MultiTargetNode(213...222)( [LocalVariableTargetNode(213...216)(:foo, 0),
[LocalVariableTargetNode(213...216)(:foo, 0), SplatNode(218...222)(
SplatNode(218...222)( (218...219),
(218...219), LocalVariableTargetNode(219...222)(:bar, 0)
LocalVariableTargetNode(219...222)(:bar, 0) )],
)], nil,
nil, nil,
nil
),
(223...224), (223...224),
ArrayNode(225...229)( ArrayNode(225...229)(
[IntegerNode(225...226)(), IntegerNode(228...229)()], [IntegerNode(225...226)(), IntegerNode(228...229)()],
@ -165,17 +153,15 @@ ProgramNode(0...293)(
) )
), ),
MultiWriteNode(231...258)( MultiWriteNode(231...258)(
MultiTargetNode(231...246)( [LocalVariableTargetNode(231...234)(:foo, 0),
[LocalVariableTargetNode(231...234)(:foo, 0), MultiTargetNode(236...246)(
MultiTargetNode(236...246)( [LocalVariableTargetNode(237...240)(:bar, 0),
[LocalVariableTargetNode(237...240)(:bar, 0), LocalVariableTargetNode(242...245)(:baz, 0)],
LocalVariableTargetNode(242...245)(:baz, 0)], (236...237),
(236...237), (245...246)
(245...246) )],
)], nil,
nil, nil,
nil
),
(247...248), (247...248),
ArrayNode(249...258)( ArrayNode(249...258)(
[IntegerNode(249...250)(), [IntegerNode(249...250)(),

View File

@ -6,12 +6,10 @@ ProgramNode(0...40)(
ParenthesesNode(7...19)( ParenthesesNode(7...19)(
StatementsNode(8...18)( StatementsNode(8...18)(
[MultiWriteNode(8...18)( [MultiWriteNode(8...18)(
MultiTargetNode(8...12)( [LocalVariableTargetNode(8...9)(:a, 0),
[LocalVariableTargetNode(8...9)(:a, 0), LocalVariableTargetNode(11...12)(:b, 0)],
LocalVariableTargetNode(11...12)(:b, 0)], nil,
nil, nil,
nil
),
(13...14), (13...14),
CallNode(15...18)( CallNode(15...18)(
nil, nil,
@ -36,12 +34,10 @@ ProgramNode(0...40)(
ParenthesesNode(28...40)( ParenthesesNode(28...40)(
StatementsNode(29...39)( StatementsNode(29...39)(
[MultiWriteNode(29...39)( [MultiWriteNode(29...39)(
MultiTargetNode(29...33)( [LocalVariableTargetNode(29...30)(:a, 0),
[LocalVariableTargetNode(29...30)(:a, 0), LocalVariableTargetNode(32...33)(:b, 0)],
LocalVariableTargetNode(32...33)(:b, 0)], nil,
nil, nil,
nil
),
(34...35), (34...35),
CallNode(36...39)( CallNode(36...39)(
nil, nil,

View File

@ -7,12 +7,10 @@ ProgramNode(0...25)(
StatementsNode(4...19)( StatementsNode(4...19)(
[CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 2, "bar"), [CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 2, "bar"),
MultiWriteNode(9...19)( MultiWriteNode(9...19)(
MultiTargetNode(9...13)( [LocalVariableTargetNode(9...10)(:a, 0),
[LocalVariableTargetNode(9...10)(:a, 0), LocalVariableTargetNode(12...13)(:b, 0)],
LocalVariableTargetNode(12...13)(:b, 0)], nil,
nil, nil,
nil
),
(14...15), (14...15),
CallNode(16...19)( CallNode(16...19)(
nil, nil,

View File

@ -6,12 +6,10 @@ ProgramNode(0...20)(
ParenthesesNode(3...15)( ParenthesesNode(3...15)(
StatementsNode(4...14)( StatementsNode(4...14)(
[MultiWriteNode(4...14)( [MultiWriteNode(4...14)(
MultiTargetNode(4...8)( [LocalVariableTargetNode(4...5)(:a, 0),
[LocalVariableTargetNode(4...5)(:a, 0), LocalVariableTargetNode(7...8)(:b, 0)],
LocalVariableTargetNode(7...8)(:b, 0)], nil,
nil, nil,
nil
),
(9...10), (9...10),
CallNode(11...14)( CallNode(11...14)(
nil, nil,

View File

@ -2,12 +2,10 @@ ProgramNode(0...56)(
[:foo, :bar, :baz], [:foo, :bar, :baz],
StatementsNode(0...56)( StatementsNode(0...56)(
[MultiWriteNode(0...17)( [MultiWriteNode(0...17)(
MultiTargetNode(0...10)( [LocalVariableTargetNode(1...4)(:foo, 0),
[LocalVariableTargetNode(1...4)(:foo, 0), LocalVariableTargetNode(6...9)(:bar, 0)],
LocalVariableTargetNode(6...9)(:bar, 0)], (0...1),
(0...1), (9...10),
(9...10)
),
(11...12), (11...12),
ArrayNode(13...17)( ArrayNode(13...17)(
[IntegerNode(13...14)(), IntegerNode(16...17)()], [IntegerNode(13...14)(), IntegerNode(16...17)()],
@ -16,12 +14,10 @@ ProgramNode(0...56)(
) )
), ),
MultiWriteNode(19...34)( MultiWriteNode(19...34)(
MultiTargetNode(19...27)( [LocalVariableTargetNode(19...22)(:foo, 0),
[LocalVariableTargetNode(19...22)(:foo, 0), LocalVariableTargetNode(24...27)(:bar, 0)],
LocalVariableTargetNode(24...27)(:bar, 0)], nil,
nil, nil,
nil
),
(28...29), (28...29),
ArrayNode(30...34)( ArrayNode(30...34)(
[IntegerNode(30...31)(), IntegerNode(33...34)()], [IntegerNode(30...31)(), IntegerNode(33...34)()],
@ -30,13 +26,11 @@ ProgramNode(0...56)(
) )
), ),
MultiWriteNode(36...56)( MultiWriteNode(36...56)(
MultiTargetNode(36...49)( [LocalVariableTargetNode(36...39)(:foo, 0),
[LocalVariableTargetNode(36...39)(:foo, 0), LocalVariableTargetNode(41...44)(:bar, 0),
LocalVariableTargetNode(41...44)(:bar, 0), LocalVariableTargetNode(46...49)(:baz, 0)],
LocalVariableTargetNode(46...49)(:baz, 0)], nil,
nil, nil,
nil
),
(50...51), (50...51),
ArrayNode(52...56)( ArrayNode(52...56)(
[IntegerNode(52...53)(), IntegerNode(55...56)()], [IntegerNode(52...53)(), IntegerNode(55...56)()],

View File

@ -2,74 +2,68 @@ ProgramNode(0...63)(
[:foo], [:foo],
StatementsNode(0...63)( StatementsNode(0...63)(
[MultiWriteNode(0...17)( [MultiWriteNode(0...17)(
MultiTargetNode(0...11)( [CallNode(0...6)(
[CallNode(0...6)( SelfNode(0...4)(),
SelfNode(0...4)(), (4...5),
(4...5), (5...6),
(5...6), nil,
nil, nil,
nil, nil,
nil, nil,
nil, 0,
0, "A="
"A=" ),
), LocalVariableTargetNode(8...11)(:foo, 0)],
LocalVariableTargetNode(8...11)(:foo, 0)], nil,
nil, nil,
nil
),
(12...13), (12...13),
LocalVariableReadNode(14...17)(:foo, 0) LocalVariableReadNode(14...17)(:foo, 0)
), ),
MultiWriteNode(19...43)( MultiWriteNode(19...43)(
MultiTargetNode(19...37)( [CallNode(19...25)(
[CallNode(19...25)( SelfNode(19...23)(),
SelfNode(19...23)(), (23...24),
(23...24), (24...25),
(24...25), nil,
nil, nil,
nil, nil,
nil, nil,
nil, 0,
0, "a="
"a=" ),
CallNode(27...37)(
SelfNode(27...31)(),
nil,
(31...37),
(31...32),
ArgumentsNode(32...36)(
[IntegerNode(32...33)(), IntegerNode(35...36)()]
), ),
CallNode(27...37)( (36...37),
SelfNode(27...31)(), nil,
nil, 0,
(31...37), "[]="
(31...32), )],
ArgumentsNode(32...36)( nil,
[IntegerNode(32...33)(), IntegerNode(35...36)()] nil,
),
(36...37),
nil,
0,
"[]="
)],
nil,
nil
),
(38...39), (38...39),
LocalVariableReadNode(40...43)(:foo, 0) LocalVariableReadNode(40...43)(:foo, 0)
), ),
MultiWriteNode(45...63)( MultiWriteNode(45...63)(
MultiTargetNode(45...57)( [CallNode(45...52)(
[CallNode(45...52)( SelfNode(45...49)(),
SelfNode(45...49)(), (49...51),
(49...51), (51...52),
(51...52), nil,
nil, nil,
nil, nil,
nil, nil,
nil, 0,
0, "a="
"a=" ),
), LocalVariableTargetNode(54...57)(:foo, 0)],
LocalVariableTargetNode(54...57)(:foo, 0)], nil,
nil, nil,
nil
),
(58...59), (58...59),
LocalVariableReadNode(60...63)(:foo, 0) LocalVariableReadNode(60...63)(:foo, 0)
)] )]

View File

@ -2,12 +2,10 @@ ProgramNode(0...16)(
[:foo, :bar], [:foo, :bar],
StatementsNode(0...16)( StatementsNode(0...16)(
[MultiWriteNode(0...16)( [MultiWriteNode(0...16)(
MultiTargetNode(0...8)( [LocalVariableTargetNode(0...3)(:foo, 0),
[LocalVariableTargetNode(0...3)(:foo, 0), LocalVariableTargetNode(5...8)(:bar, 0)],
LocalVariableTargetNode(5...8)(:bar, 0)], nil,
nil, nil,
nil
),
(9...10), (9...10),
CallNode(11...16)( CallNode(11...16)(
nil, nil,

View File

@ -2,30 +2,26 @@ ProgramNode(0...34)(
[:foo], [:foo],
StatementsNode(0...34)( StatementsNode(0...34)(
[MultiWriteNode(0...14)( [MultiWriteNode(0...14)(
MultiTargetNode(0...8)( [ConstantPathTargetNode(0...3)(
[ConstantPathTargetNode(0...3)( nil,
nil, ConstantReadNode(2...3)(:A),
ConstantReadNode(2...3)(:A), (0...2)
(0...2) ),
), LocalVariableTargetNode(5...8)(:foo, 0)],
LocalVariableTargetNode(5...8)(:foo, 0)], nil,
nil, nil,
nil
),
(9...10), (9...10),
LocalVariableReadNode(11...14)(:foo, 0) LocalVariableReadNode(11...14)(:foo, 0)
), ),
MultiWriteNode(16...34)( MultiWriteNode(16...34)(
MultiTargetNode(16...28)( [ConstantPathTargetNode(16...23)(
[ConstantPathTargetNode(16...23)( SelfNode(16...20)(),
SelfNode(16...20)(), ConstantReadNode(22...23)(:A),
ConstantReadNode(22...23)(:A), (20...22)
(20...22) ),
), LocalVariableTargetNode(25...28)(:foo, 0)],
LocalVariableTargetNode(25...28)(:foo, 0)], nil,
nil, nil,
nil
),
(29...30), (29...30),
LocalVariableReadNode(31...34)(:foo, 0) LocalVariableReadNode(31...34)(:foo, 0)
)] )]

View File

@ -2,31 +2,27 @@ ProgramNode(1...30)(
[:b, :a, :c], [:b, :a, :c],
StatementsNode(1...30)( StatementsNode(1...30)(
[MultiWriteNode(1...13)( [MultiWriteNode(1...13)(
MultiTargetNode(1...6)( [MultiTargetNode(1...6)(
[MultiTargetNode(1...6)( [LocalVariableTargetNode(2...3)(:b, 0),
[LocalVariableTargetNode(2...3)(:b, 0), SplatNode(3...4)((3...4), nil)],
SplatNode(3...4)((3...4), nil)], (1...2),
(1...2), (5...6)
(5...6) )],
)], nil,
nil, nil,
nil
),
(8...9), (8...9),
CallNode(10...13)(nil, nil, (10...13), nil, nil, nil, nil, 2, "foo") CallNode(10...13)(nil, nil, (10...13), nil, nil, nil, nil, 2, "foo")
), ),
MultiWriteNode(15...30)( MultiWriteNode(15...30)(
MultiTargetNode(15...24)( [LocalVariableTargetNode(15...16)(:a, 0),
[LocalVariableTargetNode(15...16)(:a, 0), MultiTargetNode(18...24)(
MultiTargetNode(18...24)( [LocalVariableTargetNode(19...20)(:b, 0),
[LocalVariableTargetNode(19...20)(:b, 0), LocalVariableTargetNode(22...23)(:c, 0)],
LocalVariableTargetNode(22...23)(:c, 0)], (18...19),
(18...19), (23...24)
(23...24) )],
)], nil,
nil, nil,
nil
),
(25...26), (25...26),
CallNode(27...30)(nil, nil, (27...30), nil, nil, nil, nil, 2, "foo") CallNode(27...30)(nil, nil, (27...30), nil, nil, nil, nil, 2, "foo")
)] )]

View File

@ -2,61 +2,51 @@ ProgramNode(0...139)(
[:c, :d, :b, :a], [:c, :d, :b, :a],
StatementsNode(0...139)( StatementsNode(0...139)(
[MultiWriteNode(0...7)( [MultiWriteNode(0...7)(
MultiTargetNode(0...1)([SplatNode(0...1)((0...1), nil)], nil, nil), [SplatNode(0...1)((0...1), nil)],
nil,
nil,
(2...3), (2...3),
CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 2, "bar") CallNode(4...7)(nil, nil, (4...7), nil, nil, nil, nil, 2, "bar")
), ),
MultiWriteNode(9...22)( MultiWriteNode(9...22)(
MultiTargetNode(9...16)( [MultiTargetNode(9...10)([SplatNode(9...10)((9...10), nil)], nil, nil),
[MultiTargetNode(9...10)( LocalVariableTargetNode(12...13)(:c, 0),
[SplatNode(9...10)((9...10), nil)], LocalVariableTargetNode(15...16)(:d, 0)],
nil, nil,
nil nil,
),
LocalVariableTargetNode(12...13)(:c, 0),
LocalVariableTargetNode(15...16)(:d, 0)],
nil,
nil
),
(17...18), (17...18),
CallNode(19...22)(nil, nil, (19...22), nil, nil, nil, nil, 2, "bar") CallNode(19...22)(nil, nil, (19...22), nil, nil, nil, nil, 2, "bar")
), ),
MultiWriteNode(24...32)( MultiWriteNode(24...32)(
MultiTargetNode(24...26)( [SplatNode(24...26)(
[SplatNode(24...26)( (24...25),
(24...25), LocalVariableTargetNode(25...26)(:b, 0)
LocalVariableTargetNode(25...26)(:b, 0) )],
)], nil,
nil, nil,
nil
),
(27...28), (27...28),
CallNode(29...32)(nil, nil, (29...32), nil, nil, nil, nil, 2, "bar") CallNode(29...32)(nil, nil, (29...32), nil, nil, nil, nil, 2, "bar")
), ),
MultiWriteNode(34...45)( MultiWriteNode(34...45)(
MultiTargetNode(34...39)( [MultiTargetNode(34...36)(
[MultiTargetNode(34...36)( [SplatNode(34...36)(
[SplatNode(34...36)( (34...35),
(34...35), LocalVariableTargetNode(35...36)(:b, 0)
LocalVariableTargetNode(35...36)(:b, 0) )],
)], nil,
nil, nil
nil ),
), LocalVariableTargetNode(38...39)(:c, 0)],
LocalVariableTargetNode(38...39)(:c, 0)], nil,
nil, nil,
nil
),
(40...41), (40...41),
CallNode(42...45)(nil, nil, (42...45), nil, nil, nil, nil, 2, "bar") CallNode(42...45)(nil, nil, (42...45), nil, nil, nil, nil, 2, "bar")
), ),
MultiWriteNode(47...65)( MultiWriteNode(47...65)(
MultiTargetNode(47...58)( [InstanceVariableTargetNode(47...51)(:@foo),
[InstanceVariableTargetNode(47...51)(:@foo), ClassVariableTargetNode(53...58)(:@@bar)],
ClassVariableTargetNode(53...58)(:@@bar)], nil,
nil, nil,
nil
),
(59...60), (59...60),
ArrayNode(61...65)( ArrayNode(61...65)(
[SplatNode(61...65)( [SplatNode(61...65)(
@ -78,60 +68,50 @@ ProgramNode(0...139)(
) )
), ),
MultiWriteNode(67...77)( MultiWriteNode(67...77)(
MultiTargetNode(67...71)( [LocalVariableTargetNode(67...68)(:a, 0),
[LocalVariableTargetNode(67...68)(:a, 0), SplatNode(70...71)((70...71), nil)],
SplatNode(70...71)((70...71), nil)], nil,
nil, nil,
nil
),
(72...73), (72...73),
CallNode(74...77)(nil, nil, (74...77), nil, nil, nil, nil, 2, "bar") CallNode(74...77)(nil, nil, (74...77), nil, nil, nil, nil, 2, "bar")
), ),
MultiWriteNode(79...92)( MultiWriteNode(79...92)(
MultiTargetNode(79...86)( [LocalVariableTargetNode(79...80)(:a, 0),
[LocalVariableTargetNode(79...80)(:a, 0), SplatNode(82...83)((82...83), nil),
SplatNode(82...83)((82...83), nil), LocalVariableTargetNode(85...86)(:c, 0)],
LocalVariableTargetNode(85...86)(:c, 0)], nil,
nil, nil,
nil
),
(87...88), (87...88),
CallNode(89...92)(nil, nil, (89...92), nil, nil, nil, nil, 2, "bar") CallNode(89...92)(nil, nil, (89...92), nil, nil, nil, nil, 2, "bar")
), ),
MultiWriteNode(94...105)( MultiWriteNode(94...105)(
MultiTargetNode(94...99)( [LocalVariableTargetNode(94...95)(:a, 0),
[LocalVariableTargetNode(94...95)(:a, 0), SplatNode(97...99)(
SplatNode(97...99)( (97...98),
(97...98), LocalVariableTargetNode(98...99)(:b, 0)
LocalVariableTargetNode(98...99)(:b, 0) )],
)], nil,
nil, nil,
nil
),
(100...101), (100...101),
CallNode(102...105)(nil, nil, (102...105), nil, nil, nil, nil, 2, "bar") CallNode(102...105)(nil, nil, (102...105), nil, nil, nil, nil, 2, "bar")
), ),
MultiWriteNode(107...121)( MultiWriteNode(107...121)(
MultiTargetNode(107...115)( [LocalVariableTargetNode(107...108)(:a, 0),
[LocalVariableTargetNode(107...108)(:a, 0), SplatNode(110...112)(
SplatNode(110...112)( (110...111),
(110...111), LocalVariableTargetNode(111...112)(:b, 0)
LocalVariableTargetNode(111...112)(:b, 0) ),
), LocalVariableTargetNode(114...115)(:c, 0)],
LocalVariableTargetNode(114...115)(:c, 0)], nil,
nil, nil,
nil
),
(116...117), (116...117),
CallNode(118...121)(nil, nil, (118...121), nil, nil, nil, nil, 2, "bar") CallNode(118...121)(nil, nil, (118...121), nil, nil, nil, nil, 2, "bar")
), ),
MultiWriteNode(123...139)( MultiWriteNode(123...139)(
MultiTargetNode(123...127)( [LocalVariableTargetNode(123...124)(:a, 0),
[LocalVariableTargetNode(123...124)(:a, 0), LocalVariableTargetNode(126...127)(:b, 0)],
LocalVariableTargetNode(126...127)(:b, 0)], nil,
nil, nil,
nil
),
(128...129), (128...129),
ArrayNode(130...139)( ArrayNode(130...139)(
[SplatNode(130...134)( [SplatNode(130...134)(

View File

@ -5,12 +5,10 @@ ProgramNode(0...13)(
ParenthesesNode(1...13)( ParenthesesNode(1...13)(
StatementsNode(2...12)( StatementsNode(2...12)(
[MultiWriteNode(2...12)( [MultiWriteNode(2...12)(
MultiTargetNode(2...6)( [LocalVariableTargetNode(2...3)(:a, 0),
[LocalVariableTargetNode(2...3)(:a, 0), LocalVariableTargetNode(5...6)(:b, 0)],
LocalVariableTargetNode(5...6)(:b, 0)], nil,
nil, nil,
nil
),
(7...8), (7...8),
CallNode(9...12)( CallNode(9...12)(
nil, nil,

View File

@ -2,12 +2,10 @@ ProgramNode(0...29)(
[:foo, :bar], [:foo, :bar],
StatementsNode(0...29)( StatementsNode(0...29)(
[MultiWriteNode(0...29)( [MultiWriteNode(0...29)(
MultiTargetNode(0...8)( [LocalVariableTargetNode(0...3)(:foo, 0),
[LocalVariableTargetNode(0...3)(:foo, 0), LocalVariableTargetNode(5...8)(:bar, 0)],
LocalVariableTargetNode(5...8)(:bar, 0)], nil,
nil, nil,
nil
),
(9...10), (9...10),
RescueModifierNode(11...29)( RescueModifierNode(11...29)(
CallNode(11...15)(nil, nil, (11...15), nil, nil, nil, nil, 2, "meth"), CallNode(11...15)(nil, nil, (11...15), nil, nil, nil, nil, 2, "meth"),

View File

@ -1766,9 +1766,12 @@ nodes:
^^^^^^^ ^^^^^^^
- name: MultiWriteNode - name: MultiWriteNode
fields: fields:
- name: target - name: targets
type: node type: node[]
kind: MultiTargetNode - name: lparen_loc
type: location?
- name: rparen_loc
type: location?
- name: operator_loc - name: operator_loc
type: location type: location
- name: value - name: value

View File

@ -3365,11 +3365,17 @@ yp_multi_write_node_create(yp_parser_t *parser, yp_multi_target_node_t *target,
.end = value->location.end .end = value->location.end
} }
}, },
.target = target, .targets = target->targets,
.lparen_loc = target->lparen_loc,
.rparen_loc = target->rparen_loc,
.operator_loc = YP_LOCATION_TOKEN_VALUE(operator), .operator_loc = YP_LOCATION_TOKEN_VALUE(operator),
.value = value .value = value
}; };
// Explicitly do not call yp_node_destroy here because we want to keep
// around all of the information within the MultiWriteNode node.
free(target);
return node; return node;
} }