Object Slots
The layout of object slots for my instances.
Entries
This is the most recently encountered backward jump in the ancestry of this bundle tree, or nil if none were encountered in the ancestry. There could be multiple competing parsing plans in that target bundle tree, some of which had a backward jump and some of which didn't, but we only require that at least one had a backward jump.
A raw pojo containing a type-testing tree for handling the case that at least one A_ParsingPlanInProgress in this message bundle tree is at a parsingPc pointing to a ParsingOperation.TYPE_CHECK_ARGUMENT operation. This allows relatively efficient elimination of inappropriately typed arguments.
A tuple of pairs (2-tuples) where the first element is a phrase type and the second element is an A_ParsingPlanInProgress. These should stay synchronized with the LAZY_TYPE_FILTER_TREE_POJO field.
If we wait until all tokens and arguments of a potential method send have been parsed before checking that all the arguments have the right types and precedence then we may spend a lot of extra effort parsing unnecessary expressions. For example, the "×" operation might not allow a "+" call for its left or right arguments, so parsing "1+2×…" as "(1+2)×…" is wasted effort.
This is a map from an encoded ParsingOperation (an Integer) to a A_Tuple of A_BundleTrees to attempt if the instruction succeeds.
A map from lower-case strings to successor message bundle trees. During parsing, if the next token, following conversion to lower case, is a key of this map then consume that token, look it up in this map, and continue parsing with the corresponding message bundle tree. Otherwise record a suitable parsing failure message for this position in the source stream, in case this ends up being the rightmost parse position to be reached.
A map from string to successor message. During parsing, if the next token is a key of this map then consume that token, look it up in this map, and continue parsing with the corresponding message bundle tree. Otherwise record a suitable parsing failure message for this position in the source stream, in case this ends up being the rightmost parse position to be reached.
A map from visible bundles to maps from definitions to the A_Sets of plans-in-progress for that definition/bundle. It has the same content as ALL_PLANS_IN_PROGRESS until these items have been categorized as complete, incomplete, action, or prefilter. They are categorized if and when this message bundle tree is reached during parsing.
A map from A_Bundles to maps, which are themselves from definitions to sets of plans-in-progress for that definition/bundle. Note that the inner maps may be empty in the case that a grammatical restriction has been defined before any visible definitions. This doesn't affect parsing, but makes the logic easier about deciding which grammatical restrictions are visible when adding a definition later.