Before
┌───────────────┐
│ Expression │
│ root: true │
│ globalIdx: 1 │
└───────┬───────┘
parentSeq │ ▲
│ │ expr
┌──────────────┐ ┌───────┴─┴─────┐
│ State │ │ State │
│ type: cont │ │ type: success │
└──────────────┘ └───────┬───────┘
▲ │ ▲
│ state ▼ │ state
better ┌────────┴─────┐ better ┌─────────┴─────┐
null ◄──┤ Sequence │◄─────────┤ Sequence │
│ │ worse │ │ worse
└──────┬───────┴─────────►└───────┬───────┴──► null
parentExpr │ ▲ parentExpr │
▼ │ best │
┌────────┴─────┐ ◄────────────────┘
│ Expression │
│ │
└──────┬───────┘
parentSeq │ ▲
│ │ expr
┌──────────────┐ ┌──────┴─┴─────┐
│ State │ │ State │
│ type: cont │ │ type: expr │
└──────────────┘ └──────┬───────┘
▲ │ ▲
│ state ▼ │ state
better ┌────────┴─────┐ better ┌────────┴─────┐
null ◄──┤ Sequence │◄─────────┤ Sequence │
│ │ worse │ │ worse
└──────┬───────┴─────────►└──────┬───────┴──► null
parentExpr │ ▲ parentExpr │
▼ │ best │
┌────────┴─────┐ ◄───────────────┘
│ Expression │
│ root: true │
│ globalIdx: 0 │
└──────────────┘
After
┌─────────┐
│ Matcher │
└─────────┘
▲
│ next ┌───────────────┐
better ┌────────┴─────┐ better │ Match │
┌─────────┐ null ◄──┤ Sequence │◄─────────┤ captures: ['']│
│ Matcher │ │ │ worse │ globalIdx: 1 │ worse
└─────────┘ └──────┬───────┴─────────►└──────┬────────┴──► null
▲ parent │ ▲ parent │
│ next ▼ │ best │
better ┌────────┴─────┐ better ┌────────┴─────┐ ◄───────────────┘
null ◄──┤ Sequence │◄─────────┤ Expression │
│ │ worse │ │ worse
└──────┬───────┴─────────►└──────┬───────┴──► null
parent │ ▲ parent │
▼ │ best │
┌────────┴─────┐ ◄───────────────┘
│ Match │
│ captures: [] │
│ globalIdx: 0 │
└────────┬─────┘
│ parent
▼ null