rune-langium / core/src
core/src
Parse .rosetta source into typed ASTs, build cross-file workspaces, and serialize models back to source text.
Remarks
Use parse() for a single self-contained document, parseWorkspace() when files reference each other, and createRuneDslServices() when you need raw Langium services for custom tooling. The serializer exports are best for AST-driven workflows, tests, and code transformations that do not need to preserve original formatting.
Core
| Name | Description |
|---|---|
| RuneDslParser | Custom Langium parser for the Rune DSL that normalizes lexer input to insert implicit [ and ] brackets around bare expressions after extract, filter, and reduce operators. |
| ExpressionParseResult | Result of parsing a bare Rune DSL expression snippet. |
| ParseResult | Result of parsing a Rosetta DSL source string. |
| RuneDslServices | Union type for all services available in the Rune DSL language. |
| RuneDslModule | Dependency-injection module for the Rune DSL language. |
| RuneDslSharedModule | Shared services module that overrides Langium's default IndexManager with RuneDslIndexManager, enabling external registration of exported symbols without requiring a full document build (ADR 007 Phase 4). |
| createRuneDslParser | Factory function that creates and fully initializes a RuneDslParser. |
| createRuneDslServices | Create the full set of services required for the Rune DSL language. |
| insertImplicitBrackets | Scans Rune DSL source text and inserts [ and ] around bare expressions that follow extract, filter, or reduce operators. |
| parse | Parse a Rosetta DSL source string into a typed AST. |
| parseExpression | Synchronously parse a bare Rune DSL expression snippet (e.g. a Condition, Operation, or ShortcutDeclaration body) into a typed RosettaExpression. |
| parseWorkspace | Parse multiple Rosetta DSL source strings as a workspace. Cross-references between documents will be resolved after all documents are built. |