ModuleManifestEntry

A ModuleManifestEntry is a short summary of an interesting definition created by some module. This includes atoms, method definitions, semantic restrictions, lexers, module variables/constants, etc.

Author

Mark van Gulik

Constructors

Link copied to clipboard
constructor(kind: SideEffectKind, nameInModule: NameInModule?, summaryText: String, signature: A_Type?, topLevelStartingLine: Int, definitionStartingLine: Int, bodyFunction: A_Function? = null, bodyPhraseIndexNumber: Int = -1)

Create a ModuleManifestEntry from its parts.

Properties

Link copied to clipboard

A short textual description of each argument type. Only valid if the returnType is not null.

Link copied to clipboard

The index into the current module's tuple of phrases, accessible via A_Module.originatingPhraseAtIndex. If this has not yet been computed, it will be -1, and the bodyFunction will be some A_Function. If there is no suitable body, or if it's not something that was serialized with the module, it will also be -1, but the bodyFunction will be null.

Link copied to clipboard

The location within this module of the start of the body function for this definition, or 0 if inapplicable.

Link copied to clipboard

The kind of manifest entry that this is.

Link copied to clipboard

The NameInModule being declared, defined, or restricted, if any.

Link copied to clipboard

A short textual description of the return type. If this is null, the argumentTypes should be ignored.

Link copied to clipboard

A short textual description of this entry, to present in a list of manifest entries.

Link copied to clipboard

The first line of the top level statement responsible for adding the definition described by this manifest entry.

Functions

Link copied to clipboard
fun write(binaryStream: DataOutputStream)

Write this entry to the provided DataOutputStream, in a way that is naturally delimited for subsequent reading via the secondary constructor that takes a DataInputStream.