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

70 lines 2.25 kB
/** * @typedef {import("@helios-lang/compiler-utils").Site} Site * @typedef {import("../codegen/index.js").Definitions} Definitions * @typedef {import("../typecheck/index.js").InstanceMembers} InstanceMembers * @typedef {import("../typecheck/index.js").TypeMembers} TypeMembers */ /** * Impl statements, which add functions and constants to registry of user types (Struct, Enum Member and Enums) */ export class ImplDefinition { /** * @param {Expr} selfTypeExpr; * @param {(FuncStatement | ConstStatement)[]} statements */ constructor(selfTypeExpr: Expr, statements: (FuncStatement | ConstStatement)[]); /** * @readonly * @type {(FuncStatement | ConstStatement)[]} */ readonly statements: (FuncStatement | ConstStatement)[]; /** * @private * @readonly * @type {Expr} */ private readonly _selfTypeExpr; /** * @type {Site} */ get site(): import("@helios-lang/compiler-utils").Site; /** * @param {string} basePath */ setBasePath(basePath: string): void; /** * @returns {string} */ toString(): string; /** * @param {Scope} scope * @returns {TypeMembers} */ genTypeMembers(scope: Scope): TypeMembers; /** * Doesn't add the common types * @param {Scope} scope * @returns {InstanceMembers} */ genInstanceMembers(scope: Scope): InstanceMembers; /** * @param {Scope} scope */ eval(scope: Scope): void; /** * Returns IR of all impl members * @param {ToIRContext} ctx * @param {Definitions} map */ toIR(ctx: ToIRContext, map: Definitions): void; } export type Site = import("@helios-lang/compiler-utils").Site; export type Definitions = import("../codegen/index.js").Definitions; export type InstanceMembers = import("../typecheck/index.js").InstanceMembers; export type TypeMembers = import("../typecheck/index.js").TypeMembers; import { FuncStatement } from "./FuncStatement.js"; import { ConstStatement } from "./ConstStatement.js"; import { Scope } from "../scopes/index.js"; import { ToIRContext } from "../codegen/ToIRContext.js"; import { Expr } from "../expressions/index.js"; //# sourceMappingURL=ImplDefinition.d.ts.map