UNPKG

@helios-lang/compiler

Version:

Helios is a Domain Specific Language that compiles to Plutus-Core (i.e. Cardano on-chain validator scripts). Helios is a non-Haskell alternative to Plutus. With this library you can compile Helios scripts and build Cardano transactions, all you need to bu

107 lines 3.17 kB
/** * @import { Word } from "@helios-lang/compiler-utils" * @typedef {import("../codegen/index.js").Definitions} Definitions * @typedef {import("../typecheck/index.js").DataType} DataType * @typedef {import("../typecheck/index.js").EnumMemberType} EnumMemberType * @typedef {import("../typecheck/common.js").GenericEnumMemberTypeProps} GenericEnumMemberTypeProps * @typedef {import("../typecheck/index.js").TypeSchema} TypeSchema * @typedef {import("../typecheck/index.js").VariantTypeSchema} VariantTypeSchema */ /** * @typedef {{ * name: Word * path: string * hasParameters(): boolean * }} EnumStatementI */ /** * EnumMember defintion is similar to a struct definition * @internal */ export class EnumMember { /** * @param {number} constrIndex * @param {Word} name * @param {DataField[]} fields */ constructor(constrIndex: number, name: Word, fields: DataField[]); /** * Registered later * @private * @type {EnumStatementI | undefined} */ private _parent; /** * @readonly * @type {number} */ readonly constrIndex: number; /** * @private * @readonly * @type {DataDefinition} */ private readonly _dataDef; /** * @type {Word} */ get name(): Word; /** * @param {EnumStatementI} parent */ registerParent(parent: EnumStatementI): void; /** * @type {EnumStatementI} */ get parent(): EnumStatementI; /** * @type {DataDefinition} */ get dataDefinition(): DataDefinition; /** * @param {Scope} scope */ evalDataFields(scope: Scope): void; /** * @param {Scope} scope * @returns {(parent: DataType) => EnumMemberType} */ evalType(scope: Scope): (parent: DataType) => EnumMemberType; get path(): string; /** * @param {ToIRContext} ctx * @param {Definitions} map */ toIR(ctx: ToIRContext, map: Definitions): void; /** * @returns {string} */ toString(): string; /** * @param {Set<string>} parents * @returns {VariantTypeSchema} */ toSchemaInternal(parents: Set<string>): VariantTypeSchema; /** * @param {Set<string>} parents * @returns {TypeSchema} */ toSchema(parents: Set<string>): TypeSchema; } export type Definitions = import("../codegen/index.js").Definitions; export type DataType = import("../typecheck/index.js").DataType; export type EnumMemberType = import("../typecheck/index.js").EnumMemberType; export type GenericEnumMemberTypeProps = import("../typecheck/common.js").GenericEnumMemberTypeProps; export type TypeSchema = import("../typecheck/index.js").TypeSchema; export type VariantTypeSchema = import("../typecheck/index.js").VariantTypeSchema; export type EnumStatementI = { name: Word; path: string; hasParameters(): boolean; }; import type { Word } from "@helios-lang/compiler-utils"; import { DataDefinition } from "./DataDefinition.js"; import { Scope } from "../scopes/Scope.js"; import { ToIRContext } from "../codegen/index.js"; import { DataField } from "./DataField.js"; //# sourceMappingURL=EnumMember.d.ts.map