@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
60 lines • 1.57 kB
TypeScript
/**
* @import { Source, Word } from "@helios-lang/compiler-utils"
*/
/**
* A Module is a collection of statements
*/
export class Module {
/**
* @param {Word} name
* @param {Statement[]} statements
* @param {Source} sourceCode
*/
constructor(name: Word, statements: Statement[], sourceCode: Source);
/**
* @readonly
* @type {Word}
*/
readonly name: Word;
/**
* @readonly
* @type {Source}
*/
readonly sourceCode: Source;
/**
* @private
* @readonly
* @type {Statement[]}
*/
private readonly _statements;
/**
* @type {Statement[]}
*/
get statements(): Statement[];
/**
* @returns {string}
*/
toString(): string;
/**
* @param {ModuleScope} scope
*/
evalTypes(scope: ModuleScope): void;
/**
* This module can depend on other modules
* @param {Module[]} modules
* @param {Module[]} stack
* @returns {Module[]}
*/
filterDependencies(modules: Module[], stack?: Module[]): Module[];
/**
*
* @param {(name: string, statement: ConstStatement) => void} callback
*/
loopConstStatements(callback: (name: string, statement: ConstStatement) => void): void;
}
import type { Word } from "@helios-lang/compiler-utils";
import type { Source } from "@helios-lang/compiler-utils";
import { Statement } from "../statements/index.js";
import { ModuleScope } from "../scopes/index.js";
import { ConstStatement } from "../statements/index.js";
//# sourceMappingURL=Module.d.ts.map