Companion

object Companion

Functions

Link copied to clipboard
fun A_BundleTree.addPlanInProgress(planInProgress: A_ParsingPlanInProgress)

Add a definition parsing plan to this bundle tree. The corresponding bundle must already be present.

Link copied to clipboard
fun A_BundleTree.expand(module: A_Module)

Expand the bundle tree if there's anything currently unclassified in it. By postponing this until necessary, construction of the parsing rules for the grammar is postponed until actually necessary.

Link copied to clipboard
fun A_BundleTree.removePlanInProgress(planInProgress: A_ParsingPlanInProgress)

Remove information about this definition from this bundle tree.

Link copied to clipboard

A grammatical restriction has been added. Update this bundle tree to conform to the new restriction along any already-expanded paths for the given plan. Updated the treesToVisit collection to include any new trees to visit as a consequence of visiting this tree.

Properties

Link copied to clipboard
val A_BundleTree.allParsingPlansInProgress: A_Map

Answer the bundle tree's map of all plans.

Link copied to clipboard
val A_BundleTree.hasBackwardJump: Boolean

Answer whether there are any parsing-plans-in-progress which are at a backward jump].

Link copied to clipboard
var A_BundleTree.isSourceOfCycle: Boolean

Answer whether this bundle tree has been marked as the source of a cycle. If so, the latestBackwardJump is the bundle tree at which to continue processing.

Link copied to clipboard
val A_BundleTree.latestBackwardJump: A_BundleTree

Answer the nearest ancestor bundle tree that contained a ParsingOperation.JUMP_BACKWARD. There may be closer ancestor A_BundleTrees with a backward jump, but that jump wasn't present in the bundle tree yet.

Link copied to clipboard
val A_BundleTree.lazyActions: A_Map

Answer the bundle trees that will be reached when specific parse instructions run. During normal processing, all such instructions are attempted in parallel. Certain instructions like ParsingOperation.PARSE_PART do not get added to this map, and are instead added to other structures such as lazyIncomplete.

Link copied to clipboard
val A_BundleTree.lazyComplete: A_Map

Answer the A_Map from bundles to A_Set of A_Sendable macros and method definitions, an invocation of which has been completely parsed when this bundle tree has been reached.

Link copied to clipboard
val A_BundleTree.lazyIncomplete: A_Map

Answer the bundle trees that are waiting for a specific token to be parsed. These are organized as a map where each key is the A_String form of an expected token, and the corresponding value is the successor A_BundleTree representing the situation where a token matching the key was consumed.

Link copied to clipboard
val A_BundleTree.lazyIncompleteCaseInsensitive: A_Map

Answer the bundle trees that are waiting for a specific case-insensitive token to be parsed. These are organized as a map where each key is the lower-case string form of an expected case-insensitive token, and the corresponding value is the successor bundle tree representing the situation where a token case-insensitively matching the key was consumed.

Link copied to clipboard
val A_BundleTree.lazyPrefilterMap: A_Map

Answer a map used by the ParsingOperation.CHECK_ARGUMENT instruction to quickly eliminate arguments that are forbidden by grammatical restrictions. The map is from each restricted argument bundle to the successor bundle tree that includes every bundle that is allowed when an argument is an invocation of a restricted argument bundle. Each argument bundle that is restricted by at least one parent bundle at this point (just after having parsed an argument) has an entry in this map. Argument bundles that are not restricted do not occur in this map, and are instead dealt with by an entry in the lazyActions map.

Link copied to clipboard

If this message bundle tree has a type filter tree, return it, otherwise null.