@types/pegjs
Version:
TypeScript definitions for pegjs
130 lines (111 loc) • 6.38 kB
TypeScript
declare namespace PEG {
function parse(input: string): any;
interface Location {
line: number;
column: number;
offset: number;
}
interface LocationRange {
start: Location;
end: Location;
}
class SyntaxError {
line: number;
column: number;
offset: number;
location: LocationRange;
expected: any[];
found: any;
name: string;
message: string;
}
}
export type Location = PEG.Location;
export type LocationRange = PEG.LocationRange;
export interface ExpectedItem {
type: string;
value?: string | undefined;
description: string;
}
export interface PegjsError extends Error {
name: string;
message: string;
location: LocationRange;
found?: any;
expected?: ExpectedItem[] | undefined;
stack?: any;
}
export type GrammarError = PegjsError;
export var GrammarError: any;
export interface ParserOptions {
startRule?: string | undefined;
tracer?: any;
[key: string]: any;
}
export interface Parser {
parse(input: string, options?: ParserOptions): any;
SyntaxError: any;
}
export interface BuildOptionsBase {
/** rules the parser will be allowed to start parsing from (default: the first rule in the grammar) */
allowedStartRules?: string[] | undefined;
/** if `true`, makes the parser cache results, avoiding exponential parsing time in pathological cases but making the parser slower (default: `false`) */
cache?: boolean | undefined;
/** selects between optimizing the generated parser for parsing speed (`"speed"`) or code size (`"size"`) (default: `"speed"`) */
optimize?: "speed" | "size" | undefined;
/** plugins to use */
plugins?: any[] | undefined;
/** makes the parser trace its progress (default: `false`) */
trace?: boolean | undefined;
}
export interface ParserBuildOptions extends BuildOptionsBase {
/** if set to `"parser"`, the method will return generated parser object; if set to `"source"`, it will return parser source code as a string (default: `"parser"`) */
output?: "parser" | undefined;
}
export interface OutputFormatAmdCommonjs extends BuildOptionsBase {
/** if set to `"parser"`, the method will return generated parser object; if set to `"source"`, it will return parser source code as a string (default: `"parser"`) */
output: "source";
/** format of the genreated parser (`"amd"`, `"bare"`, `"commonjs"`, `"globals"`, or `"umd"`); valid only when `output` is set to `"source"` (default: `"bare"`) */
format: "amd" | "commonjs";
/** parser dependencies, the value is an object which maps variables used to access the dependencies in the parser to module IDs used to load them; valid only when `format` is set to `"amd"`, `"commonjs"`, or `"umd"` (default: `{}`) */
dependencies?: any;
}
export interface OutputFormatUmd extends BuildOptionsBase {
/** if set to `"parser"`, the method will return generated parser object; if set to `"source"`, it will return parser source code as a string (default: `"parser"`) */
output: "source";
/** format of the genreated parser (`"amd"`, `"bare"`, `"commonjs"`, `"globals"`, or `"umd"`); valid only when `output` is set to `"source"` (default: `"bare"`) */
format: "umd";
/** parser dependencies, the value is an object which maps variables used to access the dependencies in the parser to module IDs used to load them; valid only when `format` is set to `"amd"`, `"commonjs"`, or `"umd"` (default: `{}`) */
dependencies?: any;
/** name of a global variable into which the parser object is assigned to when no module loader is detected; valid only when `format` is set to `"globals"` or `"umd"` (default: `null`) */
exportVar?: any;
}
export interface OutputFormatGlobals extends BuildOptionsBase {
/** if set to `"parser"`, the method will return generated parser object; if set to `"source"`, it will return parser source code as a string (default: `"parser"`) */
output: "source";
/** format of the genreated parser (`"amd"`, `"bare"`, `"commonjs"`, `"globals"`, or `"umd"`); valid only when `output` is set to `"source"` (default: `"bare"`) */
format: "globals";
/** name of a global variable into which the parser object is assigned to when no module loader is detected; valid only when `format` is set to `"globals"` or `"umd"` (default: `null`) */
exportVar?: any;
}
export interface OutputFormatBare extends BuildOptionsBase {
/** if set to `"parser"`, the method will return generated parser object; if set to `"source"`, it will return parser source code as a string (default: `"parser"`) */
output: "source";
/** format of the genreated parser (`"amd"`, `"bare"`, `"commonjs"`, `"globals"`, or `"umd"`); valid only when `output` is set to `"source"` (default: `"bare"`) */
format?: "bare" | undefined;
}
/** Returns a generated parser object. It will throw an exception if the grammar is invalid. The exception will contain `message` property with more details about the error. */
export function generate(grammar: string, options?: ParserBuildOptions): Parser;
/** Returns the generated source code as a `string`. It will throw an exception if the grammar is invalid. The exception will contain `message` property with more details about the error. */
export function generate(grammar: string, options: OutputFormatAmdCommonjs): string;
/** Returns the generated source code as a `string`. It will throw an exception if the grammar is invalid. The exception will contain `message` property with more details about the error. */
export function generate(grammar: string, options: OutputFormatUmd): string;
/** Returns the generated source code as a `string`. It will throw an exception if the grammar is invalid. The exception will contain `message` property with more details about the error. */
export function generate(grammar: string, options: OutputFormatGlobals): string;
/** Returns the generated source code as a `string`. It will throw an exception if the grammar is invalid. The exception will contain `message` property with more details about the error. */
export function generate(grammar: string, options: OutputFormatBare): string;
export namespace parser {
type SyntaxError = PegjsError;
var SyntaxError: any;
}
export as namespace PEG;