Jison parser
npm install @andrei-sfia/jisonUse this package to parse a string, according to a grammar you specify.
* parse formulas
* create your own language
``typescript
import {AST, Parser, Tokenizer} from "@andrei-sfia/jison";
// STEP 1. Create a grammar object from a string (typically loaded from a grammar file)
const grammar = new Grammar(
/** a structure of type JISON containing your parser rules.
** see "unit/rules/math-orig-jison.ts" for such example.
**/
grammarJISON
);
// STEP 2. Create a text tokenizer, based on the grammar you specified
const tokenizer = new Tokenizer(grammar);
// STEP 3. Create a parser based on the grammar
const parser = new Parser(grammar);
// STEP 4.1 (default usecase) Tokenize and parse
const tokens = tokenizer.tokenize(1 + 1 (3 + 4 5));
const ast = parser.parse(tokens);
// ast contains the parsed resut.
console.log(ast);
`
`typescript1 + 1 (3 + 4 5)
// STEP 4.2 (optional usecase, instead of 4.1) Tokenize, parse and annotate parsed tokens
const tokensWhichWillBeAnnotated = tokenizer.tokenize(, 'error');
try {
const astValue = parser.parse(tokensWhichWillBeAnnotated, true);
console.log(astValue);
} catch (e) {}
console.log(tokensWhichWillBeAnnotated);
`
A grammar file includes all specifications needed for the tokenizer and the parser.
A default grammar file (which is used also by the unit tests) can be
found in unit/rules/math-orig-jison.ts
* npm install - install dependencies
* npm test - run unit tests
* npm lint` - lint, scan for issues