This tree is to implement ChocoPy language using LLVM compiler infrastructure.
See chocopy.pdf for a full description of ChocoPy language with Type Checking and Operational Semantics.
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.
- Lexing
- Parsing
- Classes, methods and attributes (with default values)
-
\_\_init\_\_method (aka class constructor) to initilize attributes - Method calling with dynamic dispatch
- Builtin 'print' function
- Builtin 'str' type
- Complete type checking
- Control flows -
if-elif-else,whileandfor - Binary and unary oprations for int, bool and str types
- List data type support
- Nested functions with closures