Appendix A — The schema's $defs
Contents of ATD 0.1
atd.schema.json has one $defs entry per structure; each line gives its name and what it is.
$defs |
|
|---|---|
Span |
Where a node stands in its file: UTF-8 byte offsets of its first byte and of the byte after it, and the 1-based line and column of its start and end, columns in code points (ATD §3.1, §15). |
Name |
A name as written, with where it stands: a NAME or a keyword in a name position (ATD §3.6). |
QualifiedName |
A dotted name, layout.twoSidedTree, std.missingId. |
TypeRef |
A type: a qualified name with its type arguments (list<Concept>). |
Value |
A value (ATD §6): exactly one of a literal, a CEL expression with its abstract syntax, a reference to an attribute, a theme token or a parameter, a settings map, or a list. |
Setting |
One key: value pair (ATD §6.4); quoted when the key was written as a string. |
CelNode |
CEL's abstract syntax (ATD §6.3), with spans: an operator is a call of its CEL function name (_+_, _&&_, !_, -_, _?_:_, _[_], @in, _[?_], _?._), a macro is a call marked macro, a method call has a target. |
Tree |
The abstract tree of one .atd file, as atd tree prints it (ATD §4.5, FR-030). It is not an interchange form: nothing reads it back as a description. |
Tool |
The tool construct of a root file (ATD §5.1). |
Part |
A part of a description (ATD §5.2). |
Member |
A member of a tool or a part: a construct of the core (ATD §7), the script (§12), a surface (§8 to §10) or a binding (§11). |
Label |
label value: a display name or a label's text. |
DocMember |
doc value. |
SettingMember |
A setting among the members of a construct. |
Import |
import "file" (a part), or import "file" as name (a library) (ATD §5.3). |
Requires |
requires capability name@range (ATD §13). |
Model |
model { … } (ATD §7.4). |
Element |
element Name extends … { … }: an element type (DISL's node type, DESL's element type). |
Relation |
relation Name from … to … { … } (DISL §4.9). |
Attribute |
attribute name: Type flags { … } (DISL §4.3, DESL §4.3). |
Contains |
contains Types as slot ordered (DISL §4.8, DESL §4.6). |
Port |
port name { … } (DISL §4.10). |
Enum |
enum Name "Label" { values } (DISL §4.5). |
DataType |
datatype Name: Base { … } (DISL §4.4). |
DocumentDecl |
document { … }: the attributes of the document itself. |
Constraints |
constraints { … } (DISL §8, DESL §6). |
Constraint |
constraint id for Types { … }. |
Builtin |
builtin std.name { … }: settings of a built-in constraint (DISL §8.7). |
Fix |
fix name "Label" { … }: a quick fix (DISL §8.5), or a fix on a range of an editor's text (ATD §10). |
Operation |
operation id "Label" for Types { … } (DISL §9.3, DESL §8.1). |
Param |
param name: Type. |
Hook |
hook id on event for Types { … } (DISL §9.2). |
Reason |
reason id "text" or reason id { when … message … } (DISL §2.3, §9.1). |
MessageDecl |
message id value: a standard message (DISL §9.1). |
Behavior |
behavior { … }. |
Persistence |
persistence { … }. |
Plugin |
plugin name { … } (DISL §13). |
Function |
fn name(params) -> Type recursion n { … } (ATD §12.1). |
Expr |
A CEL expression in a position that takes only an expression, written bare (ATD §6.2). |
Statement |
A statement of the script (ATD §12.2) or an action (§12.3). Its fields are those its form writes: name, type, value, target, path, condition, then, else, names, iterable, limit, body, assignments, parent, after, before, slot, at, size, place, as, source, to, by, x, y, width, height, form, severity, on, operation, args, settings. |
Coordinates |
coordinates { system … axis … snapping … default … } (DISL §5). Its members are the constructs ATD's section names, each with kind the construct's keyword (system, node, edge, variant, group, tool, algorithm, rows, valueType, outline, …), name or names, its own fields and its settings. |
Notation |
notation { … } (DISL §6). Its members are the constructs ATD's section names, each with kind the construct's keyword (system, node, edge, variant, group, tool, algorithm, rows, valueType, outline, …), name or names, its own fields and its settings. |
Toolbox |
toolbox { … } (DISL §7.1 to §7.4). Its members are the constructs ATD's section names, each with kind the construct's keyword (system, node, edge, variant, group, tool, algorithm, rows, valueType, outline, …), name or names, its own fields and its settings. |
Layout |
layout { default … algorithm … } (DISL §10). Its members are the constructs ATD's section names, each with kind the construct's keyword (system, node, edge, variant, group, tool, algorithm, rows, valueType, outline, …), name or names, its own fields and its settings. |
TableSurface |
surface table { … } (DESL §7.2 to §7.6). Its members are the constructs ATD's section names, each with kind the construct's keyword (system, node, edge, variant, group, tool, algorithm, rows, valueType, outline, …), name or names, its own fields and its settings. |
HierarchySurface |
surface hierarchy { … } (DESL §7.7). Its members are the constructs ATD's section names, each with kind the construct's keyword (system, node, edge, variant, group, tool, algorithm, rows, valueType, outline, …), name or names, its own fields and its settings. |
TextSurface |
surface text { … } (ATD §10). Its members are the constructs ATD's section names, each with kind the construct's keyword (system, node, edge, variant, group, tool, algorithm, rows, valueType, outline, …), name or names, its own fields and its settings. |
Form |
form id "Label" for Types { … } (DISL §7.5). |
Viewpoint |
viewpoint id "Label" { … } (DISL §3.5). |
Binding |
binding name family … { … } (ATD §11). |
BindingMember |
A member of a binding: claims, body, text, header, registration, template, block, section, an element or relation rule, or a setting, doc or label member. |
Rule |
An element or relation rule (FBL §5.1, §5.4). |
Finding |
A finding of the checker, a language server or validation (ATD §15, FR-091). |
Findings |
The findings of one run, in a stable order: by file, then position, then code (ATD §15.4). A refused file of the corpus states those it must give in this form; message is then not compared. |
ParseTables |
The LALR(1) automaton of a grammar in ATD grammar notation, normalized so that two implementations can be compared byte for byte (ATD §4.7): terminals by name (an anonymous string terminal is named by its quoted string), the rules of the grammar after the expansion of §4.4 sorted and numbered (a helper of a repetition named (<symbols>)+), and the states numbered breadth first from the start state over the symbols in sorted order, each with its actions on terminals (s<state>, r<rule>, accept) and its gotos on nonterminals. |
Trace |
The trace of a tool description (ATD §2.5, data-model.md §10): every item of its companion's gap sections and every behaviour of a host's code, each with the part of the description that states it, the host's concern it is, or the reference behaviour it diverges from. |
Provenance |
Who produced one part of a fixture (ATD §2.3). |
ConformanceStep |
One gesture of a case and what it must produce (ATD §2.3). Exactly one of action, property, move, create, connect, delete, outside, undo and redo; select before it. |
ConformanceFixture |
One conformance case of one tool type (ATD §2.3, data-model.md §8). |
Drawing |
The scene of one view in adp-scene's vocabulary (ATD §2.4, data-model.md §9). Two drawings are equal when their elements and edges are equal as sets keyed by id and their order lists are equal. |
Capability |
The contract of a capability (ATD §2.6, §13, data-model.md §7). |
CapabilityFixture |
One fixture of a capability: an input, the arguments and the expected output (ATD §2.6). |
LayoutInput |
The input of a layout capability: the nodes with their sizes and pins, the edges and the containment, in the canvas's domain units. |
LayoutResult |
The output of a layout capability: a position for every node it places, in the canvas's domain units, rounded to 0.01, optionally the size it gives a node it resizes, and optionally route points. |
RoutingInput |
The input of a routing capability: each edge with the boxes of its two ends, and the boxes it must keep clear of, in the canvas's domain units. |
RoutingResult |
The output of a routing capability: the route of every edge it routes, by edge id, as path commands from the edge's first point to its last. |
ReaderInput |
The input of a reader capability: the body's bytes as text, and the edit to plan when one is asked (FBL §11.2). |
ReaderResult |
The output of a reader capability: what FBL §11.2's read returns, or the splices of a planned edit. |
RenderInput |
The input of a render capability: a value to render. |
RenderResult |
The output of a render capability: text runs or a drawing. |
AnalysisInput |
The input of an analysis or arrange capability: a model or part of one. |
AnalysisResult |
The output of an analysis capability: derived elements or relations and findings; of an arrange capability: actions. |
Walk |
The 30-edit walk of SC-005 (ATD §19): steps over the examples, each a request at a position or an edit, with its expected result. |
SettingsSchemas |
The $defs of DISL, DESL and FBL that the settings of ATD's constructs are checked against (ATD §14.6), by reference; each construct's entry is listed in ATD's Appendix A. |