noshift.js
Version:
Joke language.
54 lines (50 loc) • 1.33 kB
TypeScript
interface UppercaseWarning {
line: number;
column: number;
char: string;
message: string;
}
interface DiagnosticError {
line: number;
column: number;
message: string;
}
/**
* NoShift.js Public API
*
* Programmatic interface for compiling NoShift.js code to JavaScript.
*
* @example
* import { compile } from "noshift.js";
*
* const result = compile('console.log^8^2^6hello^2^9;');
* console.log(result.outputText);
* // => console.log("Hello");
*
* @example
* // With options
* const result = compile(code, { capitalizeInStrings: false });
*/
interface CompileOptions {
capitalizeInStrings?: boolean;
noHeader?: boolean;
}
interface CompileResult {
outputText: string;
}
/**
* Compile NoShift.js source code to JavaScript.
*
* @param source - NoShift.js source code
* @param options - Compiler options
* @returns Compilation result
*/
declare function compile(source: string, options?: CompileOptions): CompileResult;
/**
* Diagnose NoShift.js source code for syntax errors.
*
* @param source - NoShift.js source code
* @returns Array of diagnostic errors
*/
declare function diagnose(source: string): DiagnosticError[];
export { type CompileOptions, type CompileResult, type DiagnosticError, type UppercaseWarning, compile, compile as default, diagnose };