diff options
Diffstat (limited to 'test/prism/snapshots/seattlerb/case_in.txt')
-rw-r--r-- | test/prism/snapshots/seattlerb/case_in.txt | 976 |
1 files changed, 976 insertions, 0 deletions
diff --git a/test/prism/snapshots/seattlerb/case_in.txt b/test/prism/snapshots/seattlerb/case_in.txt new file mode 100644 index 0000000000..950d66647e --- /dev/null +++ b/test/prism/snapshots/seattlerb/case_in.txt @@ -0,0 +1,976 @@ +@ ProgramNode (location: (1,0)-(111,3)) +├── locals: [:b, :_, :lhs, :x, :rhs, :c, :e] +└── statements: + @ StatementsNode (location: (1,0)-(111,3)) + └── body: (length: 28) + ├── @ CaseMatchNode (location: (1,0)-(3,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (1,5)-(1,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (1,5)-(1,6) = ":" + │ │ ├── value_loc: (1,6)-(1,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (2,0)-(2,8)) + │ │ ├── pattern: + │ │ │ @ HashPatternNode (location: (2,4)-(2,8)) + │ │ │ ├── constant: ∅ + │ │ │ ├── elements: (length: 1) + │ │ │ │ └── @ AssocNode (location: (2,4)-(2,8)) + │ │ │ │ ├── key: + │ │ │ │ │ @ SymbolNode (location: (2,4)-(2,8)) + │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── opening_loc: (2,4)-(2,5) = "\"" + │ │ │ │ │ ├── value_loc: (2,5)-(2,6) = "b" + │ │ │ │ │ ├── closing_loc: (2,6)-(2,8) = "\":" + │ │ │ │ │ └── unescaped: "b" + │ │ │ │ ├── value: + │ │ │ │ │ @ ImplicitNode (location: (2,5)-(2,6)) + │ │ │ │ │ └── value: + │ │ │ │ │ @ LocalVariableTargetNode (location: (2,5)-(2,6)) + │ │ │ │ │ ├── name: :b + │ │ │ │ │ └── depth: 0 + │ │ │ │ └── operator_loc: ∅ + │ │ │ ├── rest: ∅ + │ │ │ ├── opening_loc: ∅ + │ │ │ └── closing_loc: ∅ + │ │ ├── statements: ∅ + │ │ ├── in_loc: (2,0)-(2,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (1,0)-(1,4) = "case" + │ └── end_keyword_loc: (3,0)-(3,3) = "end" + ├── @ CaseMatchNode (location: (5,0)-(7,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (5,5)-(5,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (5,5)-(5,6) = ":" + │ │ ├── value_loc: (5,6)-(5,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (6,0)-(6,10)) + │ │ ├── pattern: + │ │ │ @ ArrayNode (location: (6,3)-(6,10)) + │ │ │ ├── flags: ∅ + │ │ │ ├── elements: (length: 2) + │ │ │ │ ├── @ SymbolNode (location: (6,6)-(6,7)) + │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── opening_loc: ∅ + │ │ │ │ │ ├── value_loc: (6,6)-(6,7) = "a" + │ │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ │ └── unescaped: "a" + │ │ │ │ └── @ SymbolNode (location: (6,8)-(6,9)) + │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── opening_loc: ∅ + │ │ │ │ ├── value_loc: (6,8)-(6,9) = "b" + │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ └── unescaped: "b" + │ │ │ ├── opening_loc: (6,3)-(6,6) = "%I[" + │ │ │ └── closing_loc: (6,9)-(6,10) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (6,0)-(6,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (5,0)-(5,4) = "case" + │ └── end_keyword_loc: (7,0)-(7,3) = "end" + ├── @ CaseMatchNode (location: (9,0)-(11,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (9,5)-(9,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (9,5)-(9,6) = ":" + │ │ ├── value_loc: (9,6)-(9,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (10,0)-(10,10)) + │ │ ├── pattern: + │ │ │ @ ArrayNode (location: (10,3)-(10,10)) + │ │ │ ├── flags: ∅ + │ │ │ ├── elements: (length: 2) + │ │ │ │ ├── @ StringNode (location: (10,6)-(10,7)) + │ │ │ │ │ ├── flags: ∅ + │ │ │ │ │ ├── opening_loc: ∅ + │ │ │ │ │ ├── content_loc: (10,6)-(10,7) = "a" + │ │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ │ └── unescaped: "a" + │ │ │ │ └── @ StringNode (location: (10,8)-(10,9)) + │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── opening_loc: ∅ + │ │ │ │ ├── content_loc: (10,8)-(10,9) = "b" + │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ └── unescaped: "b" + │ │ │ ├── opening_loc: (10,3)-(10,6) = "%W[" + │ │ │ └── closing_loc: (10,9)-(10,10) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (10,0)-(10,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (9,0)-(9,4) = "case" + │ └── end_keyword_loc: (11,0)-(11,3) = "end" + ├── @ CaseMatchNode (location: (13,0)-(15,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (13,5)-(13,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (13,5)-(13,6) = ":" + │ │ ├── value_loc: (13,6)-(13,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (14,0)-(14,10)) + │ │ ├── pattern: + │ │ │ @ ArrayNode (location: (14,3)-(14,10)) + │ │ │ ├── flags: ∅ + │ │ │ ├── elements: (length: 2) + │ │ │ │ ├── @ SymbolNode (location: (14,6)-(14,7)) + │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── opening_loc: ∅ + │ │ │ │ │ ├── value_loc: (14,6)-(14,7) = "a" + │ │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ │ └── unescaped: "a" + │ │ │ │ └── @ SymbolNode (location: (14,8)-(14,9)) + │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── opening_loc: ∅ + │ │ │ │ ├── value_loc: (14,8)-(14,9) = "b" + │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ └── unescaped: "b" + │ │ │ ├── opening_loc: (14,3)-(14,6) = "%i[" + │ │ │ └── closing_loc: (14,9)-(14,10) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (14,0)-(14,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (13,0)-(13,4) = "case" + │ └── end_keyword_loc: (15,0)-(15,3) = "end" + ├── @ CaseMatchNode (location: (17,0)-(19,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (17,5)-(17,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (17,5)-(17,6) = ":" + │ │ ├── value_loc: (17,6)-(17,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (18,0)-(18,10)) + │ │ ├── pattern: + │ │ │ @ ArrayNode (location: (18,3)-(18,10)) + │ │ │ ├── flags: ∅ + │ │ │ ├── elements: (length: 2) + │ │ │ │ ├── @ StringNode (location: (18,6)-(18,7)) + │ │ │ │ │ ├── flags: ∅ + │ │ │ │ │ ├── opening_loc: ∅ + │ │ │ │ │ ├── content_loc: (18,6)-(18,7) = "a" + │ │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ │ └── unescaped: "a" + │ │ │ │ └── @ StringNode (location: (18,8)-(18,9)) + │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── opening_loc: ∅ + │ │ │ │ ├── content_loc: (18,8)-(18,9) = "b" + │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ └── unescaped: "b" + │ │ │ ├── opening_loc: (18,3)-(18,6) = "%w[" + │ │ │ └── closing_loc: (18,9)-(18,10) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (18,0)-(18,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (17,0)-(17,4) = "case" + │ └── end_keyword_loc: (19,0)-(19,3) = "end" + ├── @ CaseMatchNode (location: (21,0)-(23,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (21,5)-(21,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (21,5)-(21,6) = ":" + │ │ ├── value_loc: (21,6)-(21,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (22,0)-(22,10)) + │ │ ├── pattern: + │ │ │ @ ParenthesesNode (location: (22,3)-(22,10)) + │ │ │ ├── body: + │ │ │ │ @ RangeNode (location: (22,4)-(22,9)) + │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── left: ∅ + │ │ │ │ ├── right: + │ │ │ │ │ @ IntegerNode (location: (22,7)-(22,9)) + │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ └── value: 10 + │ │ │ │ └── operator_loc: (22,4)-(22,7) = "..." + │ │ │ ├── opening_loc: (22,3)-(22,4) = "(" + │ │ │ └── closing_loc: (22,9)-(22,10) = ")" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (22,0)-(22,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (21,0)-(21,4) = "case" + │ └── end_keyword_loc: (23,0)-(23,3) = "end" + ├── @ CaseMatchNode (location: (25,0)-(27,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (25,5)-(25,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (25,5)-(25,6) = ":" + │ │ ├── value_loc: (25,6)-(25,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (26,0)-(26,9)) + │ │ ├── pattern: + │ │ │ @ ParenthesesNode (location: (26,3)-(26,9)) + │ │ │ ├── body: + │ │ │ │ @ RangeNode (location: (26,4)-(26,8)) + │ │ │ │ ├── flags: ∅ + │ │ │ │ ├── left: ∅ + │ │ │ │ ├── right: + │ │ │ │ │ @ IntegerNode (location: (26,6)-(26,8)) + │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ └── value: 10 + │ │ │ │ └── operator_loc: (26,4)-(26,6) = ".." + │ │ │ ├── opening_loc: (26,3)-(26,4) = "(" + │ │ │ └── closing_loc: (26,8)-(26,9) = ")" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (26,0)-(26,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (25,0)-(25,4) = "case" + │ └── end_keyword_loc: (27,0)-(27,3) = "end" + ├── @ CaseMatchNode (location: (29,0)-(31,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (29,5)-(29,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (29,5)-(29,6) = ":" + │ │ ├── value_loc: (29,6)-(29,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (30,0)-(30,9)) + │ │ ├── pattern: + │ │ │ @ ParenthesesNode (location: (30,3)-(30,9)) + │ │ │ ├── body: + │ │ │ │ @ RangeNode (location: (30,4)-(30,8)) + │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── left: + │ │ │ │ │ @ IntegerNode (location: (30,4)-(30,5)) + │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ └── value: 1 + │ │ │ │ ├── right: ∅ + │ │ │ │ └── operator_loc: (30,5)-(30,8) = "..." + │ │ │ ├── opening_loc: (30,3)-(30,4) = "(" + │ │ │ └── closing_loc: (30,8)-(30,9) = ")" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (30,0)-(30,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (29,0)-(29,4) = "case" + │ └── end_keyword_loc: (31,0)-(31,3) = "end" + ├── @ CaseMatchNode (location: (33,0)-(35,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (33,5)-(33,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (33,5)-(33,6) = ":" + │ │ ├── value_loc: (33,6)-(33,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (34,0)-(34,10)) + │ │ ├── pattern: + │ │ │ @ ParenthesesNode (location: (34,3)-(34,10)) + │ │ │ ├── body: + │ │ │ │ @ RangeNode (location: (34,4)-(34,9)) + │ │ │ │ ├── flags: exclude_end + │ │ │ │ ├── left: + │ │ │ │ │ @ IntegerNode (location: (34,4)-(34,5)) + │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ └── value: 1 + │ │ │ │ ├── right: + │ │ │ │ │ @ IntegerNode (location: (34,8)-(34,9)) + │ │ │ │ │ ├── flags: decimal + │ │ │ │ │ └── value: 3 + │ │ │ │ └── operator_loc: (34,5)-(34,8) = "..." + │ │ │ ├── opening_loc: (34,3)-(34,4) = "(" + │ │ │ └── closing_loc: (34,9)-(34,10) = ")" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (34,0)-(34,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (33,0)-(33,4) = "case" + │ └── end_keyword_loc: (35,0)-(35,3) = "end" + ├── @ CaseMatchNode (location: (37,0)-(39,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (37,5)-(37,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (37,5)-(37,6) = ":" + │ │ ├── value_loc: (37,6)-(37,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (38,0)-(38,7)) + │ │ ├── pattern: + │ │ │ @ ParenthesesNode (location: (38,3)-(38,7)) + │ │ │ ├── body: + │ │ │ │ @ IntegerNode (location: (38,4)-(38,6)) + │ │ │ │ ├── flags: decimal + │ │ │ │ └── value: 42 + │ │ │ ├── opening_loc: (38,3)-(38,4) = "(" + │ │ │ └── closing_loc: (38,6)-(38,7) = ")" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (38,0)-(38,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (37,0)-(37,4) = "case" + │ └── end_keyword_loc: (39,0)-(39,3) = "end" + ├── @ CaseMatchNode (location: (41,0)-(43,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (41,5)-(41,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (41,5)-(41,6) = ":" + │ │ ├── value_loc: (41,6)-(41,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (42,0)-(42,8)) + │ │ ├── pattern: + │ │ │ @ HashPatternNode (location: (42,3)-(42,8)) + │ │ │ ├── constant: ∅ + │ │ │ ├── elements: (length: 0) + │ │ │ ├── rest: + │ │ │ │ @ NoKeywordsParameterNode (location: (42,3)-(42,8)) + │ │ │ │ ├── operator_loc: (42,3)-(42,5) = "**" + │ │ │ │ └── keyword_loc: (42,5)-(42,8) = "nil" + │ │ │ ├── opening_loc: ∅ + │ │ │ └── closing_loc: ∅ + │ │ ├── statements: ∅ + │ │ ├── in_loc: (42,0)-(42,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (41,0)-(41,4) = "case" + │ └── end_keyword_loc: (43,0)-(43,3) = "end" + ├── @ CaseMatchNode (location: (45,0)-(47,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (45,5)-(45,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (45,5)-(45,6) = ":" + │ │ ├── value_loc: (45,6)-(45,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (46,0)-(46,11)) + │ │ ├── pattern: + │ │ │ @ RegularExpressionNode (location: (46,3)-(46,11)) + │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ ├── opening_loc: (46,3)-(46,4) = "/" + │ │ │ ├── content_loc: (46,4)-(46,10) = "regexp" + │ │ │ ├── closing_loc: (46,10)-(46,11) = "/" + │ │ │ └── unescaped: "regexp" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (46,0)-(46,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (45,0)-(45,4) = "case" + │ └── end_keyword_loc: (47,0)-(47,3) = "end" + ├── @ CaseMatchNode (location: (49,0)-(51,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (49,5)-(49,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (49,5)-(49,6) = ":" + │ │ ├── value_loc: (49,6)-(49,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (50,0)-(50,13)) + │ │ ├── pattern: + │ │ │ @ ArrayPatternNode (location: (50,3)-(50,13)) + │ │ │ ├── constant: ∅ + │ │ │ ├── requireds: (length: 1) + │ │ │ │ └── @ SymbolNode (location: (50,3)-(50,5)) + │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── opening_loc: (50,3)-(50,4) = ":" + │ │ │ │ ├── value_loc: (50,4)-(50,5) = "b" + │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ └── unescaped: "b" + │ │ │ ├── rest: + │ │ │ │ @ SplatNode (location: (50,7)-(50,9)) + │ │ │ │ ├── operator_loc: (50,7)-(50,8) = "*" + │ │ │ │ └── expression: + │ │ │ │ @ LocalVariableTargetNode (location: (50,8)-(50,9)) + │ │ │ │ ├── name: :_ + │ │ │ │ └── depth: 0 + │ │ │ ├── posts: (length: 1) + │ │ │ │ └── @ SymbolNode (location: (50,11)-(50,13)) + │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ ├── opening_loc: (50,11)-(50,12) = ":" + │ │ │ │ ├── value_loc: (50,12)-(50,13) = "c" + │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ └── unescaped: "c" + │ │ │ ├── opening_loc: ∅ + │ │ │ └── closing_loc: ∅ + │ │ ├── statements: ∅ + │ │ ├── in_loc: (50,0)-(50,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (49,0)-(49,4) = "case" + │ └── end_keyword_loc: (51,0)-(51,3) = "end" + ├── @ CaseMatchNode (location: (53,0)-(55,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (53,5)-(53,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (53,5)-(53,6) = ":" + │ │ ├── value_loc: (53,6)-(53,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (54,0)-(54,11)) + │ │ ├── pattern: + │ │ │ @ ArrayPatternNode (location: (54,3)-(54,11)) + │ │ │ ├── constant: ∅ + │ │ │ ├── requireds: (length: 2) + │ │ │ │ ├── @ SymbolNode (location: (54,3)-(54,5)) + │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── opening_loc: (54,3)-(54,4) = ":" + │ │ │ │ │ ├── value_loc: (54,4)-(54,5) = "b" + │ │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ │ └── unescaped: "b" + │ │ │ │ └── @ ArrayPatternNode (location: (54,7)-(54,11)) + │ │ │ │ ├── constant: ∅ + │ │ │ │ ├── requireds: (length: 1) + │ │ │ │ │ └── @ SymbolNode (location: (54,8)-(54,10)) + │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── opening_loc: (54,8)-(54,9) = ":" + │ │ │ │ │ ├── value_loc: (54,9)-(54,10) = "c" + │ │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ │ └── unescaped: "c" + │ │ │ │ ├── rest: ∅ + │ │ │ │ ├── posts: (length: 0) + │ │ │ │ ├── opening_loc: (54,7)-(54,8) = "[" + │ │ │ │ └── closing_loc: (54,10)-(54,11) = "]" + │ │ │ ├── rest: ∅ + │ │ │ ├── posts: (length: 0) + │ │ │ ├── opening_loc: ∅ + │ │ │ └── closing_loc: ∅ + │ │ ├── statements: ∅ + │ │ ├── in_loc: (54,0)-(54,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (53,0)-(53,4) = "case" + │ └── end_keyword_loc: (55,0)-(55,3) = "end" + ├── @ CaseMatchNode (location: (57,0)-(59,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (57,5)-(57,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (57,5)-(57,6) = ":" + │ │ ├── value_loc: (57,6)-(57,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (58,0)-(58,11)) + │ │ ├── pattern: + │ │ │ @ ArrayPatternNode (location: (58,3)-(58,11)) + │ │ │ ├── constant: + │ │ │ │ @ ConstantReadNode (location: (58,3)-(58,9)) + │ │ │ │ └── name: :Symbol + │ │ │ ├── requireds: (length: 0) + │ │ │ ├── rest: ∅ + │ │ │ ├── posts: (length: 0) + │ │ │ ├── opening_loc: (58,9)-(58,10) = "(" + │ │ │ └── closing_loc: (58,10)-(58,11) = ")" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (58,0)-(58,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (57,0)-(57,4) = "case" + │ └── end_keyword_loc: (59,0)-(59,3) = "end" + ├── @ CaseMatchNode (location: (61,0)-(63,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (61,5)-(61,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (61,5)-(61,6) = ":" + │ │ ├── value_loc: (61,6)-(61,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (62,0)-(62,24)) + │ │ ├── pattern: + │ │ │ @ FindPatternNode (location: (62,3)-(62,24)) + │ │ │ ├── constant: + │ │ │ │ @ ConstantReadNode (location: (62,3)-(62,9)) + │ │ │ │ └── name: :Symbol + │ │ │ ├── left: + │ │ │ │ @ SplatNode (location: (62,10)-(62,14)) + │ │ │ │ ├── operator_loc: (62,10)-(62,11) = "*" + │ │ │ │ └── expression: + │ │ │ │ @ LocalVariableTargetNode (location: (62,11)-(62,14)) + │ │ │ │ ├── name: :lhs + │ │ │ │ └── depth: 0 + │ │ │ ├── requireds: (length: 1) + │ │ │ │ └── @ LocalVariableTargetNode (location: (62,16)-(62,17)) + │ │ │ │ ├── name: :x + │ │ │ │ └── depth: 0 + │ │ │ ├── right: + │ │ │ │ @ SplatNode (location: (62,19)-(62,23)) + │ │ │ │ ├── operator_loc: (62,19)-(62,20) = "*" + │ │ │ │ └── expression: + │ │ │ │ @ LocalVariableTargetNode (location: (62,20)-(62,23)) + │ │ │ │ ├── name: :rhs + │ │ │ │ └── depth: 0 + │ │ │ ├── opening_loc: (62,9)-(62,10) = "(" + │ │ │ └── closing_loc: (62,23)-(62,24) = ")" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (62,0)-(62,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (61,0)-(61,4) = "case" + │ └── end_keyword_loc: (63,0)-(63,3) = "end" + ├── @ CaseMatchNode (location: (65,0)-(67,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (65,5)-(65,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (65,5)-(65,6) = ":" + │ │ ├── value_loc: (65,6)-(65,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (66,0)-(66,24)) + │ │ ├── pattern: + │ │ │ @ FindPatternNode (location: (66,3)-(66,24)) + │ │ │ ├── constant: + │ │ │ │ @ ConstantReadNode (location: (66,3)-(66,9)) + │ │ │ │ └── name: :Symbol + │ │ │ ├── left: + │ │ │ │ @ SplatNode (location: (66,10)-(66,14)) + │ │ │ │ ├── operator_loc: (66,10)-(66,11) = "*" + │ │ │ │ └── expression: + │ │ │ │ @ LocalVariableTargetNode (location: (66,11)-(66,14)) + │ │ │ │ ├── name: :lhs + │ │ │ │ └── depth: 0 + │ │ │ ├── requireds: (length: 1) + │ │ │ │ └── @ LocalVariableTargetNode (location: (66,16)-(66,17)) + │ │ │ │ ├── name: :x + │ │ │ │ └── depth: 0 + │ │ │ ├── right: + │ │ │ │ @ SplatNode (location: (66,19)-(66,23)) + │ │ │ │ ├── operator_loc: (66,19)-(66,20) = "*" + │ │ │ │ └── expression: + │ │ │ │ @ LocalVariableTargetNode (location: (66,20)-(66,23)) + │ │ │ │ ├── name: :rhs + │ │ │ │ └── depth: 0 + │ │ │ ├── opening_loc: (66,9)-(66,10) = "[" + │ │ │ └── closing_loc: (66,23)-(66,24) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (66,0)-(66,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (65,0)-(65,4) = "case" + │ └── end_keyword_loc: (67,0)-(67,3) = "end" + ├── @ CaseMatchNode (location: (69,0)-(71,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (69,5)-(69,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (69,5)-(69,6) = ":" + │ │ ├── value_loc: (69,6)-(69,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (70,0)-(70,22)) + │ │ ├── pattern: + │ │ │ @ ArrayPatternNode (location: (70,3)-(70,22)) + │ │ │ ├── constant: ∅ + │ │ │ ├── requireds: (length: 2) + │ │ │ │ ├── @ LambdaNode (location: (70,4)-(70,18)) + │ │ │ │ │ ├── locals: [:b] + │ │ │ │ │ ├── operator_loc: (70,4)-(70,6) = "->" + │ │ │ │ │ ├── opening_loc: (70,10)-(70,11) = "{" + │ │ │ │ │ ├── closing_loc: (70,17)-(70,18) = "}" + │ │ │ │ │ ├── parameters: + │ │ │ │ │ │ @ BlockParametersNode (location: (70,6)-(70,9)) + │ │ │ │ │ │ ├── parameters: + │ │ │ │ │ │ │ @ ParametersNode (location: (70,7)-(70,8)) + │ │ │ │ │ │ │ ├── requireds: (length: 1) + │ │ │ │ │ │ │ │ └── @ RequiredParameterNode (location: (70,7)-(70,8)) + │ │ │ │ │ │ │ │ ├── flags: ∅ + │ │ │ │ │ │ │ │ └── name: :b + │ │ │ │ │ │ │ ├── optionals: (length: 0) + │ │ │ │ │ │ │ ├── rest: ∅ + │ │ │ │ │ │ │ ├── posts: (length: 0) + │ │ │ │ │ │ │ ├── keywords: (length: 0) + │ │ │ │ │ │ │ ├── keyword_rest: ∅ + │ │ │ │ │ │ │ └── block: ∅ + │ │ │ │ │ │ ├── locals: (length: 0) + │ │ │ │ │ │ ├── opening_loc: (70,6)-(70,7) = "(" + │ │ │ │ │ │ └── closing_loc: (70,8)-(70,9) = ")" + │ │ │ │ │ └── body: + │ │ │ │ │ @ StatementsNode (location: (70,12)-(70,16)) + │ │ │ │ │ └── body: (length: 1) + │ │ │ │ │ └── @ TrueNode (location: (70,12)-(70,16)) + │ │ │ │ └── @ LocalVariableTargetNode (location: (70,20)-(70,21)) + │ │ │ │ ├── name: :c + │ │ │ │ └── depth: 0 + │ │ │ ├── rest: ∅ + │ │ │ ├── posts: (length: 0) + │ │ │ ├── opening_loc: (70,3)-(70,4) = "[" + │ │ │ └── closing_loc: (70,21)-(70,22) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (70,0)-(70,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (69,0)-(69,4) = "case" + │ └── end_keyword_loc: (71,0)-(71,3) = "end" + ├── @ CaseMatchNode (location: (73,0)-(75,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (73,5)-(73,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (73,5)-(73,6) = ":" + │ │ ├── value_loc: (73,6)-(73,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (74,0)-(74,28)) + │ │ ├── pattern: + │ │ │ @ ArrayPatternNode (location: (74,3)-(74,28)) + │ │ │ ├── constant: ∅ + │ │ │ ├── requireds: (length: 4) + │ │ │ │ ├── @ SymbolNode (location: (74,4)-(74,6)) + │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── opening_loc: (74,4)-(74,5) = ":" + │ │ │ │ │ ├── value_loc: (74,5)-(74,6) = "a" + │ │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ │ └── unescaped: "a" + │ │ │ │ ├── @ LocalVariableTargetNode (location: (74,8)-(74,9)) + │ │ │ │ │ ├── name: :b + │ │ │ │ │ └── depth: 0 + │ │ │ │ ├── @ LocalVariableTargetNode (location: (74,11)-(74,12)) + │ │ │ │ │ ├── name: :c + │ │ │ │ │ └── depth: 0 + │ │ │ │ └── @ ArrayPatternNode (location: (74,14)-(74,27)) + │ │ │ │ ├── constant: ∅ + │ │ │ │ ├── requireds: (length: 1) + │ │ │ │ │ └── @ SymbolNode (location: (74,15)-(74,17)) + │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── opening_loc: (74,15)-(74,16) = ":" + │ │ │ │ │ ├── value_loc: (74,16)-(74,17) = "d" + │ │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ │ └── unescaped: "d" + │ │ │ │ ├── rest: + │ │ │ │ │ @ SplatNode (location: (74,19)-(74,21)) + │ │ │ │ │ ├── operator_loc: (74,19)-(74,20) = "*" + │ │ │ │ │ └── expression: + │ │ │ │ │ @ LocalVariableTargetNode (location: (74,20)-(74,21)) + │ │ │ │ │ ├── name: :e + │ │ │ │ │ └── depth: 0 + │ │ │ │ ├── posts: (length: 1) + │ │ │ │ │ └── @ NilNode (location: (74,23)-(74,26)) + │ │ │ │ ├── opening_loc: (74,14)-(74,15) = "[" + │ │ │ │ └── closing_loc: (74,26)-(74,27) = "]" + │ │ │ ├── rest: ∅ + │ │ │ ├── posts: (length: 0) + │ │ │ ├── opening_loc: (74,3)-(74,4) = "[" + │ │ │ └── closing_loc: (74,27)-(74,28) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (74,0)-(74,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (73,0)-(73,4) = "case" + │ └── end_keyword_loc: (75,0)-(75,3) = "end" + ├── @ CaseMatchNode (location: (77,0)-(79,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (77,5)-(77,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (77,5)-(77,6) = ":" + │ │ ├── value_loc: (77,6)-(77,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (78,0)-(78,12)) + │ │ ├── pattern: + │ │ │ @ ArrayPatternNode (location: (78,3)-(78,12)) + │ │ │ ├── constant: ∅ + │ │ │ ├── requireds: (length: 1) + │ │ │ │ └── @ ConstantReadNode (location: (78,4)-(78,5)) + │ │ │ │ └── name: :A + │ │ │ ├── rest: + │ │ │ │ @ SplatNode (location: (78,7)-(78,8)) + │ │ │ │ ├── operator_loc: (78,7)-(78,8) = "*" + │ │ │ │ └── expression: ∅ + │ │ │ ├── posts: (length: 1) + │ │ │ │ └── @ ConstantReadNode (location: (78,10)-(78,11)) + │ │ │ │ └── name: :B + │ │ │ ├── opening_loc: (78,3)-(78,4) = "[" + │ │ │ └── closing_loc: (78,11)-(78,12) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (78,0)-(78,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (77,0)-(77,4) = "case" + │ └── end_keyword_loc: (79,0)-(79,3) = "end" + ├── @ CaseMatchNode (location: (81,0)-(83,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (81,5)-(81,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (81,5)-(81,6) = ":" + │ │ ├── value_loc: (81,6)-(81,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (82,0)-(82,22)) + │ │ ├── pattern: + │ │ │ @ ArrayPatternNode (location: (82,3)-(82,22)) + │ │ │ ├── constant: ∅ + │ │ │ ├── requireds: (length: 2) + │ │ │ │ ├── @ ArrayPatternNode (location: (82,4)-(82,11)) + │ │ │ │ │ ├── constant: ∅ + │ │ │ │ │ ├── requireds: (length: 2) + │ │ │ │ │ │ ├── @ SymbolNode (location: (82,5)-(82,7)) + │ │ │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ │ │ ├── opening_loc: (82,5)-(82,6) = ":" + │ │ │ │ │ │ │ ├── value_loc: (82,6)-(82,7) = "b" + │ │ │ │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ │ │ │ └── unescaped: "b" + │ │ │ │ │ │ └── @ LocalVariableTargetNode (location: (82,9)-(82,10)) + │ │ │ │ │ │ ├── name: :c + │ │ │ │ │ │ └── depth: 0 + │ │ │ │ │ ├── rest: ∅ + │ │ │ │ │ ├── posts: (length: 0) + │ │ │ │ │ ├── opening_loc: (82,4)-(82,5) = "[" + │ │ │ │ │ └── closing_loc: (82,10)-(82,11) = "]" + │ │ │ │ └── @ ArrayPatternNode (location: (82,13)-(82,21)) + │ │ │ │ ├── constant: ∅ + │ │ │ │ ├── requireds: (length: 2) + │ │ │ │ │ ├── @ SymbolNode (location: (82,14)-(82,16)) + │ │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ │ ├── opening_loc: (82,14)-(82,15) = ":" + │ │ │ │ │ │ ├── value_loc: (82,15)-(82,16) = "d" + │ │ │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ │ │ └── unescaped: "d" + │ │ │ │ │ └── @ PinnedVariableNode (location: (82,18)-(82,20)) + │ │ │ │ │ ├── variable: + │ │ │ │ │ │ @ LocalVariableReadNode (location: (82,19)-(82,20)) + │ │ │ │ │ │ ├── name: :e + │ │ │ │ │ │ └── depth: 0 + │ │ │ │ │ └── operator_loc: (82,18)-(82,19) = "^" + │ │ │ │ ├── rest: ∅ + │ │ │ │ ├── posts: (length: 0) + │ │ │ │ ├── opening_loc: (82,13)-(82,14) = "[" + │ │ │ │ └── closing_loc: (82,20)-(82,21) = "]" + │ │ │ ├── rest: ∅ + │ │ │ ├── posts: (length: 0) + │ │ │ ├── opening_loc: (82,3)-(82,4) = "[" + │ │ │ └── closing_loc: (82,21)-(82,22) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (82,0)-(82,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (81,0)-(81,4) = "case" + │ └── end_keyword_loc: (83,0)-(83,3) = "end" + ├── @ CaseMatchNode (location: (85,0)-(87,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (85,5)-(85,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (85,5)-(85,6) = ":" + │ │ ├── value_loc: (85,6)-(85,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (86,0)-(86,5)) + │ │ ├── pattern: + │ │ │ @ ArrayPatternNode (location: (86,3)-(86,5)) + │ │ │ ├── constant: ∅ + │ │ │ ├── requireds: (length: 0) + │ │ │ ├── rest: ∅ + │ │ │ ├── posts: (length: 0) + │ │ │ ├── opening_loc: (86,3)-(86,4) = "[" + │ │ │ └── closing_loc: (86,4)-(86,5) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (86,0)-(86,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (85,0)-(85,4) = "case" + │ └── end_keyword_loc: (87,0)-(87,3) = "end" + ├── @ CaseMatchNode (location: (89,0)-(91,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (89,5)-(89,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (89,5)-(89,6) = ":" + │ │ ├── value_loc: (89,6)-(89,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (90,0)-(90,9)) + │ │ ├── pattern: + │ │ │ @ ArrayPatternNode (location: (90,3)-(90,9)) + │ │ │ ├── constant: ∅ + │ │ │ ├── requireds: (length: 1) + │ │ │ │ └── @ PinnedExpressionNode (location: (90,4)-(90,8)) + │ │ │ │ ├── expression: + │ │ │ │ │ @ CallNode (location: (90,6)-(90,7)) + │ │ │ │ │ ├── flags: variable_call, ignore_visibility + │ │ │ │ │ ├── receiver: ∅ + │ │ │ │ │ ├── call_operator_loc: ∅ + │ │ │ │ │ ├── name: :a + │ │ │ │ │ ├── message_loc: (90,6)-(90,7) = "a" + │ │ │ │ │ ├── opening_loc: ∅ + │ │ │ │ │ ├── arguments: ∅ + │ │ │ │ │ ├── closing_loc: ∅ + │ │ │ │ │ └── block: ∅ + │ │ │ │ ├── operator_loc: (90,4)-(90,5) = "^" + │ │ │ │ ├── lparen_loc: (90,5)-(90,6) = "(" + │ │ │ │ └── rparen_loc: (90,7)-(90,8) = ")" + │ │ │ ├── rest: ∅ + │ │ │ ├── posts: (length: 0) + │ │ │ ├── opening_loc: (90,3)-(90,4) = "[" + │ │ │ └── closing_loc: (90,8)-(90,9) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (90,0)-(90,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (89,0)-(89,4) = "case" + │ └── end_keyword_loc: (91,0)-(91,3) = "end" + ├── @ CaseMatchNode (location: (93,0)-(95,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (93,5)-(93,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (93,5)-(93,6) = ":" + │ │ ├── value_loc: (93,6)-(93,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (94,0)-(94,19)) + │ │ ├── pattern: + │ │ │ @ ArrayPatternNode (location: (94,3)-(94,19)) + │ │ │ ├── constant: ∅ + │ │ │ ├── requireds: (length: 3) + │ │ │ │ ├── @ PinnedVariableNode (location: (94,4)-(94,7)) + │ │ │ │ │ ├── variable: + │ │ │ │ │ │ @ InstanceVariableReadNode (location: (94,5)-(94,7)) + │ │ │ │ │ │ └── name: :@a + │ │ │ │ │ └── operator_loc: (94,4)-(94,5) = "^" + │ │ │ │ ├── @ PinnedVariableNode (location: (94,9)-(94,12)) + │ │ │ │ │ ├── variable: + │ │ │ │ │ │ @ GlobalVariableReadNode (location: (94,10)-(94,12)) + │ │ │ │ │ │ └── name: :$b + │ │ │ │ │ └── operator_loc: (94,9)-(94,10) = "^" + │ │ │ │ └── @ PinnedVariableNode (location: (94,14)-(94,18)) + │ │ │ │ ├── variable: + │ │ │ │ │ @ ClassVariableReadNode (location: (94,15)-(94,18)) + │ │ │ │ │ └── name: :@@c + │ │ │ │ └── operator_loc: (94,14)-(94,15) = "^" + │ │ │ ├── rest: ∅ + │ │ │ ├── posts: (length: 0) + │ │ │ ├── opening_loc: (94,3)-(94,4) = "[" + │ │ │ └── closing_loc: (94,18)-(94,19) = "]" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (94,0)-(94,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (93,0)-(93,4) = "case" + │ └── end_keyword_loc: (95,0)-(95,3) = "end" + ├── @ CaseMatchNode (location: (97,0)-(99,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (97,5)-(97,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (97,5)-(97,6) = ":" + │ │ ├── value_loc: (97,6)-(97,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (98,0)-(98,12)) + │ │ ├── pattern: + │ │ │ @ XStringNode (location: (98,3)-(98,12)) + │ │ │ ├── flags: ∅ + │ │ │ ├── opening_loc: (98,3)-(98,4) = "`" + │ │ │ ├── content_loc: (98,4)-(98,11) = "echo hi" + │ │ │ ├── closing_loc: (98,11)-(98,12) = "`" + │ │ │ └── unescaped: "echo hi" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (98,0)-(98,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (97,0)-(97,4) = "case" + │ └── end_keyword_loc: (99,0)-(99,3) = "end" + ├── @ CaseMatchNode (location: (101,0)-(103,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (101,5)-(101,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (101,5)-(101,6) = ":" + │ │ ├── value_loc: (101,6)-(101,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (102,0)-(102,16)) + │ │ ├── pattern: + │ │ │ @ ArrayPatternNode (location: (102,3)-(102,16)) + │ │ │ ├── constant: ∅ + │ │ │ ├── requireds: (length: 3) + │ │ │ │ ├── @ NilNode (location: (102,3)-(102,6)) + │ │ │ │ ├── @ NilNode (location: (102,8)-(102,11)) + │ │ │ │ └── @ NilNode (location: (102,13)-(102,16)) + │ │ │ ├── rest: ∅ + │ │ │ ├── posts: (length: 0) + │ │ │ ├── opening_loc: ∅ + │ │ │ └── closing_loc: ∅ + │ │ ├── statements: ∅ + │ │ ├── in_loc: (102,0)-(102,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (101,0)-(101,4) = "case" + │ └── end_keyword_loc: (103,0)-(103,3) = "end" + ├── @ CaseMatchNode (location: (105,0)-(107,3)) + │ ├── predicate: + │ │ @ SymbolNode (location: (105,5)-(105,7)) + │ │ ├── flags: forced_us_ascii_encoding + │ │ ├── opening_loc: (105,5)-(105,6) = ":" + │ │ ├── value_loc: (105,6)-(105,7) = "a" + │ │ ├── closing_loc: ∅ + │ │ └── unescaped: "a" + │ ├── conditions: (length: 1) + │ │ └── @ InNode (location: (106,0)-(106,11)) + │ │ ├── pattern: + │ │ │ @ HashPatternNode (location: (106,3)-(106,11)) + │ │ │ ├── constant: ∅ + │ │ │ ├── elements: (length: 1) + │ │ │ │ └── @ AssocNode (location: (106,5)-(106,9)) + │ │ │ │ ├── key: + │ │ │ │ │ @ SymbolNode (location: (106,5)-(106,9)) + │ │ │ │ │ ├── flags: forced_us_ascii_encoding + │ │ │ │ │ ├── opening_loc: (106,5)-(106,6) = "\"" + │ │ │ │ │ ├── value_loc: (106,6)-(106,7) = "b" + │ │ │ │ │ ├── closing_loc: (106,7)-(106,9) = "\":" + │ │ │ │ │ └── unescaped: "b" + │ │ │ │ ├── value: + │ │ │ │ │ @ ImplicitNode (location: (106,6)-(106,7)) + │ │ │ │ │ └── value: + │ │ │ │ │ @ LocalVariableTargetNode (location: (106,6)-(106,7)) + │ │ │ │ │ ├── name: :b + │ │ │ │ │ └── depth: 0 + │ │ │ │ └── operator_loc: ∅ + │ │ │ ├── rest: ∅ + │ │ │ ├── opening_loc: (106,3)-(106,4) = "{" + │ │ │ └── closing_loc: (106,10)-(106,11) = "}" + │ │ ├── statements: ∅ + │ │ ├── in_loc: (106,0)-(106,2) = "in" + │ │ └── then_loc: ∅ + │ ├── consequent: ∅ + │ ├── case_keyword_loc: (105,0)-(105,4) = "case" + │ └── end_keyword_loc: (107,0)-(107,3) = "end" + └── @ CaseMatchNode (location: (109,0)-(111,3)) + ├── predicate: + │ @ SymbolNode (location: (109,5)-(109,7)) + │ ├── flags: forced_us_ascii_encoding + │ ├── opening_loc: (109,5)-(109,6) = ":" + │ ├── value_loc: (109,6)-(109,7) = "a" + │ ├── closing_loc: ∅ + │ └── unescaped: "a" + ├── conditions: (length: 1) + │ └── @ InNode (location: (110,0)-(110,5)) + │ ├── pattern: + │ │ @ HashPatternNode (location: (110,3)-(110,5)) + │ │ ├── constant: ∅ + │ │ ├── elements: (length: 0) + │ │ ├── rest: ∅ + │ │ ├── opening_loc: (110,3)-(110,4) = "{" + │ │ └── closing_loc: (110,4)-(110,5) = "}" + │ ├── statements: ∅ + │ ├── in_loc: (110,0)-(110,2) = "in" + │ └── then_loc: ∅ + ├── consequent: ∅ + ├── case_keyword_loc: (109,0)-(109,4) = "case" + └── end_keyword_loc: (111,0)-(111,3) = "end" |