Magnit.Tokenization
Chevrotain
Magnit.Tokenization | Chevrotain | |
---|---|---|
1 | 3 | |
1 | 2,399 | |
- | 0.9% | |
10.0 | 6.7 | |
over 1 year ago | 18 days ago | |
C# | TypeScript | |
Creative Commons Zero v1.0 Universal | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Magnit.Tokenization
-
Ohm: A library and language for building parsers, interpreters, compilers, etc.
Oh, this is awesome!
Truth be told, I'm glad I didn't know about it when I wrote a much more simplified project (shameless plug: https://github.com/catapart/Magnit.Tokenization), because I DEFINITELY would have just used your solution, even though its a bit overkill for those needs.
That said, after having finished what I needed, of course I started to wonder about what else I could add to it, with the main stopping force being the need to rewrite the parsing engine (regex ain't going to cut it for more complicated syntaxes). Which is one of those dev projects that linger in the back of your mind until you either see it through, or see that someone else has done it.
And, on that record, I think you've done a better job than I could ever attempt, so I'm very glad to know about this library, now! I don't have anything specifically in mind for it, but having the doors it opens available is quite nice!
Chevrotain
-
Ohm: A library and language for building parsers, interpreters, compilers, etc.
How does this compare with Chevrotain[1]?
More specifically, can I build lexers with Ohm? Can it generate a syntax diagram from a grammar?
[1]: https://github.com/chevrotain/chevrotain
-
Introduction to Lexers, Parsers and Interpreters with Chevrotain
To learn more about Chevrotain visit: https://chevrotain.io/
-
Why are you building a programming language?
I don't think I'll have time to make one any time soon, unfortunately. My original plan was to write a compiler in TypeScript using Chevrotain, and see if it's possible to compile down to TypeScript's AST and feed that into its own compiler programmatically. Basically piggybacking on Microsoft's hard work (work smart, not hard). I don't know if it's possible, but it's what I'd try first.
What are some alternatives?
codemod - Codemod is a tool/library to assist you with large-scale codebase refactors that can be partially automated but still require human oversight and occasional intervention. Codemod was developed at Facebook and released as open source.
PEG.js - PEG.js: Parser generator for JavaScript
ohm - A library and language for building parsers, interpreters, compilers, etc.
nearley - 📜🔜🌲 Simple, fast, powerful parser toolkit for JavaScript.
mation-spec
Jison - Bison in JavaScript.
markdown-it - Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed
parsec 🌌 - 🌌 Tiniest body parser in the universe. Built for modern Node.js
csv-parser - Streaming csv parser inspired by binary-csv that aims to be faster than everyone else
URI.js - Javascript URL mutation library
x-ray - The next web scraper. See through the <html> noise.
excel-stream