┌────────────────────────────────────────────────┐
│                   D2 Parser                    │
│                                                │
├────────────────────────────────────────────────┤
│+reader                           io.RuneReader │
│+readerPos                       d2ast.Position │
│-lookahead                               []rune │
├────────────────────────────────────────────────┤
│#peekn(n int)              (s string, eof bool) │
│+peek()                      (r rune, eof bool) │
│+rewind()                                  void │
│+commit()                                  void │
│                                                │
└────────────────────────────────────────────────┘
