メインコンテンツへスキップ

ARC 2.0.0-beta.25 evidence boundary

DSL language reference

Navigate the DSL by authoring layer, then use the compiler and validation for the exact target-version grammar.

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:

FormPurpose
pageNames a source page and its tree
i18n {}Declares the page’s inline locale table
component / useCompile-time reusable composition
include / partial / importResolver-backed source reuse, with different scope limits
forCompile-time expansion of a static array
AUP nodeThe 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:

text
from <path>             # source
show if <condition>     # presentation condition
on <event> -> <action>  # explicit event
-> <action>             # action/button click shorthand only

Use -> 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.

bash
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.