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(\"join side:left country [id==employee_id]\",\n                  Rule::func_call)?"
---
[
    Pair {
        rule: func_call,
        span: Span {
            str: "join side:left country [id==employee_id]",
            start: 0,
            end: 40,
        },
        inner: [
            Pair {
                rule: ident,
                span: Span {
                    str: "join",
                    start: 0,
                    end: 4,
                },
                inner: [],
            },
            Pair {
                rule: named_arg,
                span: Span {
                    str: "side:left ",
                    start: 5,
                    end: 15,
                },
                inner: [
                    Pair {
                        rule: ident,
                        span: Span {
                            str: "side",
                            start: 5,
                            end: 9,
                        },
                        inner: [],
                    },
                    Pair {
                        rule: expr,
                        span: Span {
                            str: "left ",
                            start: 10,
                            end: 15,
                        },
                        inner: [
                            Pair {
                                rule: expr_coalesce,
                                span: Span {
                                    str: "left ",
                                    start: 10,
                                    end: 15,
                                },
                                inner: [
                                    Pair {
                                        rule: expr_compare,
                                        span: Span {
                                            str: "left ",
                                            start: 10,
                                            end: 15,
                                        },
                                        inner: [
                                            Pair {
                                                rule: expr_add,
                                                span: Span {
                                                    str: "left ",
                                                    start: 10,
                                                    end: 15,
                                                },
                                                inner: [
                                                    Pair {
                                                        rule: expr_mul,
                                                        span: Span {
                                                            str: "left ",
                                                            start: 10,
                                                            end: 15,
                                                        },
                                                        inner: [
                                                            Pair {
                                                                rule: ident,
                                                                span: Span {
                                                                    str: "left",
                                                                    start: 10,
                                                                    end: 14,
                                                                },
                                                                inner: [],
                                                            },
                                                        ],
                                                    },
                                                ],
                                            },
                                        ],
                                    },
                                ],
                            },
                        ],
                    },
                ],
            },
            Pair {
                rule: expr,
                span: Span {
                    str: "country ",
                    start: 15,
                    end: 23,
                },
                inner: [
                    Pair {
                        rule: expr_coalesce,
                        span: Span {
                            str: "country ",
                            start: 15,
                            end: 23,
                        },
                        inner: [
                            Pair {
                                rule: expr_compare,
                                span: Span {
                                    str: "country ",
                                    start: 15,
                                    end: 23,
                                },
                                inner: [
                                    Pair {
                                        rule: expr_add,
                                        span: Span {
                                            str: "country ",
                                            start: 15,
                                            end: 23,
                                        },
                                        inner: [
                                            Pair {
                                                rule: expr_mul,
                                                span: Span {
                                                    str: "country ",
                                                    start: 15,
                                                    end: 23,
                                                },
                                                inner: [
                                                    Pair {
                                                        rule: ident,
                                                        span: Span {
                                                            str: "country",
                                                            start: 15,
                                                            end: 22,
                                                        },
                                                        inner: [],
                                                    },
                                                ],
                                            },
                                        ],
                                    },
                                ],
                            },
                        ],
                    },
                ],
            },
            Pair {
                rule: expr,
                span: Span {
                    str: "[id==employee_id]",
                    start: 23,
                    end: 40,
                },
                inner: [
                    Pair {
                        rule: expr_coalesce,
                        span: Span {
                            str: "[id==employee_id]",
                            start: 23,
                            end: 40,
                        },
                        inner: [
                            Pair {
                                rule: expr_compare,
                                span: Span {
                                    str: "[id==employee_id]",
                                    start: 23,
                                    end: 40,
                                },
                                inner: [
                                    Pair {
                                        rule: expr_add,
                                        span: Span {
                                            str: "[id==employee_id]",
                                            start: 23,
                                            end: 40,
                                        },
                                        inner: [
                                            Pair {
                                                rule: expr_mul,
                                                span: Span {
                                                    str: "[id==employee_id]",
                                                    start: 23,
                                                    end: 40,
                                                },
                                                inner: [
                                                    Pair {
                                                        rule: list,
                                                        span: Span {
                                                            str: "[id==employee_id]",
                                                            start: 23,
                                                            end: 40,
                                                        },
                                                        inner: [
                                                            Pair {
                                                                rule: expr,
                                                                span: Span {
                                                                    str: "id==employee_id",
                                                                    start: 24,
                                                                    end: 39,
                                                                },
                                                                inner: [
                                                                    Pair {
                                                                        rule: expr_coalesce,
                                                                        span: Span {
                                                                            str: "id==employee_id",
                                                                            start: 24,
                                                                            end: 39,
                                                                        },
                                                                        inner: [
                                                                            Pair {
                                                                                rule: expr_compare,
                                                                                span: Span {
                                                                                    str: "id==employee_id",
                                                                                    start: 24,
                                                                                    end: 39,
                                                                                },
                                                                                inner: [
                                                                                    Pair {
                                                                                        rule: expr_add,
                                                                                        span: Span {
                                                                                            str: "id",
                                                                                            start: 24,
                                                                                            end: 26,
                                                                                        },
                                                                                        inner: [
                                                                                            Pair {
                                                                                                rule: expr_mul,
                                                                                                span: Span {
                                                                                                    str: "id",
                                                                                                    start: 24,
                                                                                                    end: 26,
                                                                                                },
                                                                                                inner: [
                                                                                                    Pair {
                                                                                                        rule: ident,
                                                                                                        span: Span {
                                                                                                            str: "id",
                                                                                                            start: 24,
                                                                                                            end: 26,
                                                                                                        },
                                                                                                        inner: [],
                                                                                                    },
                                                                                                ],
                                                                                            },
                                                                                        ],
                                                                                    },
                                                                                    Pair {
                                                                                        rule: operator_compare,
                                                                                        span: Span {
                                                                                            str: "==",
                                                                                            start: 26,
                                                                                            end: 28,
                                                                                        },
                                                                                        inner: [],
                                                                                    },
                                                                                    Pair {
                                                                                        rule: expr_add,
                                                                                        span: Span {
                                                                                            str: "employee_id",
                                                                                            start: 28,
                                                                                            end: 39,
                                                                                        },
                                                                                        inner: [
                                                                                            Pair {
                                                                                                rule: expr_mul,
                                                                                                span: Span {
                                                                                                    str: "employee_id",
                                                                                                    start: 28,
                                                                                                    end: 39,
                                                                                                },
                                                                                                inner: [
                                                                                                    Pair {
                                                                                                        rule: ident,
                                                                                                        span: Span {
                                                                                                            str: "employee_id",
                                                                                                            start: 28,
                                                                                                            end: 39,
                                                                                                        },
                                                                                                        inner: [],
                                                                                                    },
                                                                                                ],
                                                                                            },
                                                                                        ],
                                                                                    },
                                                                                ],
                                                                            },
                                                                        ],
                                                                    },
                                                                ],
                                                            },
                                                        ],
                                                    },
                                                ],
                                            },
                                        ],
                                    },
                                ],
                            },
                        ],
                    },
                ],
            },
        ],
    },
]