Milky2018/diago/ast does not have a README file

    ArrayNode

    pub(all) enum ArrayNode {
    Comment(
    Range
    , String)
    BlockComment(
    Range
    , String)
    Substitution(Substitution)
    Import(Import)
    Value(Value)
    } derive(Eq,
    Debug
    )

    Nodes that can appear inside an array

    ArrayNode::equal

    #deprecated("`ArrayNode::equal` is deprecated, use `Eq::equal` instead.")
    fn ArrayNode::equal(ArrayNode, ArrayNode) -> Bool

    ArrayNode::not_equal

    #deprecated("`ArrayNode::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn ArrayNode::not_equal(x : ArrayNode, y : ArrayNode) -> Bool

    ArrayNode::range

    ArrayNode::to_repr

    #deprecated("`ArrayNode::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn ArrayNode::to_repr(ArrayNode) ->
    Repr

    ArrayValue

    An array value

    ArrayValue::equal

    #deprecated("`ArrayValue::equal` is deprecated, use `Eq::equal` instead.")
    fn ArrayValue::equal(ArrayValue, ArrayValue) -> Bool

    ArrayValue::new

    ArrayValue::not_equal

    #deprecated("`ArrayValue::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn ArrayValue::not_equal(x : ArrayValue, y : ArrayValue) -> Bool

    ArrayValue::to_repr

    #deprecated("`ArrayValue::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn ArrayValue::to_repr(ArrayValue) ->
    Repr

    BlockString

    pub struct BlockString {
    range :
    Range

    quote : String
    tag : String
    value : String
    } derive(Eq,
    Debug
    )

    Block string (|md, |sh, etc.)

    BlockString::equal

    #deprecated("`BlockString::equal` is deprecated, use `Eq::equal` instead.")
    fn BlockString::equal(BlockString, BlockString) -> Bool

    BlockString::new

    fn BlockString::new(range :
    Range
    , quote : String, tag : String, value : String) -> BlockString

    BlockString::not_equal

    #deprecated("`BlockString::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn BlockString::not_equal(x : BlockString, y : BlockString) -> Bool

    BlockString::to_repr

    #deprecated("`BlockString::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn BlockString::to_repr(BlockString) ->
    Repr

    DoubleQuotedString

    pub struct DoubleQuotedString {
    range :
    Range

    value : Array[Interpolation]
    } derive(Eq,
    Debug
    )

    Double-quoted string that may contain substitutions

    DoubleQuotedString::equal

    #deprecated("`DoubleQuotedString::equal` is deprecated, use `Eq::equal` instead.")
    fn DoubleQuotedString::equal(DoubleQuotedString, DoubleQuotedString) -> Bool

    DoubleQuotedString::not_equal

    #deprecated("`DoubleQuotedString::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn DoubleQuotedString::not_equal(x : DoubleQuotedString, y : DoubleQuotedString) -> Bool

    DoubleQuotedString::to_repr

    #deprecated("`DoubleQuotedString::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn DoubleQuotedString::to_repr(DoubleQuotedString) ->
    Repr

    DoubleQuotedString::to_string

    fn DoubleQuotedString::to_string(self : DoubleQuotedString) -> String

    Edge

    pub struct Edge {
    range :
    Range

    src : KeyPath
    src_arrow : String
    dst : KeyPath
    dst_arrow : String
    } derive(Eq,
    Debug
    )

    An edge between two nodes

    Edge::equal

    #deprecated("`Edge::equal` is deprecated, use `Eq::equal` instead.")
    fn Edge::equal(Edge, Edge) -> Bool

    Edge::new

    fn Edge::new(range :
    Range
    , src : KeyPath, dst : KeyPath, src_arrow : String, dst_arrow : String) -> Edge

    Edge::not_equal

    #deprecated("`Edge::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn Edge::not_equal(x : Edge, y : Edge) -> Bool

    Edge::to_repr

    #deprecated("`Edge::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn Edge::to_repr(Edge) ->
    Repr

    EdgeIndex

    pub struct EdgeIndex {
    range :
    Range

    index : Int?
    glob : Bool
    } derive(Eq,
    Debug
    )

    Index into an edge group

    EdgeIndex::equal

    #deprecated("`EdgeIndex::equal` is deprecated, use `Eq::equal` instead.")
    fn EdgeIndex::equal(EdgeIndex, EdgeIndex) -> Bool

    EdgeIndex::new

    fn EdgeIndex::new(range :
    Range
    , index : Int?, glob : Bool) -> EdgeIndex

    EdgeIndex::not_equal

    #deprecated("`EdgeIndex::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn EdgeIndex::not_equal(x : EdgeIndex, y : EdgeIndex) -> Bool

    EdgeIndex::to_repr

    #deprecated("`EdgeIndex::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn EdgeIndex::to_repr(EdgeIndex) ->
    Repr

    Import

    pub struct Import {
    range :
    Range

    spread : Bool
    pre : String
    path : Array[StringValue]
    } derive(Eq,
    Debug
    )

    Import declaration (@path/to/file)

    Import::equal

    #deprecated("`Import::equal` is deprecated, use `Eq::equal` instead.")
    fn Import::equal(Import, Import) -> Bool

    Import::new

    fn Import::new(range :
    Range
    , spread : Bool, pre : String, path : Array[StringValue]) -> Import

    Import::not_equal

    #deprecated("`Import::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn Import::not_equal(x : Import, y : Import) -> Bool

    Import::to_repr

    #deprecated("`Import::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn Import::to_repr(Import) ->
    Repr

    Interpolation

    pub(all) enum Interpolation {
    Text(String)
    Sub(Substitution)
    } derive(Eq,
    Debug
    )

    Part of an interpolated string

    Interpolation::equal

    #deprecated("`Interpolation::equal` is deprecated, use `Eq::equal` instead.")
    fn Interpolation::equal(Interpolation, Interpolation) -> Bool

    Interpolation::not_equal

    #deprecated("`Interpolation::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn Interpolation::not_equal(x : Interpolation, y : Interpolation) -> Bool

    Interpolation::to_repr

    #deprecated("`Interpolation::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn Interpolation::to_repr(Interpolation) ->
    Repr

    Key

    pub struct Key {
    range :
    Range

    ampersand : Bool
    not_ampersand : Bool
    key : KeyPath?
    edges : Array[Edge]
    edge_index : EdgeIndex?
    edge_key : KeyPath?
    primary : Scalar?
    value : Value?
    } derive(Eq,
    Debug
    )

    A key declaration in a map

    Examples:
    • x (simple key)
    • x: value (key with value)
    • x -> y (edge)
    • container.child (nested key path)
    • (x -> y).label (edge with property)

    Key::equal

    #deprecated("`Key::equal` is deprecated, use `Eq::equal` instead.")
    fn Key::equal(Key, Key) -> Bool

    Key::new

    fn Key::new(range :
    Range
    , ampersand : Bool, not_ampersand : Bool, key : KeyPath?, edges : Array[Edge], edge_index : EdgeIndex?, edge_key : KeyPath?, primary : Scalar?, value : Value?) -> Key

    Key::not_equal

    #deprecated("`Key::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn Key::not_equal(x : Key, y : Key) -> Bool

    Key::to_repr

    #deprecated("`Key::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn Key::to_repr(Key) ->
    Repr

    KeyPath

    A path of identifiers separated by dots Example: container.child.grandchild

    KeyPath::equal

    #deprecated("`KeyPath::equal` is deprecated, use `Eq::equal` instead.")
    fn KeyPath::equal(KeyPath, KeyPath) -> Bool

    KeyPath::has_glob

    fn KeyPath::has_glob(self : KeyPath) -> Bool

    KeyPath::last

    fn KeyPath::last(self : KeyPath) -> StringValue?

    KeyPath::new

    KeyPath::not_equal

    #deprecated("`KeyPath::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn KeyPath::not_equal(x : KeyPath, y : KeyPath) -> Bool

    KeyPath::to_repr

    #deprecated("`KeyPath::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn KeyPath::to_repr(KeyPath) ->
    Repr

    KeyPath::to_strings

    fn KeyPath::to_strings(self : KeyPath) -> Array[String]

    Map

    A diago file is represented as a Map at the root level

    Map::equal

    #deprecated("`Map::equal` is deprecated, use `Eq::equal` instead.")
    fn Map::equal(Map, Map) -> Bool

    Map::new

    fn Map::new(range :
    Range
    , nodes : Array[MapNode]) -> Map

    Map::not_equal

    #deprecated("`Map::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn Map::not_equal(x : Map, y : Map) -> Bool

    Map::to_repr

    #deprecated("`Map::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn Map::to_repr(Map) ->
    Repr

    MapNode

    pub(all) enum MapNode {
    Comment(
    Range
    , String)
    BlockComment(
    Range
    , String)
    Substitution(Substitution)
    Import(Import)
    Key(Key)
    } derive(Eq,
    Debug
    )

    Nodes that can appear inside a Map

    MapNode::equal

    #deprecated("`MapNode::equal` is deprecated, use `Eq::equal` instead.")
    fn MapNode::equal(MapNode, MapNode) -> Bool

    MapNode::not_equal

    #deprecated("`MapNode::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn MapNode::not_equal(x : MapNode, y : MapNode) -> Bool

    MapNode::range

    MapNode::to_repr

    #deprecated("`MapNode::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn MapNode::to_repr(MapNode) ->
    Repr

    Node

    pub(all) enum Node {
    Map(Map)
    MapNode(MapNode)
    Key(Key)
    KeyPath(KeyPath)
    Edge(Edge)
    EdgeIndex(EdgeIndex)
    Value(Value)
    ArrayValue(ArrayValue)
    ArrayNode(ArrayNode)
    Scalar(Scalar)
    StringValue(StringValue)
    UnquotedString(UnquotedString)
    DoubleQuotedString(DoubleQuotedString)
    BlockString(BlockString)
    Substitution(Substitution)
    Import(Import)
    } derive(Eq,
    Debug
    )

    Boxed AST node for generic traversal.

    This is intentionally a closed set of variants over the public AST structs/enums.

    Node::children

    fn Node::children(self : Node) -> Array[Node]

    Node::equal

    #deprecated("`Node::equal` is deprecated, use `Eq::equal` instead.")
    fn Node::equal(Node, Node) -> Bool

    Node::node_type

    fn Node::node_type(self : Node) -> String

    Node::not_equal

    #deprecated("`Node::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn Node::not_equal(x : Node, y : Node) -> Bool

    Node::range

    Node::to_repr

    #deprecated("`Node::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn Node::to_repr(Node) ->
    Repr

    Scalar

    Scalar values

    Scalar::equal

    #deprecated("`Scalar::equal` is deprecated, use `Eq::equal` instead.")
    fn Scalar::equal(Scalar, Scalar) -> Bool

    Scalar::not_equal

    #deprecated("`Scalar::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn Scalar::not_equal(x : Scalar, y : Scalar) -> Bool

    Scalar::range

    Scalar::to_repr

    #deprecated("`Scalar::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn Scalar::to_repr(Scalar) ->
    Repr

    StringValue

    pub(all) enum StringValue {
    Unquoted(UnquotedString)
    SingleQuoted(
    Range
    , String)
    DoubleQuoted(DoubleQuotedString)
    Block(BlockString)
    } derive(Eq,
    Debug
    )

    String values with their quote style

    StringValue::content

    fn StringValue::content(self : StringValue) -> String

    StringValue::equal

    #deprecated("`StringValue::equal` is deprecated, use `Eq::equal` instead.")
    fn StringValue::equal(StringValue, StringValue) -> Bool

    StringValue::not_equal

    #deprecated("`StringValue::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn StringValue::not_equal(x : StringValue, y : StringValue) -> Bool

    StringValue::range

    StringValue::to_repr

    #deprecated("`StringValue::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn StringValue::to_repr(StringValue) ->
    Repr

    Substitution

    pub struct Substitution {
    range :
    Range

    spread : Bool
    path : Array[StringValue]
    } derive(Eq,
    Debug
    )

    Variable substitution ($var or ${var})

    Substitution::equal

    #deprecated("`Substitution::equal` is deprecated, use `Eq::equal` instead.")
    fn Substitution::equal(Substitution, Substitution) -> Bool

    Substitution::new

    Substitution::not_equal

    #deprecated("`Substitution::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn Substitution::not_equal(x : Substitution, y : Substitution) -> Bool

    Substitution::to_repr

    #deprecated("`Substitution::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn Substitution::to_repr(Substitution) ->
    Repr

    UnquotedString

    pub struct UnquotedString {
    range :
    Range

    value : Array[Interpolation]
    pattern : Array[String]
    } derive(Eq,
    Debug
    )

    Unquoted string that may contain substitutions

    UnquotedString::equal

    #deprecated("`UnquotedString::equal` is deprecated, use `Eq::equal` instead.")
    fn UnquotedString::equal(UnquotedString, UnquotedString) -> Bool

    UnquotedString::new

    UnquotedString::not_equal

    #deprecated("`UnquotedString::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn UnquotedString::not_equal(x : UnquotedString, y : UnquotedString) -> Bool

    UnquotedString::to_repr

    #deprecated("`UnquotedString::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn UnquotedString::to_repr(UnquotedString) ->
    Repr

    UnquotedString::to_string

    fn UnquotedString::to_string(self : UnquotedString) -> String

    Value

    pub(all) enum Value {
    Scalar(Scalar)
    Array(ArrayValue)
    Map(Map)
    Import(Import)
    BlockScalar(Value, Map)
    } derive(Eq,
    Debug
    )

    Values that can appear on the right side of a colon

    Value::equal

    #deprecated("`Value::equal` is deprecated, use `Eq::equal` instead.")
    fn Value::equal(Value, Value) -> Bool

    Value::not_equal

    #deprecated("`Value::not_equal` is deprecated, use `Eq::not_equal` instead.")
    fn Value::not_equal(x : Value, y : Value) -> Bool

    Value::range

    Value::to_repr

    #deprecated("`Value::to_repr` is deprecated, use `@moonbitlang/core/debug.Debug::to_repr` instead.")
    fn Value::to_repr(Value) ->
    Repr

    board_keywords

    let board_keywords : Array[String]

    Board keywords (create new boards)

    composite_keywords

    let composite_keywords : Array[String]

    Keywords that hold composites

    fill_patterns

    let fill_patterns : Array[String]

    Valid fill patterns

    is_board_keyword

    fn is_board_keyword(s : String) -> Bool

    Check if a string is a board keyword

    is_reserved_keyword

    fn is_reserved_keyword(s : String) -> Bool

    Check if a string is a reserved keyword

    is_style_keyword

    fn is_style_keyword(s : String) -> Bool

    Check if a string is a style keyword

    label_positions

    let label_positions : Array[String]

    Label positions

    near_constants

    let near_constants : Array[String]

    Near constant positions

    simple_reserved_keywords

    let simple_reserved_keywords : Array[String]

    Simple reserved keywords (non-style, non-composite)

    style_keywords

    let style_keywords : Array[String]

    Style keywords (must be inside "style" block)

    text_transforms

    let text_transforms : Array[String]

    Valid text transforms

    tooltip_positions

    let tooltip_positions : Array[String]

    Tooltip positions