Checks if the bit order change is legal.
Checks if the bit order change is legal.
For parsing we know the bitPos, so we can determine if we're at a byte boundary.
For unparsing we may not know the absolute bitPos, so we cannot necessarily determine if the boundary is legal or not.
If we know the absoluteBitPos we do the check (as for parsing).
If we do not know the absoluteBitPos, then in that case, we split the DataOutputStream into original and buffered. The "check" then occurs when these DataOutputStreams are collapsed back together.
So this "check" call, can have an important side effect when unparsing that queues up the check to be done in the future.
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.
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.
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.
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.
A parser takes a state, and returns an updated state
The fact that there are side-effects/mutations on parts of the state enables us to reuse low-level java primitives that mutate streams.
The goal however, is to hide that fact so that the only places that have to know are the places doing the mutation, and the places rolling them back which should be isolated to the alternative parser, and repParsers, i.e., places where points-of-uncertainty are handled.