https://github.com/amila-rukshan/chocopy
ChocoPy - statically typed subset of Python.
https://github.com/amila-rukshan/chocopy
chocopy dynamic-dispatch llvm object-oriented programming-language
Last synced: 7 months ago
JSON representation
ChocoPy - statically typed subset of Python.
- Host: GitHub
- URL: https://github.com/amila-rukshan/chocopy
- Owner: Amila-Rukshan
- Created: 2025-03-09T04:37:18.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-07-03T06:11:26.000Z (7 months ago)
- Last Synced: 2025-07-03T07:25:37.635Z (7 months ago)
- Topics: chocopy, dynamic-dispatch, llvm, object-oriented, programming-language
- Language: C++
- Homepage:
- Size: 87.4 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
This tree is to implement **ChocoPy** language using LLVM compiler infrastructure.
## ChocoPy v2.2
See [chocopy.pdf](./chocopy.pdf) for a full description of ChocoPy language with Type Checking and Operational Semantics.
## Related content
### Blog posts
- [Building Dynamic Dispatch in ChocoPy: From Concept to Code](https://developerdiary.me/building-dynamic-dispatch-in-chocopy-from-concept-to-code/)
## How to run?
A Dev container is setup for linux OS with the llvm dependancies. Just open the project in `VSCode` and from the Debug window, run `Debug ChocoPy`.
## TODOS
- [x] Lexing
- [x] Parsing
- [x] Classes, methods and attributes (with default values)
- [x] \_\_init\_\_ method (aka class constructor) to initilize attributes
- [x] Method calling with dynamic dispatch
- [x] Builtin 'print' function
- [x] Builtin 'str' type
- [ ] Complete type checking
- [x] Control flows - if else and while
- [x] Binary and unary oprations for int, bool and str types