@ ProgramNode (location: (1,0)-(3,20)) ├── locals: [] └── statements: @ StatementsNode (location: (1,0)-(3,20)) └── body: (length: 2) ├── @ ModuleNode (location: (1,0)-(1,17)) │ ├── locals: [] │ ├── module_keyword_loc: (1,0)-(1,6) = "module" │ ├── constant_path: │ │ @ ConstantPathNode (location: (1,7)-(1,12)) │ │ ├── parent: ∅ │ │ ├── child: │ │ │ @ ConstantReadNode (location: (1,9)-(1,12)) │ │ │ └── name: :Foo │ │ └── delimiter_loc: (1,7)-(1,9) = "::" │ ├── body: ∅ │ ├── end_keyword_loc: (1,14)-(1,17) = "end" │ └── name: :Foo └── @ ModuleNode (location: (3,0)-(3,20)) ├── locals: [] ├── module_keyword_loc: (3,0)-(3,6) = "module" ├── constant_path: │ @ ConstantPathNode (location: (3,7)-(3,15)) │ ├── parent: │ │ @ ConstantReadNode (location: (3,7)-(3,10)) │ │ └── name: :Bar │ ├── child: │ │ @ ConstantReadNode (location: (3,12)-(3,15)) │ │ └── name: :Foo │ └── delimiter_loc: (3,10)-(3,12) = "::" ├── body: ∅ ├── end_keyword_loc: (3,17)-(3,20) = "end" └── name: :Foo