## ๐ CONTRIBUTING.md
# ๐ค Contributing to Dash
Thanks for your interest in contributing to Dash โ a lightweight interpreted language written in Rust!
---
## ๐งฐ Getting Started
1. Fork the repository
2. Clone your fork:
```bash
git clone https://github.com/Pjdur/dash-lang.git
cd dash-lang
```
3. Build and run:
```bash
cargo run -- examples/hello.dash
```
---
## ๐ What You Can Work On
- ๐ง Language features: booleans, arrays, logical operators
- ๐งช Tests: unit tests for parser and interpreter
- ๐ฅ๏ธ CLI: REPL mode, help/version flags
- ๐ Docs: grammar guide, usage examples
- ๐งน Refactoring: modularization, error handling
---
## ๐ฆ Project Structure
```
src/
โโโ main.rs # CLI entry point
โโโ parser.rs # AST construction and grammar
โโโ eval.rs # Expression and statement execution
โโโ ast.rs # Core data types
examples/
โโโ hello.dash # Sample programs
dash.pest # Grammar definition
```
---
## โ
Code Style
- Use Rust 2021 edition
- Format with `cargo fmt`
- Run `cargo clippy` before submitting
---
## ๐งช Testing
To run tests:
```bash
cargo test
```
To add a test, create a file in `tests/` or use inline unit tests in modules.
---
## ๐ฌ Submitting a Pull Request
1. Create a new branch:
```bash
git checkout -b feature/my-feature
```
2. Commit your changes:
```bash
git commit -m "Add feature X"
```
3. Push and open a PR on GitHub
---
## ๐ฌ Questions or Ideas?
Open an issue or start a discussion. We welcome feedback, suggestions, and creative ideas!
---
Thanks for helping make Dash better!