sprache.js is a TypeScript port of Sprache, a simple parser for C#
npm install sprache --save
Unlike most parser-building frameworks, you use Sprache from your program code, and don't need to set up any build-time code generation tasks.
A simple parser might parse a sequence of characters:
import { Parse } from 'sprache';
// Parse any number of capital 'A's in a row
var parseA = Parse.char('A').atLeastOnce();
Sprache provides a number of built-in functions that can make bigger parsers from smaller ones, often callable via generators:
import { Parse } from 'sprache';
const identifier = Parse.query(function*() {
const leading = yield Parse.whiteSpace.many();
const first = yield Parse.letter.once();
const rest = yield Parse.letterOrDigit.many();
const trailing = yield Parse.whiteSpace.many();
return Parse.return([first].concat(rest).join(''));
});
var id = identifier.parse(" abc123 ");
Assert.isEqual("abc123", id);
More examples are available in examples/
npm install
npm run build
npm run test
To run as example
npm run build && node dist/examples/sql
Is VSCode, just run task "npm: install", then F5 to run.