Nested switch-on support
A .ksy file I found for parsing apfs filesystems has a construct like this:

```ksy
type:
  switch-on: '(((_parent.node_type & 2) == 0) ? 256 : 0) + _parent._parent.hdr.o_subtype.to_i * (((_parent.node_type & 2) == 0) ? 0 : 1)'
  cases:
    256: pointer_record # applies to all pointer records, i.e. any entry val in index nodes
    obj_subtype::location.to_i: location_record
    obj_subtype::files.to_i: file_record
    ...
```

Though I do think that the expression they wrote was not the most compact option, it seems like it would be much neater if we could instead write:

```ksy
type:
  switch-on: _parent.node_type & 2
  cases:
    0: pointer_record # applies to all pointer records, i.e. any entry val in index nodes
    1:
      switch-on: _parent._parent.hdr.o_subtype
      cases:
        obj_subtype::location.to_i: location_record
        obj_subtype::files.to_i: file_record
    ...
```

I'm about to add an additional level of hierarchy to this decision tree, which is going to make it much messier than it is already.