@ ProgramNode (location: (1,0)-(2,15)) ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(2,15)) └── body: (length: 2) ├── @ AliasGlobalVariableNode (location: (1,0)-(1,15)) │ ├── new_name: │ │ @ GlobalVariableReadNode (location: (1,6)-(1,10)) │ │ └── name: :$foo │ ├── old_name: │ │ @ GlobalVariableReadNode (location: (1,11)-(1,15)) │ │ └── name: :$bar │ └── keyword_loc: (1,0)-(1,5) = "alias" └── @ AliasMethodNode (location: (2,0)-(2,15)) ├── new_name: │ @ SymbolNode (location: (2,6)-(2,10)) │ ├── flags: forced_us_ascii_encoding │ ├── opening_loc: (2,6)-(2,7) = ":" │ ├── value_loc: (2,7)-(2,10) = "foo" │ ├── closing_loc: ∅ │ └── unescaped: "foo" ├── old_name: │ @ SymbolNode (location: (2,11)-(2,15)) │ ├── flags: forced_us_ascii_encoding │ ├── opening_loc: (2,11)-(2,12) = ":" │ ├── value_loc: (2,12)-(2,15) = "bar" │ ├── closing_loc: ∅ │ └── unescaped: "bar" └── keyword_loc: (2,0)-(2,5) = "alias"