Companion

object Companion

Functions

Link copied to clipboard
fun A_Bundle.addDefinitionParsingPlan(plan: A_DefinitionParsingPlan)

Add a definition parsing plan to this bundle, to bring it into agreement with the method's definitions and macro definitions.

Link copied to clipboard
fun A_Bundle.addGrammaticalRestriction(grammaticalRestriction: A_GrammaticalRestriction)

Add a grammatical to the receiver.

Link copied to clipboard
fun A_Bundle.bundleAddMacro(macro: A_Macro, ignoreSeals: Boolean)

Add the A_Macro definition to this bundle, respecting seals if requested. Throw a SignatureException (without making changes), if the macro body's signature is incompatible with the bundle's name. See MessageSplitter and its related classes for information about how the message name is related to argument structure.

Link copied to clipboard
fun A_Bundle.lookupMacroByPhraseTuple(argumentPhraseTuple: A_Tuple): A_Tuple

Look up the A_Macro definition to invoke, given an A_Tuple of argument phrases. Use the A_Bundle's macro testing tree to find the macro definition to invoke. Answer the A_Tuple of applicable macro definitions.

Link copied to clipboard
fun A_Bundle.messagePart(index: Int): A_String

Answer a message part produced by the MessageSplitter when applied to this bundle's name. The part is a substring of the bundle name. The index is one-based.

Link copied to clipboard
fun A_Bundle.removeGrammaticalRestriction(grammaticalRestriction: A_GrammaticalRestriction)

Remove a grammatical from the receiver.

Link copied to clipboard
fun A_Bundle.removeMacro(macro: A_Macro)

Remove a macro from the receiver. The macro will be removed from the bundle's tuple of macros, from its current parsing plans, and from its macro type-lookup tree.

Link copied to clipboard
fun A_Bundle.removePlanForSendable(sendable: A_Sendable)

Remove information about this definition or macro from this bundle.

Properties

Link copied to clipboard
val A_Bundle.bundleMethod: A_Method

Answer the method that this bundle names. Multiple bundles may refer to the same method to support renaming of imported names.

Link copied to clipboard
val A_Bundle.definitionParsingPlans: A_Map

Answer this bundle's A_Map from A_Definition to A_DefinitionParsingPlan.

Link copied to clipboard
val A_Bundle.grammaticalRestrictions: A_Set

Answer the set of grammatical restrictions that have been attached to this bundle.

Link copied to clipboard
val A_Bundle.hasGrammaticalRestrictions: Boolean

Answer whether this bundle has any grammatical restrictions.

Link copied to clipboard
val A_Bundle.macrosTuple: A_Tuple

Answer a tuple that comprises all macros defined for this bundle.

Link copied to clipboard
val A_Bundle.message: A_Atom

Answer the name of this bundle. It must be parsable as a method name according to the rules of the MessageSplitter.

Link copied to clipboard
val A_Bundle.messageParts: A_Tuple

Answer the message parts produced by the MessageSplitter when applied to this bundle's name. It's basically an A_Tuple of A_Strings in the order the tokens appear in the bundle's name.

Link copied to clipboard
val A_Bundle.messageSplitter: MessageSplitter

Answer the MessageSplitter holding parse planning information for invocations of this message bundle.

Link copied to clipboard
val A_Bundle.numArgs: Int

Answer the arity of this A_Bundle, which must be the same for all bundles of its A_Method.