跳到主要内容

ARC 2.0.0-beta.25 证据边界

DSL 语言参考

按编写层次导航 DSL,再用 compiler 与 validation 确认目标版本的精确 grammar。

这是工作中的语言地图,不承诺历史 Showcase 里出现的每一个名称都是已发布、可移植 API。当前 parser/compiler 与正反测试才是精确 grammar 的来源。

1. app manifest

app 声明 app-level default、page/page discovery、order、override、wrapper 或 shell、locale 和 presentation 值。shell 与显式 wrapper 互斥。见 App、page 与 shell

2. page source

page 内主要的 authoring form 是:

形式作用
page命名 source page 及其 tree
i18n {}声明该 page 的 inline locale table
component / usecompile-time 可复用 composition
include / partial / import由 resolver 支持的 source reuse,scope 限制不同
forstatic array 的 compile-time 展开
AUP node最终发出的语义 UI tree

3. node common tail

大多数 node 编写会组合可选 ID、inline value、key=value props、children 以及一种 data/interaction clause:

text
from <path>             # source
show if <condition>     # presentation condition
on <event> -> <action>  # 明确 event
-> <action>             # 仅 action/button 的 click shorthand

-> page <name> 做命名 page navigation;用 -> set <id> props|src|state ... 做受支持的 local update shorthand。value 是 data literal,不是任意 JavaScript expression。

4. 编译和检查

DSL 会编译成 AUP tree、app/page JSON compatibility material 和 inline locale table。format、lint、validate、可选 generate 与 blocklet check 各有职责;没有一条单独等于 browser/device acceptance。

bash
arc dsl format . --check
arc dsl lint .
arc dsl validate .

跨 renderer 的 primitive support 不应放在 grammar 页。它属于 Primitive 类型分类与证据,可以避免把方便的 DSL 拼法误写成通用设备支持。