[PRISM] Remove snapshot testing from Prism sync

This commit is contained in:
Kevin Newton 2024-09-13 15:33:14 -04:00
Родитель fab01b15e9
Коммит d57bc870ac
915 изменённых файлов: 3 добавлений и 94492 удалений

Просмотреть файл

@ -1,215 +0,0 @@
@ ProgramNode (location: (1,0)-(23,11))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(23,11))
├── flags: ∅
└── body: (length: 12)
├── @ AliasMethodNode (location: (1,0)-(1,15))
│ ├── flags: newline
│ ├── new_name:
│ │ @ SymbolNode (location: (1,6)-(1,10))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (1,6)-(1,7) = ":"
│ │ ├── value_loc: (1,7)-(1,10) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── old_name:
│ │ @ SymbolNode (location: (1,11)-(1,15))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (1,11)-(1,12) = ":"
│ │ ├── value_loc: (1,12)-(1,15) = "bar"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "bar"
│ └── keyword_loc: (1,0)-(1,5) = "alias"
├── @ AliasMethodNode (location: (3,0)-(3,21))
│ ├── flags: newline
│ ├── new_name:
│ │ @ SymbolNode (location: (3,6)-(3,13))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (3,6)-(3,9) = "%s["
│ │ ├── value_loc: (3,9)-(3,12) = "abc"
│ │ ├── closing_loc: (3,12)-(3,13) = "]"
│ │ └── unescaped: "abc"
│ ├── old_name:
│ │ @ SymbolNode (location: (3,14)-(3,21))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (3,14)-(3,17) = "%s["
│ │ ├── value_loc: (3,17)-(3,20) = "def"
│ │ ├── closing_loc: (3,20)-(3,21) = "]"
│ │ └── unescaped: "def"
│ └── keyword_loc: (3,0)-(3,5) = "alias"
├── @ AliasMethodNode (location: (5,0)-(5,19))
│ ├── flags: newline
│ ├── new_name:
│ │ @ SymbolNode (location: (5,6)-(5,12))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (5,6)-(5,8) = ":'"
│ │ ├── value_loc: (5,8)-(5,11) = "abc"
│ │ ├── closing_loc: (5,11)-(5,12) = "'"
│ │ └── unescaped: "abc"
│ ├── old_name:
│ │ @ SymbolNode (location: (5,13)-(5,19))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (5,13)-(5,15) = ":'"
│ │ ├── value_loc: (5,15)-(5,18) = "def"
│ │ ├── closing_loc: (5,18)-(5,19) = "'"
│ │ └── unescaped: "def"
│ └── keyword_loc: (5,0)-(5,5) = "alias"
├── @ AliasMethodNode (location: (7,0)-(7,23))
│ ├── flags: newline
│ ├── new_name:
│ │ @ InterpolatedSymbolNode (location: (7,6)-(7,16))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (7,6)-(7,8) = ":\""
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (7,8)-(7,11))
│ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (7,8)-(7,11) = "abc"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "abc"
│ │ │ └── @ EmbeddedStatementsNode (location: (7,11)-(7,15))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (7,11)-(7,13) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (7,13)-(7,14))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (7,13)-(7,14))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── closing_loc: (7,14)-(7,15) = "}"
│ │ └── closing_loc: (7,15)-(7,16) = "\""
│ ├── old_name:
│ │ @ SymbolNode (location: (7,17)-(7,23))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (7,17)-(7,19) = ":'"
│ │ ├── value_loc: (7,19)-(7,22) = "def"
│ │ ├── closing_loc: (7,22)-(7,23) = "'"
│ │ └── unescaped: "def"
│ └── keyword_loc: (7,0)-(7,5) = "alias"
├── @ AliasGlobalVariableNode (location: (9,0)-(9,11))
│ ├── flags: newline
│ ├── new_name:
│ │ @ GlobalVariableReadNode (location: (9,6)-(9,8))
│ │ ├── flags: ∅
│ │ └── name: :$a
│ ├── old_name:
│ │ @ BackReferenceReadNode (location: (9,9)-(9,11))
│ │ ├── flags: ∅
│ │ └── name: :$'
│ └── keyword_loc: (9,0)-(9,5) = "alias"
├── @ AliasMethodNode (location: (11,0)-(11,13))
│ ├── flags: newline
│ ├── new_name:
│ │ @ SymbolNode (location: (11,6)-(11,9))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (11,6)-(11,9) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── old_name:
│ │ @ SymbolNode (location: (11,10)-(11,13))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (11,10)-(11,13) = "bar"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "bar"
│ └── keyword_loc: (11,0)-(11,5) = "alias"
├── @ AliasGlobalVariableNode (location: (13,0)-(13,15))
│ ├── flags: newline
│ ├── new_name:
│ │ @ GlobalVariableReadNode (location: (13,6)-(13,10))
│ │ ├── flags: ∅
│ │ └── name: :$foo
│ ├── old_name:
│ │ @ GlobalVariableReadNode (location: (13,11)-(13,15))
│ │ ├── flags: ∅
│ │ └── name: :$bar
│ └── keyword_loc: (13,0)-(13,5) = "alias"
├── @ AliasMethodNode (location: (15,0)-(15,12))
│ ├── flags: newline
│ ├── new_name:
│ │ @ SymbolNode (location: (15,6)-(15,9))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (15,6)-(15,9) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── old_name:
│ │ @ SymbolNode (location: (15,10)-(15,12))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (15,10)-(15,12) = "if"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "if"
│ └── keyword_loc: (15,0)-(15,5) = "alias"
├── @ AliasMethodNode (location: (17,0)-(17,13))
│ ├── flags: newline
│ ├── new_name:
│ │ @ SymbolNode (location: (17,6)-(17,9))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (17,6)-(17,9) = "foo"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "foo"
│ ├── old_name:
│ │ @ SymbolNode (location: (17,10)-(17,13))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (17,10)-(17,13) = "<=>"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "<=>"
│ └── keyword_loc: (17,0)-(17,5) = "alias"
├── @ AliasMethodNode (location: (19,0)-(19,15))
│ ├── flags: newline
│ ├── new_name:
│ │ @ SymbolNode (location: (19,6)-(19,9))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (19,6)-(19,7) = ":"
│ │ ├── value_loc: (19,7)-(19,9) = "=="
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "=="
│ ├── old_name:
│ │ @ SymbolNode (location: (19,10)-(19,15))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (19,10)-(19,11) = ":"
│ │ ├── value_loc: (19,11)-(19,15) = "eql?"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "eql?"
│ └── keyword_loc: (19,0)-(19,5) = "alias"
├── @ AliasMethodNode (location: (21,0)-(21,9))
│ ├── flags: newline
│ ├── new_name:
│ │ @ SymbolNode (location: (21,6)-(21,7))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (21,6)-(21,7) = "A"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "A"
│ ├── old_name:
│ │ @ SymbolNode (location: (21,8)-(21,9))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (21,8)-(21,9) = "B"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "B"
│ └── keyword_loc: (21,0)-(21,5) = "alias"
└── @ AliasMethodNode (location: (23,0)-(23,11))
├── flags: newline
├── new_name:
│ @ SymbolNode (location: (23,6)-(23,8))
│ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (23,6)-(23,7) = ":"
│ ├── value_loc: (23,7)-(23,8) = "A"
│ ├── closing_loc: ∅
│ └── unescaped: "A"
├── old_name:
│ @ SymbolNode (location: (23,9)-(23,11))
│ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (23,9)-(23,10) = ":"
│ ├── value_loc: (23,10)-(23,11) = "B"
│ ├── closing_loc: ∅
│ └── unescaped: "B"
└── keyword_loc: (23,0)-(23,5) = "alias"

Просмотреть файл

@ -1,257 +0,0 @@
@ ProgramNode (location: (1,0)-(13,8))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(13,8))
├── flags: ∅
└── body: (length: 7)
├── @ CallNode (location: (1,0)-(1,8))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (1,0)-(1,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (1,4)-(1,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (1,4)-(1,8))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (1,5)-(1,8))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (1,5)-(1,8) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (1,4)-(1,5) = "!"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,8))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (3,0)-(3,4))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (3,1)-(3,4))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (3,1)-(3,4) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :-@
│ │ ├── message_loc: (3,0)-(3,1) = "-"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :*
│ ├── message_loc: (3,4)-(3,5) = "*"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (3,5)-(3,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (3,5)-(3,8))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (3,5)-(3,8) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (5,0)-(5,9))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (5,0)-(5,4))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (5,1)-(5,4))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (5,1)-(5,4) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :+@
│ │ ├── message_loc: (5,0)-(5,1) = "+"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :**
│ ├── message_loc: (5,4)-(5,6) = "**"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (5,6)-(5,9))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (5,6)-(5,9))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (5,6)-(5,9) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (7,0)-(7,8))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (7,0)-(7,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (7,4)-(7,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (7,4)-(7,8))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (7,5)-(7,8))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (7,5)-(7,8) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :~
│ │ ├── message_loc: (7,4)-(7,5) = "~"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (9,0)-(9,17))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (9,0)-(9,10))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (9,0)-(9,3))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (9,0)-(9,3) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :<<
│ │ ├── message_loc: (9,4)-(9,6) = "<<"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (9,7)-(9,10))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ CallNode (location: (9,7)-(9,10))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (9,7)-(9,10) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :<<
│ ├── message_loc: (9,11)-(9,13) = "<<"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (9,14)-(9,17))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (9,14)-(9,17))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :baz
│ │ ├── message_loc: (9,14)-(9,17) = "baz"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (11,0)-(11,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (11,1)-(11,5))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (11,1)-(11,2))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :**
│ │ ├── message_loc: (11,2)-(11,4) = "**"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (11,4)-(11,5))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (11,4)-(11,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :-@
│ ├── message_loc: (11,0)-(11,1) = "-"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (13,0)-(13,8))
├── flags: newline
├── receiver:
│ @ IntegerNode (location: (13,0)-(13,2))
│ ├── flags: static_literal, decimal
│ └── value: -1
├── call_operator_loc: (13,2)-(13,3) = "."
├── name: :zero?
├── message_loc: (13,3)-(13,8) = "zero?"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block: ∅

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,286 +0,0 @@
@ ProgramNode (location: (1,0)-(21,15))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(21,15))
├── flags: ∅
└── body: (length: 5)
├── @ BeginNode (location: (1,0)-(5,3))
│ ├── flags: newline
│ ├── begin_keyword_loc: (1,0)-(1,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (2,0)-(2,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (2,0)-(2,1))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (2,0)-(2,1) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause:
│ │ @ EnsureNode (location: (3,0)-(5,3))
│ │ ├── flags: ∅
│ │ ├── ensure_keyword_loc: (3,0)-(3,6) = "ensure"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (4,0)-(4,1))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (4,0)-(4,1))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (4,0)-(4,1) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── end_keyword_loc: (5,0)-(5,3) = "end"
│ └── end_keyword_loc: (5,0)-(5,3) = "end"
├── @ BeginNode (location: (7,0)-(7,24))
│ ├── flags: newline
│ ├── begin_keyword_loc: (7,0)-(7,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (7,7)-(7,8))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (7,7)-(7,8))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (7,7)-(7,8) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause:
│ │ @ EnsureNode (location: (7,10)-(7,24))
│ │ ├── flags: ∅
│ │ ├── ensure_keyword_loc: (7,10)-(7,16) = "ensure"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (7,18)-(7,19))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (7,18)-(7,19))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (7,18)-(7,19) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── end_keyword_loc: (7,21)-(7,24) = "end"
│ └── end_keyword_loc: (7,21)-(7,24) = "end"
├── @ BeginNode (location: (9,0)-(11,4))
│ ├── flags: newline
│ ├── begin_keyword_loc: (9,0)-(9,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (9,6)-(9,7))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (9,6)-(9,7))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (9,6)-(9,7) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause:
│ │ @ EnsureNode (location: (10,1)-(11,4))
│ │ ├── flags: ∅
│ │ ├── ensure_keyword_loc: (10,1)-(10,7) = "ensure"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (10,8)-(10,9))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (10,8)-(10,9))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (10,8)-(10,9) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── end_keyword_loc: (11,1)-(11,4) = "end"
│ └── end_keyword_loc: (11,1)-(11,4) = "end"
├── @ BeginNode (location: (13,0)-(13,22))
│ ├── flags: newline
│ ├── begin_keyword_loc: (13,0)-(13,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (13,6)-(13,7))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (13,6)-(13,7))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (13,6)-(13,7) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause:
│ │ @ EnsureNode (location: (13,9)-(13,22))
│ │ ├── flags: ∅
│ │ ├── ensure_keyword_loc: (13,9)-(13,15) = "ensure"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (13,16)-(13,17))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (13,16)-(13,17))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (13,16)-(13,17) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── end_keyword_loc: (13,19)-(13,22) = "end"
│ └── end_keyword_loc: (13,19)-(13,22) = "end"
└── @ BeginNode (location: (15,0)-(21,15))
├── flags: newline
├── begin_keyword_loc: (15,0)-(15,5) = "begin"
├── statements:
│ @ StatementsNode (location: (15,6)-(21,11))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ BeginNode (location: (15,6)-(21,11))
│ ├── flags: newline
│ ├── begin_keyword_loc: (15,6)-(15,11) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (15,11)-(21,7))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (15,11)-(21,7))
│ │ ├── flags: newline
│ │ ├── receiver:
│ │ │ @ SymbolNode (location: (15,11)-(15,13))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (15,11)-(15,12) = ":"
│ │ │ ├── value_loc: (15,12)-(15,13) = "s"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "s"
│ │ ├── call_operator_loc: (15,13)-(15,14) = "."
│ │ ├── name: :l
│ │ ├── message_loc: (15,14)-(15,15) = "l"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (15,16)-(21,7))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ BeginNode (location: (15,16)-(21,7))
│ │ │ ├── flags: ∅
│ │ │ ├── begin_keyword_loc: (15,16)-(15,21) = "begin"
│ │ │ ├── statements: ∅
│ │ │ ├── rescue_clause: ∅
│ │ │ ├── else_clause: ∅
│ │ │ ├── ensure_clause:
│ │ │ │ @ EnsureNode (location: (15,22)-(21,7))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── ensure_keyword_loc: (15,22)-(15,28) = "ensure"
│ │ │ │ ├── statements:
│ │ │ │ │ @ StatementsNode (location: (15,29)-(21,3))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ CallNode (location: (15,29)-(21,3))
│ │ │ │ │ ├── flags: newline
│ │ │ │ │ ├── receiver:
│ │ │ │ │ │ @ ConstantReadNode (location: (15,29)-(15,35))
│ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── name: :Module
│ │ │ │ │ ├── call_operator_loc: (15,35)-(15,36) = "."
│ │ │ │ │ ├── name: :new
│ │ │ │ │ ├── message_loc: (15,36)-(15,39) = "new"
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── arguments: ∅
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block:
│ │ │ │ │ @ BlockNode (location: (15,40)-(21,3))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── locals: []
│ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ ├── body:
│ │ │ │ │ │ @ StatementsNode (location: (16,2)-(20,5))
│ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ └── @ BeginNode (location: (16,2)-(20,5))
│ │ │ │ │ │ ├── flags: newline
│ │ │ │ │ │ ├── begin_keyword_loc: (16,2)-(16,7) = "begin"
│ │ │ │ │ │ ├── statements:
│ │ │ │ │ │ │ @ StatementsNode (location: (17,4)-(17,9))
│ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ │ └── @ BreakNode (location: (17,4)-(17,9))
│ │ │ │ │ │ │ ├── flags: newline
│ │ │ │ │ │ │ ├── arguments: ∅
│ │ │ │ │ │ │ └── keyword_loc: (17,4)-(17,9) = "break"
│ │ │ │ │ │ ├── rescue_clause: ∅
│ │ │ │ │ │ ├── else_clause: ∅
│ │ │ │ │ │ ├── ensure_clause:
│ │ │ │ │ │ │ @ EnsureNode (location: (18,4)-(20,5))
│ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ │ ├── ensure_keyword_loc: (18,4)-(18,10) = "ensure"
│ │ │ │ │ │ │ ├── statements:
│ │ │ │ │ │ │ │ @ StatementsNode (location: (18,11)-(19,7))
│ │ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ │ │ └── @ CallNode (location: (18,11)-(19,7))
│ │ │ │ │ │ │ │ ├── flags: newline
│ │ │ │ │ │ │ │ ├── receiver:
│ │ │ │ │ │ │ │ │ @ ConstantReadNode (location: (18,11)-(18,17))
│ │ │ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ │ │ │ └── name: :Module
│ │ │ │ │ │ │ │ ├── call_operator_loc: (18,17)-(18,18) = "."
│ │ │ │ │ │ │ │ ├── name: :new
│ │ │ │ │ │ │ │ ├── message_loc: (18,18)-(18,21) = "new"
│ │ │ │ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ │ │ │ ├── arguments: ∅
│ │ │ │ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ │ │ │ └── block:
│ │ │ │ │ │ │ │ @ BlockNode (location: (18,22)-(19,7))
│ │ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ │ │ ├── locals: []
│ │ │ │ │ │ │ │ ├── parameters: ∅
│ │ │ │ │ │ │ │ ├── body: ∅
│ │ │ │ │ │ │ │ ├── opening_loc: (18,22)-(18,24) = "do"
│ │ │ │ │ │ │ │ └── closing_loc: (19,4)-(19,7) = "end"
│ │ │ │ │ │ │ └── end_keyword_loc: (20,2)-(20,5) = "end"
│ │ │ │ │ │ └── end_keyword_loc: (20,2)-(20,5) = "end"
│ │ │ │ │ ├── opening_loc: (15,40)-(15,42) = "do"
│ │ │ │ │ └── closing_loc: (21,0)-(21,3) = "end"
│ │ │ │ └── end_keyword_loc: (21,4)-(21,7) = "end"
│ │ │ └── end_keyword_loc: (21,4)-(21,7) = "end"
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (21,8)-(21,11) = "end"
├── rescue_clause: ∅
├── else_clause: ∅
├── ensure_clause: ∅
└── end_keyword_loc: (21,12)-(21,15) = "end"

Просмотреть файл

@ -1,786 +0,0 @@
@ ProgramNode (location: (1,0)-(78,3))
├── flags: ∅
├── locals: [:ex]
└── statements:
@ StatementsNode (location: (1,0)-(78,3))
├── flags: ∅
└── body: (length: 17)
├── @ BeginNode (location: (1,0)-(1,33))
│ ├── flags: newline
│ ├── begin_keyword_loc: (1,0)-(1,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (1,7)-(1,8))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,7)-(1,8))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (1,7)-(1,8) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (1,10)-(1,19))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (1,10)-(1,16) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,18)-(1,19))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,18)-(1,19))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (1,18)-(1,19) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent: ∅
│ ├── else_clause:
│ │ @ ElseNode (location: (1,21)-(1,33))
│ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (1,21)-(1,25) = "else"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,27)-(1,28))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,27)-(1,28))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :c
│ │ │ ├── message_loc: (1,27)-(1,28) = "c"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── end_keyword_loc: (1,30)-(1,33) = "end"
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (1,30)-(1,33) = "end"
├── @ BeginNode (location: (3,0)-(3,44))
│ ├── flags: newline
│ ├── begin_keyword_loc: (3,0)-(3,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (3,7)-(3,8))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (3,7)-(3,8))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (3,7)-(3,8) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (3,10)-(3,19))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (3,10)-(3,16) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (3,18)-(3,19))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (3,18)-(3,19))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (3,18)-(3,19) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent: ∅
│ ├── else_clause:
│ │ @ ElseNode (location: (3,21)-(3,36))
│ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (3,21)-(3,25) = "else"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (3,27)-(3,28))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (3,27)-(3,28))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :c
│ │ │ ├── message_loc: (3,27)-(3,28) = "c"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── end_keyword_loc: (3,30)-(3,36) = "ensure"
│ ├── ensure_clause:
│ │ @ EnsureNode (location: (3,30)-(3,44))
│ │ ├── flags: ∅
│ │ ├── ensure_keyword_loc: (3,30)-(3,36) = "ensure"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (3,38)-(3,39))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (3,38)-(3,39))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :d
│ │ │ ├── message_loc: (3,38)-(3,39) = "d"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── end_keyword_loc: (3,41)-(3,44) = "end"
│ └── end_keyword_loc: (3,41)-(3,44) = "end"
├── @ BeginNode (location: (5,0)-(7,3))
│ ├── flags: newline
│ ├── begin_keyword_loc: (5,0)-(5,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (6,0)-(6,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (6,0)-(6,1))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (6,0)-(6,1) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (7,0)-(7,3) = "end"
├── @ BeginNode (location: (9,0)-(9,13))
│ ├── flags: newline
│ ├── begin_keyword_loc: (9,0)-(9,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (9,7)-(9,8))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (9,7)-(9,8))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (9,7)-(9,8) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (9,10)-(9,13) = "end"
├── @ BeginNode (location: (11,0)-(12,4))
│ ├── flags: newline
│ ├── begin_keyword_loc: (11,0)-(11,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (11,6)-(11,7))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (11,6)-(11,7))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (11,6)-(11,7) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (12,1)-(12,4) = "end"
├── @ BeginNode (location: (14,0)-(14,12))
│ ├── flags: newline
│ ├── begin_keyword_loc: (14,0)-(14,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (14,6)-(14,7))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (14,6)-(14,7))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (14,6)-(14,7) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (14,9)-(14,12) = "end"
├── @ BeginNode (location: (16,0)-(24,3))
│ ├── flags: newline
│ ├── begin_keyword_loc: (16,0)-(16,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (17,0)-(17,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (17,0)-(17,1))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (17,0)-(17,1) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (18,0)-(23,1))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (18,0)-(18,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (19,0)-(19,1))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (19,0)-(19,1))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (19,0)-(19,1) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent:
│ │ @ RescueNode (location: (20,0)-(23,1))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (20,0)-(20,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (21,0)-(21,1))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (21,0)-(21,1))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :c
│ │ │ ├── message_loc: (21,0)-(21,1) = "c"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent:
│ │ @ RescueNode (location: (22,0)-(23,1))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (22,0)-(22,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (23,0)-(23,1))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (23,0)-(23,1))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :d
│ │ │ ├── message_loc: (23,0)-(23,1) = "d"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (24,0)-(24,3) = "end"
├── @ BeginNode (location: (26,0)-(32,3))
│ ├── flags: newline
│ ├── begin_keyword_loc: (26,0)-(26,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (27,2)-(27,3))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (27,2)-(27,3))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (27,2)-(27,3) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (28,0)-(31,3))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (28,0)-(28,6) = "rescue"
│ │ ├── exceptions: (length: 1)
│ │ │ └── @ ConstantReadNode (location: (28,7)-(28,16))
│ │ │ ├── flags: ∅
│ │ │ └── name: :Exception
│ │ ├── operator_loc: (28,17)-(28,19) = "=>"
│ │ ├── reference:
│ │ │ @ LocalVariableTargetNode (location: (28,20)-(28,22))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :ex
│ │ │ └── depth: 0
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (29,2)-(29,3))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (29,2)-(29,3))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (29,2)-(29,3) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent:
│ │ @ RescueNode (location: (30,0)-(31,3))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (30,0)-(30,6) = "rescue"
│ │ ├── exceptions: (length: 2)
│ │ │ ├── @ ConstantReadNode (location: (30,7)-(30,23))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :AnotherException
│ │ │ └── @ ConstantReadNode (location: (30,25)-(30,41))
│ │ │ ├── flags: ∅
│ │ │ └── name: :OneMoreException
│ │ ├── operator_loc: (30,42)-(30,44) = "=>"
│ │ ├── reference:
│ │ │ @ LocalVariableTargetNode (location: (30,45)-(30,47))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :ex
│ │ │ └── depth: 0
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (31,2)-(31,3))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (31,2)-(31,3))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :c
│ │ │ ├── message_loc: (31,2)-(31,3) = "c"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (32,0)-(32,3) = "end"
├── @ BeginNode (location: (34,0)-(40,3))
│ ├── flags: newline
│ ├── begin_keyword_loc: (34,0)-(34,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (35,2)-(35,3))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (35,2)-(35,3))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (35,2)-(35,3) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (36,0)-(37,3))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (36,0)-(36,6) = "rescue"
│ │ ├── exceptions: (length: 1)
│ │ │ └── @ ConstantReadNode (location: (36,7)-(36,16))
│ │ │ ├── flags: ∅
│ │ │ └── name: :Exception
│ │ ├── operator_loc: (36,17)-(36,19) = "=>"
│ │ ├── reference:
│ │ │ @ LocalVariableTargetNode (location: (36,20)-(36,22))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :ex
│ │ │ └── depth: 0
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (37,2)-(37,3))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (37,2)-(37,3))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (37,2)-(37,3) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause:
│ │ @ EnsureNode (location: (38,0)-(40,3))
│ │ ├── flags: ∅
│ │ ├── ensure_keyword_loc: (38,0)-(38,6) = "ensure"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (39,2)-(39,3))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (39,2)-(39,3))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (39,2)-(39,3) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── end_keyword_loc: (40,0)-(40,3) = "end"
│ └── end_keyword_loc: (40,0)-(40,3) = "end"
├── @ StringNode (location: (42,0)-(42,6))
│ ├── flags: newline
│ ├── opening_loc: (42,0)-(42,2) = "%!"
│ ├── content_loc: (42,2)-(42,5) = "abc"
│ ├── closing_loc: (42,5)-(42,6) = "!"
│ └── unescaped: "abc"
├── @ BeginNode (location: (44,0)-(48,3))
│ ├── flags: newline
│ ├── begin_keyword_loc: (44,0)-(44,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (45,0)-(45,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (45,0)-(45,1))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (45,0)-(45,1) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (46,0)-(47,1))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (46,0)-(46,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (47,0)-(47,1))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (47,0)-(47,1))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (47,0)-(47,1) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (48,0)-(48,3) = "end"
├── @ BeginNode (location: (50,0)-(50,20))
│ ├── flags: newline
│ ├── begin_keyword_loc: (50,0)-(50,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (50,6)-(50,7))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (50,6)-(50,7))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (50,6)-(50,7) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (50,8)-(50,16))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (50,8)-(50,14) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (50,15)-(50,16))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (50,15)-(50,16))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (50,15)-(50,16) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (50,17)-(50,20) = "end"
├── @ BeginNode (location: (52,0)-(54,5))
│ ├── flags: newline
│ ├── begin_keyword_loc: (52,0)-(52,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (53,0)-(53,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (53,0)-(53,1))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (53,0)-(53,1) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (53,2)-(54,1))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (53,2)-(53,8) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (54,0)-(54,1))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (54,0)-(54,1))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (54,0)-(54,1) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (54,2)-(54,5) = "end"
├── @ BeginNode (location: (56,0)-(60,3))
│ ├── flags: newline
│ ├── begin_keyword_loc: (56,0)-(56,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (57,0)-(57,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (57,0)-(57,1))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (57,0)-(57,1) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (58,0)-(59,1))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (58,0)-(58,6) = "rescue"
│ │ ├── exceptions: (length: 1)
│ │ │ └── @ ConstantReadNode (location: (58,7)-(58,16))
│ │ │ ├── flags: ∅
│ │ │ └── name: :Exception
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (59,0)-(59,1))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (59,0)-(59,1))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (59,0)-(59,1) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (60,0)-(60,3) = "end"
├── @ BeginNode (location: (62,0)-(66,3))
│ ├── flags: newline
│ ├── begin_keyword_loc: (62,0)-(62,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (63,0)-(63,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (63,0)-(63,1))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (63,0)-(63,1) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (64,0)-(65,1))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (64,0)-(64,6) = "rescue"
│ │ ├── exceptions: (length: 2)
│ │ │ ├── @ ConstantReadNode (location: (64,7)-(64,16))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :Exception
│ │ │ └── @ ConstantReadNode (location: (64,18)-(64,33))
│ │ │ ├── flags: ∅
│ │ │ └── name: :CustomException
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (65,0)-(65,1))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (65,0)-(65,1))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (65,0)-(65,1) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (66,0)-(66,3) = "end"
├── @ BeginNode (location: (68,0)-(72,3))
│ ├── flags: newline
│ ├── begin_keyword_loc: (68,0)-(68,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (69,2)-(69,3))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (69,2)-(69,3))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (69,2)-(69,3) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (70,0)-(71,3))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (70,0)-(70,6) = "rescue"
│ │ ├── exceptions: (length: 2)
│ │ │ ├── @ ConstantReadNode (location: (70,7)-(70,16))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :Exception
│ │ │ └── @ ConstantReadNode (location: (70,18)-(70,33))
│ │ │ ├── flags: ∅
│ │ │ └── name: :CustomException
│ │ ├── operator_loc: (70,34)-(70,36) = "=>"
│ │ ├── reference:
│ │ │ @ LocalVariableTargetNode (location: (70,37)-(70,39))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :ex
│ │ │ └── depth: 0
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (71,2)-(71,3))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (71,2)-(71,3))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (71,2)-(71,3) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── subsequent: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (72,0)-(72,3) = "end"
└── @ BeginNode (location: (74,0)-(78,3))
├── flags: newline
├── begin_keyword_loc: (74,0)-(74,5) = "begin"
├── statements:
│ @ StatementsNode (location: (75,2)-(75,3))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (75,2)-(75,3))
│ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
│ ├── message_loc: (75,2)-(75,3) = "a"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── rescue_clause:
│ @ RescueNode (location: (76,0)-(77,3))
│ ├── flags: ∅
│ ├── keyword_loc: (76,0)-(76,6) = "rescue"
│ ├── exceptions: (length: 1)
│ │ └── @ ConstantReadNode (location: (76,7)-(76,16))
│ │ ├── flags: ∅
│ │ └── name: :Exception
│ ├── operator_loc: (76,17)-(76,19) = "=>"
│ ├── reference:
│ │ @ LocalVariableTargetNode (location: (76,20)-(76,22))
│ │ ├── flags: ∅
│ │ ├── name: :ex
│ │ └── depth: 0
│ ├── statements:
│ │ @ StatementsNode (location: (77,2)-(77,3))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (77,2)-(77,3))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :b
│ │ ├── message_loc: (77,2)-(77,3) = "b"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── subsequent: ∅
├── else_clause: ∅
├── ensure_clause: ∅
└── end_keyword_loc: (78,0)-(78,3) = "end"

Просмотреть файл

@ -1,829 +0,0 @@
@ ProgramNode (location: (1,0)-(54,17))
├── flags: ∅
├── locals: [:fork]
└── statements:
@ StatementsNode (location: (1,0)-(54,17))
├── flags: ∅
└── body: (length: 20)
├── @ CallNode (location: (1,0)-(1,16))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (1,0)-(1,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :[]
│ ├── message_loc: (1,3)-(1,8) = "[bar]"
│ ├── opening_loc: (1,3)-(1,4) = "["
│ ├── arguments:
│ │ @ ArgumentsNode (location: (1,4)-(1,7))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (1,4)-(1,7))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (1,4)-(1,7) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: (1,7)-(1,8) = "]"
│ └── block:
│ @ BlockNode (location: (1,9)-(1,16))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,11)-(1,14))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (1,11)-(1,14))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :baz
│ │ ├── message_loc: (1,11)-(1,14) = "baz"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── opening_loc: (1,9)-(1,10) = "{"
│ └── closing_loc: (1,15)-(1,16) = "}"
├── @ CallNode (location: (3,0)-(5,3))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (3,0)-(3,3))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (3,0)-(3,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :[]
│ ├── message_loc: (3,3)-(3,8) = "[bar]"
│ ├── opening_loc: (3,3)-(3,4) = "["
│ ├── arguments:
│ │ @ ArgumentsNode (location: (3,4)-(3,7))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (3,4)-(3,7))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (3,4)-(3,7) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: (3,7)-(3,8) = "]"
│ └── block:
│ @ BlockNode (location: (3,9)-(5,3))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (4,0)-(4,3))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (4,0)-(4,3))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :baz
│ │ ├── message_loc: (4,0)-(4,3) = "baz"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── opening_loc: (3,9)-(3,11) = "do"
│ └── closing_loc: (5,0)-(5,3) = "end"
├── @ CallNode (location: (7,0)-(7,35))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (7,0)-(7,1))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :x
│ │ ├── message_loc: (7,0)-(7,1) = "x"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: (7,1)-(7,2) = "."
│ ├── name: :reduce
│ ├── message_loc: (7,2)-(7,8) = "reduce"
│ ├── opening_loc: (7,8)-(7,9) = "("
│ ├── arguments:
│ │ @ ArgumentsNode (location: (7,9)-(7,10))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (7,9)-(7,10))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 0
│ ├── closing_loc: (7,10)-(7,11) = ")"
│ └── block:
│ @ BlockNode (location: (7,12)-(7,35))
│ ├── flags: ∅
│ ├── locals: [:x, :memo]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (7,14)-(7,23))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (7,15)-(7,22))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 2)
│ │ │ │ ├── @ RequiredParameterNode (location: (7,15)-(7,16))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :x
│ │ │ │ └── @ RequiredParameterNode (location: (7,18)-(7,22))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :memo
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (7,14)-(7,15) = "|"
│ │ └── closing_loc: (7,22)-(7,23) = "|"
│ ├── body:
│ │ @ StatementsNode (location: (7,24)-(7,33))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableOperatorWriteNode (location: (7,24)-(7,33))
│ │ ├── flags: newline
│ │ ├── name_loc: (7,24)-(7,28) = "memo"
│ │ ├── binary_operator_loc: (7,29)-(7,31) = "+="
│ │ ├── value:
│ │ │ @ LocalVariableReadNode (location: (7,32)-(7,33))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :x
│ │ │ └── depth: 0
│ │ ├── name: :memo
│ │ ├── binary_operator: :+
│ │ └── depth: 0
│ ├── opening_loc: (7,12)-(7,13) = "{"
│ └── closing_loc: (7,34)-(7,35) = "}"
├── @ CallNode (location: (9,0)-(9,10))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (9,0)-(9,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (9,4)-(9,10))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (9,4)-(9,6) = "do"
│ └── closing_loc: (9,7)-(9,10) = "end"
├── @ CallNode (location: (11,0)-(11,21))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (11,0)-(11,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (11,4)-(11,21))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ CallNode (location: (11,4)-(11,7))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (11,4)-(11,7) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── @ ParenthesesNode (location: (11,9)-(11,21))
│ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (11,10)-(11,20))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (11,10)-(11,20))
│ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :baz
│ │ │ ├── message_loc: (11,10)-(11,13) = "baz"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (11,14)-(11,20))
│ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (11,14)-(11,16) = "do"
│ │ │ └── closing_loc: (11,17)-(11,20) = "end"
│ │ ├── opening_loc: (11,9)-(11,10) = "("
│ │ └── closing_loc: (11,20)-(11,21) = ")"
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (13,0)-(13,14))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (13,0)-(13,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (13,4)-(13,7))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (13,4)-(13,7))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (13,4)-(13,7) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (13,8)-(13,14))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (13,8)-(13,10) = "do"
│ └── closing_loc: (13,11)-(13,14) = "end"
├── @ CallNode (location: (15,0)-(15,18))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (15,0)-(15,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (15,4)-(15,11))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (15,4)-(15,11))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (15,4)-(15,7) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (15,8)-(15,11))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ CallNode (location: (15,8)-(15,11))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :baz
│ │ │ ├── message_loc: (15,8)-(15,11) = "baz"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (15,12)-(15,18))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (15,12)-(15,14) = "do"
│ └── closing_loc: (15,15)-(15,18) = "end"
├── @ CallNode (location: (17,0)-(18,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (17,0)-(17,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (17,4)-(18,3))
│ ├── flags: ∅
│ ├── locals: [:a]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (17,7)-(17,17))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (17,8)-(17,16))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (17,8)-(17,16))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ ├── name_loc: (17,8)-(17,9) = "a"
│ │ │ │ ├── operator_loc: (17,10)-(17,11) = "="
│ │ │ │ └── value:
│ │ │ │ @ CallNode (location: (17,12)-(17,16))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── receiver:
│ │ │ │ │ @ CallNode (location: (17,12)-(17,13))
│ │ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ │ ├── receiver: ∅
│ │ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ │ ├── name: :b
│ │ │ │ │ ├── message_loc: (17,12)-(17,13) = "b"
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── arguments: ∅
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :[]
│ │ │ │ ├── message_loc: (17,13)-(17,16) = "[1]"
│ │ │ │ ├── opening_loc: (17,13)-(17,14) = "["
│ │ │ │ ├── arguments:
│ │ │ │ │ @ ArgumentsNode (location: (17,14)-(17,15))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── arguments: (length: 1)
│ │ │ │ │ └── @ IntegerNode (location: (17,14)-(17,15))
│ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ ├── closing_loc: (17,15)-(17,16) = "]"
│ │ │ │ └── block: ∅
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (17,7)-(17,8) = "|"
│ │ └── closing_loc: (17,16)-(17,17) = "|"
│ ├── body: ∅
│ ├── opening_loc: (17,4)-(17,6) = "do"
│ └── closing_loc: (18,0)-(18,3) = "end"
├── @ CallNode (location: (20,0)-(22,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (20,0)-(20,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (20,4)-(22,3))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ BeginNode (location: (20,4)-(22,3))
│ │ ├── flags: ∅
│ │ ├── begin_keyword_loc: ∅
│ │ ├── statements: ∅
│ │ ├── rescue_clause:
│ │ │ @ RescueNode (location: (21,0)-(21,6))
│ │ │ ├── flags: ∅
│ │ │ ├── keyword_loc: (21,0)-(21,6) = "rescue"
│ │ │ ├── exceptions: (length: 0)
│ │ │ ├── operator_loc: ∅
│ │ │ ├── reference: ∅
│ │ │ ├── statements: ∅
│ │ │ └── subsequent: ∅
│ │ ├── else_clause: ∅
│ │ ├── ensure_clause: ∅
│ │ └── end_keyword_loc: (22,0)-(22,3) = "end"
│ ├── opening_loc: (20,4)-(20,6) = "do"
│ └── closing_loc: (22,0)-(22,3) = "end"
├── @ CallNode (location: (24,0)-(29,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (24,0)-(24,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (24,4)-(29,3))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (25,2)-(28,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (25,2)-(28,5))
│ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (25,2)-(25,5) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (25,6)-(28,5))
│ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (26,4)-(27,7))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (26,4)-(27,7))
│ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :baz
│ │ │ ├── message_loc: (26,4)-(26,7) = "baz"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (26,8)-(27,7))
│ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (26,8)-(26,10) = "do"
│ │ │ └── closing_loc: (27,4)-(27,7) = "end"
│ │ ├── opening_loc: (25,6)-(25,8) = "do"
│ │ └── closing_loc: (28,2)-(28,5) = "end"
│ ├── opening_loc: (24,4)-(24,6) = "do"
│ └── closing_loc: (29,0)-(29,3) = "end"
├── @ CallNode (location: (31,0)-(31,16))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (31,0)-(31,3))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (31,0)-(31,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :[]
│ ├── message_loc: (31,3)-(31,8) = "[bar]"
│ ├── opening_loc: (31,3)-(31,4) = "["
│ ├── arguments:
│ │ @ ArgumentsNode (location: (31,4)-(31,7))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (31,4)-(31,7))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (31,4)-(31,7) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: (31,7)-(31,8) = "]"
│ └── block:
│ @ BlockNode (location: (31,9)-(31,16))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (31,11)-(31,14))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (31,11)-(31,14))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :baz
│ │ ├── message_loc: (31,11)-(31,14) = "baz"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── opening_loc: (31,9)-(31,10) = "{"
│ └── closing_loc: (31,15)-(31,16) = "}"
├── @ CallNode (location: (33,0)-(33,24))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (33,0)-(33,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (33,4)-(33,24))
│ ├── flags: ∅
│ ├── locals: [:x, :y, :z]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (33,6)-(33,20))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (33,7)-(33,19))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (33,7)-(33,8))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :x
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (33,10)-(33,15))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :y
│ │ │ │ ├── name_loc: (33,10)-(33,11) = "y"
│ │ │ │ ├── operator_loc: (33,12)-(33,13) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (33,14)-(33,15))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ RequiredKeywordParameterNode (location: (33,17)-(33,19))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :z
│ │ │ │ └── name_loc: (33,17)-(33,19) = "z:"
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (33,6)-(33,7) = "|"
│ │ └── closing_loc: (33,19)-(33,20) = "|"
│ ├── body:
│ │ @ StatementsNode (location: (33,21)-(33,22))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (33,21)-(33,22))
│ │ ├── flags: newline
│ │ ├── name: :x
│ │ └── depth: 0
│ ├── opening_loc: (33,4)-(33,5) = "{"
│ └── closing_loc: (33,23)-(33,24) = "}"
├── @ CallNode (location: (35,0)-(35,11))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (35,0)-(35,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (35,4)-(35,11))
│ ├── flags: ∅
│ ├── locals: [:x]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (35,6)-(35,9))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (35,7)-(35,8))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (35,7)-(35,8))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :x
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (35,6)-(35,7) = "|"
│ │ └── closing_loc: (35,8)-(35,9) = "|"
│ ├── body: ∅
│ ├── opening_loc: (35,4)-(35,5) = "{"
│ └── closing_loc: (35,10)-(35,11) = "}"
├── @ LocalVariableWriteNode (location: (37,0)-(37,8))
│ ├── flags: newline
│ ├── name: :fork
│ ├── depth: 0
│ ├── name_loc: (37,0)-(37,4) = "fork"
│ ├── value:
│ │ @ IntegerNode (location: (37,7)-(37,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (37,5)-(37,6) = "="
├── @ CallNode (location: (38,0)-(39,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :fork
│ ├── message_loc: (38,0)-(38,4) = "fork"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (38,5)-(39,3))
│ ├── flags: ∅
│ ├── locals: [:a]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (38,8)-(38,11))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (38,9)-(38,10))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (38,9)-(38,10))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (38,8)-(38,9) = "|"
│ │ └── closing_loc: (38,10)-(38,11) = "|"
│ ├── body: ∅
│ ├── opening_loc: (38,5)-(38,7) = "do"
│ └── closing_loc: (39,0)-(39,3) = "end"
├── @ CallNode (location: (41,0)-(41,12))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :fork
│ ├── message_loc: (41,0)-(41,4) = "fork"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (41,5)-(41,12))
│ ├── flags: ∅
│ ├── locals: [:a]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (41,7)-(41,10))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (41,8)-(41,9))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (41,8)-(41,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (41,7)-(41,8) = "|"
│ │ └── closing_loc: (41,9)-(41,10) = "|"
│ ├── body: ∅
│ ├── opening_loc: (41,5)-(41,6) = "{"
│ └── closing_loc: (41,11)-(41,12) = "}"
├── @ CallNode (location: (43,0)-(44,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :C
│ ├── message_loc: (43,0)-(43,1) = "C"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (43,2)-(44,3))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (43,2)-(43,4) = "do"
│ └── closing_loc: (44,0)-(44,3) = "end"
├── @ CallNode (location: (46,0)-(46,4))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :C
│ ├── message_loc: (46,0)-(46,1) = "C"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (46,2)-(46,4))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── opening_loc: (46,2)-(46,3) = "{"
│ └── closing_loc: (46,3)-(46,4) = "}"
├── @ CallNode (location: (48,0)-(52,1))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (48,0)-(48,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (48,4)-(52,1))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (48,4)-(52,1))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :lambda
│ │ ├── message_loc: (48,4)-(48,10) = "lambda"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (48,11)-(52,1))
│ │ ├── flags: ∅
│ │ ├── locals: [:a, :b]
│ │ ├── parameters:
│ │ │ @ BlockParametersNode (location: (48,13)-(51,3))
│ │ │ ├── flags: ∅
│ │ │ ├── parameters:
│ │ │ │ @ ParametersNode (location: (49,2)-(50,6))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── requireds: (length: 0)
│ │ │ │ ├── optionals: (length: 0)
│ │ │ │ ├── rest: ∅
│ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 2)
│ │ │ │ │ ├── @ OptionalKeywordParameterNode (location: (49,2)-(49,6))
│ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ ├── name: :a
│ │ │ │ │ │ ├── name_loc: (49,2)-(49,4) = "a:"
│ │ │ │ │ │ └── value:
│ │ │ │ │ │ @ IntegerNode (location: (49,5)-(49,6))
│ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ │ └── value: 1
│ │ │ │ │ └── @ OptionalKeywordParameterNode (location: (50,2)-(50,6))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── name: :b
│ │ │ │ │ ├── name_loc: (50,2)-(50,4) = "b:"
│ │ │ │ │ └── value:
│ │ │ │ │ @ IntegerNode (location: (50,5)-(50,6))
│ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 2
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── locals: (length: 0)
│ │ │ ├── opening_loc: (48,13)-(48,14) = "|"
│ │ │ └── closing_loc: (51,2)-(51,3) = "|"
│ │ ├── body: ∅
│ │ ├── opening_loc: (48,11)-(48,12) = "{"
│ │ └── closing_loc: (52,0)-(52,1) = "}"
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (54,0)-(54,17))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :foo
├── message_loc: (54,0)-(54,3) = "foo"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (54,4)-(54,17))
├── flags: ∅
├── locals: [:bar]
├── parameters:
│ @ BlockParametersNode (location: (54,7)-(54,13))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (54,8)-(54,12))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (54,8)-(54,11))
│ │ │ ├── flags: ∅
│ │ │ └── name: :bar
│ │ ├── optionals: (length: 0)
│ │ ├── rest:
│ │ │ @ ImplicitRestNode (location: (54,11)-(54,12))
│ │ │ └── flags: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (54,7)-(54,8) = "|"
│ └── closing_loc: (54,12)-(54,13) = "|"
├── body: ∅
├── opening_loc: (54,4)-(54,6) = "do"
└── closing_loc: (54,14)-(54,17) = "end"

Просмотреть файл

@ -1,59 +0,0 @@
@ ProgramNode (location: (1,0)-(5,7))
├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(5,7))
├── flags: ∅
└── body: (length: 3)
├── @ LocalVariableAndWriteNode (location: (1,0)-(1,7))
│ ├── flags: newline
│ ├── name_loc: (1,0)-(1,1) = "a"
│ ├── operator_loc: (1,2)-(1,5) = "&&="
│ ├── value:
│ │ @ CallNode (location: (1,6)-(1,7))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :b
│ │ ├── message_loc: (1,6)-(1,7) = "b"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── name: :a
│ └── depth: 0
├── @ LocalVariableOperatorWriteNode (location: (3,0)-(3,6))
│ ├── flags: newline
│ ├── name_loc: (3,0)-(3,1) = "a"
│ ├── binary_operator_loc: (3,2)-(3,4) = "+="
│ ├── value:
│ │ @ CallNode (location: (3,5)-(3,6))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :b
│ │ ├── message_loc: (3,5)-(3,6) = "b"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── name: :a
│ ├── binary_operator: :+
│ └── depth: 0
└── @ LocalVariableOrWriteNode (location: (5,0)-(5,7))
├── flags: newline
├── name_loc: (5,0)-(5,1) = "a"
├── operator_loc: (5,2)-(5,5) = "||="
├── value:
│ @ CallNode (location: (5,6)-(5,7))
│ ├── flags: variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :b
│ ├── message_loc: (5,6)-(5,7) = "b"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── name: :a
└── depth: 0

Просмотреть файл

@ -1,11 +0,0 @@
@ ProgramNode (location: (1,0)-(3,4))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,4))
├── flags: ∅
└── body: (length: 2)
├── @ FalseNode (location: (1,0)-(1,5))
│ └── flags: newline, static_literal
└── @ TrueNode (location: (3,0)-(3,4))
└── flags: newline, static_literal

Просмотреть файл

@ -1,499 +0,0 @@
@ ProgramNode (location: (1,0)-(29,21))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(29,21))
├── flags: ∅
└── body: (length: 13)
├── @ CallNode (location: (1,0)-(1,13))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (1,0)-(1,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,4)-(1,13))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,6)-(1,11))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (1,6)-(1,11))
│ │ ├── flags: newline
│ │ ├── arguments: ∅
│ │ └── keyword_loc: (1,6)-(1,11) = "break"
│ ├── opening_loc: (1,4)-(1,5) = "{"
│ └── closing_loc: (1,12)-(1,13) = "}"
├── @ CallNode (location: (3,0)-(3,27))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (3,0)-(3,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (3,4)-(3,27))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (3,6)-(3,25))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (3,6)-(3,25))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (3,12)-(3,25))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 3)
│ │ │ ├── @ ParenthesesNode (location: (3,12)-(3,15))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── body:
│ │ │ │ │ @ StatementsNode (location: (3,13)-(3,14))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ IntegerNode (location: (3,13)-(3,14))
│ │ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ ├── opening_loc: (3,12)-(3,13) = "("
│ │ │ │ └── closing_loc: (3,14)-(3,15) = ")"
│ │ │ ├── @ ParenthesesNode (location: (3,17)-(3,20))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── body:
│ │ │ │ │ @ StatementsNode (location: (3,18)-(3,19))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ IntegerNode (location: (3,18)-(3,19))
│ │ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ │ └── value: 2
│ │ │ │ ├── opening_loc: (3,17)-(3,18) = "("
│ │ │ │ └── closing_loc: (3,19)-(3,20) = ")"
│ │ │ └── @ ParenthesesNode (location: (3,22)-(3,25))
│ │ │ ├── flags: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (3,23)-(3,24))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (3,23)-(3,24))
│ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ └── value: 3
│ │ │ ├── opening_loc: (3,22)-(3,23) = "("
│ │ │ └── closing_loc: (3,24)-(3,25) = ")"
│ │ └── keyword_loc: (3,6)-(3,11) = "break"
│ ├── opening_loc: (3,4)-(3,5) = "{"
│ └── closing_loc: (3,26)-(3,27) = "}"
├── @ CallNode (location: (5,0)-(5,15))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (5,0)-(5,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (5,4)-(5,15))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (5,6)-(5,13))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (5,6)-(5,13))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (5,12)-(5,13))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (5,12)-(5,13))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── keyword_loc: (5,6)-(5,11) = "break"
│ ├── opening_loc: (5,4)-(5,5) = "{"
│ └── closing_loc: (5,14)-(5,15) = "}"
├── @ CallNode (location: (7,0)-(8,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (7,0)-(7,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (7,4)-(8,3))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (7,6)-(8,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (7,6)-(8,1))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (7,12)-(8,1))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 3)
│ │ │ ├── @ IntegerNode (location: (7,12)-(7,13))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── @ IntegerNode (location: (7,15)-(7,16))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ └── @ IntegerNode (location: (8,0)-(8,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ └── keyword_loc: (7,6)-(7,11) = "break"
│ ├── opening_loc: (7,4)-(7,5) = "{"
│ └── closing_loc: (8,2)-(8,3) = "}"
├── @ CallNode (location: (10,0)-(10,21))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (10,0)-(10,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (10,4)-(10,21))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (10,6)-(10,19))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (10,6)-(10,19))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (10,12)-(10,19))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 3)
│ │ │ ├── @ IntegerNode (location: (10,12)-(10,13))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── @ IntegerNode (location: (10,15)-(10,16))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ └── @ IntegerNode (location: (10,18)-(10,19))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ └── keyword_loc: (10,6)-(10,11) = "break"
│ ├── opening_loc: (10,4)-(10,5) = "{"
│ └── closing_loc: (10,20)-(10,21) = "}"
├── @ CallNode (location: (12,0)-(12,23))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (12,0)-(12,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (12,4)-(12,23))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (12,6)-(12,21))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (12,6)-(12,21))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (12,12)-(12,21))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ ArrayNode (location: (12,12)-(12,21))
│ │ │ ├── flags: static_literal
│ │ │ ├── elements: (length: 3)
│ │ │ │ ├── @ IntegerNode (location: (12,13)-(12,14))
│ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ ├── @ IntegerNode (location: (12,16)-(12,17))
│ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 2
│ │ │ │ └── @ IntegerNode (location: (12,19)-(12,20))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 3
│ │ │ ├── opening_loc: (12,12)-(12,13) = "["
│ │ │ └── closing_loc: (12,20)-(12,21) = "]"
│ │ └── keyword_loc: (12,6)-(12,11) = "break"
│ ├── opening_loc: (12,4)-(12,5) = "{"
│ └── closing_loc: (12,22)-(12,23) = "}"
├── @ CallNode (location: (14,0)-(17,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (14,0)-(14,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (14,4)-(17,3))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (14,6)-(17,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (14,6)-(17,1))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (14,11)-(17,1))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ ParenthesesNode (location: (14,11)-(17,1))
│ │ │ ├── flags: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (15,2)-(16,3))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 2)
│ │ │ │ ├── @ IntegerNode (location: (15,2)-(15,3))
│ │ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ └── @ IntegerNode (location: (16,2)-(16,3))
│ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ ├── opening_loc: (14,11)-(14,12) = "("
│ │ │ └── closing_loc: (17,0)-(17,1) = ")"
│ │ └── keyword_loc: (14,6)-(14,11) = "break"
│ ├── opening_loc: (14,4)-(14,5) = "{"
│ └── closing_loc: (17,2)-(17,3) = "}"
├── @ CallNode (location: (19,0)-(19,15))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (19,0)-(19,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (19,4)-(19,15))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (19,6)-(19,13))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (19,6)-(19,13))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (19,11)-(19,13))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ ParenthesesNode (location: (19,11)-(19,13))
│ │ │ ├── flags: ∅
│ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (19,11)-(19,12) = "("
│ │ │ └── closing_loc: (19,12)-(19,13) = ")"
│ │ └── keyword_loc: (19,6)-(19,11) = "break"
│ ├── opening_loc: (19,4)-(19,5) = "{"
│ └── closing_loc: (19,14)-(19,15) = "}"
├── @ CallNode (location: (21,0)-(21,16))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (21,0)-(21,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (21,4)-(21,16))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (21,6)-(21,14))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ BreakNode (location: (21,6)-(21,14))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (21,11)-(21,14))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ ParenthesesNode (location: (21,11)-(21,14))
│ │ │ ├── flags: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (21,12)-(21,13))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (21,12)-(21,13))
│ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── opening_loc: (21,11)-(21,12) = "("
│ │ │ └── closing_loc: (21,13)-(21,14) = ")"
│ │ └── keyword_loc: (21,6)-(21,11) = "break"
│ ├── opening_loc: (21,4)-(21,5) = "{"
│ └── closing_loc: (21,15)-(21,16) = "}"
├── @ CallNode (location: (23,0)-(23,22))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (23,0)-(23,16))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (23,0)-(23,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (23,4)-(23,16))
│ │ ├── flags: ∅
│ │ ├── locals: []
│ │ ├── parameters: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (23,6)-(23,14))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ BreakNode (location: (23,6)-(23,14))
│ │ │ ├── flags: newline
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (23,12)-(23,14))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (23,12)-(23,14))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 42
│ │ │ └── keyword_loc: (23,6)-(23,11) = "break"
│ │ ├── opening_loc: (23,4)-(23,5) = "{"
│ │ └── closing_loc: (23,15)-(23,16) = "}"
│ ├── call_operator_loc: ∅
│ ├── name: :==
│ ├── message_loc: (23,17)-(23,19) = "=="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (23,20)-(23,22))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (23,20)-(23,22))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 42
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (25,0)-(25,23))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (25,0)-(25,17))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (25,0)-(25,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (25,4)-(25,17))
│ │ ├── flags: ∅
│ │ ├── locals: [:a]
│ │ ├── parameters:
│ │ │ @ BlockParametersNode (location: (25,6)-(25,9))
│ │ │ ├── flags: ∅
│ │ │ ├── parameters:
│ │ │ │ @ ParametersNode (location: (25,7)-(25,8))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── requireds: (length: 1)
│ │ │ │ │ └── @ RequiredParameterNode (location: (25,7)-(25,8))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :a
│ │ │ │ ├── optionals: (length: 0)
│ │ │ │ ├── rest: ∅
│ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── locals: (length: 0)
│ │ │ ├── opening_loc: (25,6)-(25,7) = "|"
│ │ │ └── closing_loc: (25,8)-(25,9) = "|"
│ │ ├── body:
│ │ │ @ StatementsNode (location: (25,10)-(25,15))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ BreakNode (location: (25,10)-(25,15))
│ │ │ ├── flags: newline
│ │ │ ├── arguments: ∅
│ │ │ └── keyword_loc: (25,10)-(25,15) = "break"
│ │ ├── opening_loc: (25,4)-(25,5) = "{"
│ │ └── closing_loc: (25,16)-(25,17) = "}"
│ ├── call_operator_loc: ∅
│ ├── name: :==
│ ├── message_loc: (25,18)-(25,20) = "=="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (25,21)-(25,23))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (25,21)-(25,23))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 42
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ WhileNode (location: (27,0)-(27,21))
│ ├── flags: newline
│ ├── keyword_loc: (27,0)-(27,5) = "while"
│ ├── closing_loc: (27,18)-(27,21) = "end"
│ ├── predicate:
│ │ @ AndNode (location: (27,6)-(27,16))
│ │ ├── flags: ∅
│ │ ├── left:
│ │ │ @ CallNode (location: (27,6)-(27,7))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :_
│ │ │ ├── message_loc: (27,6)-(27,7) = "_"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── right:
│ │ │ @ BreakNode (location: (27,11)-(27,16))
│ │ │ ├── flags: ∅
│ │ │ ├── arguments: ∅
│ │ │ └── keyword_loc: (27,11)-(27,16) = "break"
│ │ └── operator_loc: (27,8)-(27,10) = "&&"
│ └── statements: ∅
└── @ UntilNode (location: (29,0)-(29,21))
├── flags: newline
├── keyword_loc: (29,0)-(29,5) = "until"
├── closing_loc: (29,18)-(29,21) = "end"
├── predicate:
│ @ AndNode (location: (29,6)-(29,16))
│ ├── flags: ∅
│ ├── left:
│ │ @ CallNode (location: (29,6)-(29,7))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :_
│ │ ├── message_loc: (29,6)-(29,7) = "_"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── right:
│ │ @ BreakNode (location: (29,11)-(29,16))
│ │ ├── flags: ∅
│ │ ├── arguments: ∅
│ │ └── keyword_loc: (29,11)-(29,16) = "break"
│ └── operator_loc: (29,8)-(29,10) = "&&"
└── statements: ∅

Просмотреть файл

@ -1,554 +0,0 @@
@ ProgramNode (location: (1,0)-(55,3))
├── flags: ∅
├── locals: [:b]
└── statements:
@ StatementsNode (location: (1,0)-(55,3))
├── flags: ∅
└── body: (length: 15)
├── @ CaseNode (location: (1,0)-(3,3))
│ ├── flags: newline
│ ├── predicate:
│ │ @ SymbolNode (location: (1,5)-(1,8))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (1,5)-(1,6) = ":"
│ │ ├── value_loc: (1,6)-(1,8) = "hi"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "hi"
│ ├── conditions: (length: 1)
│ │ └── @ WhenNode (location: (2,0)-(2,8))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (2,0)-(2,4) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ SymbolNode (location: (2,5)-(2,8))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (2,5)-(2,6) = ":"
│ │ │ ├── value_loc: (2,6)-(2,8) = "hi"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "hi"
│ │ ├── then_keyword_loc: ∅
│ │ └── statements: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (1,0)-(1,4) = "case"
│ └── end_keyword_loc: (3,0)-(3,3) = "end"
├── @ CaseNode (location: (5,0)-(5,58))
│ ├── flags: newline
│ ├── predicate:
│ │ @ TrueNode (location: (5,5)-(5,9))
│ │ └── flags: static_literal
│ ├── conditions: (length: 2)
│ │ ├── @ WhenNode (location: (5,11)-(5,30))
│ │ │ ├── flags: ∅
│ │ │ ├── keyword_loc: (5,11)-(5,15) = "when"
│ │ │ ├── conditions: (length: 1)
│ │ │ │ └── @ TrueNode (location: (5,16)-(5,20))
│ │ │ │ └── flags: static_literal
│ │ │ ├── then_keyword_loc: ∅
│ │ │ └── statements:
│ │ │ @ StatementsNode (location: (5,22)-(5,30))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (5,22)-(5,30))
│ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :puts
│ │ │ ├── message_loc: (5,22)-(5,26) = "puts"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (5,27)-(5,30))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ SymbolNode (location: (5,27)-(5,30))
│ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: (5,27)-(5,28) = ":"
│ │ │ │ ├── value_loc: (5,28)-(5,30) = "hi"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "hi"
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── @ WhenNode (location: (5,32)-(5,53))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (5,32)-(5,36) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ FalseNode (location: (5,37)-(5,42))
│ │ │ └── flags: static_literal
│ │ ├── then_keyword_loc: ∅
│ │ └── statements:
│ │ @ StatementsNode (location: (5,44)-(5,53))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (5,44)-(5,53))
│ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :puts
│ │ ├── message_loc: (5,44)-(5,48) = "puts"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (5,49)-(5,53))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ SymbolNode (location: (5,49)-(5,53))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (5,49)-(5,50) = ":"
│ │ │ ├── value_loc: (5,50)-(5,53) = "bye"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "bye"
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (5,0)-(5,4) = "case"
│ └── end_keyword_loc: (5,55)-(5,58) = "end"
├── @ CaseNode (location: (7,0)-(7,20))
│ ├── flags: newline
│ ├── predicate: ∅
│ ├── conditions: (length: 1)
│ │ └── @ WhenNode (location: (7,6)-(7,15))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (7,6)-(7,10) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ SplatNode (location: (7,11)-(7,15))
│ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (7,11)-(7,12) = "*"
│ │ │ └── expression:
│ │ │ @ CallNode (location: (7,12)-(7,15))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (7,12)-(7,15) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── then_keyword_loc: ∅
│ │ └── statements: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (7,0)-(7,4) = "case"
│ └── end_keyword_loc: (7,17)-(7,20) = "end"
├── @ CaseNode (location: (9,0)-(13,3))
│ ├── flags: newline
│ ├── predicate:
│ │ @ SymbolNode (location: (9,5)-(9,8))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (9,5)-(9,6) = ":"
│ │ ├── value_loc: (9,6)-(9,8) = "hi"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "hi"
│ ├── conditions: (length: 1)
│ │ └── @ WhenNode (location: (10,0)-(10,8))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (10,0)-(10,4) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ SymbolNode (location: (10,5)-(10,8))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (10,5)-(10,6) = ":"
│ │ │ ├── value_loc: (10,6)-(10,8) = "hi"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "hi"
│ │ ├── then_keyword_loc: ∅
│ │ └── statements: ∅
│ ├── else_clause:
│ │ @ ElseNode (location: (11,0)-(13,3))
│ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (11,0)-(11,4) = "else"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (12,0)-(12,2))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ SymbolNode (location: (12,0)-(12,2))
│ │ │ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (12,0)-(12,1) = ":"
│ │ │ ├── value_loc: (12,1)-(12,2) = "b"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "b"
│ │ └── end_keyword_loc: (13,0)-(13,3) = "end"
│ ├── case_keyword_loc: (9,0)-(9,4) = "case"
│ └── end_keyword_loc: (13,0)-(13,3) = "end"
├── @ CaseNode (location: (15,0)-(15,36))
│ ├── flags: newline
│ ├── predicate:
│ │ @ CallNode (location: (15,5)-(15,9))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :this
│ │ ├── message_loc: (15,5)-(15,9) = "this"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── conditions: (length: 1)
│ │ └── @ WhenNode (location: (15,11)-(15,31))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (15,11)-(15,15) = "when"
│ │ ├── conditions: (length: 2)
│ │ │ ├── @ ConstantReadNode (location: (15,16)-(15,22))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :FooBar
│ │ │ └── @ ConstantReadNode (location: (15,24)-(15,31))
│ │ │ ├── flags: ∅
│ │ │ └── name: :BazBonk
│ │ ├── then_keyword_loc: ∅
│ │ └── statements: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (15,0)-(15,4) = "case"
│ └── end_keyword_loc: (15,33)-(15,36) = "end"
├── @ CaseNode (location: (17,0)-(19,3))
│ ├── flags: newline
│ ├── predicate: ∅
│ ├── conditions: (length: 1)
│ │ └── @ WhenNode (location: (18,0)-(18,15))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (18,0)-(18,4) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ CallNode (location: (18,5)-(18,15))
│ │ │ ├── flags: ∅
│ │ │ ├── receiver:
│ │ │ │ @ CallNode (location: (18,5)-(18,8))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :foo
│ │ │ │ ├── message_loc: (18,5)-(18,8) = "foo"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :==
│ │ │ ├── message_loc: (18,9)-(18,11) = "=="
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (18,12)-(18,15))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ CallNode (location: (18,12)-(18,15))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :bar
│ │ │ │ ├── message_loc: (18,12)-(18,15) = "bar"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── then_keyword_loc: ∅
│ │ └── statements: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (17,0)-(17,4) = "case"
│ └── end_keyword_loc: (19,0)-(19,3) = "end"
├── @ CaseNode (location: (21,0)-(25,3))
│ ├── flags: newline
│ ├── predicate: ∅
│ ├── conditions: (length: 1)
│ │ └── @ WhenNode (location: (22,0)-(22,6))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (22,0)-(22,4) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ CallNode (location: (22,5)-(22,6))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :a
│ │ │ ├── message_loc: (22,5)-(22,6) = "a"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── then_keyword_loc: ∅
│ │ └── statements: ∅
│ ├── else_clause:
│ │ @ ElseNode (location: (23,0)-(25,3))
│ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (23,0)-(23,4) = "else"
│ │ ├── statements: ∅
│ │ └── end_keyword_loc: (25,0)-(25,3) = "end"
│ ├── case_keyword_loc: (21,0)-(21,4) = "case"
│ └── end_keyword_loc: (25,0)-(25,3) = "end"
├── @ CaseNode (location: (27,0)-(30,6))
│ ├── flags: newline
│ ├── predicate:
│ │ @ CallNode (location: (27,5)-(27,9))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :type
│ │ ├── message_loc: (27,5)-(27,9) = "type"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── conditions: (length: 1)
│ │ └── @ WhenNode (location: (28,3)-(28,10))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (28,3)-(28,7) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ SymbolNode (location: (28,8)-(28,10))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (28,8)-(28,9) = ":"
│ │ │ ├── value_loc: (28,9)-(28,10) = "b"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "b"
│ │ ├── then_keyword_loc: ∅
│ │ └── statements: ∅
│ ├── else_clause:
│ │ @ ElseNode (location: (29,5)-(30,6))
│ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (29,5)-(29,9) = "else"
│ │ ├── statements: ∅
│ │ └── end_keyword_loc: (30,3)-(30,6) = "end"
│ ├── case_keyword_loc: (27,0)-(27,4) = "case"
│ └── end_keyword_loc: (30,3)-(30,6) = "end"
├── @ CaseNode (location: (32,0)-(32,25))
│ ├── flags: newline
│ ├── predicate: ∅
│ ├── conditions: (length: 1)
│ │ └── @ WhenNode (location: (32,14)-(32,20))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (32,14)-(32,18) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ IntegerNode (location: (32,19)-(32,20))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── then_keyword_loc: ∅
│ │ └── statements: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (32,0)-(32,4) = "case"
│ └── end_keyword_loc: (32,22)-(32,25) = "end"
├── @ CaseNode (location: (34,0)-(36,3))
│ ├── flags: newline
│ ├── predicate:
│ │ @ MatchPredicateNode (location: (34,5)-(34,11))
│ │ ├── flags: ∅
│ │ ├── value:
│ │ │ @ IntegerNode (location: (34,5)-(34,6))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── pattern:
│ │ │ @ IntegerNode (location: (34,10)-(34,11))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── operator_loc: (34,7)-(34,9) = "in"
│ ├── conditions: (length: 1)
│ │ └── @ WhenNode (location: (35,0)-(35,6))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (35,0)-(35,4) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ IntegerNode (location: (35,5)-(35,6))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ ├── then_keyword_loc: ∅
│ │ └── statements: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (34,0)-(34,4) = "case"
│ └── end_keyword_loc: (36,0)-(36,3) = "end"
├── @ CaseNode (location: (38,0)-(38,24))
│ ├── flags: newline
│ ├── predicate:
│ │ @ MatchPredicateNode (location: (38,5)-(38,11))
│ │ ├── flags: ∅
│ │ ├── value:
│ │ │ @ IntegerNode (location: (38,5)-(38,6))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── pattern:
│ │ │ @ IntegerNode (location: (38,10)-(38,11))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── operator_loc: (38,7)-(38,9) = "in"
│ ├── conditions: (length: 1)
│ │ └── @ WhenNode (location: (38,13)-(38,19))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (38,13)-(38,17) = "when"
│ │ ├── conditions: (length: 1)
│ │ │ └── @ IntegerNode (location: (38,18)-(38,19))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ ├── then_keyword_loc: ∅
│ │ └── statements: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (38,0)-(38,4) = "case"
│ └── end_keyword_loc: (38,21)-(38,24) = "end"
├── @ CaseMatchNode (location: (40,0)-(42,3))
│ ├── flags: newline
│ ├── predicate:
│ │ @ MatchPredicateNode (location: (40,5)-(40,11))
│ │ ├── flags: ∅
│ │ ├── value:
│ │ │ @ IntegerNode (location: (40,5)-(40,6))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── pattern:
│ │ │ @ IntegerNode (location: (40,10)-(40,11))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── operator_loc: (40,7)-(40,9) = "in"
│ ├── conditions: (length: 1)
│ │ └── @ InNode (location: (41,0)-(41,4))
│ │ ├── flags: ∅
│ │ ├── pattern:
│ │ │ @ IntegerNode (location: (41,3)-(41,4))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ ├── statements: ∅
│ │ ├── in_loc: (41,0)-(41,2) = "in"
│ │ └── then_loc: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (40,0)-(40,4) = "case"
│ └── end_keyword_loc: (42,0)-(42,3) = "end"
├── @ CaseMatchNode (location: (44,0)-(44,22))
│ ├── flags: newline
│ ├── predicate:
│ │ @ MatchPredicateNode (location: (44,5)-(44,11))
│ │ ├── flags: ∅
│ │ ├── value:
│ │ │ @ IntegerNode (location: (44,5)-(44,6))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── pattern:
│ │ │ @ IntegerNode (location: (44,10)-(44,11))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── operator_loc: (44,7)-(44,9) = "in"
│ ├── conditions: (length: 1)
│ │ └── @ InNode (location: (44,13)-(44,17))
│ │ ├── flags: ∅
│ │ ├── pattern:
│ │ │ @ IntegerNode (location: (44,16)-(44,17))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ ├── statements: ∅
│ │ ├── in_loc: (44,13)-(44,15) = "in"
│ │ └── then_loc: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (44,0)-(44,4) = "case"
│ └── end_keyword_loc: (44,19)-(44,22) = "end"
├── @ CaseMatchNode (location: (46,0)-(49,3))
│ ├── flags: newline
│ ├── predicate:
│ │ @ CallNode (location: (46,5)-(46,6))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (46,5)-(46,6) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── conditions: (length: 1)
│ │ └── @ InNode (location: (47,0)-(48,3))
│ │ ├── flags: ∅
│ │ ├── pattern:
│ │ │ @ IfNode (location: (47,3)-(47,15))
│ │ │ ├── flags: newline
│ │ │ ├── if_keyword_loc: (47,5)-(47,7) = "if"
│ │ │ ├── predicate:
│ │ │ │ @ AndNode (location: (47,8)-(47,15))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── left:
│ │ │ │ │ @ CallNode (location: (47,8)-(47,9))
│ │ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ │ ├── receiver: ∅
│ │ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ │ ├── name: :c
│ │ │ │ │ ├── message_loc: (47,8)-(47,9) = "c"
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── arguments: ∅
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block: ∅
│ │ │ │ ├── right:
│ │ │ │ │ @ CallNode (location: (47,14)-(47,15))
│ │ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ │ ├── receiver: ∅
│ │ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ │ ├── name: :d
│ │ │ │ │ ├── message_loc: (47,14)-(47,15) = "d"
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── arguments: ∅
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block: ∅
│ │ │ │ └── operator_loc: (47,10)-(47,13) = "and"
│ │ │ ├── then_keyword_loc: ∅
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (47,3)-(47,4))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ LocalVariableTargetNode (location: (47,3)-(47,4))
│ │ │ │ ├── flags: newline
│ │ │ │ ├── name: :b
│ │ │ │ └── depth: 0
│ │ │ ├── subsequent: ∅
│ │ │ └── end_keyword_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (48,2)-(48,3))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (48,2)-(48,3))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :e
│ │ │ ├── message_loc: (48,2)-(48,3) = "e"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── in_loc: (47,0)-(47,2) = "in"
│ │ └── then_loc: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (46,0)-(46,4) = "case"
│ └── end_keyword_loc: (49,0)-(49,3) = "end"
└── @ CallNode (location: (51,0)-(55,3))
├── flags: newline
├── receiver:
│ @ IntegerNode (location: (51,0)-(51,1))
│ ├── flags: static_literal, decimal
│ └── value: 1
├── call_operator_loc: (51,1)-(51,2) = "."
├── name: :then
├── message_loc: (51,2)-(51,6) = "then"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (51,7)-(55,3))
├── flags: ∅
├── locals: [:_1]
├── parameters:
│ @ NumberedParametersNode (location: (51,7)-(55,3))
│ ├── flags: ∅
│ └── maximum: 1
├── body:
│ @ StatementsNode (location: (52,2)-(54,5))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CaseMatchNode (location: (52,2)-(54,5))
│ ├── flags: newline
│ ├── predicate:
│ │ @ IntegerNode (location: (52,7)-(52,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── conditions: (length: 1)
│ │ └── @ InNode (location: (53,2)-(53,8))
│ │ ├── flags: ∅
│ │ ├── pattern:
│ │ │ @ PinnedVariableNode (location: (53,5)-(53,8))
│ │ │ ├── flags: ∅
│ │ │ ├── variable:
│ │ │ │ @ LocalVariableReadNode (location: (53,6)-(53,8))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :_1
│ │ │ │ └── depth: 0
│ │ │ └── operator_loc: (53,5)-(53,6) = "^"
│ │ ├── statements: ∅
│ │ ├── in_loc: (53,2)-(53,4) = "in"
│ │ └── then_loc: ∅
│ ├── else_clause: ∅
│ ├── case_keyword_loc: (52,2)-(52,6) = "case"
│ └── end_keyword_loc: (54,2)-(54,5) = "end"
├── opening_loc: (51,7)-(51,9) = "do"
└── closing_loc: (55,0)-(55,3) = "end"

Просмотреть файл

@ -1,418 +0,0 @@
@ ProgramNode (location: (1,0)-(35,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(35,3))
├── flags: ∅
└── body: (length: 14)
├── @ ClassNode (location: (1,0)-(1,17))
│ ├── flags: newline
│ ├── locals: [:a]
│ ├── class_keyword_loc: (1,0)-(1,5) = "class"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (1,6)-(1,7))
│ │ ├── flags: ∅
│ │ └── name: :A
│ ├── inheritance_operator_loc: ∅
│ ├── superclass: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,8)-(1,13))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableWriteNode (location: (1,8)-(1,13))
│ │ ├── flags: newline
│ │ ├── name: :a
│ │ ├── depth: 0
│ │ ├── name_loc: (1,8)-(1,9) = "a"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (1,12)-(1,13))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: (1,10)-(1,11) = "="
│ ├── end_keyword_loc: (1,14)-(1,17) = "end"
│ └── name: :A
├── @ ClassNode (location: (3,0)-(3,20))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (3,0)-(3,5) = "class"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (3,6)-(3,7))
│ │ ├── flags: ∅
│ │ └── name: :A
│ ├── inheritance_operator_loc: ∅
│ ├── superclass: ∅
│ ├── body:
│ │ @ BeginNode (location: (3,0)-(3,20))
│ │ ├── flags: ∅
│ │ ├── begin_keyword_loc: ∅
│ │ ├── statements: ∅
│ │ ├── rescue_clause: ∅
│ │ ├── else_clause: ∅
│ │ ├── ensure_clause:
│ │ │ @ EnsureNode (location: (3,9)-(3,20))
│ │ │ ├── flags: ∅
│ │ │ ├── ensure_keyword_loc: (3,9)-(3,15) = "ensure"
│ │ │ ├── statements: ∅
│ │ │ └── end_keyword_loc: (3,17)-(3,20) = "end"
│ │ └── end_keyword_loc: (3,17)-(3,20) = "end"
│ ├── end_keyword_loc: (3,17)-(3,20) = "end"
│ └── name: :A
├── @ ClassNode (location: (5,0)-(5,34))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (5,0)-(5,5) = "class"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (5,6)-(5,7))
│ │ ├── flags: ∅
│ │ └── name: :A
│ ├── inheritance_operator_loc: ∅
│ ├── superclass: ∅
│ ├── body:
│ │ @ BeginNode (location: (5,0)-(5,34))
│ │ ├── flags: ∅
│ │ ├── begin_keyword_loc: ∅
│ │ ├── statements: ∅
│ │ ├── rescue_clause:
│ │ │ @ RescueNode (location: (5,9)-(5,15))
│ │ │ ├── flags: ∅
│ │ │ ├── keyword_loc: (5,9)-(5,15) = "rescue"
│ │ │ ├── exceptions: (length: 0)
│ │ │ ├── operator_loc: ∅
│ │ │ ├── reference: ∅
│ │ │ ├── statements: ∅
│ │ │ └── subsequent: ∅
│ │ ├── else_clause:
│ │ │ @ ElseNode (location: (5,17)-(5,29))
│ │ │ ├── flags: ∅
│ │ │ ├── else_keyword_loc: (5,17)-(5,21) = "else"
│ │ │ ├── statements: ∅
│ │ │ └── end_keyword_loc: (5,23)-(5,29) = "ensure"
│ │ ├── ensure_clause:
│ │ │ @ EnsureNode (location: (5,23)-(5,34))
│ │ │ ├── flags: ∅
│ │ │ ├── ensure_keyword_loc: (5,23)-(5,29) = "ensure"
│ │ │ ├── statements: ∅
│ │ │ └── end_keyword_loc: (5,31)-(5,34) = "end"
│ │ └── end_keyword_loc: (5,31)-(5,34) = "end"
│ ├── end_keyword_loc: (5,31)-(5,34) = "end"
│ └── name: :A
├── @ ClassNode (location: (7,0)-(9,3))
│ ├── flags: newline
│ ├── locals: [:a]
│ ├── class_keyword_loc: (7,0)-(7,5) = "class"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (7,6)-(7,7))
│ │ ├── flags: ∅
│ │ └── name: :A
│ ├── inheritance_operator_loc: (7,8)-(7,9) = "<"
│ ├── superclass:
│ │ @ ConstantReadNode (location: (7,10)-(7,11))
│ │ ├── flags: ∅
│ │ └── name: :B
│ ├── body:
│ │ @ StatementsNode (location: (8,0)-(8,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableWriteNode (location: (8,0)-(8,5))
│ │ ├── flags: newline
│ │ ├── name: :a
│ │ ├── depth: 0
│ │ ├── name_loc: (8,0)-(8,1) = "a"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (8,4)-(8,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: (8,2)-(8,3) = "="
│ ├── end_keyword_loc: (9,0)-(9,3) = "end"
│ └── name: :A
├── @ SingletonClassNode (location: (11,0)-(12,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (11,0)-(11,5) = "class"
│ ├── operator_loc: (11,6)-(11,8) = "<<"
│ ├── expression:
│ │ @ CallNode (location: (11,9)-(11,16))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (11,13)-(11,16))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (11,13)-(11,16) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (11,9)-(11,12) = "not"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ └── end_keyword_loc: (12,0)-(12,3) = "end"
├── @ ClassNode (location: (14,0)-(14,40))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (14,0)-(14,5) = "class"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (14,6)-(14,7))
│ │ ├── flags: ∅
│ │ └── name: :A
│ ├── inheritance_operator_loc: ∅
│ ├── superclass: ∅
│ ├── body:
│ │ @ StatementsNode (location: (14,9)-(14,35))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ SingletonClassNode (location: (14,9)-(14,35))
│ │ ├── flags: newline
│ │ ├── locals: []
│ │ ├── class_keyword_loc: (14,9)-(14,14) = "class"
│ │ ├── operator_loc: (14,15)-(14,17) = "<<"
│ │ ├── expression:
│ │ │ @ SelfNode (location: (14,18)-(14,22))
│ │ │ └── flags: ∅
│ │ ├── body:
│ │ │ @ BeginNode (location: (14,9)-(14,35))
│ │ │ ├── flags: ∅
│ │ │ ├── begin_keyword_loc: ∅
│ │ │ ├── statements: ∅
│ │ │ ├── rescue_clause: ∅
│ │ │ ├── else_clause: ∅
│ │ │ ├── ensure_clause:
│ │ │ │ @ EnsureNode (location: (14,24)-(14,35))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── ensure_keyword_loc: (14,24)-(14,30) = "ensure"
│ │ │ │ ├── statements: ∅
│ │ │ │ └── end_keyword_loc: (14,32)-(14,35) = "end"
│ │ │ └── end_keyword_loc: (14,32)-(14,35) = "end"
│ │ └── end_keyword_loc: (14,32)-(14,35) = "end"
│ ├── end_keyword_loc: (14,37)-(14,40) = "end"
│ └── name: :A
├── @ ClassNode (location: (16,0)-(16,54))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (16,0)-(16,5) = "class"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (16,6)-(16,7))
│ │ ├── flags: ∅
│ │ └── name: :A
│ ├── inheritance_operator_loc: ∅
│ ├── superclass: ∅
│ ├── body:
│ │ @ StatementsNode (location: (16,9)-(16,49))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ SingletonClassNode (location: (16,9)-(16,49))
│ │ ├── flags: newline
│ │ ├── locals: []
│ │ ├── class_keyword_loc: (16,9)-(16,14) = "class"
│ │ ├── operator_loc: (16,15)-(16,17) = "<<"
│ │ ├── expression:
│ │ │ @ SelfNode (location: (16,18)-(16,22))
│ │ │ └── flags: ∅
│ │ ├── body:
│ │ │ @ BeginNode (location: (16,9)-(16,49))
│ │ │ ├── flags: ∅
│ │ │ ├── begin_keyword_loc: ∅
│ │ │ ├── statements: ∅
│ │ │ ├── rescue_clause:
│ │ │ │ @ RescueNode (location: (16,24)-(16,30))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── keyword_loc: (16,24)-(16,30) = "rescue"
│ │ │ │ ├── exceptions: (length: 0)
│ │ │ │ ├── operator_loc: ∅
│ │ │ │ ├── reference: ∅
│ │ │ │ ├── statements: ∅
│ │ │ │ └── subsequent: ∅
│ │ │ ├── else_clause:
│ │ │ │ @ ElseNode (location: (16,32)-(16,44))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── else_keyword_loc: (16,32)-(16,36) = "else"
│ │ │ │ ├── statements: ∅
│ │ │ │ └── end_keyword_loc: (16,38)-(16,44) = "ensure"
│ │ │ ├── ensure_clause:
│ │ │ │ @ EnsureNode (location: (16,38)-(16,49))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── ensure_keyword_loc: (16,38)-(16,44) = "ensure"
│ │ │ │ ├── statements: ∅
│ │ │ │ └── end_keyword_loc: (16,46)-(16,49) = "end"
│ │ │ └── end_keyword_loc: (16,46)-(16,49) = "end"
│ │ └── end_keyword_loc: (16,46)-(16,49) = "end"
│ ├── end_keyword_loc: (16,51)-(16,54) = "end"
│ └── name: :A
├── @ SingletonClassNode (location: (18,0)-(19,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (18,0)-(18,5) = "class"
│ ├── operator_loc: (18,6)-(18,8) = "<<"
│ ├── expression:
│ │ @ CallNode (location: (18,9)-(18,16))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (18,9)-(18,12))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (18,9)-(18,12) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: (18,12)-(18,13) = "."
│ │ ├── name: :bar
│ │ ├── message_loc: (18,13)-(18,16) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ └── end_keyword_loc: (19,0)-(19,3) = "end"
├── @ SingletonClassNode (location: (21,0)-(21,20))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (21,0)-(21,5) = "class"
│ ├── operator_loc: (21,6)-(21,8) = "<<"
│ ├── expression:
│ │ @ CallNode (location: (21,9)-(21,16))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (21,9)-(21,12))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (21,9)-(21,12) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: (21,12)-(21,13) = "."
│ │ ├── name: :bar
│ │ ├── message_loc: (21,13)-(21,16) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ └── end_keyword_loc: (21,17)-(21,20) = "end"
├── @ SingletonClassNode (location: (23,0)-(24,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (23,0)-(23,5) = "class"
│ ├── operator_loc: (23,6)-(23,8) = "<<"
│ ├── expression:
│ │ @ SelfNode (location: (23,9)-(23,13))
│ │ └── flags: ∅
│ ├── body: ∅
│ └── end_keyword_loc: (24,0)-(24,3) = "end"
├── @ SingletonClassNode (location: (26,0)-(26,17))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (26,0)-(26,5) = "class"
│ ├── operator_loc: (26,6)-(26,8) = "<<"
│ ├── expression:
│ │ @ SelfNode (location: (26,9)-(26,13))
│ │ └── flags: ∅
│ ├── body: ∅
│ └── end_keyword_loc: (26,14)-(26,17) = "end"
├── @ SingletonClassNode (location: (28,0)-(30,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (28,0)-(28,5) = "class"
│ ├── operator_loc: (28,6)-(28,8) = "<<"
│ ├── expression:
│ │ @ SelfNode (location: (28,9)-(28,13))
│ │ └── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (29,0)-(29,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (29,0)-(29,5))
│ │ ├── flags: newline
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (29,0)-(29,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :+
│ │ ├── message_loc: (29,2)-(29,3) = "+"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (29,4)-(29,5))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (29,4)-(29,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── end_keyword_loc: (30,0)-(30,3) = "end"
├── @ SingletonClassNode (location: (32,0)-(32,23))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (32,0)-(32,5) = "class"
│ ├── operator_loc: (32,6)-(32,8) = "<<"
│ ├── expression:
│ │ @ SelfNode (location: (32,9)-(32,13))
│ │ └── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (32,14)-(32,19))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (32,14)-(32,19))
│ │ ├── flags: newline
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (32,14)-(32,15))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :+
│ │ ├── message_loc: (32,16)-(32,17) = "+"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (32,18)-(32,19))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (32,18)-(32,19))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── end_keyword_loc: (32,20)-(32,23) = "end"
└── @ ClassNode (location: (34,0)-(35,3))
├── flags: newline
├── locals: []
├── class_keyword_loc: (34,0)-(34,5) = "class"
├── constant_path:
│ @ ConstantReadNode (location: (34,6)-(34,7))
│ ├── flags: ∅
│ └── name: :A
├── inheritance_operator_loc: (34,8)-(34,9) = "<"
├── superclass:
│ @ CallNode (location: (34,10)-(34,14))
│ ├── flags: ∅
│ ├── receiver:
│ │ @ ConstantReadNode (location: (34,10)-(34,11))
│ │ ├── flags: ∅
│ │ └── name: :B
│ ├── call_operator_loc: ∅
│ ├── name: :[]
│ ├── message_loc: (34,11)-(34,14) = "[1]"
│ ├── opening_loc: (34,11)-(34,12) = "["
│ ├── arguments:
│ │ @ ArgumentsNode (location: (34,12)-(34,13))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (34,12)-(34,13))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: (34,13)-(34,14) = "]"
│ └── block: ∅
├── body: ∅
├── end_keyword_loc: (35,0)-(35,3) = "end"
└── name: :A

Просмотреть файл

@ -1,773 +0,0 @@
@ ProgramNode (location: (1,0)-(41,10))
├── flags: ∅
├── locals: [:foo, :bar]
└── statements:
@ StatementsNode (location: (1,0)-(41,10))
├── flags: ∅
└── body: (length: 21)
├── @ CallNode (location: (1,0)-(1,5))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (1,0)-(1,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (1,4)-(1,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (1,4)-(1,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,9))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (3,0)-(3,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (3,4)-(3,9))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (3,4)-(3,9))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (3,4)-(3,7) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (3,8)-(3,9))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (3,8)-(3,9))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ IfNode (location: (5,0)-(5,14))
│ ├── flags: newline
│ ├── if_keyword_loc: (5,6)-(5,8) = "if"
│ ├── predicate:
│ │ @ CallNode (location: (5,9)-(5,14))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (5,9)-(5,12) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (5,13)-(5,14))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (5,13)-(5,14))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (5,0)-(5,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (5,0)-(5,5))
│ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (5,0)-(5,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (5,4)-(5,5))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (5,4)-(5,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── subsequent: ∅
│ └── end_keyword_loc: ∅
├── @ UnlessNode (location: (7,0)-(7,18))
│ ├── flags: newline
│ ├── keyword_loc: (7,6)-(7,12) = "unless"
│ ├── predicate:
│ │ @ CallNode (location: (7,13)-(7,18))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (7,13)-(7,16) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (7,17)-(7,18))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (7,17)-(7,18))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (7,0)-(7,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (7,0)-(7,5))
│ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (7,0)-(7,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (7,4)-(7,5))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (7,4)-(7,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── else_clause: ∅
│ └── end_keyword_loc: ∅
├── @ WhileNode (location: (9,0)-(9,17))
│ ├── flags: newline
│ ├── keyword_loc: (9,6)-(9,11) = "while"
│ ├── closing_loc: ∅
│ ├── predicate:
│ │ @ CallNode (location: (9,12)-(9,17))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (9,12)-(9,15) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (9,16)-(9,17))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (9,16)-(9,17))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── statements:
│ @ StatementsNode (location: (9,0)-(9,5))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (9,0)-(9,5))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (9,0)-(9,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (9,4)-(9,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (9,4)-(9,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ UntilNode (location: (11,0)-(11,17))
│ ├── flags: newline
│ ├── keyword_loc: (11,6)-(11,11) = "until"
│ ├── closing_loc: ∅
│ ├── predicate:
│ │ @ CallNode (location: (11,12)-(11,17))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (11,12)-(11,15) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (11,16)-(11,17))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (11,16)-(11,17))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── statements:
│ @ StatementsNode (location: (11,0)-(11,5))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (11,0)-(11,5))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (11,0)-(11,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (11,4)-(11,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (11,4)-(11,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ RescueModifierNode (location: (13,0)-(13,18))
│ ├── flags: newline
│ ├── expression:
│ │ @ CallNode (location: (13,0)-(13,5))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (13,0)-(13,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (13,4)-(13,5))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (13,4)-(13,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── keyword_loc: (13,6)-(13,12) = "rescue"
│ └── rescue_expression:
│ @ CallNode (location: (13,13)-(13,18))
│ ├── flags: ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :bar
│ ├── message_loc: (13,13)-(13,16) = "bar"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (13,17)-(13,18))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (13,17)-(13,18))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (15,0)-(15,10))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (15,0)-(15,3))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (15,0)-(15,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :[]
│ ├── message_loc: (15,3)-(15,10) = "[bar 1]"
│ ├── opening_loc: (15,3)-(15,4) = "["
│ ├── arguments:
│ │ @ ArgumentsNode (location: (15,4)-(15,9))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (15,4)-(15,9))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (15,4)-(15,7) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (15,8)-(15,9))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (15,8)-(15,9))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: (15,9)-(15,10) = "]"
│ └── block: ∅
├── @ AndNode (location: (17,0)-(17,15))
│ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (17,0)-(17,5))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (17,0)-(17,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (17,4)-(17,5))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (17,4)-(17,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── right:
│ │ @ CallNode (location: (17,10)-(17,15))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (17,10)-(17,13) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (17,14)-(17,15))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (17,14)-(17,15))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (17,6)-(17,9) = "and"
├── @ OrNode (location: (19,0)-(19,14))
│ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (19,0)-(19,5))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (19,0)-(19,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (19,4)-(19,5))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (19,4)-(19,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── right:
│ │ @ CallNode (location: (19,9)-(19,14))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (19,9)-(19,12) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (19,13)-(19,14))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (19,13)-(19,14))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (19,6)-(19,8) = "or"
├── @ CallNode (location: (21,0)-(21,9))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (21,4)-(21,9))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (21,4)-(21,7) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (21,8)-(21,9))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (21,8)-(21,9))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :!
│ ├── message_loc: (21,0)-(21,3) = "not"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ LocalVariableWriteNode (location: (23,0)-(23,17))
│ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (23,0)-(23,3) = "foo"
│ ├── value:
│ │ @ LocalVariableWriteNode (location: (23,6)-(23,17))
│ │ ├── flags: ∅
│ │ ├── name: :bar
│ │ ├── depth: 0
│ │ ├── name_loc: (23,6)-(23,9) = "bar"
│ │ ├── value:
│ │ │ @ CallNode (location: (23,12)-(23,17))
│ │ │ ├── flags: ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :baz
│ │ │ ├── message_loc: (23,12)-(23,15) = "baz"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (23,16)-(23,17))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (23,16)-(23,17))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── operator_loc: (23,10)-(23,11) = "="
│ └── operator_loc: (23,4)-(23,5) = "="
├── @ DefNode (location: (25,0)-(25,15))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (25,4)-(25,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (25,10)-(25,15))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (25,10)-(25,15))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (25,10)-(25,13) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (25,14)-(25,15))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (25,14)-(25,15))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (25,0)-(25,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: (25,8)-(25,9) = "="
│ └── end_keyword_loc: ∅
├── @ CallNode (location: (27,0)-(27,7))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (27,0)-(27,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: (27,1)-(27,2) = "."
│ ├── name: :foo
│ ├── message_loc: (27,2)-(27,5) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (27,6)-(27,7))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (27,6)-(27,7))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (29,0)-(29,11))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (29,0)-(29,5))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (29,0)-(29,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── call_operator_loc: (29,1)-(29,2) = "."
│ │ ├── name: :foo
│ │ ├── message_loc: (29,2)-(29,5) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: (29,5)-(29,6) = "."
│ ├── name: :bar
│ ├── message_loc: (29,6)-(29,9) = "bar"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (29,10)-(29,11))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (29,10)-(29,11))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (31,0)-(31,14))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (31,0)-(31,8))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (31,0)-(31,5))
│ │ │ ├── flags: ∅
│ │ │ ├── receiver:
│ │ │ │ @ IntegerNode (location: (31,0)-(31,1))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── call_operator_loc: (31,1)-(31,2) = "."
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (31,2)-(31,5) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :[]
│ │ ├── message_loc: (31,5)-(31,8) = "[2]"
│ │ ├── opening_loc: (31,5)-(31,6) = "["
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (31,6)-(31,7))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (31,6)-(31,7))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: (31,7)-(31,8) = "]"
│ │ └── block: ∅
│ ├── call_operator_loc: (31,8)-(31,9) = "."
│ ├── name: :bar
│ ├── message_loc: (31,9)-(31,12) = "bar"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (31,13)-(31,14))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (31,13)-(31,14))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (33,0)-(33,14))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (33,0)-(33,8))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (33,0)-(33,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── call_operator_loc: (33,1)-(33,2) = "."
│ │ ├── name: :foo
│ │ ├── message_loc: (33,2)-(33,5) = "foo"
│ │ ├── opening_loc: (33,5)-(33,6) = "("
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (33,6)-(33,7))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (33,6)-(33,7))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: (33,7)-(33,8) = ")"
│ │ └── block: ∅
│ ├── call_operator_loc: (33,8)-(33,9) = "."
│ ├── name: :bar
│ ├── message_loc: (33,9)-(33,12) = "bar"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (33,13)-(33,14))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (33,13)-(33,14))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (35,0)-(35,15))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (35,0)-(35,9))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (35,0)-(35,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── call_operator_loc: (35,1)-(35,2) = "."
│ │ ├── name: :foo
│ │ ├── message_loc: (35,2)-(35,5) = "foo"
│ │ ├── opening_loc: (35,5)-(35,6) = "("
│ │ ├── arguments: ∅
│ │ ├── closing_loc: (35,8)-(35,9) = ")"
│ │ └── block:
│ │ @ BlockArgumentNode (location: (35,6)-(35,8))
│ │ ├── flags: ∅
│ │ ├── expression:
│ │ │ @ IntegerNode (location: (35,7)-(35,8))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── operator_loc: (35,6)-(35,7) = "&"
│ ├── call_operator_loc: (35,9)-(35,10) = "."
│ ├── name: :bar
│ ├── message_loc: (35,10)-(35,13) = "bar"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (35,14)-(35,15))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (35,14)-(35,15))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ AndNode (location: (37,0)-(37,17))
│ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (37,0)-(37,6))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (37,1)-(37,6))
│ │ │ ├── flags: ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (37,1)-(37,4) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (37,5)-(37,6))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (37,5)-(37,6))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (37,0)-(37,1) = "!"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── right:
│ │ @ CallNode (location: (37,11)-(37,17))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (37,12)-(37,17))
│ │ │ ├── flags: ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (37,12)-(37,15) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (37,16)-(37,17))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (37,16)-(37,17))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (37,11)-(37,12) = "!"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (37,7)-(37,10) = "and"
├── @ OrNode (location: (39,0)-(39,16))
│ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (39,0)-(39,6))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (39,1)-(39,6))
│ │ │ ├── flags: ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (39,1)-(39,4) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (39,5)-(39,6))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (39,5)-(39,6))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (39,0)-(39,1) = "!"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── right:
│ │ @ CallNode (location: (39,10)-(39,16))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (39,11)-(39,16))
│ │ │ ├── flags: ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (39,11)-(39,14) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (39,15)-(39,16))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (39,15)-(39,16))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (39,10)-(39,11) = "!"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (39,7)-(39,9) = "or"
└── @ CallNode (location: (41,0)-(41,10))
├── flags: newline
├── receiver:
│ @ CallNode (location: (41,4)-(41,10))
│ ├── flags: ∅
│ ├── receiver:
│ │ @ CallNode (location: (41,5)-(41,10))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (41,5)-(41,8) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (41,9)-(41,10))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (41,9)-(41,10))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :!
│ ├── message_loc: (41,4)-(41,5) = "!"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── call_operator_loc: ∅
├── name: :!
├── message_loc: (41,0)-(41,3) = "not"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,147 +0,0 @@
@ ProgramNode (location: (1,0)-(24,5))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(24,5))
├── flags: ∅
└── body: (length: 9)
├── @ CallNode (location: (1,0)-(1,1))
│ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
│ ├── message_loc: (1,0)-(1,1) = "a"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,1))
│ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :b
│ ├── message_loc: (3,0)-(3,1) = "b"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (5,0)-(5,1))
│ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :c
│ ├── message_loc: (5,0)-(5,1) = "c"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (6,0)-(6,1))
│ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :d
│ ├── message_loc: (6,0)-(6,1) = "d"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (8,0)-(10,4))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (8,0)-(8,1))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :e
│ │ ├── message_loc: (8,0)-(8,1) = "e"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: (10,2)-(10,3) = "."
│ ├── name: :f
│ ├── message_loc: (10,3)-(10,4) = "f"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (12,0)-(14,2))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (12,0)-(12,1))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :g
│ │ ├── message_loc: (12,0)-(12,1) = "g"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: (14,0)-(14,1) = "."
│ ├── name: :h
│ ├── message_loc: (14,1)-(14,2) = "h"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (16,0)-(17,2))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (16,0)-(16,1))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :i
│ │ ├── message_loc: (16,0)-(16,1) = "i"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: (17,0)-(17,1) = "."
│ ├── name: :j
│ ├── message_loc: (17,1)-(17,2) = "j"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (19,0)-(20,4))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (19,0)-(19,1))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :k
│ │ ├── message_loc: (19,0)-(19,1) = "k"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: (20,2)-(20,3) = "."
│ ├── name: :l
│ ├── message_loc: (20,3)-(20,4) = "l"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (22,0)-(24,5))
├── flags: newline, safe_navigation
├── receiver:
│ @ CallNode (location: (22,0)-(22,1))
│ ├── flags: variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :m
│ ├── message_loc: (22,0)-(22,1) = "m"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── call_operator_loc: (24,2)-(24,4) = "&."
├── name: :n
├── message_loc: (24,4)-(24,5) = "n"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block: ∅

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,273 +0,0 @@
@ ProgramNode (location: (1,0)-(57,11))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(57,11))
├── flags: ∅
└── body: (length: 13)
├── @ StringNode (location: (1,0)-(1,6))
│ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,6) = "<<-EOF"
│ ├── content_loc: (2,0)-(3,0) = " a\n"
│ ├── closing_loc: (3,0)-(4,0) = "EOF\n"
│ └── unescaped: " a\n"
├── @ CallNode (location: (5,0)-(5,20))
│ ├── flags: newline
│ ├── receiver:
│ │ @ StringNode (location: (5,0)-(5,8))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (5,0)-(5,8) = "<<-FIRST"
│ │ ├── content_loc: (6,0)-(7,0) = " a\n"
│ │ ├── closing_loc: (7,0)-(8,0) = "FIRST\n"
│ │ └── unescaped: " a\n"
│ ├── call_operator_loc: ∅
│ ├── name: :+
│ ├── message_loc: (5,9)-(5,10) = "+"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (5,11)-(5,20))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ StringNode (location: (5,11)-(5,20))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (5,11)-(5,20) = "<<-SECOND"
│ │ ├── content_loc: (8,0)-(9,0) = " b\n"
│ │ ├── closing_loc: (9,0)-(10,0) = "SECOND\n"
│ │ └── unescaped: " b\n"
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ InterpolatedXStringNode (location: (11,0)-(11,8))
│ ├── flags: newline
│ ├── opening_loc: (11,0)-(11,8) = "<<-`EOF`"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (12,0)-(13,0))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (12,0)-(13,0) = " a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: " a\n"
│ │ ├── @ EmbeddedStatementsNode (location: (13,0)-(13,4))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (13,0)-(13,2) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (13,2)-(13,3))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (13,2)-(13,3))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :b
│ │ │ │ ├── message_loc: (13,2)-(13,3) = "b"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── closing_loc: (13,3)-(13,4) = "}"
│ │ └── @ StringNode (location: (13,4)-(14,0))
│ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (13,4)-(14,0) = "\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\n"
│ └── closing_loc: (14,0)-(15,0) = "EOF\n"
├── @ StringNode (location: (16,0)-(16,6))
│ ├── flags: newline
│ ├── opening_loc: (16,0)-(16,6) = "<<-EOF"
│ ├── content_loc: (17,0)-(18,0) = " a\n"
│ ├── closing_loc: (18,0)-(19,0) = "EOF\n"
│ └── unescaped: " a\n"
├── @ StringNode (location: (20,0)-(20,6))
│ ├── flags: newline
│ ├── opening_loc: (20,0)-(20,6) = "<<-EOF"
│ ├── content_loc: (21,0)-(23,0) = " a\n b\n"
│ ├── closing_loc: (23,0)-(24,0) = " EOF\n"
│ └── unescaped: " a\n b\n"
├── @ InterpolatedStringNode (location: (25,0)-(25,8))
│ ├── flags: newline
│ ├── opening_loc: (25,0)-(25,8) = "<<-\"EOF\""
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (26,0)-(27,0))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (26,0)-(27,0) = " a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: " a\n"
│ │ ├── @ EmbeddedStatementsNode (location: (27,0)-(27,4))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (27,0)-(27,2) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (27,2)-(27,3))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (27,2)-(27,3))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :b
│ │ │ │ ├── message_loc: (27,2)-(27,3) = "b"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── closing_loc: (27,3)-(27,4) = "}"
│ │ └── @ StringNode (location: (27,4)-(28,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (27,4)-(28,0) = "\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\n"
│ └── closing_loc: (28,0)-(29,0) = "EOF\n"
├── @ InterpolatedStringNode (location: (30,0)-(30,6))
│ ├── flags: newline
│ ├── opening_loc: (30,0)-(30,6) = "<<-EOF"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (31,0)-(32,0))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (31,0)-(32,0) = " a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: " a\n"
│ │ ├── @ EmbeddedStatementsNode (location: (32,0)-(32,4))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (32,0)-(32,2) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (32,2)-(32,3))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (32,2)-(32,3))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :b
│ │ │ │ ├── message_loc: (32,2)-(32,3) = "b"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── closing_loc: (32,3)-(32,4) = "}"
│ │ └── @ StringNode (location: (32,4)-(33,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (32,4)-(33,0) = "\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\n"
│ └── closing_loc: (33,0)-(34,0) = "EOF\n"
├── @ StringNode (location: (35,0)-(35,6))
│ ├── flags: newline
│ ├── opening_loc: (35,0)-(35,2) = "%#"
│ ├── content_loc: (35,2)-(35,5) = "abc"
│ ├── closing_loc: (35,5)-(35,6) = "#"
│ └── unescaped: "abc"
├── @ StringNode (location: (37,0)-(37,6))
│ ├── flags: newline
│ ├── opening_loc: (37,0)-(37,6) = "<<-EOF"
│ ├── content_loc: (38,0)-(40,0) = " a\n b\n"
│ ├── closing_loc: (40,0)-(41,0) = "EOF\n"
│ └── unescaped: " a\n b\n"
├── @ StringNode (location: (42,0)-(42,5))
│ ├── flags: newline
│ ├── opening_loc: (42,0)-(42,5) = "<<-''"
│ ├── content_loc: (43,0)-(43,0) = ""
│ ├── closing_loc: (43,0)-(44,0) = "\n"
│ └── unescaped: ""
├── @ StringNode (location: (45,0)-(45,8))
│ ├── flags: newline
│ ├── opening_loc: (45,0)-(45,8) = "<<-'EOF'"
│ ├── content_loc: (46,0)-(47,0) = " a \#{1}\n"
│ ├── closing_loc: (47,0)-(48,0) = "EOF\n"
│ └── unescaped: " a \#{1}\n"
├── @ CallNode (location: (49,0)-(49,11))
│ ├── flags: newline
│ ├── receiver:
│ │ @ StringNode (location: (49,0)-(49,4))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (49,0)-(49,4) = "<<-A"
│ │ ├── content_loc: (50,0)-(51,0) = " a\n"
│ │ ├── closing_loc: (51,0)-(52,0) = "A\n"
│ │ └── unescaped: " a\n"
│ ├── call_operator_loc: ∅
│ ├── name: :+
│ ├── message_loc: (49,5)-(49,6) = "+"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (49,7)-(49,11))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (49,7)-(49,11))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (49,7)-(49,11) = "<<-B"
│ │ ├── parts: (length: 3)
│ │ │ ├── @ StringNode (location: (52,0)-(53,2))
│ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (52,0)-(53,2) = " b\n "
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: " b\n "
│ │ │ ├── @ EmbeddedStatementsNode (location: (53,2)-(54,3))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (53,2)-(53,4) = "\#{"
│ │ │ │ ├── statements:
│ │ │ │ │ @ StatementsNode (location: (53,4)-(53,5))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ IntegerNode (location: (53,4)-(53,5))
│ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 2
│ │ │ │ └── closing_loc: (54,2)-(54,3) = "}"
│ │ │ └── @ StringNode (location: (54,3)-(55,0))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (54,3)-(55,0) = "\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "\n"
│ │ └── closing_loc: (55,0)-(56,0) = "B\n"
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (57,0)-(57,11))
├── flags: newline
├── receiver:
│ @ StringNode (location: (57,0)-(57,4))
│ ├── flags: ∅
│ ├── opening_loc: (57,0)-(57,4) = "<<-A"
│ ├── content_loc: (58,0)-(59,0) = " a\n"
│ ├── closing_loc: (59,0)-(60,0) = "A\n"
│ └── unescaped: " a\n"
├── call_operator_loc: ∅
├── name: :+
├── message_loc: (57,5)-(57,6) = "+"
├── opening_loc: ∅
├── arguments:
│ @ ArgumentsNode (location: (57,7)-(57,11))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ InterpolatedStringNode (location: (57,7)-(57,11))
│ ├── flags: ∅
│ ├── opening_loc: (57,7)-(57,11) = "<<-B"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (60,0)-(61,2))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (60,0)-(61,2) = " b\n "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: " b\n "
│ │ ├── @ EmbeddedStatementsNode (location: (61,2)-(62,4))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (61,2)-(61,4) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (62,2)-(62,3))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (62,2)-(62,3))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ └── closing_loc: (62,3)-(62,4) = "}"
│ │ └── @ StringNode (location: (62,4)-(63,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (62,4)-(63,0) = "\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\n"
│ └── closing_loc: (63,0)-(64,0) = "B\n"
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,99 +0,0 @@
@ ProgramNode (location: (1,0)-(10,1))
├── flags: ∅
├── locals: [:x]
└── statements:
@ StatementsNode (location: (1,0)-(10,1))
├── flags: ∅
└── body: (length: 5)
├── @ AndNode (location: (1,0)-(1,25))
│ ├── flags: newline
│ ├── left:
│ │ @ DefinedNode (location: (1,0)-(1,10))
│ │ ├── flags: ∅
│ │ ├── lparen_loc: ∅
│ │ ├── value:
│ │ │ @ IntegerNode (location: (1,9)-(1,10))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rparen_loc: ∅
│ │ └── keyword_loc: (1,0)-(1,8) = "defined?"
│ ├── right:
│ │ @ DefinedNode (location: (1,15)-(1,25))
│ │ ├── flags: ∅
│ │ ├── lparen_loc: ∅
│ │ ├── value:
│ │ │ @ IntegerNode (location: (1,24)-(1,25))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── rparen_loc: ∅
│ │ └── keyword_loc: (1,15)-(1,23) = "defined?"
│ └── operator_loc: (1,11)-(1,14) = "and"
├── @ DefinedNode (location: (3,0)-(3,16))
│ ├── flags: newline
│ ├── lparen_loc: (3,8)-(3,9) = "("
│ ├── value:
│ │ @ LocalVariableOperatorWriteNode (location: (3,9)-(3,15))
│ │ ├── flags: ∅
│ │ ├── name_loc: (3,9)-(3,10) = "x"
│ │ ├── binary_operator_loc: (3,11)-(3,13) = "%="
│ │ ├── value:
│ │ │ @ IntegerNode (location: (3,14)-(3,15))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── name: :x
│ │ ├── binary_operator: :%
│ │ └── depth: 0
│ ├── rparen_loc: (3,15)-(3,16) = ")"
│ └── keyword_loc: (3,0)-(3,8) = "defined?"
├── @ DefinedNode (location: (5,0)-(5,21))
│ ├── flags: newline
│ ├── lparen_loc: (5,8)-(5,9) = "("
│ ├── value:
│ │ @ AndNode (location: (5,9)-(5,20))
│ │ ├── flags: ∅
│ │ ├── left:
│ │ │ @ CallNode (location: (5,9)-(5,12))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (5,9)-(5,12) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── right:
│ │ │ @ CallNode (location: (5,17)-(5,20))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (5,17)-(5,20) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── operator_loc: (5,13)-(5,16) = "and"
│ ├── rparen_loc: (5,20)-(5,21) = ")"
│ └── keyword_loc: (5,0)-(5,8) = "defined?"
├── @ DefinedNode (location: (7,0)-(7,10))
│ ├── flags: newline
│ ├── lparen_loc: ∅
│ ├── value:
│ │ @ IntegerNode (location: (7,9)-(7,10))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── rparen_loc: ∅
│ └── keyword_loc: (7,0)-(7,8) = "defined?"
└── @ DefinedNode (location: (9,0)-(10,1))
├── flags: newline
├── lparen_loc: (9,8)-(9,9) = "("
├── value:
│ @ StringNode (location: (9,9)-(9,14))
│ ├── flags: ∅
│ ├── opening_loc: (9,9)-(9,10) = "\""
│ ├── content_loc: (9,10)-(9,13) = "foo"
│ ├── closing_loc: (9,13)-(9,14) = "\""
│ └── unescaped: "foo"
├── rparen_loc: (10,0)-(10,1) = ")"
└── keyword_loc: (9,0)-(9,8) = "defined?"

Просмотреть файл

@ -1,114 +0,0 @@
@ ProgramNode (location: (1,0)-(17,20))
├── flags: ∅
├── locals: [:x, :a]
└── statements:
@ StatementsNode (location: (1,0)-(17,20))
├── flags: ∅
└── body: (length: 5)
├── @ CallNode (location: (1,0)-(2,12))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :puts
│ ├── message_loc: (1,0)-(1,4) = "puts"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (1,5)-(2,12))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ InterpolatedStringNode (location: (1,5)-(2,12))
│ │ ├── flags: static_literal
│ │ ├── opening_loc: ∅
│ │ ├── parts: (length: 2)
│ │ │ ├── @ StringNode (location: (1,5)-(1,9))
│ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: (1,5)-(1,6) = "\""
│ │ │ │ ├── content_loc: (1,6)-(1,8) = "hi"
│ │ │ │ ├── closing_loc: (1,8)-(1,9) = "\""
│ │ │ │ └── unescaped: "hi"
│ │ │ └── @ StringNode (location: (2,5)-(2,12))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: (2,5)-(2,6) = "\""
│ │ │ ├── content_loc: (2,6)-(2,11) = "there"
│ │ │ ├── closing_loc: (2,11)-(2,12) = "\""
│ │ │ └── unescaped: "there"
│ │ └── closing_loc: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ ArrayNode (location: (4,0)-(5,2))
│ ├── flags: newline, static_literal
│ ├── elements: (length: 1)
│ │ └── @ SymbolNode (location: (4,3)-(5,1))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (4,3)-(5,1) = "a\\\r\nb"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a\nb"
│ ├── opening_loc: (4,0)-(4,3) = "%I{"
│ └── closing_loc: (5,1)-(5,2) = "}"
├── @ StringNode (location: (7,0)-(7,4))
│ ├── flags: newline
│ ├── opening_loc: (7,0)-(7,4) = "<<-E"
│ ├── content_loc: (8,0)-(11,0) = " 1 \\\r\n 2\r\n 3\r\n"
│ ├── closing_loc: (11,0)-(12,0) = "E\r\n"
│ └── unescaped: " 1 2\n 3\n"
├── @ LocalVariableWriteNode (location: (13,0)-(15,0))
│ ├── flags: newline
│ ├── name: :x
│ ├── depth: 0
│ ├── name_loc: (13,0)-(13,1) = "x"
│ ├── value:
│ │ @ StringNode (location: (13,4)-(15,0))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (13,4)-(14,0) = "%\r\n"
│ │ ├── content_loc: (14,0)-(14,0) = ""
│ │ ├── closing_loc: (14,0)-(15,0) = "\r\n"
│ │ └── unescaped: ""
│ └── operator_loc: (13,2)-(13,3) = "="
└── @ LocalVariableWriteNode (location: (17,0)-(17,20))
├── flags: newline
├── name: :a
├── depth: 0
├── name_loc: (17,0)-(17,1) = "a"
├── value:
│ @ CallNode (location: (17,4)-(17,20))
│ ├── flags: ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (17,4)-(17,7) = "foo"
│ ├── opening_loc: (17,7)-(17,8) = "("
│ ├── arguments:
│ │ @ ArgumentsNode (location: (17,8)-(17,19))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (17,8)-(17,19))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ InterpolatedStringNode (location: (17,8)-(17,14))
│ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: (17,8)-(17,14) = "<<~EOF"
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ StringNode (location: (18,0)-(19,0))
│ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── content_loc: (18,0)-(19,0) = "\r\n"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "\n"
│ │ │ │ └── @ StringNode (location: (19,0)-(20,0))
│ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (19,0)-(20,0) = " baz\r\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "baz\n"
│ │ │ └── closing_loc: (20,0)-(21,0) = " EOF\r\n"
│ │ ├── call_operator_loc: (17,14)-(17,15) = "."
│ │ ├── name: :chop
│ │ ├── message_loc: (17,15)-(17,19) = "chop"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: (17,19)-(17,20) = ")"
│ └── block: ∅
└── operator_loc: (17,2)-(17,3) = "="

Просмотреть файл

@ -1,89 +0,0 @@
@ ProgramNode (location: (1,0)-(29,1))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(29,1))
├── flags: ∅
└── body: (length: 8)
├── @ StringNode (location: (1,0)-(2,6))
│ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,1) = "\""
│ ├── content_loc: (1,1)-(2,5) = "foo\n bar"
│ ├── closing_loc: (2,5)-(2,6) = "\""
│ └── unescaped: "foo\n bar"
├── @ InterpolatedStringNode (location: (4,0)-(5,9))
│ ├── flags: newline
│ ├── opening_loc: (4,0)-(4,1) = "\""
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (4,1)-(5,2))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (4,1)-(5,2) = "foo\n "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "foo\n "
│ │ └── @ EmbeddedStatementsNode (location: (5,2)-(5,8))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (5,2)-(5,4) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (5,4)-(5,7))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (5,4)-(5,7))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (5,4)-(5,7) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── closing_loc: (5,7)-(5,8) = "}"
│ └── closing_loc: (5,8)-(5,9) = "\""
├── @ InterpolatedStringNode (location: (7,0)-(9,2))
│ ├── flags: newline, static_literal
│ ├── opening_loc: ∅
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (7,0)-(8,2))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: (7,0)-(7,1) = "\""
│ │ │ ├── content_loc: (7,1)-(8,1) = "fo\no"
│ │ │ ├── closing_loc: (8,1)-(8,2) = "\""
│ │ │ └── unescaped: "fo\no"
│ │ └── @ StringNode (location: (8,3)-(9,2))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: (8,3)-(8,4) = "\""
│ │ ├── content_loc: (8,4)-(9,1) = "ba\nr"
│ │ ├── closing_loc: (9,1)-(9,2) = "\""
│ │ └── unescaped: "ba\nr"
│ └── closing_loc: ∅
├── @ StringNode (location: (11,0)-(13,1))
│ ├── flags: newline
│ ├── opening_loc: (11,0)-(11,1) = "\""
│ ├── content_loc: (11,1)-(13,0) = "\nfoo\\\n"
│ ├── closing_loc: (13,0)-(13,1) = "\""
│ └── unescaped: "\nfoo"
├── @ StringNode (location: (15,0)-(17,1))
│ ├── flags: newline
│ ├── opening_loc: (15,0)-(15,1) = "\""
│ ├── content_loc: (15,1)-(17,0) = "\nfoo\\\\\n"
│ ├── closing_loc: (17,0)-(17,1) = "\""
│ └── unescaped: "\nfoo\\\n"
├── @ StringNode (location: (19,0)-(21,1))
│ ├── flags: newline
│ ├── opening_loc: (19,0)-(19,1) = "\""
│ ├── content_loc: (19,1)-(21,0) = "\nfoo\\\\\\\n"
│ ├── closing_loc: (21,0)-(21,1) = "\""
│ └── unescaped: "\nfoo\\"
├── @ StringNode (location: (23,0)-(25,1))
│ ├── flags: newline
│ ├── opening_loc: (23,0)-(23,1) = "\""
│ ├── content_loc: (23,1)-(25,0) = "\nfoo\\\\\\\\\n"
│ ├── closing_loc: (25,0)-(25,1) = "\""
│ └── unescaped: "\nfoo\\\\\n"
└── @ StringNode (location: (27,0)-(29,1))
├── flags: newline
├── opening_loc: (27,0)-(27,1) = "\""
├── content_loc: (27,1)-(29,0) = "\nfoo\\\\\\\\\\\n"
├── closing_loc: (29,0)-(29,1) = "\""
└── unescaped: "\nfoo\\\\"

Просмотреть файл

@ -1,13 +0,0 @@
@ ProgramNode (location: (1,0)-(2,6))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(2,6))
├── flags: ∅
└── body: (length: 1)
└── @ SymbolNode (location: (1,0)-(2,6))
├── flags: newline, static_literal, forced_us_ascii_encoding
├── opening_loc: (1,0)-(1,2) = ":\""
├── value_loc: (1,2)-(2,5) = "foo\n bar"
├── closing_loc: (2,5)-(2,6) = "\""
└── unescaped: "foo\n bar"

Просмотреть файл

@ -1,7 +0,0 @@
@ ProgramNode (location: (1,0)-(1,0))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,0))
├── flags: ∅
└── body: (length: 0)

Просмотреть файл

@ -1,33 +0,0 @@
@ ProgramNode (location: (1,0)-(1,12))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,12))
├── flags: newline, attribute_write
├── receiver:
│ @ CallNode (location: (1,0)-(1,3))
│ ├── flags: variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (1,0)-(1,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── call_operator_loc: (1,3)-(1,4) = "."
├── name: :🌊=
├── message_loc: (1,4)-(1,8) = "🌊"
├── opening_loc: ∅
├── arguments:
│ @ ArgumentsNode (location: (1,11)-(1,12))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,11)-(1,12))
│ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,115 +0,0 @@
@ ProgramNode (location: (1,0)-(5,22))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,22))
├── flags: ∅
└── body: (length: 3)
├── @ DefNode (location: (1,0)-(1,11))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (1,4)-(1,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,10)-(1,11))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (1,10)-(1,11))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── locals: []
│ ├── def_keyword_loc: (1,0)-(1,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: (1,8)-(1,9) = "="
│ └── end_keyword_loc: ∅
├── @ DefNode (location: (3,0)-(3,14))
│ ├── flags: newline
│ ├── name: :bar
│ ├── name_loc: (3,4)-(3,7) = "bar"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (3,10)-(3,14))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (3,10)-(3,14))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :A
│ │ ├── message_loc: (3,10)-(3,11) = "A"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (3,12)-(3,14))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ StringNode (location: (3,12)-(3,14))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,12)-(3,13) = "\""
│ │ │ ├── content_loc: (3,13)-(3,13) = ""
│ │ │ ├── closing_loc: (3,13)-(3,14) = "\""
│ │ │ └── unescaped: ""
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (3,0)-(3,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: (3,8)-(3,9) = "="
│ └── end_keyword_loc: ∅
└── @ DefNode (location: (5,0)-(5,22))
├── flags: newline
├── name: :method
├── name_loc: (5,4)-(5,10) = "method"
├── receiver: ∅
├── parameters: ∅
├── body:
│ @ StatementsNode (location: (5,13)-(5,22))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (5,13)-(5,22))
│ ├── flags: ∅
│ ├── receiver:
│ │ @ CallNode (location: (5,13)-(5,18))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (5,13)-(5,14))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :+
│ │ ├── message_loc: (5,15)-(5,16) = "+"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (5,17)-(5,18))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (5,17)-(5,18))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :+
│ ├── message_loc: (5,19)-(5,20) = "+"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (5,21)-(5,22))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (5,21)-(5,22))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ ├── closing_loc: ∅
│ └── block: ∅
├── locals: []
├── def_keyword_loc: (5,0)-(5,3) = "def"
├── operator_loc: ∅
├── lparen_loc: ∅
├── rparen_loc: ∅
├── equal_loc: (5,11)-(5,12) = "="
└── end_keyword_loc: ∅

Просмотреть файл

@ -1,58 +0,0 @@
@ ProgramNode (location: (1,0)-(3,12))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,12))
├── flags: ∅
└── body: (length: 3)
├── @ IfNode (location: (1,0)-(1,13))
│ ├── flags: newline
│ ├── if_keyword_loc: (1,0)-(1,2) = "if"
│ ├── predicate:
│ │ @ FlipFlopNode (location: (1,3)-(1,7))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (1,3)-(1,4))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right:
│ │ │ @ IntegerNode (location: (1,6)-(1,7))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── operator_loc: (1,4)-(1,6) = ".."
│ ├── then_keyword_loc: ∅
│ ├── statements: ∅
│ ├── subsequent: ∅
│ └── end_keyword_loc: (1,10)-(1,13) = "end"
├── @ IfNode (location: (2,0)-(2,12))
│ ├── flags: newline
│ ├── if_keyword_loc: (2,0)-(2,2) = "if"
│ ├── predicate:
│ │ @ FlipFlopNode (location: (2,3)-(2,6))
│ │ ├── flags: static_literal
│ │ ├── left: ∅
│ │ ├── right:
│ │ │ @ IntegerNode (location: (2,5)-(2,6))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: (2,3)-(2,5) = ".."
│ ├── then_keyword_loc: ∅
│ ├── statements: ∅
│ ├── subsequent: ∅
│ └── end_keyword_loc: (2,9)-(2,12) = "end"
└── @ IfNode (location: (3,0)-(3,12))
├── flags: newline
├── if_keyword_loc: (3,0)-(3,2) = "if"
├── predicate:
│ @ FlipFlopNode (location: (3,3)-(3,6))
│ ├── flags: static_literal
│ ├── left:
│ │ @ IntegerNode (location: (3,3)-(3,4))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── right: ∅
│ └── operator_loc: (3,4)-(3,6) = ".."
├── then_keyword_loc: ∅
├── statements: ∅
├── subsequent: ∅
└── end_keyword_loc: (3,9)-(3,12) = "end"

Просмотреть файл

@ -1,219 +0,0 @@
@ ProgramNode (location: (1,0)-(19,22))
├── flags: ∅
├── locals: [:i, :j, :k]
└── statements:
@ StatementsNode (location: (1,0)-(19,22))
├── flags: ∅
└── body: (length: 6)
├── @ ForNode (location: (1,0)-(3,3))
│ ├── flags: newline
│ ├── index:
│ │ @ LocalVariableTargetNode (location: (1,4)-(1,5))
│ │ ├── flags: ∅
│ │ ├── name: :i
│ │ └── depth: 0
│ ├── collection:
│ │ @ RangeNode (location: (1,9)-(1,14))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (1,9)-(1,10))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right:
│ │ │ @ IntegerNode (location: (1,12)-(1,14))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 10
│ │ └── operator_loc: (1,10)-(1,12) = ".."
│ ├── statements:
│ │ @ StatementsNode (location: (2,0)-(2,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (2,0)-(2,1))
│ │ ├── flags: newline
│ │ ├── name: :i
│ │ └── depth: 0
│ ├── for_keyword_loc: (1,0)-(1,3) = "for"
│ ├── in_keyword_loc: (1,6)-(1,8) = "in"
│ ├── do_keyword_loc: ∅
│ └── end_keyword_loc: (3,0)-(3,3) = "end"
├── @ ForNode (location: (5,0)-(5,22))
│ ├── flags: newline
│ ├── index:
│ │ @ LocalVariableTargetNode (location: (5,4)-(5,5))
│ │ ├── flags: ∅
│ │ ├── name: :i
│ │ └── depth: 0
│ ├── collection:
│ │ @ RangeNode (location: (5,9)-(5,14))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (5,9)-(5,10))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right:
│ │ │ @ IntegerNode (location: (5,12)-(5,14))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 10
│ │ └── operator_loc: (5,10)-(5,12) = ".."
│ ├── statements:
│ │ @ StatementsNode (location: (5,16)-(5,17))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (5,16)-(5,17))
│ │ ├── flags: newline
│ │ ├── name: :i
│ │ └── depth: 0
│ ├── for_keyword_loc: (5,0)-(5,3) = "for"
│ ├── in_keyword_loc: (5,6)-(5,8) = "in"
│ ├── do_keyword_loc: ∅
│ └── end_keyword_loc: (5,19)-(5,22) = "end"
├── @ ForNode (location: (7,0)-(9,3))
│ ├── flags: newline
│ ├── index:
│ │ @ MultiTargetNode (location: (7,4)-(7,7))
│ │ ├── flags: ∅
│ │ ├── lefts: (length: 2)
│ │ │ ├── @ LocalVariableTargetNode (location: (7,4)-(7,5))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :i
│ │ │ │ └── depth: 0
│ │ │ └── @ LocalVariableTargetNode (location: (7,6)-(7,7))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :j
│ │ │ └── depth: 0
│ │ ├── rest: ∅
│ │ ├── rights: (length: 0)
│ │ ├── lparen_loc: ∅
│ │ └── rparen_loc: ∅
│ ├── collection:
│ │ @ RangeNode (location: (7,11)-(7,16))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (7,11)-(7,12))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right:
│ │ │ @ IntegerNode (location: (7,14)-(7,16))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 10
│ │ └── operator_loc: (7,12)-(7,14) = ".."
│ ├── statements:
│ │ @ StatementsNode (location: (8,0)-(8,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (8,0)-(8,1))
│ │ ├── flags: newline
│ │ ├── name: :i
│ │ └── depth: 0
│ ├── for_keyword_loc: (7,0)-(7,3) = "for"
│ ├── in_keyword_loc: (7,8)-(7,10) = "in"
│ ├── do_keyword_loc: ∅
│ └── end_keyword_loc: (9,0)-(9,3) = "end"
├── @ ForNode (location: (11,0)-(13,3))
│ ├── flags: newline
│ ├── index:
│ │ @ MultiTargetNode (location: (11,4)-(11,9))
│ │ ├── flags: ∅
│ │ ├── lefts: (length: 3)
│ │ │ ├── @ LocalVariableTargetNode (location: (11,4)-(11,5))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :i
│ │ │ │ └── depth: 0
│ │ │ ├── @ LocalVariableTargetNode (location: (11,6)-(11,7))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :j
│ │ │ │ └── depth: 0
│ │ │ └── @ LocalVariableTargetNode (location: (11,8)-(11,9))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :k
│ │ │ └── depth: 0
│ │ ├── rest: ∅
│ │ ├── rights: (length: 0)
│ │ ├── lparen_loc: ∅
│ │ └── rparen_loc: ∅
│ ├── collection:
│ │ @ RangeNode (location: (11,13)-(11,18))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (11,13)-(11,14))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right:
│ │ │ @ IntegerNode (location: (11,16)-(11,18))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 10
│ │ └── operator_loc: (11,14)-(11,16) = ".."
│ ├── statements:
│ │ @ StatementsNode (location: (12,0)-(12,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (12,0)-(12,1))
│ │ ├── flags: newline
│ │ ├── name: :i
│ │ └── depth: 0
│ ├── for_keyword_loc: (11,0)-(11,3) = "for"
│ ├── in_keyword_loc: (11,10)-(11,12) = "in"
│ ├── do_keyword_loc: ∅
│ └── end_keyword_loc: (13,0)-(13,3) = "end"
├── @ ForNode (location: (15,0)-(17,3))
│ ├── flags: newline
│ ├── index:
│ │ @ LocalVariableTargetNode (location: (15,4)-(15,5))
│ │ ├── flags: ∅
│ │ ├── name: :i
│ │ └── depth: 0
│ ├── collection:
│ │ @ RangeNode (location: (15,9)-(15,14))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (15,9)-(15,10))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right:
│ │ │ @ IntegerNode (location: (15,12)-(15,14))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 10
│ │ └── operator_loc: (15,10)-(15,12) = ".."
│ ├── statements:
│ │ @ StatementsNode (location: (16,0)-(16,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (16,0)-(16,1))
│ │ ├── flags: newline
│ │ ├── name: :i
│ │ └── depth: 0
│ ├── for_keyword_loc: (15,0)-(15,3) = "for"
│ ├── in_keyword_loc: (15,6)-(15,8) = "in"
│ ├── do_keyword_loc: (15,15)-(15,17) = "do"
│ └── end_keyword_loc: (17,0)-(17,3) = "end"
└── @ ForNode (location: (19,0)-(19,22))
├── flags: newline
├── index:
│ @ LocalVariableTargetNode (location: (19,4)-(19,5))
│ ├── flags: ∅
│ ├── name: :i
│ └── depth: 0
├── collection:
│ @ RangeNode (location: (19,9)-(19,14))
│ ├── flags: static_literal
│ ├── left:
│ │ @ IntegerNode (location: (19,9)-(19,10))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── right:
│ │ @ IntegerNode (location: (19,12)-(19,14))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 10
│ └── operator_loc: (19,10)-(19,12) = ".."
├── statements:
│ @ StatementsNode (location: (19,16)-(19,17))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableReadNode (location: (19,16)-(19,17))
│ ├── flags: newline
│ ├── name: :i
│ └── depth: 0
├── for_keyword_loc: (19,0)-(19,3) = "for"
├── in_keyword_loc: (19,6)-(19,8) = "in"
├── do_keyword_loc: ∅
└── end_keyword_loc: (19,19)-(19,22) = "end"

Просмотреть файл

@ -1,217 +0,0 @@
@ ProgramNode (location: (1,0)-(93,4))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(93,4))
├── flags: ∅
└── body: (length: 47)
├── @ GlobalVariableReadNode (location: (1,0)-(1,16))
│ ├── flags: newline
│ └── name: :$global_variable
├── @ GlobalVariableReadNode (location: (3,0)-(3,2))
│ ├── flags: newline
│ └── name: :$_
├── @ GlobalVariableReadNode (location: (5,0)-(5,3))
│ ├── flags: newline
│ └── name: :$-w
├── @ GlobalVariableReadNode (location: (7,0)-(7,10))
│ ├── flags: newline
│ └── name: :$LOAD_PATH
├── @ GlobalVariableReadNode (location: (9,0)-(9,6))
│ ├── flags: newline
│ └── name: :$stdin
├── @ GlobalVariableReadNode (location: (11,0)-(11,7))
│ ├── flags: newline
│ └── name: :$stdout
├── @ GlobalVariableReadNode (location: (13,0)-(13,7))
│ ├── flags: newline
│ └── name: :$stderr
├── @ GlobalVariableReadNode (location: (15,0)-(15,2))
│ ├── flags: newline
│ └── name: :$!
├── @ GlobalVariableReadNode (location: (17,0)-(17,2))
│ ├── flags: newline
│ └── name: :$?
├── @ GlobalVariableReadNode (location: (19,0)-(19,2))
│ ├── flags: newline
│ └── name: :$~
├── @ BackReferenceReadNode (location: (21,0)-(21,2))
│ ├── flags: newline
│ └── name: :$&
├── @ BackReferenceReadNode (location: (23,0)-(23,2))
│ ├── flags: newline
│ └── name: :$`
├── @ BackReferenceReadNode (location: (25,0)-(25,2))
│ ├── flags: newline
│ └── name: :$'
├── @ BackReferenceReadNode (location: (27,0)-(27,2))
│ ├── flags: newline
│ └── name: :$+
├── @ GlobalVariableReadNode (location: (29,0)-(29,2))
│ ├── flags: newline
│ └── name: :$:
├── @ GlobalVariableReadNode (location: (31,0)-(31,2))
│ ├── flags: newline
│ └── name: :$;
├── @ GlobalVariableReadNode (location: (33,0)-(33,2))
│ ├── flags: newline
│ └── name: :$,
├── @ GlobalVariableReadNode (location: (35,0)-(35,6))
│ ├── flags: newline
│ └── name: :$DEBUG
├── @ GlobalVariableReadNode (location: (37,0)-(37,9))
│ ├── flags: newline
│ └── name: :$FILENAME
├── @ GlobalVariableReadNode (location: (39,0)-(39,2))
│ ├── flags: newline
│ └── name: :$0
├── @ GlobalVariableReadNode (location: (41,0)-(41,3))
│ ├── flags: newline
│ └── name: :$-0
├── @ GlobalVariableReadNode (location: (43,0)-(43,16))
│ ├── flags: newline
│ └── name: :$LOADED_FEATURES
├── @ GlobalVariableReadNode (location: (45,0)-(45,8))
│ ├── flags: newline
│ └── name: :$VERBOSE
├── @ GlobalVariableReadNode (location: (47,0)-(47,3))
│ ├── flags: newline
│ └── name: :$-K
├── @ SymbolNode (location: (49,0)-(49,17))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (49,0)-(49,1) = ":"
│ ├── value_loc: (49,1)-(49,17) = "$global_variable"
│ ├── closing_loc: ∅
│ └── unescaped: "$global_variable"
├── @ SymbolNode (location: (51,0)-(51,3))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (51,0)-(51,1) = ":"
│ ├── value_loc: (51,1)-(51,3) = "$_"
│ ├── closing_loc: ∅
│ └── unescaped: "$_"
├── @ SymbolNode (location: (53,0)-(53,4))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (53,0)-(53,1) = ":"
│ ├── value_loc: (53,1)-(53,4) = "$-w"
│ ├── closing_loc: ∅
│ └── unescaped: "$-w"
├── @ SymbolNode (location: (55,0)-(55,11))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (55,0)-(55,1) = ":"
│ ├── value_loc: (55,1)-(55,11) = "$LOAD_PATH"
│ ├── closing_loc: ∅
│ └── unescaped: "$LOAD_PATH"
├── @ SymbolNode (location: (57,0)-(57,7))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (57,0)-(57,1) = ":"
│ ├── value_loc: (57,1)-(57,7) = "$stdin"
│ ├── closing_loc: ∅
│ └── unescaped: "$stdin"
├── @ SymbolNode (location: (59,0)-(59,8))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (59,0)-(59,1) = ":"
│ ├── value_loc: (59,1)-(59,8) = "$stdout"
│ ├── closing_loc: ∅
│ └── unescaped: "$stdout"
├── @ SymbolNode (location: (61,0)-(61,8))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (61,0)-(61,1) = ":"
│ ├── value_loc: (61,1)-(61,8) = "$stderr"
│ ├── closing_loc: ∅
│ └── unescaped: "$stderr"
├── @ SymbolNode (location: (63,0)-(63,3))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (63,0)-(63,1) = ":"
│ ├── value_loc: (63,1)-(63,3) = "$!"
│ ├── closing_loc: ∅
│ └── unescaped: "$!"
├── @ SymbolNode (location: (65,0)-(65,3))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (65,0)-(65,1) = ":"
│ ├── value_loc: (65,1)-(65,3) = "$?"
│ ├── closing_loc: ∅
│ └── unescaped: "$?"
├── @ SymbolNode (location: (67,0)-(67,3))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (67,0)-(67,1) = ":"
│ ├── value_loc: (67,1)-(67,3) = "$~"
│ ├── closing_loc: ∅
│ └── unescaped: "$~"
├── @ SymbolNode (location: (69,0)-(69,3))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (69,0)-(69,1) = ":"
│ ├── value_loc: (69,1)-(69,3) = "$&"
│ ├── closing_loc: ∅
│ └── unescaped: "$&"
├── @ SymbolNode (location: (71,0)-(71,3))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (71,0)-(71,1) = ":"
│ ├── value_loc: (71,1)-(71,3) = "$`"
│ ├── closing_loc: ∅
│ └── unescaped: "$`"
├── @ SymbolNode (location: (73,0)-(73,3))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (73,0)-(73,1) = ":"
│ ├── value_loc: (73,1)-(73,3) = "$'"
│ ├── closing_loc: ∅
│ └── unescaped: "$'"
├── @ SymbolNode (location: (75,0)-(75,3))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (75,0)-(75,1) = ":"
│ ├── value_loc: (75,1)-(75,3) = "$+"
│ ├── closing_loc: ∅
│ └── unescaped: "$+"
├── @ SymbolNode (location: (77,0)-(77,3))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (77,0)-(77,1) = ":"
│ ├── value_loc: (77,1)-(77,3) = "$:"
│ ├── closing_loc: ∅
│ └── unescaped: "$:"
├── @ SymbolNode (location: (79,0)-(79,3))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (79,0)-(79,1) = ":"
│ ├── value_loc: (79,1)-(79,3) = "$;"
│ ├── closing_loc: ∅
│ └── unescaped: "$;"
├── @ SymbolNode (location: (81,0)-(81,7))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (81,0)-(81,1) = ":"
│ ├── value_loc: (81,1)-(81,7) = "$DEBUG"
│ ├── closing_loc: ∅
│ └── unescaped: "$DEBUG"
├── @ SymbolNode (location: (83,0)-(83,10))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (83,0)-(83,1) = ":"
│ ├── value_loc: (83,1)-(83,10) = "$FILENAME"
│ ├── closing_loc: ∅
│ └── unescaped: "$FILENAME"
├── @ SymbolNode (location: (85,0)-(85,3))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (85,0)-(85,1) = ":"
│ ├── value_loc: (85,1)-(85,3) = "$0"
│ ├── closing_loc: ∅
│ └── unescaped: "$0"
├── @ SymbolNode (location: (87,0)-(87,4))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (87,0)-(87,1) = ":"
│ ├── value_loc: (87,1)-(87,4) = "$-0"
│ ├── closing_loc: ∅
│ └── unescaped: "$-0"
├── @ SymbolNode (location: (89,0)-(89,17))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (89,0)-(89,1) = ":"
│ ├── value_loc: (89,1)-(89,17) = "$LOADED_FEATURES"
│ ├── closing_loc: ∅
│ └── unescaped: "$LOADED_FEATURES"
├── @ SymbolNode (location: (91,0)-(91,9))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (91,0)-(91,1) = ":"
│ ├── value_loc: (91,1)-(91,9) = "$VERBOSE"
│ ├── closing_loc: ∅
│ └── unescaped: "$VERBOSE"
└── @ SymbolNode (location: (93,0)-(93,4))
├── flags: newline, static_literal, forced_us_ascii_encoding
├── opening_loc: (93,0)-(93,1) = ":"
├── value_loc: (93,1)-(93,4) = "$-K"
├── closing_loc: ∅
└── unescaped: "$-K"

Просмотреть файл

@ -1,422 +0,0 @@
@ ProgramNode (location: (1,0)-(28,9))
├── flags: ∅
├── locals: [:a]
└── statements:
@ StatementsNode (location: (1,0)-(28,9))
├── flags: ∅
└── body: (length: 10)
├── @ HashNode (location: (1,0)-(1,2))
│ ├── flags: newline, static_literal
│ ├── opening_loc: (1,0)-(1,1) = "{"
│ ├── elements: (length: 0)
│ └── closing_loc: (1,1)-(1,2) = "}"
├── @ HashNode (location: (3,0)-(4,1))
│ ├── flags: newline, static_literal
│ ├── opening_loc: (3,0)-(3,1) = "{"
│ ├── elements: (length: 0)
│ └── closing_loc: (4,0)-(4,1) = "}"
├── @ HashNode (location: (6,0)-(6,18))
│ ├── flags: newline
│ ├── opening_loc: (6,0)-(6,1) = "{"
│ ├── elements: (length: 2)
│ │ ├── @ AssocNode (location: (6,2)-(6,8))
│ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ CallNode (location: (6,2)-(6,3))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :a
│ │ │ │ ├── message_loc: (6,2)-(6,3) = "a"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── value:
│ │ │ │ @ CallNode (location: (6,7)-(6,8))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :b
│ │ │ │ ├── message_loc: (6,7)-(6,8) = "b"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── operator_loc: (6,4)-(6,6) = "=>"
│ │ └── @ AssocNode (location: (6,10)-(6,16))
│ │ ├── flags: ∅
│ │ ├── key:
│ │ │ @ CallNode (location: (6,10)-(6,11))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :c
│ │ │ ├── message_loc: (6,10)-(6,11) = "c"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── value:
│ │ │ @ CallNode (location: (6,15)-(6,16))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :d
│ │ │ ├── message_loc: (6,15)-(6,16) = "d"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── operator_loc: (6,12)-(6,14) = "=>"
│ └── closing_loc: (6,17)-(6,18) = "}"
├── @ HashNode (location: (8,0)-(8,15))
│ ├── flags: newline
│ ├── opening_loc: (8,0)-(8,1) = "{"
│ ├── elements: (length: 2)
│ │ ├── @ AssocNode (location: (8,2)-(8,8))
│ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ CallNode (location: (8,2)-(8,3))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :a
│ │ │ │ ├── message_loc: (8,2)-(8,3) = "a"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── value:
│ │ │ │ @ CallNode (location: (8,7)-(8,8))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :b
│ │ │ │ ├── message_loc: (8,7)-(8,8) = "b"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── operator_loc: (8,4)-(8,6) = "=>"
│ │ └── @ AssocSplatNode (location: (8,10)-(8,13))
│ │ ├── flags: ∅
│ │ ├── value:
│ │ │ @ CallNode (location: (8,12)-(8,13))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :c
│ │ │ ├── message_loc: (8,12)-(8,13) = "c"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── operator_loc: (8,10)-(8,12) = "**"
│ └── closing_loc: (8,14)-(8,15) = "}"
├── @ HashNode (location: (10,0)-(16,5))
│ ├── flags: newline
│ ├── opening_loc: (10,0)-(10,1) = "{"
│ ├── elements: (length: 2)
│ │ ├── @ AssocNode (location: (11,6)-(11,10))
│ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (11,6)-(11,8))
│ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (11,6)-(11,7) = "a"
│ │ │ │ ├── closing_loc: (11,7)-(11,8) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ CallNode (location: (11,9)-(11,10))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :b
│ │ │ │ ├── message_loc: (11,9)-(11,10) = "b"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── operator_loc: ∅
│ │ └── @ AssocNode (location: (12,6)-(12,10))
│ │ ├── flags: ∅
│ │ ├── key:
│ │ │ @ SymbolNode (location: (12,6)-(12,8))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (12,6)-(12,7) = "c"
│ │ │ ├── closing_loc: (12,7)-(12,8) = ":"
│ │ │ └── unescaped: "c"
│ │ ├── value:
│ │ │ @ CallNode (location: (12,9)-(12,10))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :d
│ │ │ ├── message_loc: (12,9)-(12,10) = "d"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── operator_loc: ∅
│ └── closing_loc: (16,4)-(16,5) = "}"
├── @ HashNode (location: (18,0)-(18,25))
│ ├── flags: newline
│ ├── opening_loc: (18,0)-(18,1) = "{"
│ ├── elements: (length: 4)
│ │ ├── @ AssocNode (location: (18,2)-(18,6))
│ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (18,2)-(18,4))
│ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (18,2)-(18,3) = "a"
│ │ │ │ ├── closing_loc: (18,3)-(18,4) = ":"
│ │ │ │ └── unescaped: "a"
│ │ │ ├── value:
│ │ │ │ @ CallNode (location: (18,5)-(18,6))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :b
│ │ │ │ ├── message_loc: (18,5)-(18,6) = "b"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── operator_loc: ∅
│ │ ├── @ AssocNode (location: (18,8)-(18,12))
│ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (18,8)-(18,10))
│ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (18,8)-(18,9) = "c"
│ │ │ │ ├── closing_loc: (18,9)-(18,10) = ":"
│ │ │ │ └── unescaped: "c"
│ │ │ ├── value:
│ │ │ │ @ CallNode (location: (18,11)-(18,12))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :d
│ │ │ │ ├── message_loc: (18,11)-(18,12) = "d"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── operator_loc: ∅
│ │ ├── @ AssocSplatNode (location: (18,14)-(18,17))
│ │ │ ├── flags: ∅
│ │ │ ├── value:
│ │ │ │ @ CallNode (location: (18,16)-(18,17))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :e
│ │ │ │ ├── message_loc: (18,16)-(18,17) = "e"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── operator_loc: (18,14)-(18,16) = "**"
│ │ └── @ AssocNode (location: (18,19)-(18,23))
│ │ ├── flags: ∅
│ │ ├── key:
│ │ │ @ SymbolNode (location: (18,19)-(18,21))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (18,19)-(18,20) = "f"
│ │ │ ├── closing_loc: (18,20)-(18,21) = ":"
│ │ │ └── unescaped: "f"
│ │ ├── value:
│ │ │ @ CallNode (location: (18,22)-(18,23))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :g
│ │ │ ├── message_loc: (18,22)-(18,23) = "g"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── operator_loc: ∅
│ └── closing_loc: (18,24)-(18,25) = "}"
├── @ HashNode (location: (20,0)-(20,12))
│ ├── flags: newline
│ ├── opening_loc: (20,0)-(20,1) = "{"
│ ├── elements: (length: 1)
│ │ └── @ AssocNode (location: (20,2)-(20,10))
│ │ ├── flags: ∅
│ │ ├── key:
│ │ │ @ SymbolNode (location: (20,2)-(20,6))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (20,2)-(20,3) = "\""
│ │ │ ├── value_loc: (20,3)-(20,4) = "a"
│ │ │ ├── closing_loc: (20,4)-(20,6) = "\":"
│ │ │ └── unescaped: "a"
│ │ ├── value:
│ │ │ @ CallNode (location: (20,7)-(20,10))
│ │ │ ├── flags: ∅
│ │ │ ├── receiver:
│ │ │ │ @ CallNode (location: (20,8)-(20,10))
│ │ │ │ ├── flags: ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :b?
│ │ │ │ ├── message_loc: (20,8)-(20,10) = "b?"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :!
│ │ │ ├── message_loc: (20,7)-(20,8) = "!"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── operator_loc: ∅
│ └── closing_loc: (20,11)-(20,12) = "}"
├── @ LocalVariableWriteNode (location: (22,0)-(22,5))
│ ├── flags: newline
│ ├── name: :a
│ ├── depth: 0
│ ├── name_loc: (22,0)-(22,1) = "a"
│ ├── value:
│ │ @ IntegerNode (location: (22,4)-(22,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (22,2)-(22,3) = "="
├── @ CallNode (location: (23,0)-(26,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (23,0)-(23,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (23,4)-(26,3))
│ ├── flags: ∅
│ ├── locals: [:b]
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (24,2)-(25,20))
│ │ ├── flags: ∅
│ │ └── body: (length: 2)
│ │ ├── @ LocalVariableWriteNode (location: (24,2)-(24,7))
│ │ │ ├── flags: newline
│ │ │ ├── name: :b
│ │ │ ├── depth: 0
│ │ │ ├── name_loc: (24,2)-(24,3) = "b"
│ │ │ ├── value:
│ │ │ │ @ IntegerNode (location: (24,6)-(24,7))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── operator_loc: (24,4)-(24,5) = "="
│ │ └── @ HashNode (location: (25,2)-(25,20))
│ │ ├── flags: newline
│ │ ├── opening_loc: (25,2)-(25,3) = "{"
│ │ ├── elements: (length: 4)
│ │ │ ├── @ AssocNode (location: (25,4)-(25,6))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (25,4)-(25,6))
│ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (25,4)-(25,5) = "a"
│ │ │ │ │ ├── closing_loc: (25,5)-(25,6) = ":"
│ │ │ │ │ └── unescaped: "a"
│ │ │ │ ├── value:
│ │ │ │ │ @ ImplicitNode (location: (25,4)-(25,6))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── value:
│ │ │ │ │ @ LocalVariableReadNode (location: (25,4)-(25,6))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── name: :a
│ │ │ │ │ └── depth: 1
│ │ │ │ └── operator_loc: ∅
│ │ │ ├── @ AssocNode (location: (25,8)-(25,10))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (25,8)-(25,10))
│ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (25,8)-(25,9) = "b"
│ │ │ │ │ ├── closing_loc: (25,9)-(25,10) = ":"
│ │ │ │ │ └── unescaped: "b"
│ │ │ │ ├── value:
│ │ │ │ │ @ ImplicitNode (location: (25,8)-(25,10))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── value:
│ │ │ │ │ @ LocalVariableReadNode (location: (25,8)-(25,10))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── name: :b
│ │ │ │ │ └── depth: 0
│ │ │ │ └── operator_loc: ∅
│ │ │ ├── @ AssocNode (location: (25,12)-(25,14))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (25,12)-(25,14))
│ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (25,12)-(25,13) = "c"
│ │ │ │ │ ├── closing_loc: (25,13)-(25,14) = ":"
│ │ │ │ │ └── unescaped: "c"
│ │ │ │ ├── value:
│ │ │ │ │ @ ImplicitNode (location: (25,12)-(25,14))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── value:
│ │ │ │ │ @ CallNode (location: (25,12)-(25,14))
│ │ │ │ │ ├── flags: ignore_visibility
│ │ │ │ │ ├── receiver: ∅
│ │ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ │ ├── name: :c
│ │ │ │ │ ├── message_loc: (25,12)-(25,13) = "c"
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── arguments: ∅
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block: ∅
│ │ │ │ └── operator_loc: ∅
│ │ │ └── @ AssocNode (location: (25,16)-(25,18))
│ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (25,16)-(25,18))
│ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (25,16)-(25,17) = "D"
│ │ │ │ ├── closing_loc: (25,17)-(25,18) = ":"
│ │ │ │ └── unescaped: "D"
│ │ │ ├── value:
│ │ │ │ @ ImplicitNode (location: (25,16)-(25,18))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── value:
│ │ │ │ @ ConstantReadNode (location: (25,16)-(25,18))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :D
│ │ │ └── operator_loc: ∅
│ │ └── closing_loc: (25,19)-(25,20) = "}"
│ ├── opening_loc: (23,4)-(23,6) = "do"
│ └── closing_loc: (26,0)-(26,3) = "end"
└── @ HashNode (location: (28,0)-(28,9))
├── flags: newline, static_literal
├── opening_loc: (28,0)-(28,1) = "{"
├── elements: (length: 1)
│ └── @ AssocNode (location: (28,2)-(28,7))
│ ├── flags: static_literal
│ ├── key:
│ │ @ SymbolNode (location: (28,2)-(28,4))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (28,2)-(28,3) = "a"
│ │ ├── closing_loc: (28,3)-(28,4) = ":"
│ │ └── unescaped: "a"
│ ├── value:
│ │ @ IntegerNode (location: (28,5)-(28,7))
│ │ ├── flags: static_literal, decimal
│ │ └── value: -1
│ └── operator_loc: ∅
└── closing_loc: (28,8)-(28,9) = "}"

Просмотреть файл

@ -1,13 +0,0 @@
@ ProgramNode (location: (1,0)-(1,6))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,6))
├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,6))
├── flags: newline
├── opening_loc: (1,0)-(1,6) = "<<TEXT"
├── content_loc: (2,0)-(2,0) = ""
├── closing_loc: (2,0)-(3,0) = "TEXT\n"
└── unescaped: ""

Просмотреть файл

@ -1,13 +0,0 @@
@ ProgramNode (location: (1,0)-(1,6))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,6))
├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,6))
├── flags: newline
├── opening_loc: (1,0)-(1,6) = "<<TEXT"
├── content_loc: (2,0)-(2,0) = ""
├── closing_loc: (2,0)-(3,0) = "TEXT\r\n"
└── unescaped: ""

Просмотреть файл

@ -1,23 +0,0 @@
@ ProgramNode (location: (1,0)-(1,15))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,15))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,15))
├── flags: newline
├── receiver:
│ @ StringNode (location: (1,0)-(1,9))
│ ├── flags: ∅
│ ├── opening_loc: (1,0)-(1,9) = "<<-TARGET"
│ ├── content_loc: (2,0)-(3,0) = " content makes for an obvious error\r\n"
│ ├── closing_loc: (3,0)-(3,6) = "TARGET"
│ └── unescaped: " content makes for an obvious error\n"
├── call_operator_loc: (1,9)-(1,10) = "."
├── name: :chomp
├── message_loc: (1,10)-(1,15) = "chomp"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,69 +0,0 @@
@ ProgramNode (location: (1,0)-(5,25))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(5,25))
├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,25))
│ ├── flags: newline
│ ├── receiver:
│ │ @ StringNode (location: (1,0)-(1,9))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (1,0)-(1,9) = "<<-TARGET"
│ │ ├── content_loc: (2,0)-(2,0) = ""
│ │ ├── closing_loc: (2,0)-(3,0) = "TARGET\n"
│ │ └── unescaped: ""
│ ├── call_operator_loc: (1,9)-(1,10) = "."
│ ├── name: :gsub
│ ├── message_loc: (1,10)-(1,14) = "gsub"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (1,15)-(1,25))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 2)
│ │ ├── @ RegularExpressionNode (location: (1,15)-(1,21))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (1,15)-(1,16) = "/"
│ │ │ ├── content_loc: (1,16)-(1,20) = "^\\s{"
│ │ │ ├── closing_loc: (1,20)-(1,21) = "/"
│ │ │ └── unescaped: "^\\s{"
│ │ └── @ StringNode (location: (1,23)-(1,25))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (1,23)-(1,24) = "'"
│ │ ├── content_loc: (1,24)-(1,24) = ""
│ │ ├── closing_loc: (1,24)-(1,25) = "'"
│ │ └── unescaped: ""
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (5,0)-(5,25))
├── flags: newline
├── receiver:
│ @ StringNode (location: (5,0)-(5,9))
│ ├── flags: ∅
│ ├── opening_loc: (5,0)-(5,9) = "<<-TARGET"
│ ├── content_loc: (6,0)-(6,0) = ""
│ ├── closing_loc: (6,0)-(7,0) = "TARGET\r\n"
│ └── unescaped: ""
├── call_operator_loc: (5,9)-(5,10) = "."
├── name: :gsub
├── message_loc: (5,10)-(5,14) = "gsub"
├── opening_loc: ∅
├── arguments:
│ @ ArgumentsNode (location: (5,15)-(5,25))
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ RegularExpressionNode (location: (5,15)-(5,21))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (5,15)-(5,16) = "/"
│ │ ├── content_loc: (5,16)-(5,20) = "^\\s{"
│ │ ├── closing_loc: (5,20)-(5,21) = "/"
│ │ └── unescaped: "^\\s{"
│ └── @ StringNode (location: (5,23)-(5,25))
│ ├── flags: ∅
│ ├── opening_loc: (5,23)-(5,24) = "'"
│ ├── content_loc: (5,24)-(5,24) = ""
│ ├── closing_loc: (5,24)-(5,25) = "'"
│ └── unescaped: ""
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,13 +0,0 @@
@ ProgramNode (location: (1,0)-(1,6))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,6))
├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,6))
├── flags: newline
├── opening_loc: (1,0)-(1,6) = "<<-END"
├── content_loc: (2,0)-(2,0) = ""
├── closing_loc: (2,0)-(2,3) = "END"
└── unescaped: ""

Просмотреть файл

@ -1,65 +0,0 @@
@ ProgramNode (location: (1,0)-(26,10))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(26,10))
├── flags: ∅
└── body: (length: 6)
├── @ StringNode (location: (1,0)-(1,10))
│ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,10) = "<<-' FOO'"
│ ├── content_loc: (2,0)-(4,0) = "a\nb\n"
│ ├── closing_loc: (4,0)-(5,0) = " FOO\n"
│ └── unescaped: "a\nb\n"
├── @ StringNode (location: (6,0)-(6,10))
│ ├── flags: newline
│ ├── opening_loc: (6,0)-(6,10) = "<<-\" FOO\""
│ ├── content_loc: (7,0)-(9,0) = "a\nb\n"
│ ├── closing_loc: (9,0)-(10,0) = " FOO\n"
│ └── unescaped: "a\nb\n"
├── @ XStringNode (location: (11,0)-(11,10))
│ ├── flags: newline
│ ├── opening_loc: (11,0)-(11,10) = "<<-` FOO`"
│ ├── content_loc: (12,0)-(14,0) = "a\nb\n"
│ ├── closing_loc: (14,0)-(15,0) = " FOO\n"
│ └── unescaped: "a\nb\n"
├── @ StringNode (location: (16,0)-(16,10))
│ ├── flags: newline
│ ├── opening_loc: (16,0)-(16,10) = "<<-' FOO'"
│ ├── content_loc: (17,0)-(19,0) = "a\nb\n"
│ ├── closing_loc: (19,0)-(20,0) = " FOO\n"
│ └── unescaped: "a\nb\n"
├── @ InterpolatedStringNode (location: (21,0)-(21,10))
│ ├── flags: newline, static_literal
│ ├── opening_loc: (21,0)-(21,10) = "<<~' FOO'"
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (22,0)-(23,0))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (22,0)-(23,0) = "a\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "a\n"
│ │ └── @ StringNode (location: (23,0)-(24,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (23,0)-(24,0) = "b\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "b\n"
│ └── closing_loc: (24,0)-(25,0) = " FOO\n"
└── @ InterpolatedStringNode (location: (26,0)-(26,10))
├── flags: newline, static_literal
├── opening_loc: (26,0)-(26,10) = "<<~' FOO'"
├── parts: (length: 2)
│ ├── @ StringNode (location: (27,0)-(28,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (27,0)-(28,0) = "a\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "a\n"
│ └── @ StringNode (location: (28,0)-(29,0))
│ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (28,0)-(29,0) = "b\n"
│ ├── closing_loc: ∅
│ └── unescaped: "b\n"
└── closing_loc: (29,0)-(30,0) = " FOO\n"

Просмотреть файл

@ -1,104 +0,0 @@
@ ProgramNode (location: (1,0)-(12,4))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(12,4))
├── flags: ∅
└── body: (length: 2)
├── @ InterpolatedStringNode (location: (1,0)-(1,7))
│ ├── flags: newline, static_literal, mutable
│ ├── opening_loc: (1,0)-(1,7) = "<<~RUBY"
│ ├── parts: (length: 4)
│ │ ├── @ StringNode (location: (2,0)-(3,0))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (2,0)-(3,0) = "pre\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "pre\n"
│ │ ├── @ EmbeddedStatementsNode (location: (3,0)-(7,1))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,0)-(3,2) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (4,0)-(4,6))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ StringNode (location: (4,0)-(4,6))
│ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: (4,0)-(4,6) = "<<RUBY"
│ │ │ │ ├── content_loc: (5,0)-(6,0) = " hello\n"
│ │ │ │ ├── closing_loc: (6,0)-(7,0) = "RUBY\n"
│ │ │ │ └── unescaped: " hello\n"
│ │ │ └── closing_loc: (7,0)-(7,1) = "}"
│ │ ├── @ StringNode (location: (7,1)-(8,0))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (7,1)-(8,0) = "\n"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "\n"
│ │ └── @ StringNode (location: (8,0)-(9,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (8,0)-(9,0) = "post\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "post\n"
│ └── closing_loc: (9,0)-(10,0) = "RUBY\n"
└── @ InterpolatedStringNode (location: (12,0)-(12,4))
├── flags: newline
├── opening_loc: (12,0)-(12,4) = "<<-A"
├── parts: (length: 2)
│ ├── @ EmbeddedStatementsNode (location: (13,0)-(21,1))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (13,0)-(13,2) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (14,0)-(14,4))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ InterpolatedStringNode (location: (14,0)-(14,4))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (14,0)-(14,4) = "<<-B"
│ │ │ ├── parts: (length: 2)
│ │ │ │ ├── @ EmbeddedStatementsNode (location: (15,0)-(19,1))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (15,0)-(15,2) = "\#{"
│ │ │ │ │ ├── statements:
│ │ │ │ │ │ @ StatementsNode (location: (16,0)-(16,4))
│ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ └── @ InterpolatedStringNode (location: (16,0)-(16,4))
│ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ ├── opening_loc: (16,0)-(16,4) = "<<-C"
│ │ │ │ │ │ ├── parts: (length: 2)
│ │ │ │ │ │ │ ├── @ EmbeddedStatementsNode (location: (17,0)-(17,4))
│ │ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ │ │ ├── opening_loc: (17,0)-(17,2) = "\#{"
│ │ │ │ │ │ │ │ ├── statements:
│ │ │ │ │ │ │ │ │ @ StatementsNode (location: (17,2)-(17,3))
│ │ │ │ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ │ │ │ └── @ IntegerNode (location: (17,2)-(17,3))
│ │ │ │ │ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ │ │ │ │ └── value: 3
│ │ │ │ │ │ │ │ └── closing_loc: (17,3)-(17,4) = "}"
│ │ │ │ │ │ │ └── @ StringNode (location: (17,4)-(18,0))
│ │ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ │ │ ├── content_loc: (17,4)-(18,0) = "\n"
│ │ │ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ │ │ └── unescaped: "\n"
│ │ │ │ │ │ └── closing_loc: (18,0)-(19,0) = "C\n"
│ │ │ │ │ └── closing_loc: (19,0)-(19,1) = "}"
│ │ │ │ └── @ StringNode (location: (19,1)-(20,0))
│ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── content_loc: (19,1)-(20,0) = "\n"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "\n"
│ │ │ └── closing_loc: (20,0)-(21,0) = "B\n"
│ │ └── closing_loc: (21,0)-(21,1) = "}"
│ └── @ StringNode (location: (21,1)-(22,0))
│ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (21,1)-(22,0) = "\n"
│ ├── closing_loc: ∅
│ └── unescaped: "\n"
└── closing_loc: (22,0)-(23,0) = "A\n"

Просмотреть файл

@ -1,72 +0,0 @@
@ ProgramNode (location: (1,0)-(4,8))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,8))
├── flags: ∅
└── body: (length: 2)
├── @ StringNode (location: (1,0)-(1,7))
│ ├── flags: newline
│ ├── opening_loc: (1,0)-(1,7) = "<<-HERE"
│ ├── content_loc: (2,0)-(2,0) = ""
│ ├── closing_loc: (2,0)-(3,0) = "HERE\n"
│ └── unescaped: ""
└── @ InterpolatedStringNode (location: (4,0)-(4,8))
├── flags: newline, static_literal
├── opening_loc: (4,0)-(4,8) = "<<~THERE"
├── parts: (length: 9)
│ ├── @ StringNode (location: (5,0)-(6,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (5,0)-(6,0) = " way over\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "way over\n"
│ ├── @ StringNode (location: (6,0)-(7,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (6,0)-(7,0) = " <<HERE\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "<<HERE\n"
│ ├── @ StringNode (location: (7,0)-(8,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (7,0)-(8,0) = " not here\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " not here\n"
│ ├── @ StringNode (location: (8,0)-(9,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (8,0)-(9,0) = " HERE\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "HERE\n"
│ ├── @ StringNode (location: (9,0)-(10,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (9,0)-(10,0) = "\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "\n"
│ ├── @ StringNode (location: (10,0)-(11,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (10,0)-(11,0) = " <<~BUT\\\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "<<~BUT"
│ ├── @ StringNode (location: (11,0)-(12,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (11,0)-(12,0) = " but\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " but\n"
│ ├── @ StringNode (location: (12,0)-(13,0))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (12,0)-(13,0) = " BUT\n"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "BUT\n"
│ └── @ StringNode (location: (13,0)-(14,0))
│ ├── flags: static_literal, frozen
│ ├── opening_loc: ∅
│ ├── content_loc: (13,0)-(14,0) = " there\n"
│ ├── closing_loc: ∅
│ └── unescaped: " there\n"
└── closing_loc: (14,0)-(15,0) = "THERE\n"

Просмотреть файл

@ -1,13 +0,0 @@
@ ProgramNode (location: (1,0)-(1,6))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,6))
├── flags: ∅
└── body: (length: 1)
└── @ StringNode (location: (1,0)-(1,6))
├── flags: newline
├── opening_loc: (1,0)-(1,6) = "<<-EOE"
├── content_loc: (2,0)-(4,0) = " some\n heredocs\n"
├── closing_loc: (4,0)-(4,3) = "EOE"
└── unescaped: " some\n heredocs\n"

Просмотреть файл

@ -1,611 +0,0 @@
@ ProgramNode (location: (1,0)-(42,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(42,3))
├── flags: ∅
└── body: (length: 13)
├── @ IfNode (location: (1,0)-(1,15))
│ ├── flags: newline
│ ├── if_keyword_loc: (1,0)-(1,2) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (1,3)-(1,7))
│ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (1,9)-(1,10))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (1,9)-(1,10))
│ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 1
│ ├── subsequent: ∅
│ └── end_keyword_loc: (1,12)-(1,15) = "end"
├── @ IfNode (location: (3,0)-(4,12))
│ ├── flags: newline
│ ├── if_keyword_loc: (3,0)-(3,2) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (3,3)-(3,7))
│ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (4,0)-(4,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (4,0)-(4,1))
│ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 1
│ ├── subsequent:
│ │ @ ElseNode (location: (4,2)-(4,12))
│ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (4,2)-(4,6) = "else"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (4,7)-(4,8))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (4,7)-(4,8))
│ │ │ ├── flags: newline, static_literal, decimal
│ │ │ └── value: 2
│ │ └── end_keyword_loc: (4,9)-(4,12) = "end"
│ └── end_keyword_loc: (4,9)-(4,12) = "end"
├── @ IfNode (location: (6,0)-(6,73))
│ ├── flags: newline
│ ├── if_keyword_loc: (6,0)-(6,2) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (6,3)-(6,7))
│ │ └── flags: static_literal
│ ├── then_keyword_loc: (6,8)-(6,12) = "then"
│ ├── statements:
│ │ @ StatementsNode (location: (6,13)-(6,17))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ TrueNode (location: (6,13)-(6,17))
│ │ └── flags: newline, static_literal
│ ├── subsequent:
│ │ @ IfNode (location: (6,18)-(6,73))
│ │ ├── flags: newline
│ │ ├── if_keyword_loc: (6,18)-(6,23) = "elsif"
│ │ ├── predicate:
│ │ │ @ FalseNode (location: (6,24)-(6,29))
│ │ │ └── flags: static_literal
│ │ ├── then_keyword_loc: (6,30)-(6,34) = "then"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (6,35)-(6,40))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ FalseNode (location: (6,35)-(6,40))
│ │ │ └── flags: newline, static_literal
│ │ ├── subsequent:
│ │ │ @ IfNode (location: (6,41)-(6,73))
│ │ │ ├── flags: newline
│ │ │ ├── if_keyword_loc: (6,41)-(6,46) = "elsif"
│ │ │ ├── predicate:
│ │ │ │ @ NilNode (location: (6,47)-(6,50))
│ │ │ │ └── flags: static_literal
│ │ │ ├── then_keyword_loc: (6,51)-(6,55) = "then"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (6,56)-(6,59))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ NilNode (location: (6,56)-(6,59))
│ │ │ │ └── flags: newline, static_literal
│ │ │ ├── subsequent:
│ │ │ │ @ ElseNode (location: (6,60)-(6,73))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── else_keyword_loc: (6,60)-(6,64) = "else"
│ │ │ │ ├── statements:
│ │ │ │ │ @ StatementsNode (location: (6,65)-(6,69))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ SelfNode (location: (6,65)-(6,69))
│ │ │ │ │ └── flags: newline
│ │ │ │ └── end_keyword_loc: (6,70)-(6,73) = "end"
│ │ │ └── end_keyword_loc: (6,70)-(6,73) = "end"
│ │ └── end_keyword_loc: (6,70)-(6,73) = "end"
│ └── end_keyword_loc: (6,70)-(6,73) = "end"
├── @ IfNode (location: (8,0)-(8,9))
│ ├── flags: newline
│ ├── if_keyword_loc: (8,2)-(8,4) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (8,5)-(8,9))
│ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (8,0)-(8,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (8,0)-(8,1))
│ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 1
│ ├── subsequent: ∅
│ └── end_keyword_loc: ∅
├── @ CallNode (location: (10,0)-(10,21))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (10,0)-(10,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (10,4)-(10,21))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (10,6)-(10,19))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IfNode (location: (10,6)-(10,19))
│ │ ├── flags: newline
│ │ ├── if_keyword_loc: (10,12)-(10,14) = "if"
│ │ ├── predicate:
│ │ │ @ TrueNode (location: (10,15)-(10,19))
│ │ │ └── flags: static_literal
│ │ ├── then_keyword_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (10,6)-(10,11))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ BreakNode (location: (10,6)-(10,11))
│ │ │ ├── flags: newline
│ │ │ ├── arguments: ∅
│ │ │ └── keyword_loc: (10,6)-(10,11) = "break"
│ │ ├── subsequent: ∅
│ │ └── end_keyword_loc: ∅
│ ├── opening_loc: (10,4)-(10,5) = "{"
│ └── closing_loc: (10,20)-(10,21) = "}"
├── @ CallNode (location: (12,0)-(12,20))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (12,0)-(12,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (12,4)-(12,20))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (12,6)-(12,18))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IfNode (location: (12,6)-(12,18))
│ │ ├── flags: newline
│ │ ├── if_keyword_loc: (12,11)-(12,13) = "if"
│ │ ├── predicate:
│ │ │ @ TrueNode (location: (12,14)-(12,18))
│ │ │ └── flags: static_literal
│ │ ├── then_keyword_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (12,6)-(12,10))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ NextNode (location: (12,6)-(12,10))
│ │ │ ├── flags: newline
│ │ │ ├── arguments: ∅
│ │ │ └── keyword_loc: (12,6)-(12,10) = "next"
│ │ ├── subsequent: ∅
│ │ └── end_keyword_loc: ∅
│ ├── opening_loc: (12,4)-(12,5) = "{"
│ └── closing_loc: (12,19)-(12,20) = "}"
├── @ IfNode (location: (14,0)-(14,14))
│ ├── flags: newline
│ ├── if_keyword_loc: (14,7)-(14,9) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (14,10)-(14,14))
│ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (14,0)-(14,6))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ReturnNode (location: (14,0)-(14,6))
│ │ ├── flags: newline
│ │ ├── keyword_loc: (14,0)-(14,6) = "return"
│ │ └── arguments: ∅
│ ├── subsequent: ∅
│ └── end_keyword_loc: ∅
├── @ CallNode (location: (16,0)-(16,38))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (16,0)-(16,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (16,4)-(16,38))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (16,6)-(16,36))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IfNode (location: (16,6)-(16,36))
│ │ ├── flags: newline
│ │ ├── if_keyword_loc: (16,6)-(16,8) = "if"
│ │ ├── predicate:
│ │ │ @ CallNode (location: (16,9)-(16,18))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :exit_loop
│ │ │ ├── message_loc: (16,9)-(16,18) = "exit_loop"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── then_keyword_loc: (16,19)-(16,23) = "then"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (16,24)-(16,32))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ BreakNode (location: (16,24)-(16,32))
│ │ │ ├── flags: newline
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (16,30)-(16,32))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (16,30)-(16,32))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 42
│ │ │ └── keyword_loc: (16,24)-(16,29) = "break"
│ │ ├── subsequent: ∅
│ │ └── end_keyword_loc: (16,33)-(16,36) = "end"
│ ├── opening_loc: (16,4)-(16,5) = "{"
│ └── closing_loc: (16,37)-(16,38) = "}"
├── @ IfNode (location: (18,0)-(20,3))
│ ├── flags: newline
│ ├── if_keyword_loc: (18,0)-(18,2) = "if"
│ ├── predicate:
│ │ @ CallNode (location: (18,3)-(18,6))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (18,3)-(18,6) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── then_keyword_loc: (19,0)-(19,4) = "then"
│ ├── statements:
│ │ @ StatementsNode (location: (19,5)-(19,8))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (19,5)-(19,8))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (19,5)-(19,8) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── subsequent: ∅
│ └── end_keyword_loc: (20,0)-(20,3) = "end"
├── @ IfNode (location: (22,0)-(22,11))
│ ├── flags: newline
│ ├── if_keyword_loc: (22,7)-(22,9) = "if"
│ ├── predicate:
│ │ @ CallNode (location: (22,10)-(22,11))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :c
│ │ ├── message_loc: (22,10)-(22,11) = "c"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (22,0)-(22,6))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IfNode (location: (22,0)-(22,6))
│ │ ├── flags: newline
│ │ ├── if_keyword_loc: (22,2)-(22,4) = "if"
│ │ ├── predicate:
│ │ │ @ CallNode (location: (22,5)-(22,6))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (22,5)-(22,6) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── then_keyword_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (22,0)-(22,1))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (22,0)-(22,1))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :a
│ │ │ ├── message_loc: (22,0)-(22,1) = "a"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── subsequent: ∅
│ │ └── end_keyword_loc: ∅
│ ├── subsequent: ∅
│ └── end_keyword_loc: ∅
├── @ IfNode (location: (24,0)-(27,3))
│ ├── flags: newline
│ ├── if_keyword_loc: (24,0)-(24,2) = "if"
│ ├── predicate:
│ │ @ TrueNode (location: (24,3)-(24,7))
│ │ └── flags: static_literal
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (25,2)-(25,6))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (25,2)-(25,6))
│ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (25,2)-(25,3) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (25,4)-(25,6))
│ │ │ ├── flags: contains_keywords
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ KeywordHashNode (location: (25,4)-(25,6))
│ │ │ ├── flags: symbol_keys
│ │ │ └── elements: (length: 1)
│ │ │ └── @ AssocNode (location: (25,4)-(25,6))
│ │ │ ├── flags: ∅
│ │ │ ├── key:
│ │ │ │ @ SymbolNode (location: (25,4)-(25,6))
│ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── value_loc: (25,4)-(25,5) = "b"
│ │ │ │ ├── closing_loc: (25,5)-(25,6) = ":"
│ │ │ │ └── unescaped: "b"
│ │ │ ├── value:
│ │ │ │ @ ImplicitNode (location: (25,4)-(25,6))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── value:
│ │ │ │ @ CallNode (location: (25,4)-(25,6))
│ │ │ │ ├── flags: ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :b
│ │ │ │ ├── message_loc: (25,4)-(25,5) = "b"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── operator_loc: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── subsequent:
│ │ @ ElseNode (location: (26,0)-(27,3))
│ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (26,0)-(26,4) = "else"
│ │ ├── statements: ∅
│ │ └── end_keyword_loc: (27,0)-(27,3) = "end"
│ └── end_keyword_loc: (27,0)-(27,3) = "end"
├── @ IfNode (location: (29,0)-(31,3))
│ ├── flags: newline
│ ├── if_keyword_loc: (29,0)-(29,2) = "if"
│ ├── predicate:
│ │ @ MatchPredicateNode (location: (29,3)-(29,12))
│ │ ├── flags: ∅
│ │ ├── value:
│ │ │ @ CallNode (location: (29,3)-(29,7))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :type
│ │ │ ├── message_loc: (29,3)-(29,7) = "type"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── pattern:
│ │ │ @ IntegerNode (location: (29,11)-(29,12))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: (29,8)-(29,10) = "in"
│ ├── then_keyword_loc: ∅
│ ├── statements: ∅
│ ├── subsequent:
│ │ @ IfNode (location: (30,0)-(31,3))
│ │ ├── flags: newline
│ │ ├── if_keyword_loc: (30,0)-(30,5) = "elsif"
│ │ ├── predicate:
│ │ │ @ MatchPredicateNode (location: (30,6)-(30,15))
│ │ │ ├── flags: ∅
│ │ │ ├── value:
│ │ │ │ @ CallNode (location: (30,6)-(30,10))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :type
│ │ │ │ ├── message_loc: (30,6)-(30,10) = "type"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── pattern:
│ │ │ │ @ ConstantReadNode (location: (30,14)-(30,15))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :B
│ │ │ └── operator_loc: (30,11)-(30,13) = "in"
│ │ ├── then_keyword_loc: ∅
│ │ ├── statements: ∅
│ │ ├── subsequent: ∅
│ │ └── end_keyword_loc: (31,0)-(31,3) = "end"
│ └── end_keyword_loc: (31,0)-(31,3) = "end"
└── @ IfNode (location: (33,0)-(42,3))
├── flags: newline
├── if_keyword_loc: (33,0)-(33,2) = "if"
├── predicate:
│ @ CallNode (location: (33,3)-(33,5))
│ ├── flags: variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :f1
│ ├── message_loc: (33,3)-(33,5) = "f1"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── then_keyword_loc: ∅
├── statements:
│ @ StatementsNode (location: (34,2)-(35,5))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (34,2)-(35,5))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :lambda
│ ├── message_loc: (34,2)-(34,8) = "lambda"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (34,9)-(35,5))
│ ├── flags: ∅
│ ├── locals: [:_]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (34,12)-(34,15))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (34,13)-(34,14))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (34,13)-(34,14))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :_
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (34,12)-(34,13) = "|"
│ │ └── closing_loc: (34,14)-(34,15) = "|"
│ ├── body: ∅
│ ├── opening_loc: (34,9)-(34,11) = "do"
│ └── closing_loc: (35,2)-(35,5) = "end"
├── subsequent:
│ @ IfNode (location: (36,0)-(42,3))
│ ├── flags: newline
│ ├── if_keyword_loc: (36,0)-(36,5) = "elsif"
│ ├── predicate:
│ │ @ CallNode (location: (36,6)-(36,8))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :f2
│ │ ├── message_loc: (36,6)-(36,8) = "f2"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (37,2)-(38,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (37,2)-(38,5))
│ │ ├── flags: newline, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :lambda
│ │ ├── message_loc: (37,2)-(37,8) = "lambda"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block:
│ │ @ BlockNode (location: (37,9)-(38,5))
│ │ ├── flags: ∅
│ │ ├── locals: [:_]
│ │ ├── parameters:
│ │ │ @ BlockParametersNode (location: (37,12)-(37,15))
│ │ │ ├── flags: ∅
│ │ │ ├── parameters:
│ │ │ │ @ ParametersNode (location: (37,13)-(37,14))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── requireds: (length: 1)
│ │ │ │ │ └── @ RequiredParameterNode (location: (37,13)-(37,14))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :_
│ │ │ │ ├── optionals: (length: 0)
│ │ │ │ ├── rest: ∅
│ │ │ │ ├── posts: (length: 0)
│ │ │ │ ├── keywords: (length: 0)
│ │ │ │ ├── keyword_rest: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── locals: (length: 0)
│ │ │ ├── opening_loc: (37,12)-(37,13) = "|"
│ │ │ └── closing_loc: (37,14)-(37,15) = "|"
│ │ ├── body: ∅
│ │ ├── opening_loc: (37,9)-(37,11) = "do"
│ │ └── closing_loc: (38,2)-(38,5) = "end"
│ ├── subsequent:
│ │ @ ElseNode (location: (39,0)-(42,3))
│ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (39,0)-(39,4) = "else"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (40,2)-(41,5))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (40,2)-(41,5))
│ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :lambda
│ │ │ ├── message_loc: (40,2)-(40,8) = "lambda"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (40,9)-(41,5))
│ │ │ ├── flags: ∅
│ │ │ ├── locals: [:_]
│ │ │ ├── parameters:
│ │ │ │ @ BlockParametersNode (location: (40,12)-(40,15))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── parameters:
│ │ │ │ │ @ ParametersNode (location: (40,13)-(40,14))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── requireds: (length: 1)
│ │ │ │ │ │ └── @ RequiredParameterNode (location: (40,13)-(40,14))
│ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── name: :_
│ │ │ │ │ ├── optionals: (length: 0)
│ │ │ │ │ ├── rest: ∅
│ │ │ │ │ ├── posts: (length: 0)
│ │ │ │ │ ├── keywords: (length: 0)
│ │ │ │ │ ├── keyword_rest: ∅
│ │ │ │ │ └── block: ∅
│ │ │ │ ├── locals: (length: 0)
│ │ │ │ ├── opening_loc: (40,12)-(40,13) = "|"
│ │ │ │ └── closing_loc: (40,14)-(40,15) = "|"
│ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (40,9)-(40,11) = "do"
│ │ │ └── closing_loc: (41,2)-(41,5) = "end"
│ │ └── end_keyword_loc: (42,0)-(42,3) = "end"
│ └── end_keyword_loc: (42,0)-(42,3) = "end"
└── end_keyword_loc: (42,0)-(42,3) = "end"

Просмотреть файл

@ -1,21 +0,0 @@
@ ProgramNode (location: (1,4)-(3,7))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,4)-(3,7))
├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,4)-(3,7))
├── flags: newline
├── name: :hi
├── name_loc: (1,8)-(1,10) = "hi"
├── receiver: ∅
├── parameters: ∅
├── body: ∅
├── locals: []
├── def_keyword_loc: (1,4)-(1,7) = "def"
├── operator_loc: ∅
├── lparen_loc: ∅
├── rparen_loc: ∅
├── equal_loc: ∅
└── end_keyword_loc: (3,4)-(3,7) = "end"

Просмотреть файл

@ -1,643 +0,0 @@
@ ProgramNode (location: (1,0)-(63,7))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(63,7))
├── flags: ∅
└── body: (length: 32)
├── @ CallNode (location: (1,0)-(1,2))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (1,1)-(1,2))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :!
│ ├── message_loc: (1,0)-(1,1) = "!"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (3,0)-(3,2))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (3,1)-(3,2))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :~
│ ├── message_loc: (3,0)-(3,1) = "~"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (5,0)-(5,6))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (5,0)-(5,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :!=
│ ├── message_loc: (5,2)-(5,4) = "!="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (5,5)-(5,6))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (5,5)-(5,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (7,0)-(7,6))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (7,0)-(7,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :!~
│ ├── message_loc: (7,2)-(7,4) = "!~"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (7,5)-(7,6))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (7,5)-(7,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (9,0)-(9,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (9,0)-(9,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :%
│ ├── message_loc: (9,2)-(9,3) = "%"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (9,4)-(9,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (9,4)-(9,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (11,0)-(11,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (11,0)-(11,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :&
│ ├── message_loc: (11,2)-(11,3) = "&"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (11,4)-(11,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (11,4)-(11,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (13,0)-(13,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (13,0)-(13,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :*
│ ├── message_loc: (13,2)-(13,3) = "*"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (13,4)-(13,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (13,4)-(13,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (15,0)-(15,4))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (15,0)-(15,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :**
│ ├── message_loc: (15,1)-(15,3) = "**"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (15,3)-(15,4))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (15,3)-(15,4))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (17,0)-(17,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (17,0)-(17,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :+
│ ├── message_loc: (17,2)-(17,3) = "+"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (17,4)-(17,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (17,4)-(17,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (19,0)-(19,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (19,0)-(19,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :-
│ ├── message_loc: (19,2)-(19,3) = "-"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (19,4)-(19,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (19,4)-(19,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (21,0)-(21,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (21,0)-(21,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :/
│ ├── message_loc: (21,2)-(21,3) = "/"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (21,4)-(21,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (21,4)-(21,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (23,0)-(23,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (23,0)-(23,3))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (23,0)-(23,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :/
│ │ ├── message_loc: (23,1)-(23,2) = "/"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (23,2)-(23,3))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (23,2)-(23,3))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :/
│ ├── message_loc: (23,3)-(23,4) = "/"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (23,4)-(23,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (23,4)-(23,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (25,0)-(25,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (25,0)-(25,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :<
│ ├── message_loc: (25,2)-(25,3) = "<"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (25,4)-(25,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (25,4)-(25,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (27,0)-(27,6))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (27,0)-(27,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :<<
│ ├── message_loc: (27,2)-(27,4) = "<<"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (27,5)-(27,6))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (27,5)-(27,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (29,0)-(29,6))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (29,0)-(29,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :<=
│ ├── message_loc: (29,2)-(29,4) = "<="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (29,5)-(29,6))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (29,5)-(29,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (31,0)-(31,7))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (31,0)-(31,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :<=>
│ ├── message_loc: (31,2)-(31,5) = "<=>"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (31,6)-(31,7))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (31,6)-(31,7))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (33,0)-(33,6))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (33,0)-(33,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :==
│ ├── message_loc: (33,2)-(33,4) = "=="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (33,5)-(33,6))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (33,5)-(33,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (35,0)-(35,7))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (35,0)-(35,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :===
│ ├── message_loc: (35,2)-(35,5) = "==="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (35,6)-(35,7))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (35,6)-(35,7))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (37,0)-(37,6))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (37,0)-(37,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :=~
│ ├── message_loc: (37,2)-(37,4) = "=~"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (37,5)-(37,6))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (37,5)-(37,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (39,0)-(39,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (39,0)-(39,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :>
│ ├── message_loc: (39,2)-(39,3) = ">"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (39,4)-(39,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (39,4)-(39,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (41,0)-(41,6))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (41,0)-(41,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :>=
│ ├── message_loc: (41,2)-(41,4) = ">="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (41,5)-(41,6))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (41,5)-(41,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (43,0)-(43,6))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (43,0)-(43,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :>>
│ ├── message_loc: (43,2)-(43,4) = ">>"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (43,5)-(43,6))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (43,5)-(43,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (45,0)-(45,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (45,0)-(45,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :^
│ ├── message_loc: (45,2)-(45,3) = "^"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (45,4)-(45,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (45,4)-(45,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (47,0)-(47,5))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (47,0)-(47,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :|
│ ├── message_loc: (47,2)-(47,3) = "|"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (47,4)-(47,5))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (47,4)-(47,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ AndNode (location: (49,0)-(49,6))
│ ├── flags: newline
│ ├── left:
│ │ @ IntegerNode (location: (49,0)-(49,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── right:
│ │ @ IntegerNode (location: (49,5)-(49,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── operator_loc: (49,2)-(49,4) = "&&"
├── @ AndNode (location: (51,0)-(51,7))
│ ├── flags: newline
│ ├── left:
│ │ @ IntegerNode (location: (51,0)-(51,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── right:
│ │ @ IntegerNode (location: (51,6)-(51,7))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── operator_loc: (51,2)-(51,5) = "and"
├── @ CallNode (location: (53,0)-(53,10))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (53,0)-(53,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :*
│ ├── message_loc: (53,2)-(53,3) = "*"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (53,4)-(53,10))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (53,4)-(53,10))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (53,4)-(53,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :**
│ │ ├── message_loc: (53,6)-(53,8) = "**"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (53,9)-(53,10))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (53,9)-(53,10))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (55,0)-(55,9))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (55,0)-(55,5))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (55,0)-(55,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :*
│ │ ├── message_loc: (55,2)-(55,3) = "*"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (55,4)-(55,5))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (55,4)-(55,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :+
│ ├── message_loc: (55,6)-(55,7) = "+"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (55,8)-(55,9))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (55,8)-(55,9))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ OrNode (location: (57,0)-(57,6))
│ ├── flags: newline
│ ├── left:
│ │ @ IntegerNode (location: (57,0)-(57,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── right:
│ │ @ IntegerNode (location: (57,5)-(57,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── operator_loc: (57,2)-(57,4) = "or"
├── @ OrNode (location: (59,0)-(59,6))
│ ├── flags: newline
│ ├── left:
│ │ @ IntegerNode (location: (59,0)-(59,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── right:
│ │ @ IntegerNode (location: (59,5)-(59,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── operator_loc: (59,2)-(59,4) = "||"
├── @ CallNode (location: (61,0)-(61,9))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (61,0)-(61,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :+
│ ├── message_loc: (61,2)-(61,3) = "+"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (61,4)-(61,9))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (61,4)-(61,9))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (61,4)-(61,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :*
│ │ ├── message_loc: (61,6)-(61,7) = "*"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (61,8)-(61,9))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (61,8)-(61,9))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ ParenthesesNode (location: (63,0)-(63,7))
├── flags: newline
├── body:
│ @ StatementsNode (location: (63,1)-(63,6))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (63,1)-(63,6))
│ ├── flags: newline
│ ├── receiver:
│ │ @ IntegerNode (location: (63,1)-(63,2))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── call_operator_loc: ∅
│ ├── name: :+
│ ├── message_loc: (63,3)-(63,4) = "+"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (63,5)-(63,6))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (63,5)-(63,6))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── closing_loc: ∅
│ └── block: ∅
├── opening_loc: (63,0)-(63,1) = "("
└── closing_loc: (63,6)-(63,7) = ")"

Просмотреть файл

@ -1,191 +0,0 @@
@ ProgramNode (location: (1,0)-(29,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(29,3))
├── flags: ∅
└── body: (length: 10)
├── @ DefNode (location: (1,0)-(2,3))
│ ├── flags: newline
│ ├── name: :def
│ ├── name_loc: (1,4)-(1,7) = "def"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (1,0)-(1,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (2,0)-(2,3) = "end"
├── @ DefNode (location: (4,0)-(5,3))
│ ├── flags: newline
│ ├── name: :ensure
│ ├── name_loc: (4,9)-(4,15) = "ensure"
│ ├── receiver:
│ │ @ SelfNode (location: (4,4)-(4,8))
│ │ └── flags: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (4,0)-(4,3) = "def"
│ ├── operator_loc: (4,8)-(4,9) = "."
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (5,0)-(5,3) = "end"
├── @ CallNode (location: (7,0)-(10,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :private
│ ├── message_loc: (7,0)-(7,7) = "private"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (7,8)-(10,3))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ DefNode (location: (7,8)-(10,3))
│ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ ├── name_loc: (7,12)-(7,15) = "foo"
│ │ ├── receiver: ∅
│ │ ├── parameters: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (8,2)-(9,5))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (8,2)-(9,5))
│ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (8,2)-(8,5) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block:
│ │ │ @ BlockNode (location: (8,6)-(9,5))
│ │ │ ├── flags: ∅
│ │ │ ├── locals: []
│ │ │ ├── parameters: ∅
│ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (8,6)-(8,8) = "do"
│ │ │ └── closing_loc: (9,2)-(9,5) = "end"
│ │ ├── locals: []
│ │ ├── def_keyword_loc: (7,8)-(7,11) = "def"
│ │ ├── operator_loc: ∅
│ │ ├── lparen_loc: ∅
│ │ ├── rparen_loc: ∅
│ │ ├── equal_loc: ∅
│ │ └── end_keyword_loc: (10,0)-(10,3) = "end"
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ DefNode (location: (12,0)-(13,3))
│ ├── flags: newline
│ ├── name: :m
│ ├── name_loc: (12,4)-(12,5) = "m"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (12,6)-(12,14))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (12,6)-(12,7))
│ │ │ ├── flags: ∅
│ │ │ └── name: :a
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ NoKeywordsParameterNode (location: (12,9)-(12,14))
│ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (12,9)-(12,11) = "**"
│ │ │ └── keyword_loc: (12,11)-(12,14) = "nil"
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:a]
│ ├── def_keyword_loc: (12,0)-(12,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (12,5)-(12,6) = "("
│ ├── rparen_loc: (12,14)-(12,15) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (13,0)-(13,3) = "end"
├── @ DefNode (location: (15,0)-(16,3))
│ ├── flags: newline
│ ├── name: :a
│ ├── name_loc: (15,17)-(15,18) = "a"
│ ├── receiver:
│ │ @ SourceEncodingNode (location: (15,4)-(15,16))
│ │ └── flags: static_literal
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (15,0)-(15,3) = "def"
│ ├── operator_loc: (15,16)-(15,17) = "."
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (16,0)-(16,3) = "end"
├── @ StringNode (location: (18,0)-(18,6))
│ ├── flags: newline
│ ├── opening_loc: (18,0)-(18,2) = "%{"
│ ├── content_loc: (18,2)-(18,5) = "abc"
│ ├── closing_loc: (18,5)-(18,6) = "}"
│ └── unescaped: "abc"
├── @ StringNode (location: (20,0)-(20,6))
│ ├── flags: newline
│ ├── opening_loc: (20,0)-(20,2) = "%\""
│ ├── content_loc: (20,2)-(20,5) = "abc"
│ ├── closing_loc: (20,5)-(20,6) = "\""
│ └── unescaped: "abc"
├── @ DefNode (location: (22,0)-(23,3))
│ ├── flags: newline
│ ├── name: :a
│ ├── name_loc: (22,13)-(22,14) = "a"
│ ├── receiver:
│ │ @ SourceFileNode (location: (22,4)-(22,12))
│ │ ├── flags: ∅
│ │ └── filepath: "keyword_method_names.txt"
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (22,0)-(22,3) = "def"
│ ├── operator_loc: (22,12)-(22,13) = "."
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (23,0)-(23,3) = "end"
├── @ DefNode (location: (25,0)-(26,3))
│ ├── flags: newline
│ ├── name: :a
│ ├── name_loc: (25,13)-(25,14) = "a"
│ ├── receiver:
│ │ @ SourceLineNode (location: (25,4)-(25,12))
│ │ └── flags: static_literal
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (25,0)-(25,3) = "def"
│ ├── operator_loc: (25,12)-(25,13) = "."
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (26,0)-(26,3) = "end"
└── @ DefNode (location: (28,0)-(29,3))
├── flags: newline
├── name: :a
├── name_loc: (28,9)-(28,10) = "a"
├── receiver:
│ @ NilNode (location: (28,4)-(28,7))
│ └── flags: static_literal
├── parameters: ∅
├── body: ∅
├── locals: []
├── def_keyword_loc: (28,0)-(28,3) = "def"
├── operator_loc: (28,7)-(28,9) = "::"
├── lparen_loc: ∅
├── rparen_loc: ∅
├── equal_loc: ∅
└── end_keyword_loc: (29,0)-(29,3) = "end"

Просмотреть файл

@ -1,59 +0,0 @@
@ ProgramNode (location: (1,0)-(11,8))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(11,8))
├── flags: ∅
└── body: (length: 6)
├── @ CallNode (location: (1,0)-(1,12))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (1,0)-(1,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,4)-(1,12))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,6)-(1,10))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ RedoNode (location: (1,6)-(1,10))
│ │ └── flags: newline
│ ├── opening_loc: (1,4)-(1,5) = "{"
│ └── closing_loc: (1,11)-(1,12) = "}"
├── @ BeginNode (location: (3,0)-(3,25))
│ ├── flags: newline
│ ├── begin_keyword_loc: (3,0)-(3,5) = "begin"
│ ├── statements: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (3,7)-(3,20))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (3,7)-(3,13) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (3,15)-(3,20))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ RetryNode (location: (3,15)-(3,20))
│ │ │ └── flags: newline
│ │ └── subsequent: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (3,22)-(3,25) = "end"
├── @ SelfNode (location: (5,0)-(5,4))
│ └── flags: newline
├── @ SourceEncodingNode (location: (7,0)-(7,12))
│ └── flags: newline, static_literal
├── @ SourceFileNode (location: (9,0)-(9,8))
│ ├── flags: newline
│ └── filepath: "keywords.txt"
└── @ SourceLineNode (location: (11,0)-(11,8))
└── flags: newline, static_literal

Просмотреть файл

@ -1,221 +0,0 @@
@ ProgramNode (location: (1,0)-(11,18))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(11,18))
├── flags: ∅
└── body: (length: 5)
├── @ LambdaNode (location: (1,0)-(3,4))
│ ├── flags: newline
│ ├── locals: [:foo]
│ ├── operator_loc: (1,0)-(1,2) = "->"
│ ├── opening_loc: (3,2)-(3,3) = "{"
│ ├── closing_loc: (3,3)-(3,4) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (1,2)-(3,1))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (2,2)-(2,5))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (2,2)-(2,5))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :foo
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (1,2)-(1,3) = "("
│ │ └── closing_loc: (3,0)-(3,1) = ")"
│ └── body: ∅
├── @ LambdaNode (location: (5,0)-(5,18))
│ ├── flags: newline
│ ├── locals: [:x]
│ ├── operator_loc: (5,0)-(5,2) = "->"
│ ├── opening_loc: (5,15)-(5,16) = "{"
│ ├── closing_loc: (5,17)-(5,18) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (5,2)-(5,14))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (5,3)-(5,13))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ OptionalKeywordParameterNode (location: (5,3)-(5,13))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :x
│ │ │ │ ├── name_loc: (5,3)-(5,5) = "x:"
│ │ │ │ └── value:
│ │ │ │ @ InterpolatedStringNode (location: (5,6)-(5,13))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (5,6)-(5,7) = "\""
│ │ │ │ ├── parts: (length: 2)
│ │ │ │ │ ├── @ StringNode (location: (5,7)-(5,8))
│ │ │ │ │ │ ├── flags: static_literal, frozen
│ │ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ │ ├── content_loc: (5,7)-(5,8) = "b"
│ │ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ │ └── unescaped: "b"
│ │ │ │ │ └── @ EmbeddedStatementsNode (location: (5,8)-(5,12))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── opening_loc: (5,8)-(5,10) = "\#{"
│ │ │ │ │ ├── statements:
│ │ │ │ │ │ @ StatementsNode (location: (5,10)-(5,11))
│ │ │ │ │ │ ├── flags: ∅
│ │ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ │ └── @ CallNode (location: (5,10)-(5,11))
│ │ │ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ │ │ ├── receiver: ∅
│ │ │ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ │ │ ├── name: :a
│ │ │ │ │ │ ├── message_loc: (5,10)-(5,11) = "a"
│ │ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ │ ├── arguments: ∅
│ │ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ │ └── block: ∅
│ │ │ │ │ └── closing_loc: (5,11)-(5,12) = "}"
│ │ │ │ └── closing_loc: (5,12)-(5,13) = "\""
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (5,2)-(5,3) = "("
│ │ └── closing_loc: (5,13)-(5,14) = ")"
│ └── body: ∅
├── @ LambdaNode (location: (7,0)-(7,15))
│ ├── flags: newline
│ ├── locals: [:a]
│ ├── operator_loc: (7,0)-(7,2) = "->"
│ ├── opening_loc: (7,13)-(7,14) = "{"
│ ├── closing_loc: (7,14)-(7,15) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (7,2)-(7,12))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (7,3)-(7,11))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 1)
│ │ │ │ └── @ OptionalKeywordParameterNode (location: (7,3)-(7,11))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ ├── name_loc: (7,3)-(7,5) = "a:"
│ │ │ │ └── value:
│ │ │ │ @ CallNode (location: (7,6)-(7,11))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── receiver:
│ │ │ │ │ @ CallNode (location: (7,6)-(7,7))
│ │ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ │ ├── receiver: ∅
│ │ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ │ ├── name: :b
│ │ │ │ │ ├── message_loc: (7,6)-(7,7) = "b"
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── arguments: ∅
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :*
│ │ │ │ ├── message_loc: (7,8)-(7,9) = "*"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments:
│ │ │ │ │ @ ArgumentsNode (location: (7,10)-(7,11))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── arguments: (length: 1)
│ │ │ │ │ └── @ IntegerNode (location: (7,10)-(7,11))
│ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 3
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (7,2)-(7,3) = "("
│ │ └── closing_loc: (7,11)-(7,12) = ")"
│ └── body: ∅
├── @ LambdaNode (location: (9,0)-(9,19))
│ ├── flags: newline
│ ├── locals: [:foo]
│ ├── operator_loc: (9,0)-(9,2) = "->"
│ ├── opening_loc: (9,13)-(9,15) = "do"
│ ├── closing_loc: (9,16)-(9,19) = "end"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (9,3)-(9,12))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (9,3)-(9,12))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 0)
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (9,3)-(9,12))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :foo
│ │ │ │ ├── name_loc: (9,3)-(9,6) = "foo"
│ │ │ │ ├── operator_loc: (9,7)-(9,8) = "="
│ │ │ │ └── value:
│ │ │ │ @ CallNode (location: (9,9)-(9,12))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :bar
│ │ │ │ ├── message_loc: (9,9)-(9,12) = "bar"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅
│ └── body: ∅
└── @ LambdaNode (location: (11,0)-(11,18))
├── flags: newline
├── locals: [:foo]
├── operator_loc: (11,0)-(11,2) = "->"
├── opening_loc: (11,12)-(11,14) = "do"
├── closing_loc: (11,15)-(11,18) = "end"
├── parameters:
│ @ BlockParametersNode (location: (11,3)-(11,11))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (11,3)-(11,11))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ OptionalKeywordParameterNode (location: (11,3)-(11,11))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :foo
│ │ │ ├── name_loc: (11,3)-(11,7) = "foo:"
│ │ │ └── value:
│ │ │ @ CallNode (location: (11,8)-(11,11))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (11,8)-(11,11) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: ∅
│ └── closing_loc: ∅
└── body: ∅

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,204 +0,0 @@
@ ProgramNode (location: (1,0)-(18,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(18,3))
├── flags: ∅
└── body: (length: 7)
├── @ ModuleNode (location: (1,0)-(1,18))
│ ├── flags: newline
│ ├── locals: [:a]
│ ├── module_keyword_loc: (1,0)-(1,6) = "module"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (1,7)-(1,8))
│ │ ├── flags: ∅
│ │ └── name: :A
│ ├── body:
│ │ @ StatementsNode (location: (1,9)-(1,14))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ LocalVariableWriteNode (location: (1,9)-(1,14))
│ │ ├── flags: newline
│ │ ├── name: :a
│ │ ├── depth: 0
│ │ ├── name_loc: (1,9)-(1,10) = "a"
│ │ ├── value:
│ │ │ @ IntegerNode (location: (1,13)-(1,14))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: (1,11)-(1,12) = "="
│ ├── end_keyword_loc: (1,15)-(1,18) = "end"
│ └── name: :A
├── @ InterpolatedStringNode (location: (3,0)-(3,18))
│ ├── flags: newline
│ ├── opening_loc: (3,0)-(3,3) = "%Q{"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (3,3)-(3,7))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (3,3)-(3,7) = "aaa "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "aaa "
│ │ ├── @ EmbeddedStatementsNode (location: (3,7)-(3,13))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (3,7)-(3,9) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (3,9)-(3,12))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (3,9)-(3,12))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :bbb
│ │ │ │ ├── message_loc: (3,9)-(3,12) = "bbb"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── closing_loc: (3,12)-(3,13) = "}"
│ │ └── @ StringNode (location: (3,13)-(3,17))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (3,13)-(3,17) = " ccc"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " ccc"
│ └── closing_loc: (3,17)-(3,18) = "}"
├── @ ModuleNode (location: (5,0)-(6,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── module_keyword_loc: (5,0)-(5,6) = "module"
│ ├── constant_path:
│ │ @ ConstantPathNode (location: (5,7)-(5,11))
│ │ ├── flags: ∅
│ │ ├── parent:
│ │ │ @ CallNode (location: (5,7)-(5,8))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :m
│ │ │ ├── message_loc: (5,7)-(5,8) = "m"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── name: :M
│ │ ├── delimiter_loc: (5,8)-(5,10) = "::"
│ │ └── name_loc: (5,10)-(5,11) = "M"
│ ├── body: ∅
│ ├── end_keyword_loc: (6,0)-(6,3) = "end"
│ └── name: :M
├── @ ModuleNode (location: (8,0)-(9,19))
│ ├── flags: newline
│ ├── locals: [:x]
│ ├── module_keyword_loc: (8,0)-(8,6) = "module"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (8,7)-(8,8))
│ │ ├── flags: ∅
│ │ └── name: :A
│ ├── body:
│ │ @ BeginNode (location: (8,0)-(9,19))
│ │ ├── flags: ∅
│ │ ├── begin_keyword_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (9,1)-(9,6))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ LocalVariableWriteNode (location: (9,1)-(9,6))
│ │ │ ├── flags: newline
│ │ │ ├── name: :x
│ │ │ ├── depth: 0
│ │ │ ├── name_loc: (9,1)-(9,2) = "x"
│ │ │ ├── value:
│ │ │ │ @ IntegerNode (location: (9,5)-(9,6))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── operator_loc: (9,3)-(9,4) = "="
│ │ ├── rescue_clause:
│ │ │ @ RescueNode (location: (9,8)-(9,14))
│ │ │ ├── flags: ∅
│ │ │ ├── keyword_loc: (9,8)-(9,14) = "rescue"
│ │ │ ├── exceptions: (length: 0)
│ │ │ ├── operator_loc: ∅
│ │ │ ├── reference: ∅
│ │ │ ├── statements: ∅
│ │ │ └── subsequent: ∅
│ │ ├── else_clause: ∅
│ │ ├── ensure_clause: ∅
│ │ └── end_keyword_loc: (9,16)-(9,19) = "end"
│ ├── end_keyword_loc: (9,16)-(9,19) = "end"
│ └── name: :A
├── @ ModuleNode (location: (11,0)-(12,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── module_keyword_loc: (11,0)-(11,6) = "module"
│ ├── constant_path:
│ │ @ ConstantPathNode (location: (11,7)-(11,10))
│ │ ├── flags: ∅
│ │ ├── parent: ∅
│ │ ├── name: :A
│ │ ├── delimiter_loc: (11,7)-(11,9) = "::"
│ │ └── name_loc: (11,9)-(11,10) = "A"
│ ├── body: ∅
│ ├── end_keyword_loc: (12,0)-(12,3) = "end"
│ └── name: :A
├── @ ModuleNode (location: (14,0)-(15,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── module_keyword_loc: (14,0)-(14,6) = "module"
│ ├── constant_path:
│ │ @ ConstantPathNode (location: (14,7)-(14,13))
│ │ ├── flags: ∅
│ │ ├── parent:
│ │ │ @ CallNode (location: (14,7)-(14,10))
│ │ │ ├── flags: ∅
│ │ │ ├── receiver:
│ │ │ │ @ ConstantReadNode (location: (14,7)-(14,8))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :A
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :[]
│ │ │ ├── message_loc: (14,8)-(14,10) = "[]"
│ │ │ ├── opening_loc: (14,8)-(14,9) = "["
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: (14,9)-(14,10) = "]"
│ │ │ └── block: ∅
│ │ ├── name: :B
│ │ ├── delimiter_loc: (14,10)-(14,12) = "::"
│ │ └── name_loc: (14,12)-(14,13) = "B"
│ ├── body: ∅
│ ├── end_keyword_loc: (15,0)-(15,3) = "end"
│ └── name: :B
└── @ ModuleNode (location: (17,0)-(18,3))
├── flags: newline
├── locals: []
├── module_keyword_loc: (17,0)-(17,6) = "module"
├── constant_path:
│ @ ConstantPathNode (location: (17,7)-(17,14))
│ ├── flags: ∅
│ ├── parent:
│ │ @ CallNode (location: (17,7)-(17,11))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ ConstantReadNode (location: (17,7)-(17,8))
│ │ │ ├── flags: ∅
│ │ │ └── name: :A
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :[]
│ │ ├── message_loc: (17,8)-(17,11) = "[1]"
│ │ ├── opening_loc: (17,8)-(17,9) = "["
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (17,9)-(17,10))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (17,9)-(17,10))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── closing_loc: (17,10)-(17,11) = "]"
│ │ └── block: ∅
│ ├── name: :B
│ ├── delimiter_loc: (17,11)-(17,13) = "::"
│ └── name_loc: (17,13)-(17,14) = "B"
├── body: ∅
├── end_keyword_loc: (18,0)-(18,3) = "end"
└── name: :B

Просмотреть файл

@ -1,111 +0,0 @@
@ ProgramNode (location: (1,0)-(4,26))
├── flags: ∅
├── locals: [:foo, :bar]
└── statements:
@ StatementsNode (location: (1,0)-(4,26))
├── flags: ∅
└── body: (length: 4)
├── @ LocalVariableWriteNode (location: (1,0)-(1,18))
│ ├── flags: newline
│ ├── name: :foo
│ ├── depth: 0
│ ├── name_loc: (1,0)-(1,3) = "foo"
│ ├── value:
│ │ @ RescueModifierNode (location: (1,6)-(1,18))
│ │ ├── flags: ∅
│ │ ├── expression:
│ │ │ @ IntegerNode (location: (1,6)-(1,7))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── keyword_loc: (1,8)-(1,14) = "rescue"
│ │ └── rescue_expression:
│ │ @ NilNode (location: (1,15)-(1,18))
│ │ └── flags: static_literal
│ └── operator_loc: (1,4)-(1,5) = "="
├── @ MultiWriteNode (location: (2,0)-(2,23))
│ ├── flags: newline
│ ├── lefts: (length: 2)
│ │ ├── @ LocalVariableTargetNode (location: (2,0)-(2,3))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :foo
│ │ │ └── depth: 0
│ │ └── @ LocalVariableTargetNode (location: (2,5)-(2,8))
│ │ ├── flags: ∅
│ │ ├── name: :bar
│ │ └── depth: 0
│ ├── rest: ∅
│ ├── rights: (length: 0)
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── operator_loc: (2,9)-(2,10) = "="
│ └── value:
│ @ RescueModifierNode (location: (2,11)-(2,23))
│ ├── flags: ∅
│ ├── expression:
│ │ @ IntegerNode (location: (2,11)-(2,12))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── keyword_loc: (2,13)-(2,19) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (2,20)-(2,23))
│ └── flags: static_literal
├── @ RescueModifierNode (location: (3,0)-(3,21))
│ ├── flags: newline
│ ├── expression:
│ │ @ LocalVariableWriteNode (location: (3,0)-(3,10))
│ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ ├── depth: 0
│ │ ├── name_loc: (3,0)-(3,3) = "foo"
│ │ ├── value:
│ │ │ @ ArrayNode (location: (3,6)-(3,10))
│ │ │ ├── flags: static_literal
│ │ │ ├── elements: (length: 2)
│ │ │ │ ├── @ IntegerNode (location: (3,6)-(3,7))
│ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ └── @ IntegerNode (location: (3,9)-(3,10))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ ├── opening_loc: ∅
│ │ │ └── closing_loc: ∅
│ │ └── operator_loc: (3,4)-(3,5) = "="
│ ├── keyword_loc: (3,11)-(3,17) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (3,18)-(3,21))
│ └── flags: static_literal
└── @ MultiWriteNode (location: (4,0)-(4,26))
├── flags: newline
├── lefts: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (4,0)-(4,3))
│ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (4,5)-(4,8))
│ ├── flags: ∅
│ ├── name: :bar
│ └── depth: 0
├── rest: ∅
├── rights: (length: 0)
├── lparen_loc: ∅
├── rparen_loc: ∅
├── operator_loc: (4,9)-(4,10) = "="
└── value:
@ RescueModifierNode (location: (4,11)-(4,26))
├── flags: ∅
├── expression:
│ @ ArrayNode (location: (4,11)-(4,15))
│ ├── flags: static_literal
│ ├── elements: (length: 2)
│ │ ├── @ IntegerNode (location: (4,11)-(4,12))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── @ IntegerNode (location: (4,14)-(4,15))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── opening_loc: ∅
│ └── closing_loc: ∅
├── keyword_loc: (4,16)-(4,22) = "rescue"
└── rescue_expression:
@ NilNode (location: (4,23)-(4,26))
└── flags: static_literal

Просмотреть файл

@ -1,109 +0,0 @@
@ ProgramNode (location: (3,0)-(41,0))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (3,0)-(41,0))
├── flags: ∅
└── body: (length: 17)
├── @ StringNode (location: (3,0)-(3,6))
│ ├── flags: newline
│ ├── opening_loc: (3,0)-(3,2) = "% "
│ ├── content_loc: (3,2)-(3,5) = "abc"
│ ├── closing_loc: (3,5)-(3,6) = " "
│ └── unescaped: "abc"
├── @ StringNode (location: (4,0)-(4,6))
│ ├── flags: newline
│ ├── opening_loc: (4,0)-(4,2) = "%\t"
│ ├── content_loc: (4,2)-(4,5) = "abc"
│ ├── closing_loc: (4,5)-(4,6) = "\t"
│ └── unescaped: "abc"
├── @ StringNode (location: (5,0)-(5,6))
│ ├── flags: newline
│ ├── opening_loc: (5,0)-(5,2) = "%\v"
│ ├── content_loc: (5,2)-(5,5) = "abc"
│ ├── closing_loc: (5,5)-(5,6) = "\v"
│ └── unescaped: "abc"
├── @ StringNode (location: (6,0)-(6,6))
│ ├── flags: newline
│ ├── opening_loc: (6,0)-(6,2) = "%\r"
│ ├── content_loc: (6,2)-(6,5) = "abc"
│ ├── closing_loc: (6,5)-(6,6) = "\r"
│ └── unescaped: "abc"
├── @ StringNode (location: (7,0)-(9,0))
│ ├── flags: newline
│ ├── opening_loc: (7,0)-(8,0) = "%\n"
│ ├── content_loc: (8,0)-(8,3) = "abc"
│ ├── closing_loc: (8,3)-(9,0) = "\n"
│ └── unescaped: "abc"
├── @ StringNode (location: (10,0)-(10,6))
│ ├── flags: newline
│ ├── opening_loc: (10,0)-(10,2) = "%\u0000"
│ ├── content_loc: (10,2)-(10,5) = "abc"
│ ├── closing_loc: (10,5)-(10,6) = "\u0000"
│ └── unescaped: "abc"
├── @ StringNode (location: (11,0)-(13,0))
│ ├── flags: newline
│ ├── opening_loc: (11,0)-(12,0) = "%\n"
│ ├── content_loc: (12,0)-(12,3) = "abc"
│ ├── closing_loc: (12,3)-(13,0) = "\n"
│ └── unescaped: "abc"
├── @ StringNode (location: (14,0)-(16,0))
│ ├── flags: newline
│ ├── opening_loc: (14,0)-(15,0) = "%\n"
│ ├── content_loc: (15,0)-(15,4) = "\rabc"
│ ├── closing_loc: (15,4)-(16,0) = "\n"
│ └── unescaped: "\rabc"
├── @ StringNode (location: (17,0)-(19,0))
│ ├── flags: newline
│ ├── opening_loc: (17,0)-(18,0) = "%\n"
│ ├── content_loc: (18,0)-(18,4) = "\rabc"
│ ├── closing_loc: (18,4)-(19,0) = "\n"
│ └── unescaped: "\rabc"
├── @ StringNode (location: (20,0)-(22,0))
│ ├── flags: newline
│ ├── opening_loc: (20,0)-(21,0) = "%\n"
│ ├── content_loc: (21,0)-(21,3) = "abc"
│ ├── closing_loc: (21,3)-(22,0) = "\n"
│ └── unescaped: "abc"
├── @ StringNode (location: (23,0)-(23,6))
│ ├── flags: newline
│ ├── opening_loc: (23,0)-(23,2) = "%\r"
│ ├── content_loc: (23,2)-(23,5) = "abc"
│ ├── closing_loc: (23,5)-(23,6) = "\r"
│ └── unescaped: "abc"
├── @ StringNode (location: (24,0)-(26,0))
│ ├── flags: newline
│ ├── opening_loc: (24,0)-(25,0) = "%\n"
│ ├── content_loc: (25,0)-(25,3) = "abc"
│ ├── closing_loc: (25,3)-(26,0) = "\n"
│ └── unescaped: "abc"
├── @ StringNode (location: (27,0)-(29,0))
│ ├── flags: newline
│ ├── opening_loc: (27,0)-(28,0) = "%\n"
│ ├── content_loc: (28,0)-(28,3) = "abc"
│ ├── closing_loc: (28,3)-(29,0) = "\n"
│ └── unescaped: "abc"
├── @ StringNode (location: (30,0)-(32,0))
│ ├── flags: newline
│ ├── opening_loc: (30,0)-(31,0) = "%\n"
│ ├── content_loc: (31,0)-(31,3) = "foo"
│ ├── closing_loc: (31,3)-(32,0) = "\n"
│ └── unescaped: "foo"
├── @ StringNode (location: (33,0)-(35,0))
│ ├── flags: newline
│ ├── opening_loc: (33,0)-(34,0) = "%q\n"
│ ├── content_loc: (34,0)-(34,3) = "foo"
│ ├── closing_loc: (34,3)-(35,0) = "\n"
│ └── unescaped: "foo"
├── @ StringNode (location: (36,0)-(38,0))
│ ├── flags: newline
│ ├── opening_loc: (36,0)-(37,0) = "%Q\n"
│ ├── content_loc: (37,0)-(37,3) = "foo"
│ ├── closing_loc: (37,3)-(38,0) = "\n"
│ └── unescaped: "foo"
└── @ RegularExpressionNode (location: (39,0)-(41,0))
├── flags: newline, static_literal, forced_us_ascii_encoding
├── opening_loc: (39,0)-(40,0) = "%r\n"
├── content_loc: (40,0)-(40,3) = "foo"
├── closing_loc: (40,3)-(41,0) = "\n"
└── unescaped: "foo"

Просмотреть файл

@ -1,372 +0,0 @@
@ ProgramNode (location: (1,0)-(24,15))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(24,15))
├── flags: ∅
└── body: (length: 10)
├── @ CallNode (location: (1,0)-(1,12))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (1,0)-(1,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (1,4)-(1,12))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (1,6)-(1,10))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ NextNode (location: (1,6)-(1,10))
│ │ ├── flags: newline
│ │ ├── arguments: ∅
│ │ └── keyword_loc: (1,6)-(1,10) = "next"
│ ├── opening_loc: (1,4)-(1,5) = "{"
│ └── closing_loc: (1,11)-(1,12) = "}"
├── @ CallNode (location: (3,0)-(3,26))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (3,0)-(3,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (3,4)-(3,26))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (3,6)-(3,24))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ NextNode (location: (3,6)-(3,24))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (3,11)-(3,24))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 3)
│ │ │ ├── @ ParenthesesNode (location: (3,11)-(3,14))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── body:
│ │ │ │ │ @ StatementsNode (location: (3,12)-(3,13))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ IntegerNode (location: (3,12)-(3,13))
│ │ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ ├── opening_loc: (3,11)-(3,12) = "("
│ │ │ │ └── closing_loc: (3,13)-(3,14) = ")"
│ │ │ ├── @ ParenthesesNode (location: (3,16)-(3,19))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── body:
│ │ │ │ │ @ StatementsNode (location: (3,17)-(3,18))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── body: (length: 1)
│ │ │ │ │ └── @ IntegerNode (location: (3,17)-(3,18))
│ │ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ │ └── value: 2
│ │ │ │ ├── opening_loc: (3,16)-(3,17) = "("
│ │ │ │ └── closing_loc: (3,18)-(3,19) = ")"
│ │ │ └── @ ParenthesesNode (location: (3,21)-(3,24))
│ │ │ ├── flags: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (3,22)-(3,23))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (3,22)-(3,23))
│ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ └── value: 3
│ │ │ ├── opening_loc: (3,21)-(3,22) = "("
│ │ │ └── closing_loc: (3,23)-(3,24) = ")"
│ │ └── keyword_loc: (3,6)-(3,10) = "next"
│ ├── opening_loc: (3,4)-(3,5) = "{"
│ └── closing_loc: (3,25)-(3,26) = "}"
├── @ CallNode (location: (5,0)-(5,14))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (5,0)-(5,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (5,4)-(5,14))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (5,6)-(5,12))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ NextNode (location: (5,6)-(5,12))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (5,11)-(5,12))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ IntegerNode (location: (5,11)-(5,12))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── keyword_loc: (5,6)-(5,10) = "next"
│ ├── opening_loc: (5,4)-(5,5) = "{"
│ └── closing_loc: (5,13)-(5,14) = "}"
├── @ CallNode (location: (7,0)-(8,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (7,0)-(7,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (7,4)-(8,3))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (7,6)-(8,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ NextNode (location: (7,6)-(8,1))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (7,11)-(8,1))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 3)
│ │ │ ├── @ IntegerNode (location: (7,11)-(7,12))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── @ IntegerNode (location: (7,14)-(7,15))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ └── @ IntegerNode (location: (8,0)-(8,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ └── keyword_loc: (7,6)-(7,10) = "next"
│ ├── opening_loc: (7,4)-(7,5) = "{"
│ └── closing_loc: (8,2)-(8,3) = "}"
├── @ CallNode (location: (10,0)-(10,20))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (10,0)-(10,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (10,4)-(10,20))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (10,6)-(10,18))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ NextNode (location: (10,6)-(10,18))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (10,11)-(10,18))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 3)
│ │ │ ├── @ IntegerNode (location: (10,11)-(10,12))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── @ IntegerNode (location: (10,14)-(10,15))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ └── @ IntegerNode (location: (10,17)-(10,18))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ └── keyword_loc: (10,6)-(10,10) = "next"
│ ├── opening_loc: (10,4)-(10,5) = "{"
│ └── closing_loc: (10,19)-(10,20) = "}"
├── @ CallNode (location: (12,0)-(12,22))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (12,0)-(12,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (12,4)-(12,22))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (12,6)-(12,20))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ NextNode (location: (12,6)-(12,20))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (12,11)-(12,20))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ ArrayNode (location: (12,11)-(12,20))
│ │ │ ├── flags: static_literal
│ │ │ ├── elements: (length: 3)
│ │ │ │ ├── @ IntegerNode (location: (12,12)-(12,13))
│ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ ├── @ IntegerNode (location: (12,15)-(12,16))
│ │ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ │ └── value: 2
│ │ │ │ └── @ IntegerNode (location: (12,18)-(12,19))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 3
│ │ │ ├── opening_loc: (12,11)-(12,12) = "["
│ │ │ └── closing_loc: (12,19)-(12,20) = "]"
│ │ └── keyword_loc: (12,6)-(12,10) = "next"
│ ├── opening_loc: (12,4)-(12,5) = "{"
│ └── closing_loc: (12,21)-(12,22) = "}"
├── @ CallNode (location: (14,0)-(17,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (14,0)-(14,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (14,4)-(17,3))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (14,6)-(17,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ NextNode (location: (14,6)-(17,1))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (14,10)-(17,1))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ ParenthesesNode (location: (14,10)-(17,1))
│ │ │ ├── flags: ∅
│ │ │ ├── body:
│ │ │ │ @ StatementsNode (location: (15,2)-(16,3))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 2)
│ │ │ │ ├── @ IntegerNode (location: (15,2)-(15,3))
│ │ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ │ └── value: 1
│ │ │ │ └── @ IntegerNode (location: (16,2)-(16,3))
│ │ │ │ ├── flags: newline, static_literal, decimal
│ │ │ │ └── value: 2
│ │ │ ├── opening_loc: (14,10)-(14,11) = "("
│ │ │ └── closing_loc: (17,0)-(17,1) = ")"
│ │ └── keyword_loc: (14,6)-(14,10) = "next"
│ ├── opening_loc: (14,4)-(14,5) = "{"
│ └── closing_loc: (17,2)-(17,3) = "}"
├── @ CallNode (location: (19,0)-(20,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (19,0)-(19,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (19,4)-(20,3))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (19,6)-(20,1))
│ │ ├── flags: ∅
│ │ └── body: (length: 2)
│ │ ├── @ NextNode (location: (19,6)-(19,10))
│ │ │ ├── flags: newline
│ │ │ ├── arguments: ∅
│ │ │ └── keyword_loc: (19,6)-(19,10) = "next"
│ │ └── @ IntegerNode (location: (20,0)-(20,1))
│ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 1
│ ├── opening_loc: (19,4)-(19,5) = "{"
│ └── closing_loc: (20,2)-(20,3) = "}"
├── @ CallNode (location: (22,0)-(22,14))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (22,0)-(22,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (22,4)-(22,14))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (22,6)-(22,12))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ NextNode (location: (22,6)-(22,12))
│ │ ├── flags: newline
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (22,10)-(22,12))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ ParenthesesNode (location: (22,10)-(22,12))
│ │ │ ├── flags: ∅
│ │ │ ├── body: ∅
│ │ │ ├── opening_loc: (22,10)-(22,11) = "("
│ │ │ └── closing_loc: (22,11)-(22,12) = ")"
│ │ └── keyword_loc: (22,6)-(22,10) = "next"
│ ├── opening_loc: (22,4)-(22,5) = "{"
│ └── closing_loc: (22,13)-(22,14) = "}"
└── @ CallNode (location: (24,0)-(24,15))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :tap
├── message_loc: (24,0)-(24,3) = "tap"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (24,4)-(24,15))
├── flags: ∅
├── locals: []
├── parameters: ∅
├── body:
│ @ StatementsNode (location: (24,6)-(24,13))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ NextNode (location: (24,6)-(24,13))
│ ├── flags: newline
│ ├── arguments:
│ │ @ ArgumentsNode (location: (24,10)-(24,13))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ ParenthesesNode (location: (24,10)-(24,13))
│ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (24,11)-(24,12))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (24,11)-(24,12))
│ │ │ ├── flags: newline, static_literal, decimal
│ │ │ └── value: 1
│ │ ├── opening_loc: (24,10)-(24,11) = "("
│ │ └── closing_loc: (24,12)-(24,13) = ")"
│ └── keyword_loc: (24,6)-(24,10) = "next"
├── opening_loc: (24,4)-(24,5) = "{"
└── closing_loc: (24,14)-(24,15) = "}"

Просмотреть файл

@ -1,43 +0,0 @@
@ ProgramNode (location: (1,0)-(12,11))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(12,11))
├── flags: ∅
└── body: (length: 5)
├── @ NilNode (location: (1,0)-(1,3))
│ └── flags: newline, static_literal
├── @ ParenthesesNode (location: (3,0)-(3,2))
│ ├── flags: newline
│ ├── body: ∅
│ ├── opening_loc: (3,0)-(3,1) = "("
│ └── closing_loc: (3,1)-(3,2) = ")"
├── @ ParenthesesNode (location: (5,0)-(8,1))
│ ├── flags: newline
│ ├── body: ∅
│ ├── opening_loc: (5,0)-(5,1) = "("
│ └── closing_loc: (8,0)-(8,1) = ")"
├── @ PostExecutionNode (location: (10,0)-(10,9))
│ ├── flags: newline
│ ├── statements:
│ │ @ StatementsNode (location: (10,6)-(10,7))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (10,6)-(10,7))
│ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 1
│ ├── keyword_loc: (10,0)-(10,3) = "END"
│ ├── opening_loc: (10,4)-(10,5) = "{"
│ └── closing_loc: (10,8)-(10,9) = "}"
└── @ PreExecutionNode (location: (12,0)-(12,11))
├── flags: newline
├── statements:
│ @ StatementsNode (location: (12,8)-(12,9))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ IntegerNode (location: (12,8)-(12,9))
│ ├── flags: newline, static_literal, decimal
│ └── value: 1
├── keyword_loc: (12,0)-(12,5) = "BEGIN"
├── opening_loc: (12,6)-(12,7) = "{"
└── closing_loc: (12,10)-(12,11) = "}"

Просмотреть файл

@ -1,545 +0,0 @@
@ ProgramNode (location: (1,0)-(105,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(105,3))
├── flags: ∅
└── body: (length: 36)
├── @ DefNode (location: (1,0)-(2,3))
│ ├── flags: newline
│ ├── name: :!
│ ├── name_loc: (1,4)-(1,5) = "!"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (1,0)-(1,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (2,0)-(2,3) = "end"
├── @ DefNode (location: (4,0)-(5,3))
│ ├── flags: newline
│ ├── name: :!=
│ ├── name_loc: (4,4)-(4,6) = "!="
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (4,0)-(4,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (5,0)-(5,3) = "end"
├── @ DefNode (location: (7,0)-(8,3))
│ ├── flags: newline
│ ├── name: :!~
│ ├── name_loc: (7,4)-(7,6) = "!~"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (7,0)-(7,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (8,0)-(8,3) = "end"
├── @ DefNode (location: (10,0)-(11,3))
│ ├── flags: newline
│ ├── name: :%
│ ├── name_loc: (10,4)-(10,5) = "%"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (10,0)-(10,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (11,0)-(11,3) = "end"
├── @ DefNode (location: (13,0)-(14,3))
│ ├── flags: newline
│ ├── name: :+
│ ├── name_loc: (13,9)-(13,10) = "+"
│ ├── receiver:
│ │ @ SelfNode (location: (13,4)-(13,8))
│ │ └── flags: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (13,0)-(13,3) = "def"
│ ├── operator_loc: (13,8)-(13,9) = "."
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (14,0)-(14,3) = "end"
├── @ DefNode (location: (16,0)-(17,3))
│ ├── flags: newline
│ ├── name: :&
│ ├── name_loc: (16,4)-(16,5) = "&"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (16,0)-(16,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (17,0)-(17,3) = "end"
├── @ DefNode (location: (19,0)-(20,3))
│ ├── flags: newline
│ ├── name: :*
│ ├── name_loc: (19,4)-(19,5) = "*"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (19,0)-(19,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (20,0)-(20,3) = "end"
├── @ DefNode (location: (22,0)-(23,3))
│ ├── flags: newline
│ ├── name: :**
│ ├── name_loc: (22,4)-(22,6) = "**"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (22,0)-(22,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (23,0)-(23,3) = "end"
├── @ StringNode (location: (25,0)-(25,6))
│ ├── flags: newline
│ ├── opening_loc: (25,0)-(25,2) = "%|"
│ ├── content_loc: (25,2)-(25,5) = "abc"
│ ├── closing_loc: (25,5)-(25,6) = "|"
│ └── unescaped: "abc"
├── @ DefNode (location: (27,0)-(28,3))
│ ├── flags: newline
│ ├── name: :+
│ ├── name_loc: (27,4)-(27,5) = "+"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (27,6)-(27,9))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (27,6)-(27,9))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :b
│ │ │ ├── name_loc: (27,8)-(27,9) = "b"
│ │ │ └── operator_loc: (27,6)-(27,8) = "**"
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:b]
│ ├── def_keyword_loc: (27,0)-(27,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (28,0)-(28,3) = "end"
├── @ DefNode (location: (30,0)-(31,3))
│ ├── flags: newline
│ ├── name: :+
│ ├── name_loc: (30,4)-(30,5) = "+"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (30,0)-(30,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (30,5)-(30,6) = "("
│ ├── rparen_loc: (30,6)-(30,7) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (31,0)-(31,3) = "end"
├── @ DefNode (location: (33,0)-(34,3))
│ ├── flags: newline
│ ├── name: :+
│ ├── name_loc: (33,4)-(33,5) = "+"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (33,6)-(33,7))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (33,6)-(33,7))
│ │ │ ├── flags: ∅
│ │ │ └── name: :b
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:b]
│ ├── def_keyword_loc: (33,0)-(33,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (34,0)-(34,3) = "end"
├── @ DefNode (location: (36,0)-(37,3))
│ ├── flags: newline
│ ├── name: :+
│ ├── name_loc: (36,9)-(36,10) = "+"
│ ├── receiver:
│ │ @ SelfNode (location: (36,4)-(36,8))
│ │ └── flags: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (36,0)-(36,3) = "def"
│ ├── operator_loc: (36,8)-(36,9) = "."
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (37,0)-(37,3) = "end"
├── @ DefNode (location: (39,0)-(40,3))
│ ├── flags: newline
│ ├── name: :+
│ ├── name_loc: (39,4)-(39,5) = "+"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (39,0)-(39,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (40,0)-(40,3) = "end"
├── @ DefNode (location: (42,0)-(43,3))
│ ├── flags: newline
│ ├── name: :+@
│ ├── name_loc: (42,4)-(42,6) = "+@"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (42,0)-(42,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (43,0)-(43,3) = "end"
├── @ DefNode (location: (45,0)-(46,3))
│ ├── flags: newline
│ ├── name: :-
│ ├── name_loc: (45,4)-(45,5) = "-"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (45,0)-(45,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (46,0)-(46,3) = "end"
├── @ DefNode (location: (48,0)-(48,11))
│ ├── flags: newline
│ ├── name: :-
│ ├── name_loc: (48,6)-(48,7) = "-"
│ ├── receiver:
│ │ @ CallNode (location: (48,4)-(48,5))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (48,4)-(48,5) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (48,0)-(48,3) = "def"
│ ├── operator_loc: (48,5)-(48,6) = "."
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (48,8)-(48,11) = "end"
├── @ DefNode (location: (50,0)-(51,3))
│ ├── flags: newline
│ ├── name: :-@
│ ├── name_loc: (50,4)-(50,6) = "-@"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (50,0)-(50,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (51,0)-(51,3) = "end"
├── @ DefNode (location: (53,0)-(54,3))
│ ├── flags: newline
│ ├── name: :/
│ ├── name_loc: (53,4)-(53,5) = "/"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (53,0)-(53,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (54,0)-(54,3) = "end"
├── @ DefNode (location: (56,0)-(57,3))
│ ├── flags: newline
│ ├── name: :<
│ ├── name_loc: (56,4)-(56,5) = "<"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (56,0)-(56,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (57,0)-(57,3) = "end"
├── @ DefNode (location: (59,0)-(60,3))
│ ├── flags: newline
│ ├── name: :<<
│ ├── name_loc: (59,4)-(59,6) = "<<"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (59,0)-(59,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (60,0)-(60,3) = "end"
├── @ DefNode (location: (62,0)-(63,3))
│ ├── flags: newline
│ ├── name: :<=
│ ├── name_loc: (62,4)-(62,6) = "<="
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (62,0)-(62,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (63,0)-(63,3) = "end"
├── @ DefNode (location: (65,0)-(66,3))
│ ├── flags: newline
│ ├── name: :<=>
│ ├── name_loc: (65,4)-(65,7) = "<=>"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (65,0)-(65,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (66,0)-(66,3) = "end"
├── @ DefNode (location: (68,0)-(69,3))
│ ├── flags: newline
│ ├── name: :==
│ ├── name_loc: (68,4)-(68,6) = "=="
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (68,0)-(68,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (69,0)-(69,3) = "end"
├── @ DefNode (location: (71,0)-(72,3))
│ ├── flags: newline
│ ├── name: :===
│ ├── name_loc: (71,4)-(71,7) = "==="
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (71,0)-(71,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (72,0)-(72,3) = "end"
├── @ DefNode (location: (74,0)-(75,3))
│ ├── flags: newline
│ ├── name: :=~
│ ├── name_loc: (74,4)-(74,6) = "=~"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (74,0)-(74,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (75,0)-(75,3) = "end"
├── @ DefNode (location: (77,0)-(78,3))
│ ├── flags: newline
│ ├── name: :>
│ ├── name_loc: (77,4)-(77,5) = ">"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (77,0)-(77,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (78,0)-(78,3) = "end"
├── @ DefNode (location: (80,0)-(81,3))
│ ├── flags: newline
│ ├── name: :>=
│ ├── name_loc: (80,4)-(80,6) = ">="
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (80,0)-(80,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (81,0)-(81,3) = "end"
├── @ DefNode (location: (83,0)-(84,3))
│ ├── flags: newline
│ ├── name: :>>
│ ├── name_loc: (83,4)-(83,6) = ">>"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (83,0)-(83,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (84,0)-(84,3) = "end"
├── @ DefNode (location: (86,0)-(87,3))
│ ├── flags: newline
│ ├── name: :[]
│ ├── name_loc: (86,4)-(86,6) = "[]"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (86,0)-(86,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (87,0)-(87,3) = "end"
├── @ DefNode (location: (89,0)-(90,3))
│ ├── flags: newline
│ ├── name: :[]=
│ ├── name_loc: (89,4)-(89,7) = "[]="
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (89,0)-(89,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (90,0)-(90,3) = "end"
├── @ DefNode (location: (92,0)-(93,3))
│ ├── flags: newline
│ ├── name: :^
│ ├── name_loc: (92,4)-(92,5) = "^"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (92,0)-(92,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (93,0)-(93,3) = "end"
├── @ DefNode (location: (95,0)-(96,3))
│ ├── flags: newline
│ ├── name: :`
│ ├── name_loc: (95,4)-(95,5) = "`"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (95,0)-(95,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (96,0)-(96,3) = "end"
├── @ DefNode (location: (98,0)-(99,3))
│ ├── flags: newline
│ ├── name: :`
│ ├── name_loc: (98,9)-(98,10) = "`"
│ ├── receiver:
│ │ @ SelfNode (location: (98,4)-(98,8))
│ │ └── flags: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (98,0)-(98,3) = "def"
│ ├── operator_loc: (98,8)-(98,9) = "."
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (99,0)-(99,3) = "end"
├── @ DefNode (location: (101,0)-(102,3))
│ ├── flags: newline
│ ├── name: :|
│ ├── name_loc: (101,4)-(101,5) = "|"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body: ∅
│ ├── locals: []
│ ├── def_keyword_loc: (101,0)-(101,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (102,0)-(102,3) = "end"
└── @ DefNode (location: (104,0)-(105,3))
├── flags: newline
├── name: :~
├── name_loc: (104,4)-(104,5) = "~"
├── receiver: ∅
├── parameters: ∅
├── body: ∅
├── locals: []
├── def_keyword_loc: (104,0)-(104,3) = "def"
├── operator_loc: ∅
├── lparen_loc: ∅
├── rparen_loc: ∅
├── equal_loc: ∅
└── end_keyword_loc: (105,0)-(105,3) = "end"

Просмотреть файл

@ -1,360 +0,0 @@
@ ProgramNode (location: (1,0)-(37,16))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(37,16))
├── flags: ∅
└── body: (length: 10)
├── @ AndNode (location: (1,0)-(1,19))
│ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (1,0)-(1,7))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (1,4)-(1,7))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (1,4)-(1,7) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (1,0)-(1,3) = "not"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── right:
│ │ @ CallNode (location: (1,12)-(1,19))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (1,16)-(1,19))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (1,16)-(1,19) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (1,12)-(1,15) = "not"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (1,8)-(1,11) = "and"
├── @ CallNode (location: (3,0)-(3,16))
│ ├── flags: newline
│ ├── receiver:
│ │ @ AndNode (location: (3,4)-(3,15))
│ │ ├── flags: ∅
│ │ ├── left:
│ │ │ @ CallNode (location: (3,4)-(3,7))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (3,4)-(3,7) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── right:
│ │ │ @ CallNode (location: (3,12)-(3,15))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (3,12)-(3,15) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── operator_loc: (3,8)-(3,11) = "and"
│ ├── call_operator_loc: ∅
│ ├── name: :!
│ ├── message_loc: (3,0)-(3,3) = "not"
│ ├── opening_loc: (3,3)-(3,4) = "("
│ ├── arguments: ∅
│ ├── closing_loc: (3,15)-(3,16) = ")"
│ └── block: ∅
├── @ CallNode (location: (5,0)-(5,7))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (5,4)-(5,7))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (5,4)-(5,7) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :!
│ ├── message_loc: (5,0)-(5,3) = "not"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ AndNode (location: (7,0)-(8,5))
│ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (7,0)-(7,7))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (7,4)-(7,7))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (7,4)-(7,7) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (7,0)-(7,3) = "not"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── right:
│ │ @ CallNode (location: (7,12)-(8,5))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (8,2)-(8,5))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (8,2)-(8,5) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (7,12)-(7,15) = "not"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (7,8)-(7,11) = "and"
├── @ AndNode (location: (11,0)-(13,5))
│ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (11,0)-(11,7))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (11,4)-(11,7))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (11,4)-(11,7) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (11,0)-(11,3) = "not"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── right:
│ │ @ CallNode (location: (12,4)-(13,5))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (13,2)-(13,5))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (13,2)-(13,5) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (12,4)-(12,7) = "not"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (11,8)-(11,11) = "and"
├── @ AndNode (location: (16,0)-(20,5))
│ ├── flags: newline
│ ├── left:
│ │ @ CallNode (location: (16,0)-(16,7))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (16,4)-(16,7))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (16,4)-(16,7) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (16,0)-(16,3) = "not"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── right:
│ │ @ CallNode (location: (17,2)-(20,5))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ CallNode (location: (20,2)-(20,5))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (20,2)-(20,5) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (17,2)-(17,5) = "not"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (16,8)-(16,11) = "and"
├── @ CallNode (location: (22,0)-(25,1))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (22,4)-(22,7))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (22,4)-(22,7) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :!
│ ├── message_loc: (22,0)-(22,3) = "not"
│ ├── opening_loc: (22,3)-(22,4) = "("
│ ├── arguments: ∅
│ ├── closing_loc: (25,0)-(25,1) = ")"
│ └── block: ∅
├── @ CallNode (location: (27,0)-(33,3))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (30,0)-(30,3))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (30,0)-(30,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :!
│ ├── message_loc: (27,0)-(27,3) = "not"
│ ├── opening_loc: (27,3)-(27,4) = "("
│ ├── arguments: ∅
│ ├── closing_loc: (33,2)-(33,3) = ")"
│ └── block: ∅
├── @ CallNode (location: (35,0)-(35,14))
│ ├── flags: newline
│ ├── receiver:
│ │ @ FlipFlopNode (location: (35,4)-(35,14))
│ │ ├── flags: ∅
│ │ ├── left:
│ │ │ @ CallNode (location: (35,4)-(35,7))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (35,4)-(35,7) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── right:
│ │ │ @ CallNode (location: (35,11)-(35,14))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (35,11)-(35,14) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── operator_loc: (35,8)-(35,10) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :!
│ ├── message_loc: (35,0)-(35,3) = "not"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (37,0)-(37,16))
├── flags: newline
├── receiver:
│ @ ParenthesesNode (location: (37,4)-(37,16))
│ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (37,5)-(37,15))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ FlipFlopNode (location: (37,5)-(37,15))
│ │ ├── flags: newline
│ │ ├── left:
│ │ │ @ CallNode (location: (37,5)-(37,8))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (37,5)-(37,8) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── right:
│ │ │ @ CallNode (location: (37,12)-(37,15))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (37,12)-(37,15) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── operator_loc: (37,9)-(37,11) = ".."
│ ├── opening_loc: (37,4)-(37,5) = "("
│ └── closing_loc: (37,15)-(37,16) = ")"
├── call_operator_loc: ∅
├── name: :!
├── message_loc: (37,0)-(37,3) = "not"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,147 +0,0 @@
@ ProgramNode (location: (1,0)-(67,5))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(67,5))
├── flags: ∅
└── body: (length: 34)
├── @ IntegerNode (location: (1,0)-(1,1))
│ ├── flags: newline, static_literal, decimal
│ └── value: 0
├── @ IntegerNode (location: (3,0)-(3,1))
│ ├── flags: newline, static_literal, decimal
│ └── value: 1
├── @ FloatNode (location: (5,0)-(5,3))
│ ├── flags: newline, static_literal
│ └── value: 1.0
├── @ IntegerNode (location: (7,0)-(7,1))
│ ├── flags: newline, static_literal, decimal
│ └── value: 2
├── @ IntegerNode (location: (9,0)-(9,3))
│ ├── flags: newline, static_literal, binary
│ └── value: 0
├── @ IntegerNode (location: (11,0)-(11,3))
│ ├── flags: newline, static_literal, binary
│ └── value: 1
├── @ IntegerNode (location: (13,0)-(13,4))
│ ├── flags: newline, static_literal, binary
│ └── value: 2
├── @ IntegerNode (location: (15,0)-(15,3))
│ ├── flags: newline, static_literal, decimal
│ └── value: 0
├── @ IntegerNode (location: (17,0)-(17,3))
│ ├── flags: newline, static_literal, decimal
│ └── value: 1
├── @ IntegerNode (location: (19,0)-(19,3))
│ ├── flags: newline, static_literal, decimal
│ └── value: 2
├── @ IntegerNode (location: (21,0)-(21,2))
│ ├── flags: newline, static_literal, octal
│ └── value: 0
├── @ IntegerNode (location: (23,0)-(23,2))
│ ├── flags: newline, static_literal, octal
│ └── value: 1
├── @ IntegerNode (location: (25,0)-(25,2))
│ ├── flags: newline, static_literal, octal
│ └── value: 2
├── @ IntegerNode (location: (27,0)-(27,3))
│ ├── flags: newline, static_literal, octal
│ └── value: 0
├── @ IntegerNode (location: (29,0)-(29,3))
│ ├── flags: newline, static_literal, octal
│ └── value: 1
├── @ IntegerNode (location: (31,0)-(31,3))
│ ├── flags: newline, static_literal, octal
│ └── value: 2
├── @ IntegerNode (location: (33,0)-(33,3))
│ ├── flags: newline, static_literal, hexadecimal
│ └── value: 0
├── @ IntegerNode (location: (35,0)-(35,3))
│ ├── flags: newline, static_literal, hexadecimal
│ └── value: 1
├── @ IntegerNode (location: (37,0)-(37,3))
│ ├── flags: newline, static_literal, hexadecimal
│ └── value: 2
├── @ ImaginaryNode (location: (39,0)-(39,2))
│ ├── flags: newline, static_literal
│ └── numeric:
│ @ IntegerNode (location: (39,0)-(39,1))
│ ├── flags: static_literal, decimal
│ └── value: 1
├── @ RationalNode (location: (41,0)-(41,2))
│ ├── flags: newline, static_literal, decimal
│ ├── numerator: 1
│ └── denominator: 1
├── @ IntegerNode (location: (43,0)-(43,2))
│ ├── flags: newline, static_literal, decimal
│ └── value: -1
├── @ ImaginaryNode (location: (45,0)-(45,3))
│ ├── flags: newline, static_literal
│ └── numeric:
│ @ RationalNode (location: (45,0)-(45,2))
│ ├── flags: static_literal, decimal
│ ├── numerator: 1
│ └── denominator: 1
├── @ RationalNode (location: (47,0)-(47,4))
│ ├── flags: newline, static_literal, decimal
│ ├── numerator: 6
│ └── denominator: 5
├── @ ImaginaryNode (location: (49,0)-(49,5))
│ ├── flags: newline, static_literal
│ └── numeric:
│ @ RationalNode (location: (49,0)-(49,4))
│ ├── flags: static_literal, decimal
│ ├── numerator: 6
│ └── denominator: 5
├── @ ImaginaryNode (location: (51,0)-(51,4))
│ ├── flags: newline, static_literal
│ └── numeric:
│ @ RationalNode (location: (51,0)-(51,3))
│ ├── flags: static_literal, decimal
│ ├── numerator: -1
│ └── denominator: 1
├── @ RationalNode (location: (53,0)-(53,5))
│ ├── flags: newline, static_literal, decimal
│ ├── numerator: -6
│ └── denominator: 5
├── @ ImaginaryNode (location: (55,0)-(55,6))
│ ├── flags: newline, static_literal
│ └── numeric:
│ @ RationalNode (location: (55,0)-(55,5))
│ ├── flags: static_literal, decimal
│ ├── numerator: -6
│ └── denominator: 5
├── @ RationalNode (location: (57,0)-(57,4))
│ ├── flags: newline, static_literal, octal
│ ├── numerator: 1
│ └── denominator: 1
├── @ ImaginaryNode (location: (59,0)-(59,4))
│ ├── flags: newline, static_literal
│ └── numeric:
│ @ IntegerNode (location: (59,0)-(59,3))
│ ├── flags: static_literal, octal
│ └── value: 1
├── @ ImaginaryNode (location: (61,0)-(61,5))
│ ├── flags: newline, static_literal
│ └── numeric:
│ @ RationalNode (location: (61,0)-(61,4))
│ ├── flags: static_literal, octal
│ ├── numerator: 1
│ └── denominator: 1
├── @ RationalNode (location: (63,0)-(63,4))
│ ├── flags: newline, static_literal, decimal
│ ├── numerator: 1
│ └── denominator: 1
├── @ ImaginaryNode (location: (65,0)-(65,4))
│ ├── flags: newline, static_literal
│ └── numeric:
│ @ IntegerNode (location: (65,0)-(65,3))
│ ├── flags: static_literal, decimal
│ └── value: 1
└── @ ImaginaryNode (location: (67,0)-(67,5))
├── flags: newline, static_literal
└── numeric:
@ RationalNode (location: (67,0)-(67,4))
├── flags: static_literal, binary
├── numerator: 1
└── denominator: 1

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -1,451 +0,0 @@
@ ProgramNode (location: (1,0)-(27,19))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(27,19))
├── flags: ∅
└── body: (length: 10)
├── @ LambdaNode (location: (1,0)-(1,21))
│ ├── flags: newline
│ ├── locals: [:a, :b, :c, :d]
│ ├── operator_loc: (1,0)-(1,2) = "->"
│ ├── opening_loc: (1,16)-(1,17) = "{"
│ ├── closing_loc: (1,20)-(1,21) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (1,3)-(1,15))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (1,4)-(1,5))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (1,4)-(1,5))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 3)
│ │ │ ├── @ BlockLocalVariableNode (location: (1,7)-(1,8))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :b
│ │ │ ├── @ BlockLocalVariableNode (location: (1,10)-(1,11))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :c
│ │ │ └── @ BlockLocalVariableNode (location: (1,13)-(1,14))
│ │ │ ├── flags: ∅
│ │ │ └── name: :d
│ │ ├── opening_loc: (1,3)-(1,4) = "("
│ │ └── closing_loc: (1,14)-(1,15) = ")"
│ └── body:
│ @ StatementsNode (location: (1,18)-(1,19))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableReadNode (location: (1,18)-(1,19))
│ ├── flags: newline
│ ├── name: :b
│ └── depth: 0
├── @ LambdaNode (location: (3,0)-(5,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── operator_loc: (3,0)-(3,2) = "->"
│ ├── opening_loc: (3,3)-(3,5) = "do"
│ ├── closing_loc: (5,0)-(5,3) = "end"
│ ├── parameters: ∅
│ └── body:
│ @ BeginNode (location: (3,3)-(5,3))
│ ├── flags: ∅
│ ├── begin_keyword_loc: ∅
│ ├── statements: ∅
│ ├── rescue_clause: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause:
│ │ @ EnsureNode (location: (4,0)-(5,3))
│ │ ├── flags: ∅
│ │ ├── ensure_keyword_loc: (4,0)-(4,6) = "ensure"
│ │ ├── statements: ∅
│ │ └── end_keyword_loc: (5,0)-(5,3) = "end"
│ └── end_keyword_loc: (5,0)-(5,3) = "end"
├── @ LambdaNode (location: (7,0)-(11,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── operator_loc: (7,0)-(7,2) = "->"
│ ├── opening_loc: (7,3)-(7,5) = "do"
│ ├── closing_loc: (11,0)-(11,3) = "end"
│ ├── parameters: ∅
│ └── body:
│ @ BeginNode (location: (7,3)-(11,3))
│ ├── flags: ∅
│ ├── begin_keyword_loc: ∅
│ ├── statements: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (8,0)-(8,6))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (8,0)-(8,6) = "rescue"
│ │ ├── exceptions: (length: 0)
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements: ∅
│ │ └── subsequent: ∅
│ ├── else_clause:
│ │ @ ElseNode (location: (9,0)-(10,6))
│ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (9,0)-(9,4) = "else"
│ │ ├── statements: ∅
│ │ └── end_keyword_loc: (10,0)-(10,6) = "ensure"
│ ├── ensure_clause:
│ │ @ EnsureNode (location: (10,0)-(11,3))
│ │ ├── flags: ∅
│ │ ├── ensure_keyword_loc: (10,0)-(10,6) = "ensure"
│ │ ├── statements: ∅
│ │ └── end_keyword_loc: (11,0)-(11,3) = "end"
│ └── end_keyword_loc: (11,0)-(11,3) = "end"
├── @ LambdaNode (location: (13,0)-(13,10))
│ ├── flags: newline
│ ├── locals: []
│ ├── operator_loc: (13,0)-(13,2) = "->"
│ ├── opening_loc: (13,3)-(13,4) = "{"
│ ├── closing_loc: (13,9)-(13,10) = "}"
│ ├── parameters: ∅
│ └── body:
│ @ StatementsNode (location: (13,5)-(13,8))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (13,5)-(13,8))
│ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (13,5)-(13,8) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ LambdaNode (location: (15,0)-(15,15))
│ ├── flags: newline
│ ├── locals: []
│ ├── operator_loc: (15,0)-(15,2) = "->"
│ ├── opening_loc: (15,3)-(15,5) = "do"
│ ├── closing_loc: (15,12)-(15,15) = "end"
│ ├── parameters: ∅
│ └── body:
│ @ StatementsNode (location: (15,7)-(15,10))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (15,7)-(15,10))
│ ├── flags: newline, variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (15,7)-(15,10) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ LambdaNode (location: (17,0)-(17,29))
│ ├── flags: newline
│ ├── locals: [:a, :b, :c, :d, :e]
│ ├── operator_loc: (17,0)-(17,2) = "->"
│ ├── opening_loc: (17,24)-(17,25) = "{"
│ ├── closing_loc: (17,28)-(17,29) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (17,3)-(17,23))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (17,3)-(17,23))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (17,3)-(17,4))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (17,6)-(17,11))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :b
│ │ │ │ ├── name_loc: (17,6)-(17,7) = "b"
│ │ │ │ ├── operator_loc: (17,8)-(17,9) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (17,10)-(17,11))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 2)
│ │ │ │ ├── @ RequiredKeywordParameterNode (location: (17,13)-(17,15))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── name: :c
│ │ │ │ │ └── name_loc: (17,13)-(17,15) = "c:"
│ │ │ │ └── @ RequiredKeywordParameterNode (location: (17,17)-(17,19))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :d
│ │ │ │ └── name_loc: (17,17)-(17,19) = "d:"
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block:
│ │ │ @ BlockParameterNode (location: (17,21)-(17,23))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :e
│ │ │ ├── name_loc: (17,22)-(17,23) = "e"
│ │ │ └── operator_loc: (17,21)-(17,22) = "&"
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅
│ └── body:
│ @ StatementsNode (location: (17,26)-(17,27))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableReadNode (location: (17,26)-(17,27))
│ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
├── @ LambdaNode (location: (19,0)-(19,40))
│ ├── flags: newline
│ ├── locals: [:a, :b, :c, :d, :e, :f, :g]
│ ├── operator_loc: (19,0)-(19,2) = "->"
│ ├── opening_loc: (19,35)-(19,36) = "{"
│ ├── closing_loc: (19,39)-(19,40) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (19,3)-(19,34))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (19,4)-(19,33))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (19,4)-(19,5))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (19,7)-(19,12))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :b
│ │ │ │ ├── name_loc: (19,7)-(19,8) = "b"
│ │ │ │ ├── operator_loc: (19,9)-(19,10) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (19,11)-(19,12))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (19,14)-(19,16))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :c
│ │ │ │ ├── name_loc: (19,15)-(19,16) = "c"
│ │ │ │ └── operator_loc: (19,14)-(19,15) = "*"
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 2)
│ │ │ │ ├── @ RequiredKeywordParameterNode (location: (19,18)-(19,20))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── name: :d
│ │ │ │ │ └── name_loc: (19,18)-(19,20) = "d:"
│ │ │ │ └── @ RequiredKeywordParameterNode (location: (19,22)-(19,24))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :e
│ │ │ │ └── name_loc: (19,22)-(19,24) = "e:"
│ │ │ ├── keyword_rest:
│ │ │ │ @ KeywordRestParameterNode (location: (19,26)-(19,29))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :f
│ │ │ │ ├── name_loc: (19,28)-(19,29) = "f"
│ │ │ │ └── operator_loc: (19,26)-(19,28) = "**"
│ │ │ └── block:
│ │ │ @ BlockParameterNode (location: (19,31)-(19,33))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :g
│ │ │ ├── name_loc: (19,32)-(19,33) = "g"
│ │ │ └── operator_loc: (19,31)-(19,32) = "&"
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (19,3)-(19,4) = "("
│ │ └── closing_loc: (19,33)-(19,34) = ")"
│ └── body:
│ @ StatementsNode (location: (19,37)-(19,38))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableReadNode (location: (19,37)-(19,38))
│ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
├── @ LambdaNode (location: (21,0)-(23,3))
│ ├── flags: newline
│ ├── locals: [:a, :b, :c, :d, :e, :f, :g]
│ ├── operator_loc: (21,0)-(21,2) = "->"
│ ├── opening_loc: (21,35)-(21,37) = "do"
│ ├── closing_loc: (23,0)-(23,3) = "end"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (21,3)-(21,34))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (21,4)-(21,33))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (21,4)-(21,5))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 1)
│ │ │ │ └── @ OptionalParameterNode (location: (21,7)-(21,12))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :b
│ │ │ │ ├── name_loc: (21,7)-(21,8) = "b"
│ │ │ │ ├── operator_loc: (21,9)-(21,10) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (21,11)-(21,12))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ ├── rest:
│ │ │ │ @ RestParameterNode (location: (21,14)-(21,16))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :c
│ │ │ │ ├── name_loc: (21,15)-(21,16) = "c"
│ │ │ │ └── operator_loc: (21,14)-(21,15) = "*"
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 2)
│ │ │ │ ├── @ RequiredKeywordParameterNode (location: (21,18)-(21,20))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── name: :d
│ │ │ │ │ └── name_loc: (21,18)-(21,20) = "d:"
│ │ │ │ └── @ RequiredKeywordParameterNode (location: (21,22)-(21,24))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :e
│ │ │ │ └── name_loc: (21,22)-(21,24) = "e:"
│ │ │ ├── keyword_rest:
│ │ │ │ @ KeywordRestParameterNode (location: (21,26)-(21,29))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :f
│ │ │ │ ├── name_loc: (21,28)-(21,29) = "f"
│ │ │ │ └── operator_loc: (21,26)-(21,28) = "**"
│ │ │ └── block:
│ │ │ @ BlockParameterNode (location: (21,31)-(21,33))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :g
│ │ │ ├── name_loc: (21,32)-(21,33) = "g"
│ │ │ └── operator_loc: (21,31)-(21,32) = "&"
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (21,3)-(21,4) = "("
│ │ └── closing_loc: (21,33)-(21,34) = ")"
│ └── body:
│ @ StatementsNode (location: (22,2)-(22,3))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableReadNode (location: (22,2)-(22,3))
│ ├── flags: newline
│ ├── name: :a
│ └── depth: 0
├── @ LambdaNode (location: (25,0)-(25,25))
│ ├── flags: newline
│ ├── locals: [:a]
│ ├── operator_loc: (25,0)-(25,2) = "->"
│ ├── opening_loc: (25,7)-(25,8) = "{"
│ ├── closing_loc: (25,24)-(25,25) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (25,3)-(25,6))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (25,4)-(25,5))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (25,4)-(25,5))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (25,3)-(25,4) = "("
│ │ └── closing_loc: (25,5)-(25,6) = ")"
│ └── body:
│ @ StatementsNode (location: (25,9)-(25,23))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LambdaNode (location: (25,9)-(25,23))
│ ├── flags: newline
│ ├── locals: [:b]
│ ├── operator_loc: (25,9)-(25,11) = "->"
│ ├── opening_loc: (25,14)-(25,15) = "{"
│ ├── closing_loc: (25,22)-(25,23) = "}"
│ ├── parameters:
│ │ @ BlockParametersNode (location: (25,12)-(25,13))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (25,12)-(25,13))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (25,12)-(25,13))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :b
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: ∅
│ │ └── closing_loc: ∅
│ └── body:
│ @ StatementsNode (location: (25,16)-(25,21))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ CallNode (location: (25,16)-(25,21))
│ ├── flags: newline
│ ├── receiver:
│ │ @ LocalVariableReadNode (location: (25,16)-(25,17))
│ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 1
│ ├── call_operator_loc: ∅
│ ├── name: :*
│ ├── message_loc: (25,18)-(25,19) = "*"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (25,20)-(25,21))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ LocalVariableReadNode (location: (25,20)-(25,21))
│ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ LambdaNode (location: (27,0)-(27,19))
├── flags: newline
├── locals: [:a, :b, :c]
├── operator_loc: (27,0)-(27,2) = "->"
├── opening_loc: (27,16)-(27,17) = "{"
├── closing_loc: (27,18)-(27,19) = "}"
├── parameters:
│ @ BlockParametersNode (location: (27,3)-(27,15))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (27,4)-(27,14))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ MultiTargetNode (location: (27,4)-(27,10))
│ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 2)
│ │ │ │ ├── @ RequiredParameterNode (location: (27,5)-(27,6))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :a
│ │ │ │ └── @ RequiredParameterNode (location: (27,8)-(27,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :b
│ │ │ ├── rest: ∅
│ │ │ ├── rights: (length: 0)
│ │ │ ├── lparen_loc: (27,4)-(27,5) = "("
│ │ │ └── rparen_loc: (27,9)-(27,10) = ")"
│ │ ├── optionals: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (27,12)-(27,14))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :c
│ │ │ ├── name_loc: (27,13)-(27,14) = "c"
│ │ │ └── operator_loc: (27,12)-(27,13) = "*"
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (27,3)-(27,4) = "("
│ └── closing_loc: (27,14)-(27,15) = ")"
└── body: ∅

Просмотреть файл

@ -1,15 +0,0 @@
@ ProgramNode (location: (1,0)-(1,4))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
├── flags: ∅
└── body: (length: 1)
└── @ RangeNode (location: (1,0)-(1,4))
├── flags: newline, static_literal, exclude_end
├── left: ∅
├── right:
│ @ IntegerNode (location: (1,3)-(1,4))
│ ├── flags: static_literal, decimal
│ └── value: 2
└── operator_loc: (1,0)-(1,3) = "..."

Просмотреть файл

@ -1,15 +0,0 @@
@ ProgramNode (location: (1,0)-(1,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,3))
├── flags: ∅
└── body: (length: 1)
└── @ RangeNode (location: (1,0)-(1,3))
├── flags: newline, static_literal
├── left: ∅
├── right:
│ @ IntegerNode (location: (1,2)-(1,3))
│ ├── flags: static_literal, decimal
│ └── value: 2
└── operator_loc: (1,0)-(1,2) = ".."

Просмотреть файл

@ -1,15 +0,0 @@
@ ProgramNode (location: (1,0)-(1,4))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,4))
├── flags: ∅
└── body: (length: 1)
└── @ RangeNode (location: (1,0)-(1,4))
├── flags: newline, static_literal, exclude_end
├── left:
│ @ IntegerNode (location: (1,0)-(1,1))
│ ├── flags: static_literal, decimal
│ └── value: 2
├── right: ∅
└── operator_loc: (1,1)-(1,4) = "..."

Просмотреть файл

@ -1,15 +0,0 @@
@ ProgramNode (location: (1,0)-(1,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,3))
├── flags: ∅
└── body: (length: 1)
└── @ RangeNode (location: (1,0)-(1,3))
├── flags: newline, static_literal
├── left:
│ @ IntegerNode (location: (1,0)-(1,1))
│ ├── flags: static_literal, decimal
│ └── value: 2
├── right: ∅
└── operator_loc: (1,1)-(1,3) = ".."

Просмотреть файл

@ -1,548 +0,0 @@
@ ProgramNode (location: (1,0)-(49,7))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(49,7))
├── flags: ∅
└── body: (length: 25)
├── @ ParenthesesNode (location: (1,0)-(1,6))
│ ├── flags: newline
│ ├── body:
│ │ @ StatementsNode (location: (1,1)-(1,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ RangeNode (location: (1,1)-(1,5))
│ │ ├── flags: newline, static_literal, exclude_end
│ │ ├── left: ∅
│ │ ├── right:
│ │ │ @ IntegerNode (location: (1,4)-(1,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── operator_loc: (1,1)-(1,4) = "..."
│ ├── opening_loc: (1,0)-(1,1) = "("
│ └── closing_loc: (1,5)-(1,6) = ")"
├── @ ParenthesesNode (location: (3,0)-(3,5))
│ ├── flags: newline
│ ├── body:
│ │ @ StatementsNode (location: (3,1)-(3,4))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ RangeNode (location: (3,1)-(3,4))
│ │ ├── flags: newline, static_literal
│ │ ├── left: ∅
│ │ ├── right:
│ │ │ @ IntegerNode (location: (3,3)-(3,4))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── operator_loc: (3,1)-(3,3) = ".."
│ ├── opening_loc: (3,0)-(3,1) = "("
│ └── closing_loc: (3,4)-(3,5) = ")"
├── @ RangeNode (location: (5,0)-(5,5))
│ ├── flags: newline, static_literal, exclude_end
│ ├── left:
│ │ @ IntegerNode (location: (5,0)-(5,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── right:
│ │ @ IntegerNode (location: (5,4)-(5,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── operator_loc: (5,1)-(5,4) = "..."
├── @ CallNode (location: (7,0)-(7,9))
│ ├── flags: newline
│ ├── receiver:
│ │ @ CallNode (location: (7,0)-(7,3))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (7,0)-(7,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :[]
│ ├── message_loc: (7,3)-(7,9) = "[...2]"
│ ├── opening_loc: (7,3)-(7,4) = "["
│ ├── arguments:
│ │ @ ArgumentsNode (location: (7,4)-(7,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ RangeNode (location: (7,4)-(7,8))
│ │ ├── flags: static_literal, exclude_end
│ │ ├── left: ∅
│ │ ├── right:
│ │ │ @ IntegerNode (location: (7,7)-(7,8))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── operator_loc: (7,4)-(7,7) = "..."
│ ├── closing_loc: (7,8)-(7,9) = "]"
│ └── block: ∅
├── @ HashNode (location: (9,0)-(9,15))
│ ├── flags: newline
│ ├── opening_loc: (9,0)-(9,1) = "{"
│ ├── elements: (length: 1)
│ │ └── @ AssocNode (location: (9,2)-(9,13))
│ │ ├── flags: ∅
│ │ ├── key:
│ │ │ @ SymbolNode (location: (9,2)-(9,6))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (9,2)-(9,5) = "foo"
│ │ │ ├── closing_loc: (9,5)-(9,6) = ":"
│ │ │ └── unescaped: "foo"
│ │ ├── value:
│ │ │ @ RangeNode (location: (9,7)-(9,13))
│ │ │ ├── flags: exclude_end
│ │ │ ├── left: ∅
│ │ │ ├── right:
│ │ │ │ @ CallNode (location: (9,10)-(9,13))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :bar
│ │ │ │ ├── message_loc: (9,10)-(9,13) = "bar"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── operator_loc: (9,7)-(9,10) = "..."
│ │ └── operator_loc: ∅
│ └── closing_loc: (9,14)-(9,15) = "}"
├── @ ParenthesesNode (location: (11,0)-(11,6))
│ ├── flags: newline
│ ├── body:
│ │ @ StatementsNode (location: (11,1)-(11,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ RangeNode (location: (11,1)-(11,5))
│ │ ├── flags: newline, static_literal, exclude_end
│ │ ├── left:
│ │ │ @ IntegerNode (location: (11,1)-(11,2))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (11,2)-(11,5) = "..."
│ ├── opening_loc: (11,0)-(11,1) = "("
│ └── closing_loc: (11,5)-(11,6) = ")"
├── @ RangeNode (location: (13,0)-(13,4))
│ ├── flags: newline, static_literal
│ ├── left:
│ │ @ IntegerNode (location: (13,0)-(13,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── right:
│ │ @ IntegerNode (location: (13,3)-(13,4))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── operator_loc: (13,1)-(13,3) = ".."
├── @ HashNode (location: (15,0)-(15,14))
│ ├── flags: newline
│ ├── opening_loc: (15,0)-(15,1) = "{"
│ ├── elements: (length: 1)
│ │ └── @ AssocNode (location: (15,2)-(15,12))
│ │ ├── flags: ∅
│ │ ├── key:
│ │ │ @ SymbolNode (location: (15,2)-(15,6))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (15,2)-(15,5) = "foo"
│ │ │ ├── closing_loc: (15,5)-(15,6) = ":"
│ │ │ └── unescaped: "foo"
│ │ ├── value:
│ │ │ @ RangeNode (location: (15,7)-(15,12))
│ │ │ ├── flags: ∅
│ │ │ ├── left: ∅
│ │ │ ├── right:
│ │ │ │ @ CallNode (location: (15,9)-(15,12))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :bar
│ │ │ │ ├── message_loc: (15,9)-(15,12) = "bar"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── operator_loc: (15,7)-(15,9) = ".."
│ │ └── operator_loc: ∅
│ └── closing_loc: (15,13)-(15,14) = "}"
├── @ ParenthesesNode (location: (17,0)-(17,5))
│ ├── flags: newline
│ ├── body:
│ │ @ StatementsNode (location: (17,1)-(17,4))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ RangeNode (location: (17,1)-(17,4))
│ │ ├── flags: newline, static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (17,1)-(17,2))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (17,2)-(17,4) = ".."
│ ├── opening_loc: (17,0)-(17,1) = "("
│ └── closing_loc: (17,4)-(17,5) = ")"
├── @ RangeNode (location: (19,0)-(19,8))
│ ├── flags: newline
│ ├── left:
│ │ @ IntegerNode (location: (19,0)-(19,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── right:
│ │ @ RangeNode (location: (19,5)-(19,8))
│ │ ├── flags: static_literal
│ │ ├── left: ∅
│ │ ├── right:
│ │ │ @ IntegerNode (location: (19,7)-(19,8))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ └── operator_loc: (19,5)-(19,7) = ".."
│ └── operator_loc: (19,2)-(19,4) = ".."
├── @ AndNode (location: (21,0)-(21,8))
│ ├── flags: newline
│ ├── left:
│ │ @ RangeNode (location: (21,0)-(21,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (21,0)-(21,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (21,1)-(21,3) = ".."
│ ├── right:
│ │ @ IntegerNode (location: (21,7)-(21,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── operator_loc: (21,4)-(21,6) = "&&"
├── @ CallNode (location: (23,0)-(23,8))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (23,0)-(23,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (23,0)-(23,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (23,1)-(23,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :==
│ ├── message_loc: (23,4)-(23,6) = "=="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (23,7)-(23,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (23,7)-(23,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (25,0)-(25,8))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (25,0)-(25,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (25,0)-(25,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (25,1)-(25,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :!=
│ ├── message_loc: (25,4)-(25,6) = "!="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (25,7)-(25,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (25,7)-(25,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (27,0)-(27,9))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (27,0)-(27,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (27,0)-(27,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (27,1)-(27,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :===
│ ├── message_loc: (27,4)-(27,7) = "==="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (27,8)-(27,9))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (27,8)-(27,9))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (29,0)-(29,9))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (29,0)-(29,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (29,0)-(29,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (29,1)-(29,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :<=>
│ ├── message_loc: (29,4)-(29,7) = "<=>"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (29,8)-(29,9))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (29,8)-(29,9))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (31,0)-(31,8))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (31,0)-(31,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (31,0)-(31,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (31,1)-(31,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :=~
│ ├── message_loc: (31,4)-(31,6) = "=~"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (31,7)-(31,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (31,7)-(31,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (33,0)-(33,8))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (33,0)-(33,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (33,0)-(33,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (33,1)-(33,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :!~
│ ├── message_loc: (33,4)-(33,6) = "!~"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (33,7)-(33,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (33,7)-(33,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (35,0)-(35,7))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (35,0)-(35,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (35,0)-(35,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (35,1)-(35,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :<
│ ├── message_loc: (35,4)-(35,5) = "<"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (35,6)-(35,7))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (35,6)-(35,7))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (37,0)-(37,7))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (37,0)-(37,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (37,0)-(37,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (37,1)-(37,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :>
│ ├── message_loc: (37,4)-(37,5) = ">"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (37,6)-(37,7))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (37,6)-(37,7))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (39,0)-(39,8))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (39,0)-(39,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (39,0)-(39,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (39,1)-(39,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :<=
│ ├── message_loc: (39,4)-(39,6) = "<="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (39,7)-(39,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (39,7)-(39,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (41,0)-(41,8))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (41,0)-(41,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (41,0)-(41,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (41,1)-(41,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :>=
│ ├── message_loc: (41,4)-(41,6) = ">="
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (41,7)-(41,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (41,7)-(41,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (43,0)-(43,8))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (43,0)-(43,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (43,0)-(43,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (43,1)-(43,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :<<
│ ├── message_loc: (43,4)-(43,6) = "<<"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (43,7)-(43,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (43,7)-(43,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (45,0)-(45,8))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RangeNode (location: (45,0)-(45,3))
│ │ ├── flags: static_literal
│ │ ├── left:
│ │ │ @ IntegerNode (location: (45,0)-(45,1))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── right: ∅
│ │ └── operator_loc: (45,1)-(45,3) = ".."
│ ├── call_operator_loc: ∅
│ ├── name: :>>
│ ├── message_loc: (45,4)-(45,6) = ">>"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (45,7)-(45,8))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ IntegerNode (location: (45,7)-(45,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ RangeNode (location: (47,0)-(47,7))
│ ├── flags: newline
│ ├── left:
│ │ @ IntegerNode (location: (47,0)-(47,1))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── right:
│ │ @ CallNode (location: (47,4)-(47,7))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ IntegerNode (location: (47,6)-(47,7))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :+@
│ │ ├── message_loc: (47,4)-(47,5) = "+"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (47,1)-(47,3) = ".."
└── @ RangeNode (location: (49,0)-(49,7))
├── flags: newline
├── left:
│ @ IntegerNode (location: (49,0)-(49,1))
│ ├── flags: static_literal, decimal
│ └── value: 1
├── right:
│ @ CallNode (location: (49,4)-(49,7))
│ ├── flags: ∅
│ ├── receiver:
│ │ @ IntegerNode (location: (49,6)-(49,7))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── call_operator_loc: ∅
│ ├── name: :-@
│ ├── message_loc: (49,4)-(49,5) = "-"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
└── operator_loc: (49,1)-(49,3) = ".."

Просмотреть файл

@ -1,545 +0,0 @@
@ ProgramNode (location: (1,0)-(48,10))
├── flags: ∅
├── locals: [:foo, :ab, :abc, :a]
└── statements:
@ StatementsNode (location: (1,0)-(48,10))
├── flags: ∅
└── body: (length: 26)
├── @ CallNode (location: (1,0)-(1,9))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (1,0)-(1,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (1,4)-(1,9))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ RegularExpressionNode (location: (1,4)-(1,9))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (1,4)-(1,5) = "/"
│ │ ├── content_loc: (1,5)-(1,8) = "bar"
│ │ ├── closing_loc: (1,8)-(1,9) = "/"
│ │ └── unescaped: "bar"
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ RegularExpressionNode (location: (3,0)-(3,8))
│ ├── flags: newline, static_literal, ignore_case, forced_us_ascii_encoding
│ ├── opening_loc: (3,0)-(3,3) = "%r{"
│ ├── content_loc: (3,3)-(3,6) = "abc"
│ ├── closing_loc: (3,6)-(3,8) = "}i"
│ └── unescaped: "abc"
├── @ RegularExpressionNode (location: (5,0)-(5,5))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (5,0)-(5,1) = "/"
│ ├── content_loc: (5,1)-(5,4) = "a\\b"
│ ├── closing_loc: (5,4)-(5,5) = "/"
│ └── unescaped: "a\\b"
├── @ InterpolatedRegularExpressionNode (location: (7,0)-(7,11))
│ ├── flags: newline
│ ├── opening_loc: (7,0)-(7,1) = "/"
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (7,1)-(7,5))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (7,1)-(7,5) = "aaa "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "aaa "
│ │ └── @ EmbeddedVariableNode (location: (7,5)-(7,10))
│ │ ├── flags: ∅
│ │ ├── operator_loc: (7,5)-(7,6) = "#"
│ │ └── variable:
│ │ @ GlobalVariableReadNode (location: (7,6)-(7,10))
│ │ ├── flags: ∅
│ │ └── name: :$bbb
│ └── closing_loc: (7,10)-(7,11) = "/"
├── @ InterpolatedRegularExpressionNode (location: (9,0)-(9,16))
│ ├── flags: newline
│ ├── opening_loc: (9,0)-(9,1) = "/"
│ ├── parts: (length: 3)
│ │ ├── @ StringNode (location: (9,1)-(9,5))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (9,1)-(9,5) = "aaa "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "aaa "
│ │ ├── @ EmbeddedStatementsNode (location: (9,5)-(9,11))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (9,5)-(9,7) = "\#{"
│ │ │ ├── statements:
│ │ │ │ @ StatementsNode (location: (9,7)-(9,10))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── body: (length: 1)
│ │ │ │ └── @ CallNode (location: (9,7)-(9,10))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :bbb
│ │ │ │ ├── message_loc: (9,7)-(9,10) = "bbb"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── closing_loc: (9,10)-(9,11) = "}"
│ │ └── @ StringNode (location: (9,11)-(9,15))
│ │ ├── flags: static_literal, frozen
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (9,11)-(9,15) = " ccc"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: " ccc"
│ └── closing_loc: (9,15)-(9,16) = "/"
├── @ ArrayNode (location: (11,0)-(11,27))
│ ├── flags: newline
│ ├── elements: (length: 2)
│ │ ├── @ MatchWriteNode (location: (11,1)-(11,21))
│ │ │ ├── flags: ∅
│ │ │ ├── call:
│ │ │ │ @ CallNode (location: (11,1)-(11,21))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── receiver:
│ │ │ │ │ @ RegularExpressionNode (location: (11,1)-(11,14))
│ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ │ ├── opening_loc: (11,1)-(11,2) = "/"
│ │ │ │ │ ├── content_loc: (11,2)-(11,13) = "(?<foo>bar)"
│ │ │ │ │ ├── closing_loc: (11,13)-(11,14) = "/"
│ │ │ │ │ └── unescaped: "(?<foo>bar)"
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :=~
│ │ │ │ ├── message_loc: (11,15)-(11,17) = "=~"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments:
│ │ │ │ │ @ ArgumentsNode (location: (11,18)-(11,21))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── arguments: (length: 1)
│ │ │ │ │ └── @ CallNode (location: (11,18)-(11,21))
│ │ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ │ ├── receiver: ∅
│ │ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ │ ├── name: :baz
│ │ │ │ │ ├── message_loc: (11,18)-(11,21) = "baz"
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── arguments: ∅
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ └── targets: (length: 1)
│ │ │ └── @ LocalVariableTargetNode (location: (11,5)-(11,8))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :foo
│ │ │ └── depth: 0
│ │ └── @ LocalVariableReadNode (location: (11,23)-(11,26))
│ │ ├── flags: ∅
│ │ ├── name: :foo
│ │ └── depth: 0
│ ├── opening_loc: (11,0)-(11,1) = "["
│ └── closing_loc: (11,26)-(11,27) = "]"
├── @ RegularExpressionNode (location: (13,0)-(13,6))
│ ├── flags: newline, static_literal, ignore_case, forced_us_ascii_encoding
│ ├── opening_loc: (13,0)-(13,1) = "/"
│ ├── content_loc: (13,1)-(13,4) = "abc"
│ ├── closing_loc: (13,4)-(13,6) = "/i"
│ └── unescaped: "abc"
├── @ RegularExpressionNode (location: (15,0)-(15,26))
│ ├── flags: newline, static_literal, ignore_case, forced_us_ascii_encoding
│ ├── opening_loc: (15,0)-(15,3) = "%r/"
│ ├── content_loc: (15,3)-(15,24) = "[a-z$._?][\\w$.?\#@~]*:"
│ ├── closing_loc: (15,24)-(15,26) = "/i"
│ └── unescaped: "[a-z$._?][\\w$.?\#@~]*:"
├── @ RegularExpressionNode (location: (17,0)-(17,37))
│ ├── flags: newline, static_literal, ignore_case, forced_us_ascii_encoding
│ ├── opening_loc: (17,0)-(17,3) = "%r/"
│ ├── content_loc: (17,3)-(17,35) = "([a-z$._?][\\w$.?\#@~]*)(\\s+)(equ)"
│ ├── closing_loc: (17,35)-(17,37) = "/i"
│ └── unescaped: "([a-z$._?][\\w$.?\#@~]*)(\\s+)(equ)"
├── @ RegularExpressionNode (location: (19,0)-(19,25))
│ ├── flags: newline, static_literal, ignore_case, forced_us_ascii_encoding
│ ├── opening_loc: (19,0)-(19,3) = "%r/"
│ ├── content_loc: (19,3)-(19,23) = "[a-z$._?][\\w$.?\#@~]*"
│ ├── closing_loc: (19,23)-(19,25) = "/i"
│ └── unescaped: "[a-z$._?][\\w$.?\#@~]*"
├── @ RegularExpressionNode (location: (21,0)-(24,1))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (21,0)-(21,3) = "%r("
│ ├── content_loc: (21,3)-(24,0) = "\n(?:[\#$%_']|\\(\\)|\\(,\\)|\\[\\]|[0-9])*\n (?:[\#$%_']+)\n"
│ ├── closing_loc: (24,0)-(24,1) = ")"
│ └── unescaped: "\n(?:[\#$%_']|\\(\\)|\\(,\\)|\\[\\]|[0-9])*\n (?:[\#$%_']+)\n"
├── @ CallNode (location: (26,0)-(26,16))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RegularExpressionNode (location: (26,0)-(26,8))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (26,0)-(26,1) = "/"
│ │ ├── content_loc: (26,1)-(26,7) = "(?#\\))"
│ │ ├── closing_loc: (26,7)-(26,8) = "/"
│ │ └── unescaped: "(?#\\))"
│ ├── call_operator_loc: ∅
│ ├── name: :=~
│ ├── message_loc: (26,9)-(26,11) = "=~"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (26,12)-(26,16))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ StringNode (location: (26,12)-(26,16))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (26,12)-(26,13) = "\""
│ │ ├── content_loc: (26,13)-(26,15) = "hi"
│ │ ├── closing_loc: (26,15)-(26,16) = "\""
│ │ └── unescaped: "hi"
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ RegularExpressionNode (location: (28,0)-(28,9))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (28,0)-(28,3) = "%r#"
│ ├── content_loc: (28,3)-(28,8) = "pound"
│ ├── closing_loc: (28,8)-(28,9) = "#"
│ └── unescaped: "pound"
├── @ InterpolatedRegularExpressionNode (location: (30,0)-(30,13))
│ ├── flags: newline, once
│ ├── opening_loc: (30,0)-(30,1) = "/"
│ ├── parts: (length: 2)
│ │ ├── @ StringNode (location: (30,1)-(30,5))
│ │ │ ├── flags: static_literal, frozen
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (30,1)-(30,5) = "aaa "
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "aaa "
│ │ └── @ EmbeddedStatementsNode (location: (30,5)-(30,11))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (30,5)-(30,7) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (30,7)-(30,10))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (30,7)-(30,10))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bbb
│ │ │ ├── message_loc: (30,7)-(30,10) = "bbb"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── closing_loc: (30,10)-(30,11) = "}"
│ └── closing_loc: (30,11)-(30,13) = "/o"
├── @ MatchWriteNode (location: (32,0)-(33,10))
│ ├── flags: newline
│ ├── call:
│ │ @ CallNode (location: (32,0)-(33,10))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ RegularExpressionNode (location: (32,0)-(33,4))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (32,0)-(32,1) = "/"
│ │ │ ├── content_loc: (32,1)-(33,3) = "(?<a\\\nb>)"
│ │ │ ├── closing_loc: (33,3)-(33,4) = "/"
│ │ │ └── unescaped: "(?<ab>)"
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :=~
│ │ ├── message_loc: (33,5)-(33,7) = "=~"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (33,8)-(33,10))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ StringNode (location: (33,8)-(33,10))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (33,8)-(33,9) = "\""
│ │ │ ├── content_loc: (33,9)-(33,9) = ""
│ │ │ ├── closing_loc: (33,9)-(33,10) = "\""
│ │ │ └── unescaped: ""
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── targets: (length: 1)
│ └── @ LocalVariableTargetNode (location: (32,0)-(33,4))
│ ├── flags: ∅
│ ├── name: :ab
│ └── depth: 0
├── @ LocalVariableReadNode (location: (33,12)-(33,14))
│ ├── flags: newline
│ ├── name: :ab
│ └── depth: 0
├── @ MatchWriteNode (location: (35,0)-(35,24))
│ ├── flags: newline
│ ├── call:
│ │ @ CallNode (location: (35,0)-(35,24))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ RegularExpressionNode (location: (35,0)-(35,18))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (35,0)-(35,1) = "/"
│ │ │ ├── content_loc: (35,1)-(35,17) = "(?<abc>)(?<abc>)"
│ │ │ ├── closing_loc: (35,17)-(35,18) = "/"
│ │ │ └── unescaped: "(?<abc>)(?<abc>)"
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :=~
│ │ ├── message_loc: (35,19)-(35,21) = "=~"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (35,22)-(35,24))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ StringNode (location: (35,22)-(35,24))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (35,22)-(35,23) = "\""
│ │ │ ├── content_loc: (35,23)-(35,23) = ""
│ │ │ ├── closing_loc: (35,23)-(35,24) = "\""
│ │ │ └── unescaped: ""
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── targets: (length: 1)
│ └── @ LocalVariableTargetNode (location: (35,4)-(35,7))
│ ├── flags: ∅
│ ├── name: :abc
│ └── depth: 0
├── @ LocalVariableReadNode (location: (35,26)-(35,29))
│ ├── flags: newline
│ ├── name: :abc
│ └── depth: 0
├── @ CallNode (location: (37,0)-(37,16))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RegularExpressionNode (location: (37,0)-(37,10))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (37,0)-(37,1) = "/"
│ │ ├── content_loc: (37,1)-(37,9) = "(?<a b>)"
│ │ ├── closing_loc: (37,9)-(37,10) = "/"
│ │ └── unescaped: "(?<a b>)"
│ ├── call_operator_loc: ∅
│ ├── name: :=~
│ ├── message_loc: (37,11)-(37,13) = "=~"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (37,14)-(37,16))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ StringNode (location: (37,14)-(37,16))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (37,14)-(37,15) = "\""
│ │ ├── content_loc: (37,15)-(37,15) = ""
│ │ ├── closing_loc: (37,15)-(37,16) = "\""
│ │ └── unescaped: ""
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ LocalVariableWriteNode (location: (39,0)-(39,5))
│ ├── flags: newline
│ ├── name: :a
│ ├── depth: 0
│ ├── name_loc: (39,0)-(39,1) = "a"
│ ├── value:
│ │ @ IntegerNode (location: (39,4)-(39,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (39,2)-(39,3) = "="
├── @ CallNode (location: (40,0)-(40,24))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (40,0)-(40,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (40,4)-(40,24))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (40,6)-(40,22))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ MatchWriteNode (location: (40,6)-(40,22))
│ │ ├── flags: newline
│ │ ├── call:
│ │ │ @ CallNode (location: (40,6)-(40,22))
│ │ │ ├── flags: ∅
│ │ │ ├── receiver:
│ │ │ │ @ RegularExpressionNode (location: (40,6)-(40,14))
│ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: (40,6)-(40,7) = "/"
│ │ │ │ ├── content_loc: (40,7)-(40,13) = "(?<a>)"
│ │ │ │ ├── closing_loc: (40,13)-(40,14) = "/"
│ │ │ │ └── unescaped: "(?<a>)"
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :=~
│ │ │ ├── message_loc: (40,15)-(40,17) = "=~"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (40,18)-(40,22))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ CallNode (location: (40,18)-(40,22))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :to_s
│ │ │ │ ├── message_loc: (40,18)-(40,22) = "to_s"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── targets: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (40,10)-(40,11))
│ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 1
│ ├── opening_loc: (40,4)-(40,5) = "{"
│ └── closing_loc: (40,23)-(40,24) = "}"
├── @ MatchWriteNode (location: (42,0)-(42,16))
│ ├── flags: newline
│ ├── call:
│ │ @ CallNode (location: (42,0)-(42,16))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ RegularExpressionNode (location: (42,0)-(42,10))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (42,0)-(42,1) = "/"
│ │ │ ├── content_loc: (42,1)-(42,9) = "(?<foo>)"
│ │ │ ├── closing_loc: (42,9)-(42,10) = "/"
│ │ │ └── unescaped: "(?<foo>)"
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :=~
│ │ ├── message_loc: (42,11)-(42,13) = "=~"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (42,14)-(42,16))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ StringNode (location: (42,14)-(42,16))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (42,14)-(42,15) = "\""
│ │ │ ├── content_loc: (42,15)-(42,15) = ""
│ │ │ ├── closing_loc: (42,15)-(42,16) = "\""
│ │ │ └── unescaped: ""
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── targets: (length: 1)
│ └── @ LocalVariableTargetNode (location: (42,4)-(42,7))
│ ├── flags: ∅
│ ├── name: :foo
│ └── depth: 0
├── @ CallNode (location: (43,0)-(43,16))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RegularExpressionNode (location: (43,0)-(43,10))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (43,0)-(43,1) = "/"
│ │ ├── content_loc: (43,1)-(43,9) = "(?<Foo>)"
│ │ ├── closing_loc: (43,9)-(43,10) = "/"
│ │ └── unescaped: "(?<Foo>)"
│ ├── call_operator_loc: ∅
│ ├── name: :=~
│ ├── message_loc: (43,11)-(43,13) = "=~"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (43,14)-(43,16))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ StringNode (location: (43,14)-(43,16))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (43,14)-(43,15) = "\""
│ │ ├── content_loc: (43,15)-(43,15) = ""
│ │ ├── closing_loc: (43,15)-(43,16) = "\""
│ │ └── unescaped: ""
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ CallNode (location: (45,0)-(45,16))
│ ├── flags: newline
│ ├── receiver:
│ │ @ RegularExpressionNode (location: (45,0)-(45,10))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (45,0)-(45,1) = "/"
│ │ ├── content_loc: (45,1)-(45,9) = "(?<nil>)"
│ │ ├── closing_loc: (45,9)-(45,10) = "/"
│ │ └── unescaped: "(?<nil>)"
│ ├── call_operator_loc: ∅
│ ├── name: :=~
│ ├── message_loc: (45,11)-(45,13) = "=~"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (45,14)-(45,16))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ StringNode (location: (45,14)-(45,16))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (45,14)-(45,15) = "\""
│ │ ├── content_loc: (45,15)-(45,15) = ""
│ │ ├── closing_loc: (45,15)-(45,16) = "\""
│ │ └── unescaped: ""
│ ├── closing_loc: ∅
│ └── block: ∅
├── @ DefNode (location: (46,0)-(46,32))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (46,4)-(46,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (46,8)-(46,12))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 1)
│ │ │ └── @ RequiredKeywordParameterNode (location: (46,8)-(46,12))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :nil
│ │ │ └── name_loc: (46,8)-(46,12) = "nil:"
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body:
│ │ @ StatementsNode (location: (46,16)-(46,32))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ MatchWriteNode (location: (46,16)-(46,32))
│ │ ├── flags: ∅
│ │ ├── call:
│ │ │ @ CallNode (location: (46,16)-(46,32))
│ │ │ ├── flags: ∅
│ │ │ ├── receiver:
│ │ │ │ @ RegularExpressionNode (location: (46,16)-(46,26))
│ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: (46,16)-(46,17) = "/"
│ │ │ │ ├── content_loc: (46,17)-(46,25) = "(?<nil>)"
│ │ │ │ ├── closing_loc: (46,25)-(46,26) = "/"
│ │ │ │ └── unescaped: "(?<nil>)"
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :=~
│ │ │ ├── message_loc: (46,27)-(46,29) = "=~"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (46,30)-(46,32))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ StringNode (location: (46,30)-(46,32))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (46,30)-(46,31) = "\""
│ │ │ │ ├── content_loc: (46,31)-(46,31) = ""
│ │ │ │ ├── closing_loc: (46,31)-(46,32) = "\""
│ │ │ │ └── unescaped: ""
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── targets: (length: 1)
│ │ └── @ LocalVariableTargetNode (location: (46,20)-(46,23))
│ │ ├── flags: ∅
│ │ ├── name: :nil
│ │ └── depth: 0
│ ├── locals: [:nil]
│ ├── def_keyword_loc: (46,0)-(46,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (46,7)-(46,8) = "("
│ ├── rparen_loc: (46,12)-(46,13) = ")"
│ ├── equal_loc: (46,14)-(46,15) = "="
│ └── end_keyword_loc: ∅
└── @ RegularExpressionNode (location: (48,0)-(48,10))
├── flags: newline, static_literal, extended, forced_us_ascii_encoding
├── opening_loc: (48,0)-(48,1) = "/"
├── content_loc: (48,1)-(48,8) = "(?-x:#)"
├── closing_loc: (48,8)-(48,10) = "/x"
└── unescaped: "(?-x:#)"

Просмотреть файл

@ -1,57 +0,0 @@
@ ProgramNode (location: (2,0)-(3,6))
├── flags: ∅
├── locals: [:a, :b]
└── statements:
@ StatementsNode (location: (2,0)-(3,6))
├── flags: ∅
└── body: (length: 2)
├── @ MatchWriteNode (location: (2,0)-(2,36))
│ ├── flags: newline
│ ├── call:
│ │ @ CallNode (location: (2,0)-(2,36))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ RegularExpressionNode (location: (2,0)-(2,22))
│ │ │ ├── flags: static_literal
│ │ │ ├── opening_loc: (2,0)-(2,1) = "/"
│ │ │ ├── content_loc: (2,1)-(2,21) = "\x{E285}\xA7(?<a>.)\x{E285}\xA9(?<b>.)"
│ │ │ ├── closing_loc: (2,21)-(2,22) = "/"
│ │ │ └── unescaped: "\x{E285}\xA7(?<a>.)\x{E285}\xA9(?<b>.)"
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :=~
│ │ ├── message_loc: (2,23)-(2,25) = "=~"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (2,26)-(2,36))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ StringNode (location: (2,26)-(2,36))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (2,26)-(2,27) = "'"
│ │ │ ├── content_loc: (2,27)-(2,35) = "\x{E285}\xA7a\x{E285}\xA9b"
│ │ │ ├── closing_loc: (2,35)-(2,36) = "'"
│ │ │ └── unescaped: "\x{E285}\xA7a\x{E285}\xA9b"
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── targets: (length: 2)
│ ├── @ LocalVariableTargetNode (location: (2,7)-(2,8))
│ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ └── @ LocalVariableTargetNode (location: (2,17)-(2,18))
│ ├── flags: ∅
│ ├── name: :b
│ └── depth: 0
└── @ ArrayNode (location: (3,0)-(3,6))
├── flags: newline
├── elements: (length: 2)
│ ├── @ LocalVariableReadNode (location: (3,1)-(3,2))
│ │ ├── flags: ∅
│ │ ├── name: :a
│ │ └── depth: 0
│ └── @ LocalVariableReadNode (location: (3,4)-(3,5))
│ ├── flags: ∅
│ ├── name: :b
│ └── depth: 0
├── opening_loc: (3,0)-(3,1) = "["
└── closing_loc: (3,5)-(3,6) = "]"

Просмотреть файл

@ -1,509 +0,0 @@
@ ProgramNode (location: (1,0)-(38,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(38,3))
├── flags: ∅
└── body: (length: 13)
├── @ DefNode (location: (1,0)-(2,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (1,4)-(1,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,8)-(1,12))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 2)
│ │ │ ├── @ RequiredParameterNode (location: (1,8)-(1,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ └── @ RequiredParameterNode (location: (1,11)-(1,12))
│ │ │ ├── flags: ∅
│ │ │ └── name: :_
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:a, :_]
│ ├── def_keyword_loc: (1,0)-(1,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (1,7)-(1,8) = "("
│ ├── rparen_loc: (1,12)-(1,13) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (2,0)-(2,3) = "end"
├── @ DefNode (location: (4,0)-(5,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (4,4)-(4,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (4,8)-(4,15))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 3)
│ │ │ ├── @ RequiredParameterNode (location: (4,8)-(4,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── @ RequiredParameterNode (location: (4,11)-(4,12))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :_
│ │ │ └── @ RequiredParameterNode (location: (4,14)-(4,15))
│ │ │ ├── flags: repeated_parameter
│ │ │ └── name: :_
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:a, :_]
│ ├── def_keyword_loc: (4,0)-(4,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (4,7)-(4,8) = "("
│ ├── rparen_loc: (4,15)-(4,16) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (5,0)-(5,3) = "end"
├── @ DefNode (location: (7,0)-(8,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (7,4)-(7,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (7,8)-(7,19))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 4)
│ │ │ ├── @ RequiredParameterNode (location: (7,8)-(7,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── @ RequiredParameterNode (location: (7,11)-(7,12))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :_
│ │ │ ├── @ RequiredParameterNode (location: (7,14)-(7,15))
│ │ │ │ ├── flags: repeated_parameter
│ │ │ │ └── name: :_
│ │ │ └── @ RequiredParameterNode (location: (7,17)-(7,19))
│ │ │ ├── flags: ∅
│ │ │ └── name: :_b
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:a, :_, :_b]
│ ├── def_keyword_loc: (7,0)-(7,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (7,7)-(7,8) = "("
│ ├── rparen_loc: (7,19)-(7,20) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (8,0)-(8,3) = "end"
├── @ DefNode (location: (10,0)-(11,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (10,4)-(10,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (10,8)-(10,23))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 5)
│ │ │ ├── @ RequiredParameterNode (location: (10,8)-(10,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── @ RequiredParameterNode (location: (10,11)-(10,12))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :_
│ │ │ ├── @ RequiredParameterNode (location: (10,14)-(10,15))
│ │ │ │ ├── flags: repeated_parameter
│ │ │ │ └── name: :_
│ │ │ ├── @ RequiredParameterNode (location: (10,17)-(10,19))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :_b
│ │ │ └── @ RequiredParameterNode (location: (10,21)-(10,23))
│ │ │ ├── flags: repeated_parameter
│ │ │ └── name: :_b
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:a, :_, :_b]
│ ├── def_keyword_loc: (10,0)-(10,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (10,7)-(10,8) = "("
│ ├── rparen_loc: (10,23)-(10,24) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (11,0)-(11,3) = "end"
├── @ DefNode (location: (13,0)-(14,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (13,4)-(13,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (13,8)-(13,35))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 3)
│ │ │ ├── @ RequiredParameterNode (location: (13,8)-(13,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :a
│ │ │ ├── @ MultiTargetNode (location: (13,11)-(13,22))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── lefts: (length: 1)
│ │ │ │ │ └── @ RequiredParameterNode (location: (13,12)-(13,13))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :b
│ │ │ │ ├── rest:
│ │ │ │ │ @ SplatNode (location: (13,15)-(13,18))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── operator_loc: (13,15)-(13,16) = "*"
│ │ │ │ │ └── expression:
│ │ │ │ │ @ RequiredParameterNode (location: (13,16)-(13,18))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :_c
│ │ │ │ ├── rights: (length: 1)
│ │ │ │ │ └── @ RequiredParameterNode (location: (13,20)-(13,21))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :d
│ │ │ │ ├── lparen_loc: (13,11)-(13,12) = "("
│ │ │ │ └── rparen_loc: (13,21)-(13,22) = ")"
│ │ │ └── @ MultiTargetNode (location: (13,24)-(13,35))
│ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (13,25)-(13,26))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :e
│ │ │ ├── rest:
│ │ │ │ @ SplatNode (location: (13,28)-(13,31))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (13,28)-(13,29) = "*"
│ │ │ │ └── expression:
│ │ │ │ @ RequiredParameterNode (location: (13,29)-(13,31))
│ │ │ │ ├── flags: repeated_parameter
│ │ │ │ └── name: :_c
│ │ │ ├── rights: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (13,33)-(13,34))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :f
│ │ │ ├── lparen_loc: (13,24)-(13,25) = "("
│ │ │ └── rparen_loc: (13,34)-(13,35) = ")"
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:a, :b, :_c, :d, :e, :f]
│ ├── def_keyword_loc: (13,0)-(13,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (13,7)-(13,8) = "("
│ ├── rparen_loc: (13,35)-(13,36) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (14,0)-(14,3) = "end"
├── @ DefNode (location: (16,0)-(17,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (16,4)-(16,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (16,8)-(16,20))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 4)
│ │ │ ├── @ RequiredParameterNode (location: (16,8)-(16,10))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :_a
│ │ │ ├── @ RequiredParameterNode (location: (16,12)-(16,14))
│ │ │ │ ├── flags: repeated_parameter
│ │ │ │ └── name: :_a
│ │ │ ├── @ RequiredParameterNode (location: (16,16)-(16,17))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :b
│ │ │ └── @ RequiredParameterNode (location: (16,19)-(16,20))
│ │ │ ├── flags: ∅
│ │ │ └── name: :c
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:_a, :b, :c]
│ ├── def_keyword_loc: (16,0)-(16,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (16,7)-(16,8) = "("
│ ├── rparen_loc: (16,20)-(16,21) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (17,0)-(17,3) = "end"
├── @ DefNode (location: (19,0)-(20,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (19,4)-(19,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (19,8)-(19,32))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 2)
│ │ │ ├── @ MultiTargetNode (location: (19,8)-(19,19))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── lefts: (length: 1)
│ │ │ │ │ └── @ RequiredParameterNode (location: (19,9)-(19,10))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :a
│ │ │ │ ├── rest:
│ │ │ │ │ @ SplatNode (location: (19,12)-(19,15))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ ├── operator_loc: (19,12)-(19,13) = "*"
│ │ │ │ │ └── expression:
│ │ │ │ │ @ RequiredParameterNode (location: (19,13)-(19,15))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :_b
│ │ │ │ ├── rights: (length: 1)
│ │ │ │ │ └── @ RequiredParameterNode (location: (19,17)-(19,18))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :c
│ │ │ │ ├── lparen_loc: (19,8)-(19,9) = "("
│ │ │ │ └── rparen_loc: (19,18)-(19,19) = ")"
│ │ │ └── @ MultiTargetNode (location: (19,21)-(19,32))
│ │ │ ├── flags: ∅
│ │ │ ├── lefts: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (19,22)-(19,23))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :d
│ │ │ ├── rest:
│ │ │ │ @ SplatNode (location: (19,25)-(19,28))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── operator_loc: (19,25)-(19,26) = "*"
│ │ │ │ └── expression:
│ │ │ │ @ RequiredParameterNode (location: (19,26)-(19,28))
│ │ │ │ ├── flags: repeated_parameter
│ │ │ │ └── name: :_b
│ │ │ ├── rights: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (19,30)-(19,31))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :e
│ │ │ ├── lparen_loc: (19,21)-(19,22) = "("
│ │ │ └── rparen_loc: (19,31)-(19,32) = ")"
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:a, :_b, :c, :d, :e]
│ ├── def_keyword_loc: (19,0)-(19,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (19,7)-(19,8) = "("
│ ├── rparen_loc: (19,32)-(19,33) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (20,0)-(20,3) = "end"
├── @ DefNode (location: (22,0)-(23,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (22,4)-(22,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (22,8)-(22,22))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 2)
│ │ │ ├── @ OptionalParameterNode (location: (22,8)-(22,14))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :_a
│ │ │ │ ├── name_loc: (22,8)-(22,10) = "_a"
│ │ │ │ ├── operator_loc: (22,11)-(22,12) = "="
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (22,13)-(22,14))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ OptionalParameterNode (location: (22,16)-(22,22))
│ │ │ ├── flags: repeated_parameter
│ │ │ ├── name: :_a
│ │ │ ├── name_loc: (22,16)-(22,18) = "_a"
│ │ │ ├── operator_loc: (22,19)-(22,20) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (22,21)-(22,22))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:_a]
│ ├── def_keyword_loc: (22,0)-(22,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (22,7)-(22,8) = "("
│ ├── rparen_loc: (22,22)-(22,23) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (23,0)-(23,3) = "end"
├── @ DefNode (location: (25,0)-(26,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (25,4)-(25,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (25,8)-(25,16))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 2)
│ │ │ ├── @ RequiredKeywordParameterNode (location: (25,8)-(25,11))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :_a
│ │ │ │ └── name_loc: (25,8)-(25,11) = "_a:"
│ │ │ └── @ RequiredKeywordParameterNode (location: (25,13)-(25,16))
│ │ │ ├── flags: repeated_parameter
│ │ │ ├── name: :_a
│ │ │ └── name_loc: (25,13)-(25,16) = "_a:"
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:_a]
│ ├── def_keyword_loc: (25,0)-(25,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (25,7)-(25,8) = "("
│ ├── rparen_loc: (25,16)-(25,17) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (26,0)-(26,3) = "end"
├── @ DefNode (location: (28,0)-(29,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (28,4)-(28,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (28,8)-(28,20))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 2)
│ │ │ ├── @ OptionalKeywordParameterNode (location: (28,8)-(28,13))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :_a
│ │ │ │ ├── name_loc: (28,8)-(28,11) = "_a:"
│ │ │ │ └── value:
│ │ │ │ @ IntegerNode (location: (28,12)-(28,13))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ OptionalKeywordParameterNode (location: (28,15)-(28,20))
│ │ │ ├── flags: repeated_parameter
│ │ │ ├── name: :_a
│ │ │ ├── name_loc: (28,15)-(28,18) = "_a:"
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (28,19)-(28,20))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:_a]
│ ├── def_keyword_loc: (28,0)-(28,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (28,7)-(28,8) = "("
│ ├── rparen_loc: (28,20)-(28,21) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (29,0)-(29,3) = "end"
├── @ DefNode (location: (31,0)-(32,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (31,4)-(31,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (31,8)-(31,16))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (31,8)-(31,10))
│ │ │ ├── flags: ∅
│ │ │ └── name: :_a
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (31,12)-(31,16))
│ │ │ ├── flags: repeated_parameter
│ │ │ ├── name: :_a
│ │ │ ├── name_loc: (31,14)-(31,16) = "_a"
│ │ │ └── operator_loc: (31,12)-(31,14) = "**"
│ │ └── block: ∅
│ ├── body: ∅
│ ├── locals: [:_a]
│ ├── def_keyword_loc: (31,0)-(31,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (31,7)-(31,8) = "("
│ ├── rparen_loc: (31,16)-(31,17) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (32,0)-(32,3) = "end"
├── @ DefNode (location: (34,0)-(35,3))
│ ├── flags: newline
│ ├── name: :foo
│ ├── name_loc: (34,4)-(34,7) = "foo"
│ ├── receiver: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (34,8)-(34,15))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (34,8)-(34,10))
│ │ │ ├── flags: ∅
│ │ │ └── name: :_a
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
│ │ @ BlockParameterNode (location: (34,12)-(34,15))
│ │ ├── flags: repeated_parameter
│ │ ├── name: :_a
│ │ ├── name_loc: (34,13)-(34,15) = "_a"
│ │ └── operator_loc: (34,12)-(34,13) = "&"
│ ├── body: ∅
│ ├── locals: [:_a]
│ ├── def_keyword_loc: (34,0)-(34,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: (34,7)-(34,8) = "("
│ ├── rparen_loc: (34,15)-(34,16) = ")"
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (35,0)-(35,3) = "end"
└── @ DefNode (location: (37,0)-(38,3))
├── flags: newline
├── name: :foo
├── name_loc: (37,4)-(37,7) = "foo"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (37,8)-(37,15))
│ ├── flags: ∅
│ ├── requireds: (length: 1)
│ │ └── @ RequiredParameterNode (location: (37,8)-(37,10))
│ │ ├── flags: ∅
│ │ └── name: :_a
│ ├── optionals: (length: 0)
│ ├── rest:
│ │ @ RestParameterNode (location: (37,12)-(37,15))
│ │ ├── flags: repeated_parameter
│ │ ├── name: :_a
│ │ ├── name_loc: (37,13)-(37,15) = "_a"
│ │ └── operator_loc: (37,12)-(37,13) = "*"
│ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block: ∅
├── body: ∅
├── locals: [:_a]
├── def_keyword_loc: (37,0)-(37,3) = "def"
├── operator_loc: ∅
├── lparen_loc: (37,7)-(37,8) = "("
├── rparen_loc: (37,15)-(37,16) = ")"
├── equal_loc: ∅
└── end_keyword_loc: (38,0)-(38,3) = "end"

Просмотреть файл

@ -1,584 +0,0 @@
@ ProgramNode (location: (1,0)-(35,18))
├── flags: ∅
├── locals: [:a, :z]
└── statements:
@ StatementsNode (location: (1,0)-(35,18))
├── flags: ∅
└── body: (length: 14)
├── @ RescueModifierNode (location: (1,0)-(1,14))
│ ├── flags: newline
│ ├── expression:
│ │ @ CallNode (location: (1,0)-(1,3))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (1,0)-(1,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── keyword_loc: (1,4)-(1,10) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (1,11)-(1,14))
│ └── flags: static_literal
├── @ RescueModifierNode (location: (3,0)-(4,3))
│ ├── flags: newline
│ ├── expression:
│ │ @ CallNode (location: (3,0)-(3,3))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (3,0)-(3,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── keyword_loc: (3,4)-(3,10) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (4,0)-(4,3))
│ └── flags: static_literal
├── @ CallNode (location: (6,0)-(6,24))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (6,0)-(6,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (6,4)-(6,24))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (6,6)-(6,22))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ RescueModifierNode (location: (6,6)-(6,22))
│ │ ├── flags: newline
│ │ ├── expression:
│ │ │ @ BreakNode (location: (6,6)-(6,11))
│ │ │ ├── flags: ∅
│ │ │ ├── arguments: ∅
│ │ │ └── keyword_loc: (6,6)-(6,11) = "break"
│ │ ├── keyword_loc: (6,12)-(6,18) = "rescue"
│ │ └── rescue_expression:
│ │ @ NilNode (location: (6,19)-(6,22))
│ │ └── flags: static_literal
│ ├── opening_loc: (6,4)-(6,5) = "{"
│ └── closing_loc: (6,23)-(6,24) = "}"
├── @ CallNode (location: (8,0)-(8,23))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :tap
│ ├── message_loc: (8,0)-(8,3) = "tap"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (8,4)-(8,23))
│ ├── flags: ∅
│ ├── locals: []
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (8,6)-(8,21))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ RescueModifierNode (location: (8,6)-(8,21))
│ │ ├── flags: newline
│ │ ├── expression:
│ │ │ @ NextNode (location: (8,6)-(8,10))
│ │ │ ├── flags: ∅
│ │ │ ├── arguments: ∅
│ │ │ └── keyword_loc: (8,6)-(8,10) = "next"
│ │ ├── keyword_loc: (8,11)-(8,17) = "rescue"
│ │ └── rescue_expression:
│ │ @ NilNode (location: (8,18)-(8,21))
│ │ └── flags: static_literal
│ ├── opening_loc: (8,4)-(8,5) = "{"
│ └── closing_loc: (8,22)-(8,23) = "}"
├── @ RescueModifierNode (location: (10,0)-(10,17))
│ ├── flags: newline
│ ├── expression:
│ │ @ ReturnNode (location: (10,0)-(10,6))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (10,0)-(10,6) = "return"
│ │ └── arguments: ∅
│ ├── keyword_loc: (10,7)-(10,13) = "rescue"
│ └── rescue_expression:
│ @ NilNode (location: (10,14)-(10,17))
│ └── flags: static_literal
├── @ RescueModifierNode (location: (12,0)-(12,19))
│ ├── flags: newline
│ ├── expression:
│ │ @ CallNode (location: (12,0)-(12,3))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (12,0)-(12,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── keyword_loc: (12,4)-(12,10) = "rescue"
│ └── rescue_expression:
│ @ OrNode (location: (12,11)-(12,19))
│ ├── flags: ∅
│ ├── left:
│ │ @ NilNode (location: (12,11)-(12,14))
│ │ └── flags: static_literal
│ ├── right:
│ │ @ IntegerNode (location: (12,18)-(12,19))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: (12,15)-(12,17) = "||"
├── @ RescueModifierNode (location: (14,0)-(14,22))
│ ├── flags: newline
│ ├── expression:
│ │ @ CallNode (location: (14,0)-(14,3))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :foo
│ │ ├── message_loc: (14,0)-(14,3) = "foo"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── keyword_loc: (14,4)-(14,10) = "rescue"
│ └── rescue_expression:
│ @ IfNode (location: (14,11)-(14,22))
│ ├── flags: newline
│ ├── if_keyword_loc: ∅
│ ├── predicate:
│ │ @ NilNode (location: (14,11)-(14,14))
│ │ └── flags: static_literal
│ ├── then_keyword_loc: (14,15)-(14,16) = "?"
│ ├── statements:
│ │ @ StatementsNode (location: (14,17)-(14,18))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (14,17)-(14,18))
│ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 1
│ ├── subsequent:
│ │ @ ElseNode (location: (14,19)-(14,22))
│ │ ├── flags: ∅
│ │ ├── else_keyword_loc: (14,19)-(14,20) = ":"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (14,21)-(14,22))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (14,21)-(14,22))
│ │ │ ├── flags: newline, static_literal, decimal
│ │ │ └── value: 2
│ │ └── end_keyword_loc: ∅
│ └── end_keyword_loc: ∅
├── @ BeginNode (location: (16,0)-(16,24))
│ ├── flags: newline
│ ├── begin_keyword_loc: (16,0)-(16,5) = "begin"
│ ├── statements:
│ │ @ StatementsNode (location: (16,7)-(16,8))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (16,7)-(16,8))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (16,7)-(16,8) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── rescue_clause:
│ │ @ RescueNode (location: (16,10)-(16,19))
│ │ ├── flags: ∅
│ │ ├── keyword_loc: (16,10)-(16,16) = "rescue"
│ │ ├── exceptions: (length: 1)
│ │ │ └── @ SplatNode (location: (16,17)-(16,19))
│ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (16,17)-(16,18) = "*"
│ │ │ └── expression:
│ │ │ @ CallNode (location: (16,18)-(16,19))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :b
│ │ │ ├── message_loc: (16,18)-(16,19) = "b"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── operator_loc: ∅
│ │ ├── reference: ∅
│ │ ├── statements: ∅
│ │ └── subsequent: ∅
│ ├── else_clause: ∅
│ ├── ensure_clause: ∅
│ └── end_keyword_loc: (16,21)-(16,24) = "end"
├── @ CallNode (location: (18,0)-(20,3))
│ ├── flags: newline, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :foo
│ ├── message_loc: (18,0)-(18,3) = "foo"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block:
│ @ BlockNode (location: (18,4)-(20,3))
│ ├── flags: ∅
│ ├── locals: [:x]
│ ├── parameters:
│ │ @ BlockParametersNode (location: (18,7)-(18,10))
│ │ ├── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (18,8)-(18,9))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 1)
│ │ │ │ └── @ RequiredParameterNode (location: (18,8)-(18,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :x
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── locals: (length: 0)
│ │ ├── opening_loc: (18,7)-(18,8) = "|"
│ │ └── closing_loc: (18,9)-(18,10) = "|"
│ ├── body:
│ │ @ StatementsNode (location: (19,2)-(19,40))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ RescueModifierNode (location: (19,2)-(19,40))
│ │ ├── flags: newline
│ │ ├── expression:
│ │ │ @ CallNode (location: (19,2)-(19,8))
│ │ │ ├── flags: ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (19,2)-(19,5) = "bar"
│ │ │ ├── opening_loc: (19,5)-(19,6) = "("
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (19,6)-(19,7))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ CallNode (location: (19,6)-(19,7))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :y
│ │ │ │ ├── message_loc: (19,6)-(19,7) = "y"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── closing_loc: (19,7)-(19,8) = ")"
│ │ │ └── block: ∅
│ │ ├── keyword_loc: (19,9)-(19,15) = "rescue"
│ │ └── rescue_expression:
│ │ @ CallNode (location: (19,16)-(19,40))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :ArgumentError
│ │ ├── message_loc: (19,16)-(19,29) = "ArgumentError"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (19,30)-(19,40))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ CallNode (location: (19,30)-(19,40))
│ │ │ ├── flags: ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :fail
│ │ │ ├── message_loc: (19,30)-(19,34) = "fail"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (19,35)-(19,40))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ StringNode (location: (19,35)-(19,40))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── opening_loc: (19,35)-(19,36) = "\""
│ │ │ │ ├── content_loc: (19,36)-(19,39) = "baz"
│ │ │ │ ├── closing_loc: (19,39)-(19,40) = "\""
│ │ │ │ └── unescaped: "baz"
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── opening_loc: (18,4)-(18,6) = "do"
│ └── closing_loc: (20,0)-(20,3) = "end"
├── @ IfNode (location: (22,0)-(24,3))
│ ├── flags: newline
│ ├── if_keyword_loc: (22,0)-(22,2) = "if"
│ ├── predicate:
│ │ @ LocalVariableWriteNode (location: (22,3)-(22,21))
│ │ ├── flags: ∅
│ │ ├── name: :a
│ │ ├── depth: 0
│ │ ├── name_loc: (22,3)-(22,4) = "a"
│ │ ├── value:
│ │ │ @ RescueModifierNode (location: (22,7)-(22,21))
│ │ │ ├── flags: ∅
│ │ │ ├── expression:
│ │ │ │ @ CallNode (location: (22,7)-(22,10))
│ │ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ │ ├── receiver: ∅
│ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ ├── name: :foo
│ │ │ │ ├── message_loc: (22,7)-(22,10) = "foo"
│ │ │ │ ├── opening_loc: ∅
│ │ │ │ ├── arguments: ∅
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── block: ∅
│ │ │ ├── keyword_loc: (22,11)-(22,17) = "rescue"
│ │ │ └── rescue_expression:
│ │ │ @ NilNode (location: (22,18)-(22,21))
│ │ │ └── flags: static_literal
│ │ └── operator_loc: (22,5)-(22,6) = "="
│ ├── then_keyword_loc: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (23,2)-(23,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ CallNode (location: (23,2)-(23,5))
│ │ ├── flags: newline, variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :bar
│ │ ├── message_loc: (23,2)-(23,5) = "bar"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── subsequent: ∅
│ └── end_keyword_loc: (24,0)-(24,3) = "end"
├── @ DefNode (location: (26,0)-(26,44))
│ ├── flags: newline
│ ├── name: :some_method
│ ├── name_loc: (26,4)-(26,15) = "some_method"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ StatementsNode (location: (26,18)-(26,44))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ RescueModifierNode (location: (26,18)-(26,44))
│ │ ├── flags: ∅
│ │ ├── expression:
│ │ │ @ CallNode (location: (26,18)-(26,33))
│ │ │ ├── flags: ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :other_method
│ │ │ ├── message_loc: (26,18)-(26,30) = "other_method"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (26,31)-(26,33))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ IntegerNode (location: (26,31)-(26,33))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 42
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── keyword_loc: (26,34)-(26,40) = "rescue"
│ │ └── rescue_expression:
│ │ @ NilNode (location: (26,41)-(26,44))
│ │ └── flags: static_literal
│ ├── locals: []
│ ├── def_keyword_loc: (26,0)-(26,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: (26,16)-(26,17) = "="
│ └── end_keyword_loc: ∅
├── @ DefNode (location: (28,0)-(31,3))
│ ├── flags: newline
│ ├── name: :a
│ ├── name_loc: (28,4)-(28,5) = "a"
│ ├── receiver: ∅
│ ├── parameters: ∅
│ ├── body:
│ │ @ BeginNode (location: (28,0)-(31,3))
│ │ ├── flags: ∅
│ │ ├── begin_keyword_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (29,2)-(29,6))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (29,2)-(29,6))
│ │ │ ├── flags: newline, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :a
│ │ │ ├── message_loc: (29,2)-(29,3) = "a"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (29,4)-(29,6))
│ │ │ │ ├── flags: contains_keywords
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ KeywordHashNode (location: (29,4)-(29,6))
│ │ │ │ ├── flags: symbol_keys
│ │ │ │ └── elements: (length: 1)
│ │ │ │ └── @ AssocNode (location: (29,4)-(29,6))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── key:
│ │ │ │ │ @ SymbolNode (location: (29,4)-(29,6))
│ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── value_loc: (29,4)-(29,5) = "b"
│ │ │ │ │ ├── closing_loc: (29,5)-(29,6) = ":"
│ │ │ │ │ └── unescaped: "b"
│ │ │ │ ├── value:
│ │ │ │ │ @ ImplicitNode (location: (29,4)-(29,6))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── value:
│ │ │ │ │ @ CallNode (location: (29,4)-(29,6))
│ │ │ │ │ ├── flags: ignore_visibility
│ │ │ │ │ ├── receiver: ∅
│ │ │ │ │ ├── call_operator_loc: ∅
│ │ │ │ │ ├── name: :b
│ │ │ │ │ ├── message_loc: (29,4)-(29,5) = "b"
│ │ │ │ │ ├── opening_loc: ∅
│ │ │ │ │ ├── arguments: ∅
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── block: ∅
│ │ │ │ └── operator_loc: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── rescue_clause:
│ │ │ @ RescueNode (location: (30,0)-(30,6))
│ │ │ ├── flags: ∅
│ │ │ ├── keyword_loc: (30,0)-(30,6) = "rescue"
│ │ │ ├── exceptions: (length: 0)
│ │ │ ├── operator_loc: ∅
│ │ │ ├── reference: ∅
│ │ │ ├── statements: ∅
│ │ │ └── subsequent: ∅
│ │ ├── else_clause: ∅
│ │ ├── ensure_clause: ∅
│ │ └── end_keyword_loc: (31,0)-(31,3) = "end"
│ ├── locals: []
│ ├── def_keyword_loc: (28,0)-(28,3) = "def"
│ ├── operator_loc: ∅
│ ├── lparen_loc: ∅
│ ├── rparen_loc: ∅
│ ├── equal_loc: ∅
│ └── end_keyword_loc: (31,0)-(31,3) = "end"
├── @ RescueModifierNode (location: (33,0)-(33,21))
│ ├── flags: newline
│ ├── expression:
│ │ @ IfNode (location: (33,0)-(33,10))
│ │ ├── flags: newline
│ │ ├── if_keyword_loc: (33,4)-(33,6) = "if"
│ │ ├── predicate:
│ │ │ @ CallNode (location: (33,7)-(33,10))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :bar
│ │ │ ├── message_loc: (33,7)-(33,10) = "bar"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── then_keyword_loc: ∅
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (33,0)-(33,3))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (33,0)-(33,3))
│ │ │ ├── flags: newline, variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :foo
│ │ │ ├── message_loc: (33,0)-(33,3) = "foo"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── subsequent: ∅
│ │ └── end_keyword_loc: ∅
│ ├── keyword_loc: (33,11)-(33,17) = "rescue"
│ └── rescue_expression:
│ @ CallNode (location: (33,18)-(33,21))
│ ├── flags: variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :baz
│ ├── message_loc: (33,18)-(33,21) = "baz"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ LocalVariableWriteNode (location: (35,0)-(35,18))
├── flags: newline
├── name: :z
├── depth: 0
├── name_loc: (35,0)-(35,1) = "z"
├── value:
│ @ RescueModifierNode (location: (35,4)-(35,18))
│ ├── flags: ∅
│ ├── expression:
│ │ @ CallNode (location: (35,4)-(35,7))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :x
│ │ ├── message_loc: (35,4)-(35,5) = "x"
│ │ ├── opening_loc: ∅
│ │ ├── arguments:
│ │ │ @ ArgumentsNode (location: (35,6)-(35,7))
│ │ │ ├── flags: ∅
│ │ │ └── arguments: (length: 1)
│ │ │ └── @ CallNode (location: (35,6)-(35,7))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :y
│ │ │ ├── message_loc: (35,6)-(35,7) = "y"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── keyword_loc: (35,8)-(35,14) = "rescue"
│ └── rescue_expression:
│ @ CallNode (location: (35,15)-(35,18))
│ ├── flags: ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :c
│ ├── message_loc: (35,15)-(35,16) = "c"
│ ├── opening_loc: ∅
│ ├── arguments:
│ │ @ ArgumentsNode (location: (35,17)-(35,18))
│ │ ├── flags: ∅
│ │ └── arguments: (length: 1)
│ │ └── @ CallNode (location: (35,17)-(35,18))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :d
│ │ ├── message_loc: (35,17)-(35,18) = "d"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
└── operator_loc: (35,2)-(35,3) = "="

Просмотреть файл

@ -1,179 +0,0 @@
@ ProgramNode (location: (1,0)-(23,9))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(23,9))
├── flags: ∅
└── body: (length: 10)
├── @ ReturnNode (location: (1,0)-(1,6))
│ ├── flags: newline
│ ├── keyword_loc: (1,0)-(1,6) = "return"
│ └── arguments: ∅
├── @ ReturnNode (location: (3,0)-(3,20))
│ ├── flags: newline
│ ├── keyword_loc: (3,0)-(3,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (3,7)-(3,20))
│ ├── flags: ∅
│ └── arguments: (length: 3)
│ ├── @ ParenthesesNode (location: (3,7)-(3,10))
│ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (3,8)-(3,9))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (3,8)-(3,9))
│ │ │ ├── flags: newline, static_literal, decimal
│ │ │ └── value: 1
│ │ ├── opening_loc: (3,7)-(3,8) = "("
│ │ └── closing_loc: (3,9)-(3,10) = ")"
│ ├── @ ParenthesesNode (location: (3,12)-(3,15))
│ │ ├── flags: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (3,13)-(3,14))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ IntegerNode (location: (3,13)-(3,14))
│ │ │ ├── flags: newline, static_literal, decimal
│ │ │ └── value: 2
│ │ ├── opening_loc: (3,12)-(3,13) = "("
│ │ └── closing_loc: (3,14)-(3,15) = ")"
│ └── @ ParenthesesNode (location: (3,17)-(3,20))
│ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (3,18)-(3,19))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (3,18)-(3,19))
│ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 3
│ ├── opening_loc: (3,17)-(3,18) = "("
│ └── closing_loc: (3,19)-(3,20) = ")"
├── @ ReturnNode (location: (5,0)-(5,9))
│ ├── flags: newline
│ ├── keyword_loc: (5,0)-(5,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (5,7)-(5,9))
│ ├── flags: contains_splat
│ └── arguments: (length: 1)
│ └── @ SplatNode (location: (5,7)-(5,9))
│ ├── flags: ∅
│ ├── operator_loc: (5,7)-(5,8) = "*"
│ └── expression:
│ @ IntegerNode (location: (5,8)-(5,9))
│ ├── flags: static_literal, decimal
│ └── value: 1
├── @ ReturnNode (location: (7,0)-(7,8))
│ ├── flags: newline
│ ├── keyword_loc: (7,0)-(7,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (7,7)-(7,8))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (7,7)-(7,8))
│ ├── flags: static_literal, decimal
│ └── value: 1
├── @ ReturnNode (location: (9,0)-(10,1))
│ ├── flags: newline
│ ├── keyword_loc: (9,0)-(9,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (9,7)-(10,1))
│ ├── flags: ∅
│ └── arguments: (length: 3)
│ ├── @ IntegerNode (location: (9,7)-(9,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── @ IntegerNode (location: (9,10)-(9,11))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── @ IntegerNode (location: (10,0)-(10,1))
│ ├── flags: static_literal, decimal
│ └── value: 3
├── @ ReturnNode (location: (12,0)-(12,14))
│ ├── flags: newline
│ ├── keyword_loc: (12,0)-(12,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (12,7)-(12,14))
│ ├── flags: ∅
│ └── arguments: (length: 3)
│ ├── @ IntegerNode (location: (12,7)-(12,8))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── @ IntegerNode (location: (12,10)-(12,11))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── @ IntegerNode (location: (12,13)-(12,14))
│ ├── flags: static_literal, decimal
│ └── value: 3
├── @ ReturnNode (location: (14,0)-(14,16))
│ ├── flags: newline
│ ├── keyword_loc: (14,0)-(14,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (14,7)-(14,16))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ArrayNode (location: (14,7)-(14,16))
│ ├── flags: static_literal
│ ├── elements: (length: 3)
│ │ ├── @ IntegerNode (location: (14,8)-(14,9))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── @ IntegerNode (location: (14,11)-(14,12))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ └── @ IntegerNode (location: (14,14)-(14,15))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ ├── opening_loc: (14,7)-(14,8) = "["
│ └── closing_loc: (14,15)-(14,16) = "]"
├── @ ReturnNode (location: (16,0)-(19,1))
│ ├── flags: newline
│ ├── keyword_loc: (16,0)-(16,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (16,6)-(19,1))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (16,6)-(19,1))
│ ├── flags: ∅
│ ├── body:
│ │ @ StatementsNode (location: (17,2)-(18,3))
│ │ ├── flags: ∅
│ │ └── body: (length: 2)
│ │ ├── @ IntegerNode (location: (17,2)-(17,3))
│ │ │ ├── flags: newline, static_literal, decimal
│ │ │ └── value: 1
│ │ └── @ IntegerNode (location: (18,2)-(18,3))
│ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 2
│ ├── opening_loc: (16,6)-(16,7) = "("
│ └── closing_loc: (19,0)-(19,1) = ")"
├── @ ReturnNode (location: (21,0)-(21,8))
│ ├── flags: newline
│ ├── keyword_loc: (21,0)-(21,6) = "return"
│ └── arguments:
│ @ ArgumentsNode (location: (21,6)-(21,8))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ ParenthesesNode (location: (21,6)-(21,8))
│ ├── flags: ∅
│ ├── body: ∅
│ ├── opening_loc: (21,6)-(21,7) = "("
│ └── closing_loc: (21,7)-(21,8) = ")"
└── @ ReturnNode (location: (23,0)-(23,9))
├── flags: newline
├── keyword_loc: (23,0)-(23,6) = "return"
└── arguments:
@ ArgumentsNode (location: (23,6)-(23,9))
├── flags: ∅
└── arguments: (length: 1)
└── @ ParenthesesNode (location: (23,6)-(23,9))
├── flags: ∅
├── body:
│ @ StatementsNode (location: (23,7)-(23,8))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ IntegerNode (location: (23,7)-(23,8))
│ ├── flags: newline, static_literal, decimal
│ └── value: 1
├── opening_loc: (23,6)-(23,7) = "("
└── closing_loc: (23,8)-(23,9) = ")"

Просмотреть файл

@ -1,19 +0,0 @@
@ ProgramNode (location: (1,0)-(1,12))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
├── flags: ∅
└── body: (length: 1)
└── @ PreExecutionNode (location: (1,0)-(1,12))
├── flags: newline
├── statements:
│ @ StatementsNode (location: (1,8)-(1,10))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ IntegerNode (location: (1,8)-(1,10))
│ ├── flags: newline, static_literal, decimal
│ └── value: 42
├── keyword_loc: (1,0)-(1,5) = "BEGIN"
├── opening_loc: (1,6)-(1,7) = "{"
└── closing_loc: (1,11)-(1,12) = "}"

Просмотреть файл

@ -1,398 +0,0 @@
@ ProgramNode (location: (1,0)-(92,1))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(92,1))
├── flags: ∅
└── body: (length: 16)
├── @ ArrayNode (location: (1,0)-(4,1))
│ ├── flags: newline, static_literal
│ ├── elements: (length: 0)
│ ├── opening_loc: (1,0)-(1,3) = "%I["
│ └── closing_loc: (4,0)-(4,1) = "]"
├── @ ArrayNode (location: (6,0)-(9,1))
│ ├── flags: newline, static_literal
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (7,0)-(7,5))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (7,0)-(7,5) = "line2"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "line2"
│ │ └── @ SymbolNode (location: (8,0)-(8,5))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (8,0)-(8,5) = "line3"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "line3"
│ ├── opening_loc: (6,0)-(6,3) = "%I["
│ └── closing_loc: (9,0)-(9,1) = "]"
├── @ ArrayNode (location: (11,0)-(14,1))
│ ├── flags: newline, static_literal
│ ├── elements: (length: 0)
│ ├── opening_loc: (11,0)-(11,3) = "%W["
│ └── closing_loc: (14,0)-(14,1) = "]"
├── @ ArrayNode (location: (16,0)-(19,1))
│ ├── flags: newline
│ ├── elements: (length: 2)
│ │ ├── @ StringNode (location: (17,0)-(17,5))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (17,0)-(17,5) = "line2"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "line2"
│ │ └── @ StringNode (location: (18,0)-(18,5))
│ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (18,0)-(18,5) = "line3"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "line3"
│ ├── opening_loc: (16,0)-(16,3) = "%W["
│ └── closing_loc: (19,0)-(19,1) = "]"
├── @ ArrayNode (location: (21,0)-(24,1))
│ ├── flags: newline, static_literal
│ ├── elements: (length: 0)
│ ├── opening_loc: (21,0)-(21,3) = "%i["
│ └── closing_loc: (24,0)-(24,1) = "]"
├── @ ArrayNode (location: (26,0)-(29,1))
│ ├── flags: newline, static_literal
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (27,0)-(27,5))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: ∅
│ │ │ ├── value_loc: (27,0)-(27,5) = "line2"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "line2"
│ │ └── @ SymbolNode (location: (28,0)-(28,5))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (28,0)-(28,5) = "line3"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "line3"
│ ├── opening_loc: (26,0)-(26,3) = "%i["
│ └── closing_loc: (29,0)-(29,1) = "]"
├── @ RegularExpressionNode (location: (31,0)-(34,1))
│ ├── flags: newline, static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (31,0)-(31,3) = "%r["
│ ├── content_loc: (31,3)-(34,0) = "\n\n\n"
│ ├── closing_loc: (34,0)-(34,1) = "]"
│ └── unescaped: "\n\n\n"
├── @ ArrayNode (location: (36,0)-(39,1))
│ ├── flags: newline, static_literal
│ ├── elements: (length: 0)
│ ├── opening_loc: (36,0)-(36,3) = "%w["
│ └── closing_loc: (39,0)-(39,1) = "]"
├── @ ArrayNode (location: (41,0)-(44,1))
│ ├── flags: newline
│ ├── elements: (length: 2)
│ │ ├── @ StringNode (location: (42,0)-(42,5))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: ∅
│ │ │ ├── content_loc: (42,0)-(42,5) = "line2"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "line2"
│ │ └── @ StringNode (location: (43,0)-(43,5))
│ │ ├── flags: ∅
│ │ ├── opening_loc: ∅
│ │ ├── content_loc: (43,0)-(43,5) = "line3"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "line3"
│ ├── opening_loc: (41,0)-(41,3) = "%w["
│ └── closing_loc: (44,0)-(44,1) = "]"
├── @ ArrayNode (location: (46,0)-(49,1))
│ ├── flags: newline, static_literal
│ ├── elements: (length: 2)
│ │ ├── @ SymbolNode (location: (47,0)-(47,6))
│ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ ├── opening_loc: (47,0)-(47,1) = ":"
│ │ │ ├── value_loc: (47,1)-(47,6) = "line2"
│ │ │ ├── closing_loc: ∅
│ │ │ └── unescaped: "line2"
│ │ └── @ SymbolNode (location: (48,0)-(48,6))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (48,0)-(48,1) = ":"
│ │ ├── value_loc: (48,1)-(48,6) = "line3"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "line3"
│ ├── opening_loc: (46,0)-(46,1) = "["
│ └── closing_loc: (49,0)-(49,1) = "]"
├── @ ClassNode (location: (51,0)-(56,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (51,0)-(51,5) = "class"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (51,6)-(51,7))
│ │ ├── flags: ∅
│ │ └── name: :X
│ ├── inheritance_operator_loc: ∅
│ ├── superclass: ∅
│ ├── body:
│ │ @ StatementsNode (location: (52,2)-(55,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ DefNode (location: (52,2)-(55,5))
│ │ ├── flags: newline
│ │ ├── name: :y
│ │ ├── name_loc: (52,11)-(52,12) = "y"
│ │ ├── receiver:
│ │ │ @ SelfNode (location: (52,6)-(52,10))
│ │ │ └── flags: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (52,13)-(53,9))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 2)
│ │ │ │ ├── @ RequiredParameterNode (location: (52,13)-(52,14))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :a
│ │ │ │ └── @ RequiredParameterNode (location: (53,8)-(53,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :b
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (54,4)-(54,9))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (54,4)-(54,9))
│ │ │ ├── flags: newline
│ │ │ ├── receiver:
│ │ │ │ @ LocalVariableReadNode (location: (54,4)-(54,5))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :+
│ │ │ ├── message_loc: (54,6)-(54,7) = "+"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (54,8)-(54,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ LocalVariableReadNode (location: (54,8)-(54,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :b
│ │ │ │ └── depth: 0
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── locals: [:a, :b]
│ │ ├── def_keyword_loc: (52,2)-(52,5) = "def"
│ │ ├── operator_loc: (52,10)-(52,11) = "."
│ │ ├── lparen_loc: (52,12)-(52,13) = "("
│ │ ├── rparen_loc: (53,9)-(53,10) = ")"
│ │ ├── equal_loc: ∅
│ │ └── end_keyword_loc: (55,2)-(55,5) = "end"
│ ├── end_keyword_loc: (56,0)-(56,3) = "end"
│ └── name: :X
├── @ ClassNode (location: (59,0)-(63,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (59,0)-(59,5) = "class"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (59,6)-(59,7))
│ │ ├── flags: ∅
│ │ └── name: :X
│ ├── inheritance_operator_loc: ∅
│ ├── superclass: ∅
│ ├── body:
│ │ @ StatementsNode (location: (60,2)-(62,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ClassNode (location: (60,2)-(62,5))
│ │ ├── flags: newline
│ │ ├── locals: []
│ │ ├── class_keyword_loc: (60,2)-(60,7) = "class"
│ │ ├── constant_path:
│ │ │ @ ConstantReadNode (location: (60,8)-(60,9))
│ │ │ ├── flags: ∅
│ │ │ └── name: :Y
│ │ ├── inheritance_operator_loc: ∅
│ │ ├── superclass: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (61,4)-(61,10))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ ConstantWriteNode (location: (61,4)-(61,10))
│ │ │ ├── flags: newline
│ │ │ ├── name: :Z
│ │ │ ├── name_loc: (61,4)-(61,5) = "Z"
│ │ │ ├── value:
│ │ │ │ @ IntegerNode (location: (61,8)-(61,10))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 42
│ │ │ └── operator_loc: (61,6)-(61,7) = "="
│ │ ├── end_keyword_loc: (62,2)-(62,5) = "end"
│ │ └── name: :Y
│ ├── end_keyword_loc: (63,0)-(63,3) = "end"
│ └── name: :X
├── @ ClassNode (location: (66,0)-(71,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── class_keyword_loc: (66,0)-(66,5) = "class"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (66,6)-(66,7))
│ │ ├── flags: ∅
│ │ └── name: :X
│ ├── inheritance_operator_loc: ∅
│ ├── superclass: ∅
│ ├── body:
│ │ @ StatementsNode (location: (67,2)-(70,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ DefNode (location: (67,2)-(70,5))
│ │ ├── flags: newline
│ │ ├── name: :y
│ │ ├── name_loc: (67,6)-(67,7) = "y"
│ │ ├── receiver: ∅
│ │ ├── parameters:
│ │ │ @ ParametersNode (location: (67,8)-(68,9))
│ │ │ ├── flags: ∅
│ │ │ ├── requireds: (length: 2)
│ │ │ │ ├── @ RequiredParameterNode (location: (67,8)-(67,9))
│ │ │ │ │ ├── flags: ∅
│ │ │ │ │ └── name: :a
│ │ │ │ └── @ RequiredParameterNode (location: (68,8)-(68,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── name: :b
│ │ │ ├── optionals: (length: 0)
│ │ │ ├── rest: ∅
│ │ │ ├── posts: (length: 0)
│ │ │ ├── keywords: (length: 0)
│ │ │ ├── keyword_rest: ∅
│ │ │ └── block: ∅
│ │ ├── body:
│ │ │ @ StatementsNode (location: (69,4)-(69,9))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (69,4)-(69,9))
│ │ │ ├── flags: newline
│ │ │ ├── receiver:
│ │ │ │ @ LocalVariableReadNode (location: (69,4)-(69,5))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :a
│ │ │ │ └── depth: 0
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :+
│ │ │ ├── message_loc: (69,6)-(69,7) = "+"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments:
│ │ │ │ @ ArgumentsNode (location: (69,8)-(69,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ └── arguments: (length: 1)
│ │ │ │ └── @ LocalVariableReadNode (location: (69,8)-(69,9))
│ │ │ │ ├── flags: ∅
│ │ │ │ ├── name: :b
│ │ │ │ └── depth: 0
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── locals: [:a, :b]
│ │ ├── def_keyword_loc: (67,2)-(67,5) = "def"
│ │ ├── operator_loc: ∅
│ │ ├── lparen_loc: (67,7)-(67,8) = "("
│ │ ├── rparen_loc: (68,9)-(68,10) = ")"
│ │ ├── equal_loc: ∅
│ │ └── end_keyword_loc: (70,2)-(70,5) = "end"
│ ├── end_keyword_loc: (71,0)-(71,3) = "end"
│ └── name: :X
├── @ ModuleNode (location: (74,0)-(79,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── module_keyword_loc: (74,0)-(74,6) = "module"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (74,7)-(74,8))
│ │ ├── flags: ∅
│ │ └── name: :X
│ ├── body:
│ │ @ StatementsNode (location: (75,2)-(78,3))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ConstantWriteNode (location: (75,2)-(78,3))
│ │ ├── flags: newline
│ │ ├── name: :X
│ │ ├── name_loc: (75,2)-(75,3) = "X"
│ │ ├── value:
│ │ │ @ ArrayNode (location: (75,6)-(78,3))
│ │ │ ├── flags: static_literal
│ │ │ ├── elements: (length: 2)
│ │ │ │ ├── @ SymbolNode (location: (76,4)-(76,10))
│ │ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ │ ├── opening_loc: (76,4)-(76,5) = ":"
│ │ │ │ │ ├── value_loc: (76,5)-(76,10) = "line3"
│ │ │ │ │ ├── closing_loc: ∅
│ │ │ │ │ └── unescaped: "line3"
│ │ │ │ └── @ SymbolNode (location: (77,4)-(77,10))
│ │ │ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ │ │ ├── opening_loc: (77,4)-(77,5) = ":"
│ │ │ │ ├── value_loc: (77,5)-(77,10) = "line4"
│ │ │ │ ├── closing_loc: ∅
│ │ │ │ └── unescaped: "line4"
│ │ │ ├── opening_loc: (75,6)-(75,7) = "["
│ │ │ └── closing_loc: (78,2)-(78,3) = "]"
│ │ └── operator_loc: (75,4)-(75,5) = "="
│ ├── end_keyword_loc: (79,0)-(79,3) = "end"
│ └── name: :X
├── @ ModuleNode (location: (82,0)-(86,3))
│ ├── flags: newline
│ ├── locals: []
│ ├── module_keyword_loc: (82,0)-(82,6) = "module"
│ ├── constant_path:
│ │ @ ConstantReadNode (location: (82,7)-(82,8))
│ │ ├── flags: ∅
│ │ └── name: :X
│ ├── body:
│ │ @ StatementsNode (location: (83,2)-(85,5))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ ModuleNode (location: (83,2)-(85,5))
│ │ ├── flags: newline
│ │ ├── locals: []
│ │ ├── module_keyword_loc: (83,2)-(83,8) = "module"
│ │ ├── constant_path:
│ │ │ @ ConstantReadNode (location: (83,9)-(83,10))
│ │ │ ├── flags: ∅
│ │ │ └── name: :Y
│ │ ├── body:
│ │ │ @ StatementsNode (location: (84,4)-(84,10))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ ConstantWriteNode (location: (84,4)-(84,10))
│ │ │ ├── flags: newline
│ │ │ ├── name: :Z
│ │ │ ├── name_loc: (84,4)-(84,5) = "Z"
│ │ │ ├── value:
│ │ │ │ @ IntegerNode (location: (84,8)-(84,10))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 42
│ │ │ └── operator_loc: (84,6)-(84,7) = "="
│ │ ├── end_keyword_loc: (85,2)-(85,5) = "end"
│ │ └── name: :Y
│ ├── end_keyword_loc: (86,0)-(86,3) = "end"
│ └── name: :X
└── @ CallNode (location: (89,0)-(92,1))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :x
├── message_loc: (89,0)-(89,1) = "x"
├── opening_loc: (89,1)-(89,2) = "("
├── arguments:
│ @ ArgumentsNode (location: (90,0)-(91,6))
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ SymbolNode (location: (90,0)-(90,6))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: (90,0)-(90,1) = ":"
│ │ ├── value_loc: (90,1)-(90,6) = "line2"
│ │ ├── closing_loc: ∅
│ │ └── unescaped: "line2"
│ └── @ SymbolNode (location: (91,0)-(91,6))
│ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: (91,0)-(91,1) = ":"
│ ├── value_loc: (91,1)-(91,6) = "line3"
│ ├── closing_loc: ∅
│ └── unescaped: "line3"
├── closing_loc: (92,0)-(92,1) = ")"
└── block: ∅

Просмотреть файл

@ -1,9 +0,0 @@
@ ProgramNode (location: (1,0)-(1,12))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
├── flags: ∅
└── body: (length: 1)
└── @ SourceEncodingNode (location: (1,0)-(1,12))
└── flags: newline, static_literal

Просмотреть файл

@ -1,18 +0,0 @@
@ ProgramNode (location: (1,0)-(1,15))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,15))
├── flags: ∅
└── body: (length: 1)
└── @ AliasGlobalVariableNode (location: (1,0)-(1,15))
├── flags: newline
├── new_name:
│ @ GlobalVariableReadNode (location: (1,6)-(1,12))
│ ├── flags: ∅
│ └── name: :$MATCH
├── old_name:
│ @ BackReferenceReadNode (location: (1,13)-(1,15))
│ ├── flags: ∅
│ └── name: :$&
└── keyword_loc: (1,0)-(1,5) = "alias"

Просмотреть файл

@ -1,24 +0,0 @@
@ ProgramNode (location: (1,0)-(1,12))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
├── flags: ∅
└── body: (length: 1)
└── @ AliasMethodNode (location: (1,0)-(1,12))
├── flags: newline
├── new_name:
│ @ SymbolNode (location: (1,6)-(1,8))
│ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: ∅
│ ├── value_loc: (1,6)-(1,8) = "in"
│ ├── closing_loc: ∅
│ └── unescaped: "in"
├── old_name:
│ @ SymbolNode (location: (1,9)-(1,12))
│ ├── flags: static_literal, forced_us_ascii_encoding
│ ├── opening_loc: ∅
│ ├── value_loc: (1,9)-(1,12) = "out"
│ ├── closing_loc: ∅
│ └── unescaped: "out"
└── keyword_loc: (1,0)-(1,5) = "alias"

Просмотреть файл

@ -1,33 +0,0 @@
@ ProgramNode (location: (1,0)-(3,4))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,4))
├── flags: ∅
└── body: (length: 1)
└── @ AndNode (location: (1,0)-(3,4))
├── flags: newline
├── left:
│ @ AndNode (location: (1,0)-(2,9))
│ ├── flags: ∅
│ ├── left:
│ │ @ TrueNode (location: (1,0)-(1,4))
│ │ └── flags: static_literal
│ ├── right:
│ │ @ CallNode (location: (2,0)-(2,9))
│ │ ├── flags: ∅
│ │ ├── receiver:
│ │ │ @ FalseNode (location: (2,4)-(2,9))
│ │ │ └── flags: static_literal
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :!
│ │ ├── message_loc: (2,0)-(2,3) = "not"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (1,5)-(1,8) = "and"
├── right:
│ @ TrueNode (location: (3,0)-(3,4))
│ └── flags: static_literal
└── operator_loc: (2,10)-(2,13) = "and"

Просмотреть файл

@ -1,26 +0,0 @@
@ ProgramNode (location: (1,0)-(1,8))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,8))
├── flags: newline
├── elements: (length: 1)
│ └── @ KeywordHashNode (location: (1,1)-(1,7))
│ ├── flags: ∅
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (1,1)-(1,7))
│ ├── flags: static_literal
│ ├── key:
│ │ @ IntegerNode (location: (1,1)-(1,2))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── value:
│ │ @ IntegerNode (location: (1,6)-(1,7))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ └── operator_loc: (1,3)-(1,5) = "=>"
├── opening_loc: (1,0)-(1,1) = "["
└── closing_loc: (1,7)-(1,8) = "]"

Просмотреть файл

@ -1,29 +0,0 @@
@ ProgramNode (location: (1,0)-(1,11))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
├── flags: ∅
└── body: (length: 1)
└── @ ArrayNode (location: (1,0)-(1,11))
├── flags: newline
├── elements: (length: 2)
│ ├── @ IntegerNode (location: (1,1)-(1,2))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── @ KeywordHashNode (location: (1,4)-(1,10))
│ ├── flags: ∅
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (1,4)-(1,10))
│ ├── flags: static_literal
│ ├── key:
│ │ @ IntegerNode (location: (1,4)-(1,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 2
│ ├── value:
│ │ @ IntegerNode (location: (1,9)-(1,10))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 3
│ └── operator_loc: (1,6)-(1,8) = "=>"
├── opening_loc: (1,0)-(1,1) = "["
└── closing_loc: (1,10)-(1,11) = "]"

Просмотреть файл

@ -1,43 +0,0 @@
@ ProgramNode (location: (1,0)-(1,20))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,20))
├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,0)-(1,20))
├── flags: newline
├── name: :f
├── name_loc: (1,4)-(1,5) = "f"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (1,6)-(1,14))
│ ├── flags: ∅
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
│ ├── rest: ∅
│ ├── posts: (length: 0)
│ ├── keywords: (length: 1)
│ │ └── @ OptionalKeywordParameterNode (location: (1,6)-(1,10))
│ │ ├── flags: ∅
│ │ ├── name: :a
│ │ ├── name_loc: (1,6)-(1,8) = "a:"
│ │ └── value:
│ │ @ IntegerNode (location: (1,9)-(1,10))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ ├── keyword_rest: ∅
│ └── block:
│ @ BlockParameterNode (location: (1,12)-(1,14))
│ ├── flags: ∅
│ ├── name: :b
│ ├── name_loc: (1,13)-(1,14) = "b"
│ └── operator_loc: (1,12)-(1,13) = "&"
├── body: ∅
├── locals: [:a, :b]
├── def_keyword_loc: (1,0)-(1,3) = "def"
├── operator_loc: ∅
├── lparen_loc: (1,5)-(1,6) = "("
├── rparen_loc: (1,14)-(1,15) = ")"
├── equal_loc: ∅
└── end_keyword_loc: (1,17)-(1,20) = "end"

Просмотреть файл

@ -1,27 +0,0 @@
@ ProgramNode (location: (1,0)-(4,1))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,1))
├── flags: ∅
└── body: (length: 2)
├── @ ArrayNode (location: (1,0)-(3,4))
│ ├── flags: newline
│ ├── elements: (length: 2)
│ │ ├── @ StringNode (location: (2,0)-(2,3))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (2,0)-(2,1) = "'"
│ │ │ ├── content_loc: (2,1)-(2,2) = "a"
│ │ │ ├── closing_loc: (2,2)-(2,3) = "'"
│ │ │ └── unescaped: "a"
│ │ └── @ StringNode (location: (3,0)-(3,3))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (3,0)-(3,1) = "'"
│ │ ├── content_loc: (3,1)-(3,2) = "b"
│ │ ├── closing_loc: (3,2)-(3,3) = "'"
│ │ └── unescaped: "b"
│ ├── opening_loc: (1,0)-(1,1) = "["
│ └── closing_loc: (3,3)-(3,4) = "]"
└── @ IntegerNode (location: (4,0)-(4,1))
├── flags: newline, static_literal, decimal
└── value: 1

Просмотреть файл

@ -1,37 +0,0 @@
@ ProgramNode (location: (1,0)-(3,4))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,4))
├── flags: ∅
└── body: (length: 2)
├── @ CallNode (location: (1,0)-(1,6))
│ ├── flags: newline
│ ├── receiver:
│ │ @ ArrayNode (location: (1,0)-(1,4))
│ │ ├── flags: static_literal
│ │ ├── elements: (length: 0)
│ │ ├── opening_loc: (1,0)-(1,3) = "%w["
│ │ └── closing_loc: (1,3)-(1,4) = "]"
│ ├── call_operator_loc: (1,4)-(1,5) = "."
│ ├── name: :b
│ ├── message_loc: (1,5)-(1,6) = "b"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
└── @ CallNode (location: (3,0)-(3,4))
├── flags: newline
├── receiver:
│ @ ArrayNode (location: (3,0)-(3,2))
│ ├── flags: static_literal
│ ├── elements: (length: 0)
│ ├── opening_loc: (3,0)-(3,1) = "["
│ └── closing_loc: (3,1)-(3,2) = "]"
├── call_operator_loc: (3,2)-(3,3) = "."
├── name: :b
├── message_loc: (3,3)-(3,4) = "b"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,36 +0,0 @@
@ ProgramNode (location: (1,0)-(1,6))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,6))
├── flags: ∅
└── body: (length: 1)
└── @ HashNode (location: (1,0)-(1,6))
├── flags: newline
├── opening_loc: (1,0)-(1,1) = "{"
├── elements: (length: 1)
│ └── @ AssocNode (location: (1,2)-(1,4))
│ ├── flags: ∅
│ ├── key:
│ │ @ SymbolNode (location: (1,2)-(1,4))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,2)-(1,3) = "y"
│ │ ├── closing_loc: (1,3)-(1,4) = ":"
│ │ └── unescaped: "y"
│ ├── value:
│ │ @ ImplicitNode (location: (1,2)-(1,4))
│ │ ├── flags: ∅
│ │ └── value:
│ │ @ CallNode (location: (1,2)-(1,4))
│ │ ├── flags: ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :y
│ │ ├── message_loc: (1,2)-(1,3) = "y"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: ∅
└── closing_loc: (1,5)-(1,6) = "}"

Просмотреть файл

@ -1,37 +0,0 @@
@ ProgramNode (location: (1,0)-(1,6))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,6))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,6))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
├── message_loc: (1,0)-(1,1) = "a"
├── opening_loc: (1,1)-(1,2) = "("
├── arguments:
│ @ ArgumentsNode (location: (1,2)-(1,5))
│ ├── flags: contains_keywords
│ └── arguments: (length: 1)
│ └── @ KeywordHashNode (location: (1,2)-(1,5))
│ ├── flags: symbol_keys
│ └── elements: (length: 1)
│ └── @ AssocNode (location: (1,2)-(1,5))
│ ├── flags: static_literal
│ ├── key:
│ │ @ SymbolNode (location: (1,2)-(1,4))
│ │ ├── flags: static_literal, forced_us_ascii_encoding
│ │ ├── opening_loc: ∅
│ │ ├── value_loc: (1,2)-(1,3) = "b"
│ │ ├── closing_loc: (1,3)-(1,4) = ":"
│ │ └── unescaped: "b"
│ ├── value:
│ │ @ IntegerNode (location: (1,4)-(1,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 1
│ └── operator_loc: ∅
├── closing_loc: (1,5)-(1,6) = ")"
└── block: ∅

Просмотреть файл

@ -1,26 +0,0 @@
@ ProgramNode (location: (1,0)-(1,8))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,8))
├── flags: newline, attribute_write
├── receiver:
│ @ ConstantReadNode (location: (1,0)-(1,1))
│ ├── flags: ∅
│ └── name: :A
├── call_operator_loc: (1,1)-(1,3) = "::"
├── name: :b=
├── message_loc: (1,3)-(1,4) = "b"
├── opening_loc: ∅
├── arguments:
│ @ ArgumentsNode (location: (1,7)-(1,8))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,7)-(1,8))
│ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,44 +0,0 @@
@ ProgramNode (location: (1,0)-(1,13))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,13))
├── flags: newline, attribute_write
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
│ ├── message_loc: (1,0)-(1,1) = "a"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── call_operator_loc: ∅
├── name: :[]=
├── message_loc: (1,1)-(1,9) = "[[1, 2]]"
├── opening_loc: (1,1)-(1,2) = "["
├── arguments:
│ @ ArgumentsNode (location: (1,2)-(1,13))
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ ArrayNode (location: (1,2)-(1,8))
│ │ ├── flags: static_literal
│ │ ├── elements: (length: 2)
│ │ │ ├── @ IntegerNode (location: (1,3)-(1,4))
│ │ │ │ ├── flags: static_literal, decimal
│ │ │ │ └── value: 1
│ │ │ └── @ IntegerNode (location: (1,6)-(1,7))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── opening_loc: (1,2)-(1,3) = "["
│ │ └── closing_loc: (1,7)-(1,8) = "]"
│ └── @ IntegerNode (location: (1,12)-(1,13))
│ ├── flags: static_literal, decimal
│ └── value: 3
├── closing_loc: (1,8)-(1,9) = "]"
└── block: ∅

Просмотреть файл

@ -1,85 +0,0 @@
@ ProgramNode (location: (1,0)-(1,42))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,42))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,42))
├── flags: newline, attribute_write
├── receiver:
│ @ ArrayNode (location: (1,0)-(1,12))
│ ├── flags: static_literal
│ ├── elements: (length: 4)
│ │ ├── @ IntegerNode (location: (1,1)-(1,2))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── @ IntegerNode (location: (1,4)-(1,5))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 2
│ │ ├── @ IntegerNode (location: (1,7)-(1,8))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 3
│ │ └── @ IntegerNode (location: (1,10)-(1,11))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 4
│ ├── opening_loc: (1,0)-(1,1) = "["
│ └── closing_loc: (1,11)-(1,12) = "]"
├── call_operator_loc: ∅
├── name: :[]=
├── message_loc: (1,12)-(1,24) = "[from .. to]"
├── opening_loc: (1,12)-(1,13) = "["
├── arguments:
│ @ ArgumentsNode (location: (1,13)-(1,42))
│ ├── flags: ∅
│ └── arguments: (length: 2)
│ ├── @ RangeNode (location: (1,13)-(1,23))
│ │ ├── flags: ∅
│ │ ├── left:
│ │ │ @ CallNode (location: (1,13)-(1,17))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :from
│ │ │ ├── message_loc: (1,13)-(1,17) = "from"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ ├── right:
│ │ │ @ CallNode (location: (1,21)-(1,23))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :to
│ │ │ ├── message_loc: (1,21)-(1,23) = "to"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── operator_loc: (1,18)-(1,20) = ".."
│ └── @ ArrayNode (location: (1,27)-(1,42))
│ ├── flags: ∅
│ ├── elements: (length: 3)
│ │ ├── @ StringNode (location: (1,28)-(1,31))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,28)-(1,29) = "\""
│ │ │ ├── content_loc: (1,29)-(1,30) = "a"
│ │ │ ├── closing_loc: (1,30)-(1,31) = "\""
│ │ │ └── unescaped: "a"
│ │ ├── @ StringNode (location: (1,33)-(1,36))
│ │ │ ├── flags: ∅
│ │ │ ├── opening_loc: (1,33)-(1,34) = "\""
│ │ │ ├── content_loc: (1,34)-(1,35) = "b"
│ │ │ ├── closing_loc: (1,35)-(1,36) = "\""
│ │ │ └── unescaped: "b"
│ │ └── @ StringNode (location: (1,38)-(1,41))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (1,38)-(1,39) = "\""
│ │ ├── content_loc: (1,39)-(1,40) = "c"
│ │ ├── closing_loc: (1,40)-(1,41) = "\""
│ │ └── unescaped: "c"
│ ├── opening_loc: (1,27)-(1,28) = "["
│ └── closing_loc: (1,41)-(1,42) = "]"
├── closing_loc: (1,23)-(1,24) = "]"
└── block: ∅

Просмотреть файл

@ -1,33 +0,0 @@
@ ProgramNode (location: (1,0)-(1,7))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,7))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,7))
├── flags: newline, attribute_write
├── receiver:
│ @ CallNode (location: (1,0)-(1,1))
│ ├── flags: variable_call, ignore_visibility
│ ├── receiver: ∅
│ ├── call_operator_loc: ∅
│ ├── name: :a
│ ├── message_loc: (1,0)-(1,1) = "a"
│ ├── opening_loc: ∅
│ ├── arguments: ∅
│ ├── closing_loc: ∅
│ └── block: ∅
├── call_operator_loc: (1,1)-(1,2) = "."
├── name: :B=
├── message_loc: (1,2)-(1,3) = "B"
├── opening_loc: ∅
├── arguments:
│ @ ArgumentsNode (location: (1,6)-(1,7))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,6)-(1,7))
│ ├── flags: static_literal, decimal
│ └── value: 1
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,43 +0,0 @@
@ ProgramNode (location: (1,0)-(1,8))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,8))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,8))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :x
├── message_loc: (1,0)-(1,1) = "x"
├── opening_loc: ∅
├── arguments:
│ @ ArgumentsNode (location: (1,2)-(1,8))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ InterpolatedXStringNode (location: (1,2)-(1,8))
│ ├── flags: ∅
│ ├── opening_loc: (1,2)-(1,3) = "`"
│ ├── parts: (length: 1)
│ │ └── @ EmbeddedStatementsNode (location: (1,3)-(1,7))
│ │ ├── flags: ∅
│ │ ├── opening_loc: (1,3)-(1,5) = "\#{"
│ │ ├── statements:
│ │ │ @ StatementsNode (location: (1,5)-(1,6))
│ │ │ ├── flags: ∅
│ │ │ └── body: (length: 1)
│ │ │ └── @ CallNode (location: (1,5)-(1,6))
│ │ │ ├── flags: variable_call, ignore_visibility
│ │ │ ├── receiver: ∅
│ │ │ ├── call_operator_loc: ∅
│ │ │ ├── name: :y
│ │ │ ├── message_loc: (1,5)-(1,6) = "y"
│ │ │ ├── opening_loc: ∅
│ │ │ ├── arguments: ∅
│ │ │ ├── closing_loc: ∅
│ │ │ └── block: ∅
│ │ └── closing_loc: (1,6)-(1,7) = "}"
│ └── closing_loc: (1,7)-(1,8) = "`"
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,26 +0,0 @@
@ ProgramNode (location: (1,0)-(1,6))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,6))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,6))
├── flags: newline
├── receiver:
│ @ IntegerNode (location: (1,0)-(1,1))
│ ├── flags: static_literal, decimal
│ └── value: 1
├── call_operator_loc: ∅
├── name: :!=
├── message_loc: (1,2)-(1,4) = "!="
├── opening_loc: ∅
├── arguments:
│ @ ArgumentsNode (location: (1,5)-(1,6))
│ ├── flags: ∅
│ └── arguments: (length: 1)
│ └── @ IntegerNode (location: (1,5)-(1,6))
│ ├── flags: static_literal, decimal
│ └── value: 2
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,40 +0,0 @@
@ ProgramNode (location: (1,0)-(3,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
├── flags: ∅
└── body: (length: 3)
├── @ RangeNode (location: (1,0)-(1,4))
│ ├── flags: newline, static_literal
│ ├── left: ∅
│ ├── right:
│ │ @ IntegerNode (location: (1,2)-(1,4))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 10
│ └── operator_loc: (1,0)-(1,2) = ".."
├── @ RangeNode (location: (2,2)-(2,5))
│ ├── flags: newline
│ ├── left: ∅
│ ├── right:
│ │ @ CallNode (location: (2,4)-(2,5))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (2,4)-(2,5) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (2,2)-(2,4) = ".."
└── @ CallNode (location: (3,2)-(3,3))
├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :c
├── message_loc: (3,2)-(3,3) = "c"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,40 +0,0 @@
@ ProgramNode (location: (1,0)-(3,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
├── flags: ∅
└── body: (length: 3)
├── @ RangeNode (location: (1,0)-(1,5))
│ ├── flags: newline, static_literal, exclude_end
│ ├── left: ∅
│ ├── right:
│ │ @ IntegerNode (location: (1,3)-(1,5))
│ │ ├── flags: static_literal, decimal
│ │ └── value: 10
│ └── operator_loc: (1,0)-(1,3) = "..."
├── @ RangeNode (location: (2,2)-(2,6))
│ ├── flags: newline, exclude_end
│ ├── left: ∅
│ ├── right:
│ │ @ CallNode (location: (2,5)-(2,6))
│ │ ├── flags: variable_call, ignore_visibility
│ │ ├── receiver: ∅
│ │ ├── call_operator_loc: ∅
│ │ ├── name: :a
│ │ ├── message_loc: (2,5)-(2,6) = "a"
│ │ ├── opening_loc: ∅
│ │ ├── arguments: ∅
│ │ ├── closing_loc: ∅
│ │ └── block: ∅
│ └── operator_loc: (2,2)-(2,5) = "..."
└── @ CallNode (location: (3,2)-(3,3))
├── flags: newline, variable_call, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :c
├── message_loc: (3,2)-(3,3) = "c"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block: ∅

Просмотреть файл

@ -1,20 +0,0 @@
@ ProgramNode (location: (1,0)-(3,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(3,3))
├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(3,3))
├── flags: newline
├── begin_keyword_loc: (1,0)-(1,5) = "begin"
├── statements: ∅
├── rescue_clause: ∅
├── else_clause: ∅
├── ensure_clause:
│ @ EnsureNode (location: (2,0)-(3,3))
│ ├── flags: ∅
│ ├── ensure_keyword_loc: (2,0)-(2,6) = "ensure"
│ ├── statements: ∅
│ └── end_keyword_loc: (3,0)-(3,3) = "end"
└── end_keyword_loc: (3,0)-(3,3) = "end"

Просмотреть файл

@ -1,57 +0,0 @@
@ ProgramNode (location: (1,0)-(9,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(9,3))
├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(9,3))
├── flags: newline
├── begin_keyword_loc: (1,0)-(1,5) = "begin"
├── statements:
│ @ StatementsNode (location: (2,2)-(2,3))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ IntegerNode (location: (2,2)-(2,3))
│ ├── flags: newline, static_literal, decimal
│ └── value: 1
├── rescue_clause:
│ @ RescueNode (location: (3,0)-(4,3))
│ ├── flags: ∅
│ ├── keyword_loc: (3,0)-(3,6) = "rescue"
│ ├── exceptions: (length: 0)
│ ├── operator_loc: ∅
│ ├── reference: ∅
│ ├── statements:
│ │ @ StatementsNode (location: (4,2)-(4,3))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (4,2)-(4,3))
│ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 2
│ └── subsequent: ∅
├── else_clause:
│ @ ElseNode (location: (5,0)-(7,6))
│ ├── flags: ∅
│ ├── else_keyword_loc: (5,0)-(5,4) = "else"
│ ├── statements:
│ │ @ StatementsNode (location: (6,2)-(6,3))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (6,2)-(6,3))
│ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 3
│ └── end_keyword_loc: (7,0)-(7,6) = "ensure"
├── ensure_clause:
│ @ EnsureNode (location: (7,0)-(9,3))
│ ├── flags: ∅
│ ├── ensure_keyword_loc: (7,0)-(7,6) = "ensure"
│ ├── statements:
│ │ @ StatementsNode (location: (8,2)-(8,3))
│ │ ├── flags: ∅
│ │ └── body: (length: 1)
│ │ └── @ IntegerNode (location: (8,2)-(8,3))
│ │ ├── flags: newline, static_literal, decimal
│ │ └── value: 4
│ └── end_keyword_loc: (9,0)-(9,3) = "end"
└── end_keyword_loc: (9,0)-(9,3) = "end"

Просмотреть файл

@ -1,33 +0,0 @@
@ ProgramNode (location: (1,0)-(9,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(9,3))
├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(9,3))
├── flags: newline
├── begin_keyword_loc: (1,0)-(1,5) = "begin"
├── statements: ∅
├── rescue_clause:
│ @ RescueNode (location: (3,0)-(3,6))
│ ├── flags: ∅
│ ├── keyword_loc: (3,0)-(3,6) = "rescue"
│ ├── exceptions: (length: 0)
│ ├── operator_loc: ∅
│ ├── reference: ∅
│ ├── statements: ∅
│ └── subsequent: ∅
├── else_clause:
│ @ ElseNode (location: (5,0)-(7,6))
│ ├── flags: ∅
│ ├── else_keyword_loc: (5,0)-(5,4) = "else"
│ ├── statements: ∅
│ └── end_keyword_loc: (7,0)-(7,6) = "ensure"
├── ensure_clause:
│ @ EnsureNode (location: (7,0)-(9,3))
│ ├── flags: ∅
│ ├── ensure_keyword_loc: (7,0)-(7,6) = "ensure"
│ ├── statements: ∅
│ └── end_keyword_loc: (9,0)-(9,3) = "end"
└── end_keyword_loc: (9,0)-(9,3) = "end"

Просмотреть файл

@ -1,28 +0,0 @@
@ ProgramNode (location: (1,0)-(4,3))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(4,3))
├── flags: ∅
└── body: (length: 1)
└── @ BeginNode (location: (1,0)-(4,3))
├── flags: newline
├── begin_keyword_loc: (1,0)-(1,5) = "begin"
├── statements: ∅
├── rescue_clause:
│ @ RescueNode (location: (2,0)-(2,6))
│ ├── flags: ∅
│ ├── keyword_loc: (2,0)-(2,6) = "rescue"
│ ├── exceptions: (length: 0)
│ ├── operator_loc: ∅
│ ├── reference: ∅
│ ├── statements: ∅
│ └── subsequent: ∅
├── else_clause: ∅
├── ensure_clause:
│ @ EnsureNode (location: (3,0)-(4,3))
│ ├── flags: ∅
│ ├── ensure_keyword_loc: (3,0)-(3,6) = "ensure"
│ ├── statements: ∅
│ └── end_keyword_loc: (4,0)-(4,3) = "end"
└── end_keyword_loc: (4,0)-(4,3) = "end"

Просмотреть файл

@ -1,35 +0,0 @@
@ ProgramNode (location: (1,0)-(1,13))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
├── flags: ∅
└── body: (length: 1)
└── @ DefNode (location: (1,0)-(1,13))
├── flags: newline
├── name: :x
├── name_loc: (1,4)-(1,5) = "x"
├── receiver: ∅
├── parameters:
│ @ ParametersNode (location: (1,6)-(1,7))
│ ├── flags: ∅
│ ├── requireds: (length: 0)
│ ├── optionals: (length: 0)
│ ├── rest: ∅
│ ├── posts: (length: 0)
│ ├── keywords: (length: 0)
│ ├── keyword_rest: ∅
│ └── block:
│ @ BlockParameterNode (location: (1,6)-(1,7))
│ ├── flags: ∅
│ ├── name: ∅
│ ├── name_loc: ∅
│ └── operator_loc: (1,6)-(1,7) = "&"
├── body: ∅
├── locals: []
├── def_keyword_loc: (1,0)-(1,3) = "def"
├── operator_loc: ∅
├── lparen_loc: (1,5)-(1,6) = "("
├── rparen_loc: (1,7)-(1,8) = ")"
├── equal_loc: ∅
└── end_keyword_loc: (1,10)-(1,13) = "end"

Просмотреть файл

@ -1,44 +0,0 @@
@ ProgramNode (location: (1,0)-(1,11))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,11))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,11))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
├── message_loc: (1,0)-(1,1) = "a"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,11))
├── flags: ∅
├── locals: [:b]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,9))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,8))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (1,5)-(1,8))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :b
│ │ │ ├── name_loc: (1,7)-(1,8) = "b"
│ │ │ └── operator_loc: (1,5)-(1,7) = "**"
│ │ └── block: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (1,4)-(1,5) = "|"
│ └── closing_loc: (1,8)-(1,9) = "|"
├── body: ∅
├── opening_loc: (1,2)-(1,3) = "{"
└── closing_loc: (1,10)-(1,11) = "}"

Просмотреть файл

@ -1,59 +0,0 @@
@ ProgramNode (location: (1,0)-(1,21))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,21))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,21))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
├── message_loc: (1,0)-(1,1) = "a"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,21))
├── flags: ∅
├── locals: [:b, :c, :d, :e]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,19))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,18))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6))
│ │ │ ├── flags: ∅
│ │ │ └── name: :b
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (1,8)-(1,11))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :c
│ │ │ ├── name_loc: (1,8)-(1,9) = "c"
│ │ │ ├── operator_loc: (1,9)-(1,10) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,10)-(1,11))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest: ∅
│ │ ├── posts: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,13)-(1,14))
│ │ │ ├── flags: ∅
│ │ │ └── name: :d
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
│ │ @ BlockParameterNode (location: (1,16)-(1,18))
│ │ ├── flags: ∅
│ │ ├── name: :e
│ │ ├── name_loc: (1,17)-(1,18) = "e"
│ │ └── operator_loc: (1,16)-(1,17) = "&"
│ ├── locals: (length: 0)
│ ├── opening_loc: (1,4)-(1,5) = "|"
│ └── closing_loc: (1,18)-(1,19) = "|"
├── body: ∅
├── opening_loc: (1,2)-(1,3) = "{"
└── closing_loc: (1,20)-(1,21) = "}"

Просмотреть файл

@ -1,56 +0,0 @@
@ ProgramNode (location: (1,0)-(1,20))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,20))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,20))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
├── message_loc: (1,0)-(1,1) = "a"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,20))
├── flags: ∅
├── locals: [:b, :c, :d]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,18))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,17))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6))
│ │ │ ├── flags: ∅
│ │ │ └── name: :b
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (1,8)-(1,13))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :c
│ │ │ ├── name_loc: (1,8)-(1,9) = "c"
│ │ │ ├── operator_loc: (1,10)-(1,11) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,12)-(1,13))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (1,15)-(1,17))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :d
│ │ │ ├── name_loc: (1,16)-(1,17) = "d"
│ │ │ └── operator_loc: (1,15)-(1,16) = "*"
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (1,4)-(1,5) = "|"
│ └── closing_loc: (1,17)-(1,18) = "|"
├── body: ∅
├── opening_loc: (1,2)-(1,3) = "{"
└── closing_loc: (1,19)-(1,20) = "}"

Просмотреть файл

@ -1,64 +0,0 @@
@ ProgramNode (location: (1,0)-(1,25))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,25))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,25))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
├── message_loc: (1,0)-(1,1) = "a"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,25))
├── flags: ∅
├── locals: [:b, :c, :d, :e, :f]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,23))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,22))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6))
│ │ │ ├── flags: ∅
│ │ │ └── name: :b
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (1,8)-(1,11))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :c
│ │ │ ├── name_loc: (1,8)-(1,9) = "c"
│ │ │ ├── operator_loc: (1,9)-(1,10) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,10)-(1,11))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (1,13)-(1,15))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :d
│ │ │ ├── name_loc: (1,14)-(1,15) = "d"
│ │ │ └── operator_loc: (1,13)-(1,14) = "*"
│ │ ├── posts: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,17)-(1,18))
│ │ │ ├── flags: ∅
│ │ │ └── name: :e
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block:
│ │ @ BlockParameterNode (location: (1,20)-(1,22))
│ │ ├── flags: ∅
│ │ ├── name: :f
│ │ ├── name_loc: (1,21)-(1,22) = "f"
│ │ └── operator_loc: (1,20)-(1,21) = "&"
│ ├── locals: (length: 0)
│ ├── opening_loc: (1,4)-(1,5) = "|"
│ └── closing_loc: (1,22)-(1,23) = "|"
├── body: ∅
├── opening_loc: (1,2)-(1,3) = "{"
└── closing_loc: (1,24)-(1,25) = "}"

Просмотреть файл

@ -1,48 +0,0 @@
@ ProgramNode (location: (1,0)-(1,13))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,13))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
├── message_loc: (1,0)-(1,1) = "a"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,13))
├── flags: ∅
├── locals: [:b]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,11))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,10))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (1,5)-(1,10))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :b
│ │ │ ├── name_loc: (1,5)-(1,6) = "b"
│ │ │ ├── operator_loc: (1,7)-(1,8) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,9)-(1,10))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 1
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (1,4)-(1,5) = "|"
│ └── closing_loc: (1,10)-(1,11) = "|"
├── body: ∅
├── opening_loc: (1,2)-(1,3) = "{"
└── closing_loc: (1,12)-(1,13) = "}"

Просмотреть файл

@ -1,45 +0,0 @@
@ ProgramNode (location: (1,0)-(1,12))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,12))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,12))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
├── message_loc: (1,0)-(1,1) = "a"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,12))
├── flags: ∅
├── locals: [:b, :c]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,10))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,6))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6))
│ │ │ ├── flags: ∅
│ │ │ └── name: :b
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── locals: (length: 1)
│ │ └── @ BlockLocalVariableNode (location: (1,8)-(1,9))
│ │ ├── flags: ∅
│ │ └── name: :c
│ ├── opening_loc: (1,4)-(1,5) = "|"
│ └── closing_loc: (1,9)-(1,10) = "|"
├── body: ∅
├── opening_loc: (1,2)-(1,3) = "{"
└── closing_loc: (1,11)-(1,12) = "}"

Просмотреть файл

@ -1,48 +0,0 @@
@ ProgramNode (location: (1,0)-(1,14))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,14))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,14))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
├── message_loc: (1,0)-(1,1) = "a"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,14))
├── flags: ∅
├── locals: [:b, :c, :d]
├── parameters:
│ @ BlockParametersNode (location: (1,3)-(1,12))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,4)-(1,5))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,4)-(1,5))
│ │ │ ├── flags: ∅
│ │ │ └── name: :b
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── locals: (length: 2)
│ │ ├── @ BlockLocalVariableNode (location: (1,7)-(1,8))
│ │ │ ├── flags: ∅
│ │ │ └── name: :c
│ │ └── @ BlockLocalVariableNode (location: (1,10)-(1,11))
│ │ ├── flags: ∅
│ │ └── name: :d
│ ├── opening_loc: (1,3)-(1,4) = "|"
│ └── closing_loc: (1,11)-(1,12) = "|"
├── body: ∅
├── opening_loc: (1,2)-(1,3) = "{"
└── closing_loc: (1,13)-(1,14) = "}"

Просмотреть файл

@ -1,50 +0,0 @@
@ ProgramNode (location: (1,0)-(1,16))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,16))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,16))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :a
├── message_loc: (1,0)-(1,1) = "a"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,16))
├── flags: ∅
├── locals: [:b, :c, :d]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,14))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,13))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6))
│ │ │ ├── flags: ∅
│ │ │ └── name: :b
│ │ ├── optionals: (length: 0)
│ │ ├── rest:
│ │ │ @ RestParameterNode (location: (1,8)-(1,10))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :c
│ │ │ ├── name_loc: (1,9)-(1,10) = "c"
│ │ │ └── operator_loc: (1,8)-(1,9) = "*"
│ │ ├── posts: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,12)-(1,13))
│ │ │ ├── flags: ∅
│ │ │ └── name: :d
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (1,4)-(1,5) = "|"
│ └── closing_loc: (1,13)-(1,14) = "|"
├── body: ∅
├── opening_loc: (1,2)-(1,3) = "{"
└── closing_loc: (1,15)-(1,16) = "}"

Просмотреть файл

@ -1,51 +0,0 @@
@ ProgramNode (location: (1,0)-(1,23))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,23))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,23))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :f
├── message_loc: (1,0)-(1,1) = "f"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,23))
├── flags: ∅
├── locals: [:kwargs]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,14))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,13))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ KeywordRestParameterNode (location: (1,5)-(1,13))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :kwargs
│ │ │ ├── name_loc: (1,7)-(1,13) = "kwargs"
│ │ │ └── operator_loc: (1,5)-(1,7) = "**"
│ │ └── block: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (1,4)-(1,5) = "|"
│ └── closing_loc: (1,13)-(1,14) = "|"
├── body:
│ @ StatementsNode (location: (1,15)-(1,21))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ LocalVariableReadNode (location: (1,15)-(1,21))
│ ├── flags: newline
│ ├── name: :kwargs
│ └── depth: 0
├── opening_loc: (1,2)-(1,3) = "{"
└── closing_loc: (1,22)-(1,23) = "}"

Просмотреть файл

@ -1,43 +0,0 @@
@ ProgramNode (location: (1,0)-(1,13))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,13))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,13))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :f
├── message_loc: (1,0)-(1,1) = "f"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,13))
├── flags: ∅
├── locals: []
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,11))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,10))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 0)
│ │ ├── optionals: (length: 0)
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest:
│ │ │ @ NoKeywordsParameterNode (location: (1,5)-(1,10))
│ │ │ ├── flags: ∅
│ │ │ ├── operator_loc: (1,5)-(1,7) = "**"
│ │ │ └── keyword_loc: (1,7)-(1,10) = "nil"
│ │ └── block: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (1,4)-(1,5) = "|"
│ └── closing_loc: (1,10)-(1,11) = "|"
├── body: ∅
├── opening_loc: (1,2)-(1,3) = "{"
└── closing_loc: (1,12)-(1,13) = "}"

Просмотреть файл

@ -1,67 +0,0 @@
@ ProgramNode (location: (1,0)-(1,24))
├── flags: ∅
├── locals: []
└── statements:
@ StatementsNode (location: (1,0)-(1,24))
├── flags: ∅
└── body: (length: 1)
└── @ CallNode (location: (1,0)-(1,24))
├── flags: newline, ignore_visibility
├── receiver: ∅
├── call_operator_loc: ∅
├── name: :f
├── message_loc: (1,0)-(1,1) = "f"
├── opening_loc: ∅
├── arguments: ∅
├── closing_loc: ∅
└── block:
@ BlockNode (location: (1,2)-(1,24))
├── flags: ∅
├── locals: [:a, :b]
├── parameters:
│ @ BlockParametersNode (location: (1,4)-(1,15))
│ ├── flags: ∅
│ ├── parameters:
│ │ @ ParametersNode (location: (1,5)-(1,14))
│ │ ├── flags: ∅
│ │ ├── requireds: (length: 1)
│ │ │ └── @ RequiredParameterNode (location: (1,5)-(1,6))
│ │ │ ├── flags: ∅
│ │ │ └── name: :a
│ │ ├── optionals: (length: 1)
│ │ │ └── @ OptionalParameterNode (location: (1,8)-(1,14))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :b
│ │ │ ├── name_loc: (1,8)-(1,9) = "b"
│ │ │ ├── operator_loc: (1,10)-(1,11) = "="
│ │ │ └── value:
│ │ │ @ IntegerNode (location: (1,12)-(1,14))
│ │ │ ├── flags: static_literal, decimal
│ │ │ └── value: 42
│ │ ├── rest: ∅
│ │ ├── posts: (length: 0)
│ │ ├── keywords: (length: 0)
│ │ ├── keyword_rest: ∅
│ │ └── block: ∅
│ ├── locals: (length: 0)
│ ├── opening_loc: (1,4)-(1,5) = "|"
│ └── closing_loc: (1,14)-(1,15) = "|"
├── body:
│ @ StatementsNode (location: (1,16)-(1,22))
│ ├── flags: ∅
│ └── body: (length: 1)
│ └── @ ArrayNode (location: (1,16)-(1,22))
│ ├── flags: newline
│ ├── elements: (length: 2)
│ │ ├── @ LocalVariableReadNode (location: (1,17)-(1,18))
│ │ │ ├── flags: ∅
│ │ │ ├── name: :a
│ │ │ └── depth: 0
│ │ └── @ LocalVariableReadNode (location: (1,20)-(1,21))
│ │ ├── flags: ∅
│ │ ├── name: :b
│ │ └── depth: 0
│ ├── opening_loc: (1,16)-(1,17) = "["
│ └── closing_loc: (1,21)-(1,22) = "]"
├── opening_loc: (1,2)-(1,3) = "{"
└── closing_loc: (1,23)-(1,24) = "}"

Некоторые файлы не были показаны из-за слишком большого количества измененных файлов Показать больше