@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
TypeScript
/**
* @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