This project is an interpreter for the duwa
language, a language based on the Chewa Bantu language.
This project is written in Golang.
Follow the setup documentations at official site
You can check out examples in ./examples
folder to quickly see what the language can do for now.
- Create an initial interpreter
- Lexer
- Parser (Recursive descent parser)
- Interpreter (Tree walking interpreter)
- Language features
- Basic data types (string, numbers)
- arithmetic operations
- Control Flow (loops, conditional statements)
- Functions
- Type checking (for now it does not strictly enforce types)
- Data Structures
- arrays
- dictionaries
- Input/ Output
- Error Handling
- Class support
- Working Wasm version of the language
Other Milestones
- Modularity
- Standard library
- TinyGo: If you are building the web assembly version you will need
TinyGo
, hers is the setup - GNU make (optional): Using make for building. You can build the project without
make
.
You can build the project by running any of the build make tasks
make build
Or you can run go build directly
go build -C ./src/cmd/duwa -o ../../../bin/duwa
Running the project is the same either use make or go directly