mirror of
https://github.com/gosticks/DefinitelyTyped.git
synced 2025-10-16 12:05:41 +00:00
53 lines
1.3 KiB
TypeScript
53 lines
1.3 KiB
TypeScript
import * as pegjs from 'pegjs';
|
|
{
|
|
let input: string;
|
|
let result = pegjs.PEG.parse(input);
|
|
console.log(result);
|
|
}
|
|
|
|
{
|
|
let pegparser: pegjs.Parser = pegjs.generate("start = ('a' / 'b')+");
|
|
|
|
try {
|
|
let result: string = pegparser.parse("abba");
|
|
} catch (error) {
|
|
if (error instanceof pegparser.SyntaxError) {
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
{
|
|
let parser = pegjs.generate("A = 'test'", {
|
|
cache: true,
|
|
allowedStartRules: ["A"],
|
|
optimize: "speed",
|
|
plugins: []
|
|
})
|
|
}
|
|
|
|
{
|
|
let parser: pegjs.Parser = pegjs.generate('start = "a" { return options; }');
|
|
let parsed: any = parser.parse("a", {a: 42});
|
|
}
|
|
|
|
try {
|
|
let source: string = pegjs.generate("A = 'test'", {output: "source"});
|
|
} catch (error) {
|
|
if (error instanceof pegjs.GrammarError) {
|
|
let e: pegjs.GrammarError = error;
|
|
} else if (error instanceof pegjs.parser.SyntaxError) {
|
|
let e: pegjs.parser.SyntaxError = error;
|
|
}
|
|
|
|
let e: pegjs.PegjsError = error;
|
|
console.log(e.expected[0].description);
|
|
console.log(e.expected[0].type);
|
|
console.log(e.expected[0].value);
|
|
console.log(e.location.end.column);
|
|
console.log(e.location.end.offset);
|
|
console.log(e.location.end.line);
|
|
console.log(e.message);
|
|
console.log(e.name);
|
|
}
|