microcad-lang-parse 0.5.0

µcad language syntax lexer and parser
Documentation
---
source: crates/syntax/tests/parser.rs
expression: parse(input)
---
Ok(
    Program {
        span: 0..38,
        statements: StatementList {
            span: 0..38,
            extras: ItemExtras {
                leading: LeadingExtras(
                    [],
                ),
                trailing: TrailingExtras(
                    [],
                ),
            },
            statements: [
                (
                    LocalAssignment(
                        LocalAssignment {
                            span: 0..37,
                            extras: ItemExtras {
                                leading: LeadingExtras(
                                    [],
                                ),
                                trailing: TrailingExtras(
                                    [],
                                ),
                            },
                            attributes: [
                                Attribute {
                                    span: 0..32,
                                    is_inner: false,
                                    extras: ItemExtras {
                                        leading: LeadingExtras(
                                            [],
                                        ),
                                        trailing: TrailingExtras(
                                            [],
                                        ),
                                    },
                                    commands: [
                                        Call(
                                            Call {
                                                span: 2..26,
                                                extras: ItemExtras {
                                                    leading: LeadingExtras(
                                                        [],
                                                    ),
                                                    trailing: TrailingExtras(
                                                        [],
                                                    ),
                                                },
                                                name: QualifiedName {
                                                    span: 2..5,
                                                    extras: ItemExtras {
                                                        leading: LeadingExtras(
                                                            [],
                                                        ),
                                                        trailing: TrailingExtras(
                                                            [],
                                                        ),
                                                    },
                                                    parts: [
                                                        Identifier {
                                                            span: 2..5,
                                                            name: "svg",
                                                        },
                                                    ],
                                                },
                                                arguments: ArgumentList {
                                                    span: 6..25,
                                                    extras: ItemExtras {
                                                        leading: LeadingExtras(
                                                            [],
                                                        ),
                                                        trailing: TrailingExtras(
                                                            [],
                                                        ),
                                                    },
                                                    arguments: [
                                                        Named(
                                                            NamedArgument {
                                                                span: 6..25,
                                                                extras: ItemExtras {
                                                                    leading: LeadingExtras(
                                                                        [],
                                                                    ),
                                                                    trailing: TrailingExtras(
                                                                        [],
                                                                    ),
                                                                },
                                                                name: Identifier {
                                                                    span: 6..11,
                                                                    name: "style",
                                                                },
                                                                value: Literal(
                                                                    Literal {
                                                                        span: 14..25,
                                                                        extras: ItemExtras {
                                                                            leading: LeadingExtras(
                                                                                [],
                                                                            ),
                                                                            trailing: TrailingExtras(
                                                                                [],
                                                                            ),
                                                                        },
                                                                        literal: String(
                                                                            StringLiteral {
                                                                                span: 14..25,
                                                                                content: "fill:none",
                                                                            },
                                                                        ),
                                                                    },
                                                                ),
                                                            },
                                                        ),
                                                    ],
                                                },
                                            },
                                        ),
                                    ],
                                },
                            ],
                            name: Identifier {
                                span: 32..33,
                                name: "a",
                            },
                            ty: None,
                            value: Literal(
                                Literal {
                                    span: 36..37,
                                    extras: ItemExtras {
                                        leading: LeadingExtras(
                                            [],
                                        ),
                                        trailing: TrailingExtras(
                                            [],
                                        ),
                                    },
                                    literal: Integer(
                                        IntegerLiteral {
                                            span: 36..37,
                                            value: 1,
                                            raw: "1",
                                        },
                                    ),
                                },
                            ),
                        },
                    ),
                    TrailingExtras(
                        [],
                    ),
                ),
            ],
            tail: None,
        },
    },
)