I just had an epiphany on how to code the decoding of these trees.

Each expression has 1 expr1 child and 0 or more expr0 children. If that's the case, then each expr0 child is a child of the previous one. The same is true for the other expressions. So, we don't build the tree in forward order \(expr1->expr0->expr0...\), but in reverse order \(...->expr0->expr0->expr1\).