ast-description-lang 0.4.0

A language to describe your language's AST
Documentation
---
source: src/ast/collapsed/mod.rs
assertion_line: 225
expression: "Ast::parse(&text).unwrap().transform(&specs).unwrap().transform()"
input_file: examples/json/example.ast

---
Ok(
    Ast {
        nodes: NamedSet(
            {
                Wrapper(
                    Node {
                        ident: Ident(
                            "file",
                        ),
                        kind: Group(
                            Group {
                                members: [
                                    Node {
                                        ident: Ident(
                                            "json",
                                        ),
                                        kind: Node(
                                            Ident(
                                                "json",
                                            ),
                                        ),
                                        tag: None,
                                    },
                                    Node {
                                        ident: Ident(
                                            "end",
                                        ),
                                        kind: End,
                                        tag: None,
                                    },
                                ],
                                kind: One(
                                    0,
                                ),
                                inline: false,
                            },
                        ),
                        tag: None,
                    },
                    PhantomData,
                ),
                Wrapper(
                    Node {
                        ident: Ident(
                            "json",
                        ),
                        kind: Choice(
                            Choice {
                                kind: Regular(
                                    [
                                        Node {
                                            ident: Ident(
                                                "object",
                                            ),
                                            kind: Node(
                                                Ident(
                                                    "object",
                                                ),
                                            ),
                                            tag: None,
                                        },
                                        Node {
                                            ident: Ident(
                                                "array",
                                            ),
                                            kind: Node(
                                                Ident(
                                                    "array",
                                                ),
                                            ),
                                            tag: None,
                                        },
                                        Node {
                                            ident: Ident(
                                                "num_lit",
                                            ),
                                            kind: DynamicToken(
                                                Ident(
                                                    "num_lit",
                                                ),
                                            ),
                                            tag: None,
                                        },
                                        Node {
                                            ident: Ident(
                                                "str_lit",
                                            ),
                                            kind: DynamicToken(
                                                Ident(
                                                    "str_lit",
                                                ),
                                            ),
                                            tag: None,
                                        },
                                        Node {
                                            ident: Ident(
                                                "bool",
                                            ),
                                            kind: Node(
                                                Ident(
                                                    "bool",
                                                ),
                                            ),
                                            tag: None,
                                        },
                                    ],
                                ),
                                inline: false,
                            },
                        ),
                        tag: None,
                    },
                    PhantomData,
                ),
                Wrapper(
                    Node {
                        ident: Ident(
                            "object",
                        ),
                        kind: Delimited(
                            Modified(
                                Node(
                                    Ident(
                                        "member",
                                    ),
                                ),
                                Csv,
                            ),
                            Ident(
                                "brace",
                            ),
                        ),
                        tag: None,
                    },
                    PhantomData,
                ),
                Wrapper(
                    Node {
                        ident: Ident(
                            "member",
                        ),
                        kind: Group(
                            Group {
                                members: [
                                    Node {
                                        ident: Ident(
                                            "str_lit",
                                        ),
                                        kind: DynamicToken(
                                            Ident(
                                                "str_lit",
                                            ),
                                        ),
                                        tag: None,
                                    },
                                    Node {
                                        ident: Ident(
                                            "colon",
                                        ),
                                        kind: StaticToken(
                                            Ident(
                                                "colon",
                                            ),
                                        ),
                                        tag: None,
                                    },
                                    Node {
                                        ident: Ident(
                                            "json",
                                        ),
                                        kind: Node(
                                            Ident(
                                                "json",
                                            ),
                                        ),
                                        tag: None,
                                    },
                                ],
                                kind: Many(
                                    [
                                        0,
                                        2,
                                    ],
                                ),
                                inline: false,
                            },
                        ),
                        tag: None,
                    },
                    PhantomData,
                ),
                Wrapper(
                    Node {
                        ident: Ident(
                            "array",
                        ),
                        kind: Delimited(
                            Modified(
                                Node(
                                    Ident(
                                        "json",
                                    ),
                                ),
                                Csv,
                            ),
                            Ident(
                                "bracket",
                            ),
                        ),
                        tag: None,
                    },
                    PhantomData,
                ),
                Wrapper(
                    Node {
                        ident: Ident(
                            "bool",
                        ),
                        kind: Choice(
                            Choice {
                                kind: Regular(
                                    [
                                        Node {
                                            ident: Ident(
                                                "kw_true",
                                            ),
                                            kind: StaticToken(
                                                Ident(
                                                    "kw_true",
                                                ),
                                            ),
                                            tag: None,
                                        },
                                        Node {
                                            ident: Ident(
                                                "kw_false",
                                            ),
                                            kind: StaticToken(
                                                Ident(
                                                    "kw_false",
                                                ),
                                            ),
                                            tag: None,
                                        },
                                    ],
                                ),
                                inline: false,
                            },
                        ),
                        tag: None,
                    },
                    PhantomData,
                ),
            },
        ),
        cyclic: [
            1,
            2,
            3,
            4,
        ],
    },
)