This is a working language map, not a promise that every name found in a historical Showcase is a released, portable API. The current parser/compiler and positive/negative tests are the source of truth for exact grammar.
1. App manifest
Use app to declare app-level defaults, pages/page discovery, ordering, overrides, wrapper or shell, locales, and presentation values. shell and an explicit wrapper are mutually exclusive. See App, page, and shell.
2. Page source
Within a page, the main authoring forms are:
| Form | Purpose |
|---|---|
page | Names a source page and its tree |
i18n {} | Declares the page’s inline locale table |
component / use | Compile-time reusable composition |
include / partial / import | Resolver-backed source reuse, with different scope limits |
for | Compile-time expansion of a static array |
| AUP node | The emitted semantic UI tree |
3. Node common tail
Most node authoring combines an optional ID, an inline value, key=value props, children, and one of the data/interaction clauses:
from <path> # source
show if <condition> # presentation condition
on <event> -> <action> # explicit event
-> <action> # action/button click shorthand onlyUse -> page <name> for named-page navigation and -> set <id> props|src|state ... for the supported local update shorthand. Values are data literals, not arbitrary JavaScript expressions.
4. Compilation and checks
The DSL compiles to an AUP tree, app/page JSON compatibility material, and inline locale tables. Use formatting, lint, validation, optional generation, and blocklet checks in their respective roles; no single one is a browser/device acceptance result.
arc dsl format . --check
arc dsl lint .
arc dsl validate .Keep cross-renderer primitive support out of this grammar page. That belongs to Primitive taxonomy and evidence; it prevents a convenient DSL spelling from being mistaken for universal device support.