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

100 lines 3.44 kB
/** * @import { Word } from "@helios-lang/compiler-utils" * @typedef {import("../typecheck/index.js").DataType} DataType * @typedef {import("../typecheck/index.js").EvalEntity} EvalEntity * @typedef {import("../typecheck/index.js").Func} Func * @typedef {import("../typecheck/index.js").MultiValidatorInfo} MultiValidatorInfo * @typedef {import("../typecheck/index.js").Named} Named * @typedef {import("../typecheck/index.js").Namespace} Namespace * @typedef {import("../typecheck/index.js").Parametric} Parametric * @typedef {import("../typecheck/index.js").Type} Type * @typedef {import("../typecheck/index.js").ScriptTypes} ScriptTypes */ /** * Setting information allows making the scope multi-validator aware * @typedef {{ * currentScript?: string * scriptTypes?: ScriptTypes * }} GlobalScopeConfig */ /** * @type {{[name: string]: (info: MultiValidatorInfo) => NamedNamespace}} */ export const builtinNamespaces: { [name: string]: (info: MultiValidatorInfo) => NamedNamespace; }; /** * @type {{[name: string]: DataType}} */ export const builtinTypes: { [name: string]: DataType; }; /** * GlobalScope sits above the top-level scope and contains references to all the builtin Values and Types */ export class GlobalScope { /** * Initialize the GlobalScope with all the builtins * @param {MultiValidatorInfo} info * @returns {GlobalScope} */ static "new"(info: MultiValidatorInfo): GlobalScope; /** * @private * @readonly * @type {[Word, EvalEntity][]} */ private readonly _values; /** * Checks if scope contains a name * @param {Word} name * @returns {boolean} */ has(name: Word): boolean; /** * Sets a global name, doesn't check for uniqueness * Called when initializing GlobalScope * @param {string | Word} name * @param {EvalEntity} value */ set(name: string | Word, value: EvalEntity): void; /** * Gets a named value from the scope. * Throws an error if not found. * @param {Word} name * @returns {EvalEntity} */ get(name: Word): EvalEntity; /** * @param {Word} name * @returns {(Named & Namespace) | undefined} */ getBuiltinNamespace(name: Word): (Named & Namespace) | undefined; /** * @returns {boolean} */ isStrict(): boolean; /** * @param {(name: string, type: Type) => void} callback */ loopTypes(callback: (name: string, type: Type) => void): void; } export type DataType = import("../typecheck/index.js").DataType; export type EvalEntity = import("../typecheck/index.js").EvalEntity; export type Func = import("../typecheck/index.js").Func; export type MultiValidatorInfo = import("../typecheck/index.js").MultiValidatorInfo; export type Named = import("../typecheck/index.js").Named; export type Namespace = import("../typecheck/index.js").Namespace; export type Parametric = import("../typecheck/index.js").Parametric; export type Type = import("../typecheck/index.js").Type; export type ScriptTypes = import("../typecheck/index.js").ScriptTypes; /** * Setting information allows making the scope multi-validator aware */ export type GlobalScopeConfig = { currentScript?: string; scriptTypes?: ScriptTypes; }; import { NamedNamespace } from "../typecheck/index.js"; import type { Word } from "@helios-lang/compiler-utils"; //# sourceMappingURL=GlobalScope.d.ts.map