Chevrotain
codemod
Our great sponsors
Chevrotain | codemod | |
---|---|---|
3 | 8 | |
2,397 | 3,895 | |
1.5% | - | |
6.7 | 0.0 | |
8 days ago | over 3 years ago | |
TypeScript | Python | |
Apache License 2.0 | 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.
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.
codemod
-
Ohm: A library and language for building parsers, interpreters, compilers, etc.
This is new to me, sounds interesting!
I once used Codemod [0] to migrate an old JS codebase. Would this be a use case for Ohm as well?
[0] https://github.com/facebookarchive/codemod
- Automating Dead Code Cleanup
-
Meta pledges Three-Year sponsorship for Python if GIL removal is accepted
That differs but is a reasonable understanding. Iβm instead referring to automations that perform large scale refactoring as handled by Facebook, who would be contributing to this effort.
https://github.com/facebookarchive/codemod
It sounds like what you are describing is whatβs known as poly fills which convert code into a variant that maximizes function across implementations which isnβt really applicable here.
-
Automatic Dependency Upgrade Tool (with auto-resolve breaking changes)
That's why I've been working on a tool that automatically upgrades major versions of libraries with breaking changes, the idea is to simplify the process and save developers time and effort by having a bank of transformers (using codemod & jscodeshift) and open source them:
- Python 2 Removed from Debian
-
How Our Engineering Team Used Python's AST to Patch 100,000s of Lines of Code
What they did appears similar to https://github.com/facebook/codemod.
-
Software Is Drowning the World
I think codemod is probably one such tool: https://github.com/facebook/codemod
What are some alternatives?
PEG.js - PEG.js: Parser generator for JavaScript
jscodeshift - A JavaScript codemod toolkit.
nearley - πππ² Simple, fast, powerful parser toolkit for JavaScript.
comby - A code rewrite tool for structural search and replace that supports ~every language.
Jison - Bison in JavaScript.
scala-steward - :robot: A bot that helps you keep your projects up-to-date
markdown-it - Markdown parser, done right. 100% CommonMark support, extensions, syntax plugins & high speed
semgrep - Lightweight static analysis for many languages. Find bug variants with patterns that look like source code.
parsec π - π Tiniest body parser in the universe. Built for modern Node.js
goimports - [mirror] Go Tools
csv-parser - Streaming csv parser inspired by binary-csv that aims to be faster than everyone else
cinder - Cinder is Meta's internal performance-oriented production version of CPython.