Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
].join(''),
'}',
].join('\n'),
};
}
function cacheInitHook(opts) {
return [
'var peg$cache = {};',
'var visitCounts = new Uint8Array(input.length);',
].join('\n');
}
if (PARSOID_DUMP_TOKENIZER_RULES) {
var visitor = require('pegjs/lib/compiler/visitor');
var ast = PEG.parser.parse(this.src);
// Current code style seems to use spaces in the tokenizer.
var tab = ' ';
// Add some eslint overrides and define globals.
var rulesSource = '/* eslint-disable indent,camelcase,no-unused-vars */\n';
rulesSource += "\n'use strict';\n\n";
rulesSource += 'var options, location, input, text, peg$cache, peg$currPos;\n';
// Prevent redefinitions of variables involved in choice expressions
var seen = new Set();
var addVar = function(name) {
if (!seen.has(name)) {
rulesSource += tab + 'var ' + name + ' = null;\n';
seen.add(name);
}
};
// Collect all the code blocks in the AST.
var dumpCode = function(node) {
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);
}
it( rule, function () {
expect( () => {
peg.generate( [
"start = " + rule,
rule + " = 'a'",
].join( "\n" ), { output: "source" } );
} ).to.not.throw( peg.parser.SyntaxError );
} );
{
let parser = pegjs.generate("A = 'test'", {
cache: true,
allowedStartRules: ["A"],
optimize: "speed",
plugins: []
})
}
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);
}