UNPKG

onelang

Version:

OneLang transpiler framework core

29 lines (28 loc) 1.68 kB
import { OneAst as one } from "./One/Ast"; import { SchemaContext } from "./One/SchemaContext"; import { LangFileSchema } from "./Generator/LangFileSchema"; import { CodeGenerator } from "./Generator/CodeGenerator"; import { GenericTransformer } from "./One/Transforms/GenericTransformer"; import { IParser } from "./Parsers/Common/IParser"; import { PackageManager } from "./StdLib/PackageManager"; export declare class OneCompiler { parser: IParser; schemaCtx: SchemaContext; overlayCtx: SchemaContext; stdlibCtx: SchemaContext; genericTransformer: GenericTransformer; langName: string; saveSchemaStateCallback: (type: "overviewText" | "schemaJson", schemaType: "program" | "overlay" | "stdlib", name: string, data: string) => void; setup(overlayCode: string, stdlibCode: string, genericTransformerYaml: string): void; /** * Schema types: * - program: the input program to be compiled into another language * - overlay: helper classes which map the input language's built-in methods / properties to OneLang methods (eg. Object.keys(map) -> map.keys()) * - stdlib: declaration (not implementation!) of OneLang methods (eg. map.keys) which are implemented in every language separately */ parse(langName: string, programCode: string): void; protected saveSchemaState(schemaCtx: SchemaContext, name: string): void; static parseLangSchema(langYaml: string, pacMan: PackageManager, stdlib: one.Schema): LangFileSchema.LangFile; getCodeGenerator(lang: LangFileSchema.LangFile): CodeGenerator; compile(langCode: string, pacMan: PackageManager, callTestMethod?: boolean, genMeta?: boolean): string; }