Array index calculations (that is [expr], what XPath calls 'predicate')
Set to UnparserBlocking for forward-referencing expressions during unparsing.
Used by UState, where we want to shared the vmap as modified by the expression evaluations that use the DState.
Used by PState and parser, where we want to isolate the modifications to the vmap per expression evaluation.
Used by PState and parser, where we want to isolate the modifications to the vmap per expression evaluation. This isolate makes backtracking changes to the vmap easy. Just don't copy the vmap back from the DState into the PState, and the changes are gone.
expression evaluation side-effects this state block.
For DPath expressions, all infoset content must be obtained via methods on this object so that if used in a forward referencing expression the expression can block until the information becomes available.