prql-compiler 0.2.2

PRQL is a modern language for transforming data — a simple, powerful, pipelined SQL replacement.
Documentation
---
source: prql-compiler/src/parser.rs
expression: "parse_tree_of_str(r#\"[\n  gross_salary = salary + payroll_tax,\n  gross_cost   = gross_salary + benefits_cost\n]\"#,\n                  Rule::list)?"
---
[
    Pair {
        rule: list,
        span: Span {
            str: "[\n  gross_salary = salary + payroll_tax,\n  gross_cost   = gross_salary + benefits_cost\n]",
            start: 0,
            end: 88,
        },
        inner: [
            Pair {
                rule: assign_call,
                span: Span {
                    str: "gross_salary = salary + payroll_tax",
                    start: 4,
                    end: 39,
                },
                inner: [
                    Pair {
                        rule: ident,
                        span: Span {
                            str: "gross_salary",
                            start: 4,
                            end: 16,
                        },
                        inner: [],
                    },
                    Pair {
                        rule: expr,
                        span: Span {
                            str: "salary + payroll_tax",
                            start: 19,
                            end: 39,
                        },
                        inner: [
                            Pair {
                                rule: expr_coalesce,
                                span: Span {
                                    str: "salary + payroll_tax",
                                    start: 19,
                                    end: 39,
                                },
                                inner: [
                                    Pair {
                                        rule: expr_compare,
                                        span: Span {
                                            str: "salary + payroll_tax",
                                            start: 19,
                                            end: 39,
                                        },
                                        inner: [
                                            Pair {
                                                rule: expr_add,
                                                span: Span {
                                                    str: "salary + payroll_tax",
                                                    start: 19,
                                                    end: 39,
                                                },
                                                inner: [
                                                    Pair {
                                                        rule: expr_mul,
                                                        span: Span {
                                                            str: "salary ",
                                                            start: 19,
                                                            end: 26,
                                                        },
                                                        inner: [
                                                            Pair {
                                                                rule: ident,
                                                                span: Span {
                                                                    str: "salary",
                                                                    start: 19,
                                                                    end: 25,
                                                                },
                                                                inner: [],
                                                            },
                                                        ],
                                                    },
                                                    Pair {
                                                        rule: operator_add,
                                                        span: Span {
                                                            str: "+",
                                                            start: 26,
                                                            end: 27,
                                                        },
                                                        inner: [],
                                                    },
                                                    Pair {
                                                        rule: expr_add,
                                                        span: Span {
                                                            str: "payroll_tax",
                                                            start: 28,
                                                            end: 39,
                                                        },
                                                        inner: [
                                                            Pair {
                                                                rule: expr_mul,
                                                                span: Span {
                                                                    str: "payroll_tax",
                                                                    start: 28,
                                                                    end: 39,
                                                                },
                                                                inner: [
                                                                    Pair {
                                                                        rule: ident,
                                                                        span: Span {
                                                                            str: "payroll_tax",
                                                                            start: 28,
                                                                            end: 39,
                                                                        },
                                                                        inner: [],
                                                                    },
                                                                ],
                                                            },
                                                        ],
                                                    },
                                                ],
                                            },
                                        ],
                                    },
                                ],
                            },
                        ],
                    },
                ],
            },
            Pair {
                rule: assign_call,
                span: Span {
                    str: "gross_cost   = gross_salary + benefits_cost",
                    start: 43,
                    end: 86,
                },
                inner: [
                    Pair {
                        rule: ident,
                        span: Span {
                            str: "gross_cost",
                            start: 43,
                            end: 53,
                        },
                        inner: [],
                    },
                    Pair {
                        rule: expr,
                        span: Span {
                            str: "gross_salary + benefits_cost",
                            start: 58,
                            end: 86,
                        },
                        inner: [
                            Pair {
                                rule: expr_coalesce,
                                span: Span {
                                    str: "gross_salary + benefits_cost",
                                    start: 58,
                                    end: 86,
                                },
                                inner: [
                                    Pair {
                                        rule: expr_compare,
                                        span: Span {
                                            str: "gross_salary + benefits_cost",
                                            start: 58,
                                            end: 86,
                                        },
                                        inner: [
                                            Pair {
                                                rule: expr_add,
                                                span: Span {
                                                    str: "gross_salary + benefits_cost",
                                                    start: 58,
                                                    end: 86,
                                                },
                                                inner: [
                                                    Pair {
                                                        rule: expr_mul,
                                                        span: Span {
                                                            str: "gross_salary ",
                                                            start: 58,
                                                            end: 71,
                                                        },
                                                        inner: [
                                                            Pair {
                                                                rule: ident,
                                                                span: Span {
                                                                    str: "gross_salary",
                                                                    start: 58,
                                                                    end: 70,
                                                                },
                                                                inner: [],
                                                            },
                                                        ],
                                                    },
                                                    Pair {
                                                        rule: operator_add,
                                                        span: Span {
                                                            str: "+",
                                                            start: 71,
                                                            end: 72,
                                                        },
                                                        inner: [],
                                                    },
                                                    Pair {
                                                        rule: expr_add,
                                                        span: Span {
                                                            str: "benefits_cost",
                                                            start: 73,
                                                            end: 86,
                                                        },
                                                        inner: [
                                                            Pair {
                                                                rule: expr_mul,
                                                                span: Span {
                                                                    str: "benefits_cost",
                                                                    start: 73,
                                                                    end: 86,
                                                                },
                                                                inner: [
                                                                    Pair {
                                                                        rule: ident,
                                                                        span: Span {
                                                                            str: "benefits_cost",
                                                                            start: 73,
                                                                            end: 86,
                                                                        },
                                                                        inner: [],
                                                                    },
                                                                ],
                                                            },
                                                        ],
                                                    },
                                                ],
                                            },
                                        ],
                                    },
                                ],
                            },
                        ],
                    },
                ],
            },
        ],
    },
]