ECPP (EC++ / Easy C++) is a minimalistic programming language implemented in C++. It features basic programming constructs like functions, variables, and arithmetic operations.
- Added multiplication, division, and modulo operations
- Added string interpolation with ${variable}
- Added proper scope handling for variables
- Added debug system with multiple levels
- Added improved memory management
- Added support for complex expressions
- Initial release
- Basic function support
- Variable declarations
- Print statements
- Basic arithmetic (+, -)
- Function declarations and calls with proper scoping
- Variable declarations and assignments
- Full arithmetic operations (+, -, *, /, %)
- String literals with variable interpolation
- Print statements
- Complex expression support with parentheses
- Comprehensive debug system
- Memory-safe implementation
- Basic error handling
.\BUILD.bat
g++ -std=c++17 -I./src/core -I./src/ast src/main.cpp src/core/.cpp -o build/ecpp
./ecpp <filename.ec>./ecpp <filename.ec> --debug <level>- error: Error messages only
- warn: Warnings and errors
- info: General information
- debug: Detailed debug information
- trace: Most verbose output
func greet() {
var name = "World"
print("Hello, ${name}!")
}
main() {
greet()
}
main() {
var x = 10
var y = 20
print("Basic arithmetic:")
print(x + y)
print(y - x)
print(x * y)
print(y / x)
print(y % x)
// Complex expressions
var z = 5
print(x * y + z)
print(x * (y + z))
}
main() {
var name = "ECPP"
var version = "0.2.0-alpha"
print("Welcome to ${name} version ${version}!")
}
# No debug output
./ecpp hello.ec
# Only errors
./ecpp hello.ec --debug error
# Full debug information
./ecpp hello.ec --debug debug
# Most verbose output
./ecpp hello.ec --debug traceFeel free to open issues or submit pull requests. All contributions are welcome! ❤️
- Implement if/else conditionals
- Add while/for loops
- Add function parameters and return values
- Add type system
- Implement arrays and basic data structures
- Add standard library functions
- Improve error messages and recovery
- Add module/import system