Package avail.interpreter.primitive.bootstrap.syntax

Types

Link copied to clipboard
object P_BootstrapAssignmentStatementCheckMacro : Primitive

The P_BootstrapAssignmentStatementCheckMacro primitive is used for checking that an assignment statement's destination variable is within scope. It reduces some false-positive theories from partial parses like "a : b := c", in the likely event that "b" is not a variable that is in scope.

Link copied to clipboard
object P_BootstrapAssignmentStatementMacro : Primitive

The P_BootstrapAssignmentStatementMacro primitive is used for assignment statements. It constructs an expression-as-statement containing an assignment that has the isInline flag cleared.

Link copied to clipboard
object P_BootstrapBlockMacro : Primitive

The P_BootstrapBlockMacro primitive is used for bootstrapping the block syntax for defining functions.

Link copied to clipboard
object P_BootstrapConstantDeclarationMacro : Primitive

The P_BootstrapConstantDeclarationMacro primitive is used for bootstrapping the declaration of a local constant. Constant declarations that occur at the outermost scope are rewritten by the AvailCompiler as a module constant.

Link copied to clipboard
object P_BootstrapDefineSpecialObjectMacro : Primitive

Primitive: Construct a method and an accompanying literalizing macro that provide access to the specified special object.

The P_BootstrapInitializingVariableDeclarationMacro primitive is used for bootstrapping declaration of a local variable with an initializing expression.

Link copied to clipboard
object P_BootstrapLiteral : Primitive

Primitive: Create a literal phrase from a literal token (already wrapped inside a literal phrase). This is a bootstrap macro, which is initially the only way that literal phrases get built.

Link copied to clipboard
object P_BootstrapPrefixBlockArgument : Primitive

The P_BootstrapPrefixBlockArgument primitive is used as a prefix function for bootstrapping argument declarations within a block.

Link copied to clipboard
object P_BootstrapPrefixEndOfBlockBody : Primitive

The P_BootstrapPrefixEndOfBlockBody primitive is used for bootstrapping the block syntax for defining functions.

Link copied to clipboard
object P_BootstrapPrefixLabelDeclaration : Primitive

The P_BootstrapPrefixLabelDeclaration primitive is used for bootstrapping declaration of a label. The label indicates a way to restart or exit a block, so it's probably best if Avail's block syntax continues to constrain this to occur at the start of a block.

Link copied to clipboard
object P_BootstrapPrefixPostStatement : Primitive

The P_BootstrapPrefixPostStatement primitive is used for ensuring that statements are top-valued before over-parsing.

Link copied to clipboard
object P_BootstrapPrefixPrimitiveDeclaration : Primitive

The P_BootstrapPrefixVariableDeclaration primitive is used for bootstrapping declaration of a primitive declaration, including an optional primitive failure variable which holds the reason for a primitive's failure.

Link copied to clipboard
object P_BootstrapPrefixStartOfBlock : Primitive

The P_BootstrapPrefixStartOfBlock primitive is triggered at the start of parsing a block. It pushes the current scope onto the scope stack so that it can be popped again by the P_BootstrapBlockMacro when the block parsing completes.

Link copied to clipboard
object P_BootstrapSendAsStatementMacro : Primitive

The P_BootstrapSendAsStatementMacro primitive is used to allow message sends producing ⊤ to be used as statements, by wrapping them inside expression-as-statement.

Link copied to clipboard
object P_BootstrapSuperCastMacro : Primitive

The P_BootstrapSuperCastMacro primitive is used to create a super-cast phrase. This is used to control method lookup, and is a generalization of the concept of super found in some object-oriented languages.

Link copied to clipboard
object P_BootstrapVariableDeclarationMacro : Primitive

The P_BootstrapVariableDeclarationMacro primitive is used for bootstrapping declaration of a local variable (without an initializing expression).

Link copied to clipboard
object P_BootstrapVariableUseMacro : Primitive

The P_BootstrapVariableUseMacro primitive is used to create variable use phrases.

Link copied to clipboard
object P_ModuleHeaderPrefixCheckImportVersion : Primitive

This is the prefix function for P_ModuleHeaderPseudoMacro associated with having just read one more version string in an import clause. Check it against the already parsed version strings for that import to ensure it's not a duplicate. Doing this in a macro prefix function allows early checking (for duplicate import versions), as well as detecting the leftmost error.

Link copied to clipboard
object P_ModuleHeaderPrefixCheckModuleName : Primitive

This is the prefix function for P_ModuleHeaderPseudoMacro associated with having just read the module name. It allows early checking that the module name agrees with the file name.

Link copied to clipboard
object P_ModuleHeaderPrefixCheckModuleVersion : Primitive

This is the prefix function for P_ModuleHeaderPseudoMacro associated with having just read one more module version string. Check it against the already parsed version strings to ensure it's not a duplicate. Doing this in a macro prefix function allows early checking (for duplicate versions).

Link copied to clipboard
object P_ModuleHeaderPseudoMacro : Primitive

The P_ModuleHeaderPseudoMacro primitive is used to parse module headers. When this primitive is invoked, it should yield a PhraseKind.STATEMENT_PHRASE. The method is private, and used to parse the headers of modules with the same machinery used for the bodies.