@ DocumentNode (location: (1:0)-(1:59))
└── children: (1 item)
    └── @ HTMLElementNode (location: (1:0)-(1:59))
        ├── open_tag:
        │   └── @ HTMLOpenTagNode (location: (1:0)-(1:59))
        │       ├── tag_opening: "<" (location: (1:0)-(1:1))
        │       ├── tag_name: "input" (location: (1:1)-(1:6))
        │       ├── tag_closing: "/>" (location: (1:57)-(1:59))
        │       ├── children: (2 items)
        │       │   ├── @ HTMLAttributeNode (location: (1:7)-(1:28))
        │       │   │   ├── name:
        │       │   │   │   └── @ HTMLAttributeNameNode (location: (1:7)-(1:12))
        │       │   │   │       └── name: "value" (location: (1:7)-(1:12))
        │       │   │   │
        │       │   │   ├── equals: "=" (location: (1:12)-(1:13))
        │       │   │   └── value:
        │       │   │       └── @ HTMLAttributeValueNode (location: (1:13)-(1:28))
        │       │   │           ├── open_quote: """ (location: (1:13)-(1:14))
        │       │   │           ├── children: (1 item)
        │       │   │           │   └── @ LiteralNode (location: (1:14)-(1:27))
        │       │   │           │       └── content: "double quoted"
        │       │   │           │
        │       │   │           ├── close_quote: """ (location: (1:27)-(1:28))
        │       │   │           └── quoted: true
        │       │   │
        │       │   │
        │       │   └── @ HTMLAttributeNode (location: (1:29)-(1:56))
        │       │       ├── name:
        │       │       │   └── @ HTMLAttributeNameNode (location: (1:29)-(1:40))
        │       │       │       └── name: "placeholder" (location: (1:29)-(1:40))
        │       │       │
        │       │       ├── equals: "=" (location: (1:40)-(1:41))
        │       │       └── value:
        │       │           └── @ HTMLAttributeValueNode (location: (1:41)-(1:56))
        │       │               ├── open_quote: "'" (location: (1:41)-(1:42))
        │       │               ├── children: (1 item)
        │       │               │   └── @ LiteralNode (location: (1:42)-(1:55))
        │       │               │       └── content: "single quoted"
        │       │               │
        │       │               ├── close_quote: "'" (location: (1:55)-(1:56))
        │       │               └── quoted: true
        │       │
        │       │
        │       └── is_void: true
        │
        ├── tag_name: "input" (location: (1:1)-(1:6))
        ├── body: []
        ├── close_tag: ∅
        └── is_void: true