Resources
GitHub
kemlang-py is fully open source under the MIT license. The entire project - interpreter, CLI, formatter, website - lives in one repository.
sanketmuchhala / kemlang-py
github.com/sanketmuchhala/kemlang-py
A Gujarati-flavored programming language interpreter built in Python. MIT licensed, actively developed.
Report a bug
Found something broken? Open an issue with steps to reproduce.
Open issueSubmit a PR
Want to fix a bug or add a feature? PRs are welcome.
View PRsStar the repo
If you find kemlang-py useful, a star helps others discover it.
Star on GitHubReleases
See what changed in each version - release notes and changelogs.
View releasesRepository structure
kemlang/Core interpreter package - lexer, parser, interpreter, CLIkemlang/lexer.pyTokenizes source code into a token streamkemlang/parser.pyRecursive-descent parser → ASTkemlang/interpreter.pyTree-walking interpreterkemlang/cli.pyTyper CLI - kem run / repl / fmt / tokens / asttests/pytest test suite - exec, CLI, lexer, parser, fuzznpm-package/Node.js wrapper that pip-installs kemlang-pykemlang-website/This Next.js docs sitedocs/Project status, design notes, roadmapContributing
kemlang-py is a small, readable codebase - a good place to learn how programming language interpreters work. Here's how to get started:
Fork and clone
git clone https://github.com/sanketmuchhala/kemlang-pyInstall dev deps
pip install -e .[dev,test]Run the tests
pytest -m "not slow"Make your change
Edit kemlang/ files - lexer, parser, or interpreterCheck quality
ruff check kemlang tests && ruff format kemlang testsOpen a PR
Push your branch and open a pull request on GitHubLicense
MIT License
kemlang-py is free and open source software. You can use it, modify it, and distribute it freely - even commercially - as long as you include the original license notice.
Read the full license