Returns bit order.
Returns bit order. If text, this is the bit order for the character set encoding. If binary, this is the bitOrder property value.
Checks for legal bitOrder change (byte boundary required), or splits the DOS so that the check will occur later when they are collapsed back together.
Checks for legal bitOrder change (byte boundary required), or splits the DOS so that the check will occur later when they are collapsed back together.
If you think about it, the only way we could not have the absoluteBitPos is because something variable-length preceded us, and couldn't be computed due to suspended computation (forward referencing expression somewhere prior).
At some point, that suspension will get resolved, and forward collapsing of the DataOutputStreams will occur. When it encounters a split created here, we already know that the bit orders are different (or we wouldn't have put in the split), so we just have to see if we're on a byte boundary. That could happen if the original DOS ended in a frag byte, but previous to it, was something that was variable bits wide (all bits shift such that original DOS's frag byte becomes a whole byte.)
The invariant here is that the original DOS will get collapsed together with DOS preceding it. After that collapsing, it has to end at a byte boundary (no frag byte). If it doesn't then it's a bit order-change error. Otherwise we're ok.
This is why we can always proceed with a new buffered DOS, knowing we're going to be on a byte boundary with the bit order needed.
Used when evaluating expressions.
Used when evaluating expressions. Holds state of expression during evaluation.
Doesn't hold every bit of state - that is to say there's still the regular execution call stack, which keeps track of exactly where in the expression evaluation we are.
The User API sets the debugger and debug on/off flag on the DataProcessor object.
The User API sets the debugger and debug on/off flag on the DataProcessor object. When a PState or UState is created by the DataProcessor, the DataProcessor sets notifies the state object so that it can setup any debug-specific behaviors.
Must call after all processors so as to recompute the formatInfo slots for the next parser - since the values could change.
Must call after all processors so as to recompute the formatInfo slots for the next parser - since the values could change.
Must be called on the state before any call to the I/O layer, as that will call back to get property-related information and that has to be obtained via the runtime data for the term - whether element or model group.
Must be called on the state before any call to the I/O layer, as that will call back to get property-related information and that has to be obtained via the runtime data for the term - whether element or model group. The
Important: If an error is being suppressed, you must call this to reset the state back so that the prior failure doesn't "last forever" past the point where it is being suppressed.
Important: If an error is being suppressed, you must call this to reset the state back so that the prior failure doesn't "last forever" past the point where it is being suppressed.
This happens, for example, in the debugger when it is evaluating expressions.
Used when errors are caught by interactive debugger expression evaluation.
Used when errors are caught by interactive debugger expression evaluation. We don't want to accumulate the diagnostics that we're suppressing.
Variable map provides access to variable bindings.
Variable map provides access to variable bindings.