Improving CLI tool and improving documentation

This commit is contained in:
Martino Ferrari
2026-01-28 13:32:32 +01:00
parent 31996ae710
commit 01bcd66594
15 changed files with 895 additions and 16 deletions

44
examples/README.md Normal file
View File

@@ -0,0 +1,44 @@
# Examples
This directory contains example projects demonstrating different features and usage patterns of `mdt`.
## Directory Structure
```
examples/
simple/ # A basic, single-file application
complex/ # A multi-file project with custom schema
README.md # This file
```
## Running Examples
Prerequisite: `mdt` must be built (or installed). The Makefiles in the examples assume `mdt` is available at `../../build/mdt`.
### Simple Project
Demonstrates a minimal setup:
- Single `main.marte` file.
- Basic Thread and GAM definition.
**Run:**
```bash
cd simple
make check
make build
```
### Complex Project
Demonstrates advanced features:
- **Multi-file Structure**: `src/app.marte` (Logic) and `src/components.marte` (Data).
- **Namespaces**: Use of `#package` to organize nodes.
- **Custom Schema**: `.marte_schema.cue` defines a custom class (`CustomController`) with specific metadata (`#meta.multithreaded`).
- **Validation**: Enforces strict typing and custom rules.
**Run:**
```bash
cd complex
make check
make build
```