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

67 lines 1.61 kB
/** * @import { Site, Token, Word } from "@helios-lang/compiler-utils" * @typedef {import("../codegen/index.js").Definitions} Definitions */ /** * Base class for all statements * Doesn't return a value upon calling eval(scope) */ export class Statement { /** * @param {Site} site * @param {Word} name */ constructor(site: Site, name: Word); /** * @readonly * @type {Site} */ readonly site: Site; /** * @type {string} */ basePath: string; /** * @private * @readonly * @type {Word} */ private readonly _name; /** * @type {Word} */ get name(): Word; /** * @type {string} */ get path(): string; /** * @type {Statement[]} */ get statements(): Statement[]; /** * @param {ModuleScope} scope */ eval(scope: ModuleScope): void; /** * @param {string} basePath */ setBasePath(basePath: string): void; /** * Returns IR of statement. * No need to specify indent here, because all statements are top-level * @param {ToIRContext} ctx * @param {Definitions} map */ toIR(ctx: ToIRContext, map: Definitions): void; /** * @returns {string} */ toString(): string; } export type Definitions = import("../codegen/index.js").Definitions; import type { Site } from "@helios-lang/compiler-utils"; import type { Word } from "@helios-lang/compiler-utils"; import { ModuleScope } from "../scopes/index.js"; import { ToIRContext } from "../codegen/index.js"; //# sourceMappingURL=Statement.d.ts.map