Schema for the Abstract Syntax Tree

This description regulates how all ASTs should be stored when written to disk or sent over the wire. It requires every node to at least tell its name and some hint how a node can be constructed at runtime.

The data of a node is split up in two broader categories: Children, which may be nested and properties, which should not allow any nesting.

type object
properties
  • children
Nodes may have children in various categories. This base class makes no assumptions about the names of children. Examples for children in multiple categories would be things like “attributes” and generic “children” in a specialization for XML.
type object
additionalProperties type array
items
#/definitions/NodeDescription
  • language
This is effectively a namespace, allowing identical names for nodes in different languages.
type string
  • name
The name of this not, this is used to lookup the name of a corresponding type.
type string
  • properties
Nodes may have all kinds of properties that are specific to their concrete use.
type object
additionalProperties type string
additionalProperties False