@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
78 lines • 1.93 kB
TypeScript
/**
* @import { Site, Word } from "@helios-lang/compiler-utils"
* @typedef {import("@helios-lang/ir").SourceMappedStringI} SourceMappedStringI
* @typedef {import("../typecheck/index.js").Type} Type
*/
/**
* NameTypePair is base class of FuncArg and DataField (differs from StructLiteralField)
*/
export class NameTypePair {
/**
* @param {Word} name
* @param {Expr | undefined} typeExpr
*/
constructor(name: Word, typeExpr: Expr | undefined);
/**
* @private
* @readonly
* @type {Word}
*/
private readonly _name;
/**
* @private
* @readonly
* @type {Expr | undefined}
*/
private readonly _typeExpr;
/**
* @type {Site}
*/
get site(): Site;
/**
* @type {Word}
*/
get name(): Word;
/**
* Throws an error if called before evalType()
* @type {Type}
*/
get type(): import("../typecheck/common.js").Type;
/**
* @type {Expr | undefined}
*/
get typeExpr(): Expr | undefined;
/**
* @type {string}
*/
get typeName(): string;
/**
* @returns {boolean}
*/
isIgnored(): boolean;
/**
* @returns {boolean}
*/
hasType(): boolean;
/**
* Evaluates the type, used by FuncLiteralExpr and DataDefinition
* @param {Scope} scope
* @returns {Type}
*/
evalType(scope: Scope): Type;
/**
* @returns {SourceMappedStringI}
*/
toIR(): SourceMappedStringI;
/**
*
* @returns {string}
*/
toString(): string;
}
export type SourceMappedStringI = import("@helios-lang/ir").SourceMappedStringI;
export type Type = import("../typecheck/index.js").Type;
import type { Site } from "@helios-lang/compiler-utils";
import type { Word } from "@helios-lang/compiler-utils";
import { Expr } from "./Expr.js";
import { Scope } from "../scopes/index.js";
//# sourceMappingURL=NameTypePair.d.ts.map