7. Language Workbenches & Modern Tooling Integration
7.1 VS Code IDE Support (AusbelDev.vscode-rave)
Modern Rave development leverages specialized Language Workbench integration. The Open-VSX / VS Code extension AusbelDev.vscode-rave provides IDE capabilities for Rave developers:
- Syntax Highlighting & Tokenizing: Custom grammars for Rave keywords, levels (
leg,duty,trip), traversers, and operators. - Real-time Diagnostics: On-the-fly syntax validation, identifier resolution, and scope checking.
- Auto-Completion & Snippets: Context-aware completion for keywords, traverser templates, and level properties.
- Hover Tooltips & Symbol Navigation: Instant inline inspection of variable types, definitions, and rule comments.
7.2 Syntax Highlighting, Diagnostics & Language Servers
Using the Language Server Protocol (LSP), Rave syntax trees are mapped dynamically to editor surfaces. Errors such as mismatched level traversers (e.g., attempting sum(duty(leg), ...) which violates the hierarchy direction) are flagged immediately at authoring time.
7.3 Compilation, Debugging & Simulation Pipelines
flowchart LR
A[Source Code<br>*.rave] --> B[Rave Compiler<br>AST & Infer]
B --> C[Shared Library<br>*.so / *.dll]
C --> D[Jeppesen Solver / Test Rig]
D --> E[In-IDE Interpreter & Simulator]
E --> F[Interactive Debugger / Report]
The Rave toolchain supports two execution modes:
- Ahead-of-Time (AOT) Compilation: Compiles Rave ASTs into C/C++ code, which is compiled into dynamically linked libraries (
.dll/.so) for maximum solver execution performance. - Interactive In-IDE Interpretation: Allows rule developers and domain experts to step through rule logic, inspect intermediate variable states, and run tabular unit test suites interactively.