diff --git a/book/src/super-sql/declarations/queries.md b/book/src/super-sql/declarations/queries.md index f35058ff2e..d9f13e2a48 100644 --- a/book/src/super-sql/declarations/queries.md +++ b/book/src/super-sql/declarations/queries.md @@ -2,7 +2,7 @@ A query may be bound to an identifier as a named query with the syntax ``` -let = ( ) +let = [ materialized ] ( ) ``` where `` is an [identifier](../queries.md#identifiers) and `` is any standalone [query](../queries.md) that sources its own input. @@ -27,6 +27,11 @@ an array subquery. To create a query that can operate on its input, declare an [operator](operators.md). +With `materialized`, the query is evaluated once, its output is cached, +and every reference to the query produces that same output. This is +useful when a query is expensive or has results that vary across +evaluations. + A common use case for a named query is to compute a complex query that returns a scalar, then embedding that scalar result in an [expression](../expressions/intro.md). Even though the named query appears syntactically as a subquery in this case, the result is efficient @@ -50,6 +55,21 @@ from hello --- +_A materialized named query produces the same output each time it is referenced_ + +```mdtest-spq +# spq +let t = materialized (values now()) +values t, t, t +| count(distinct this) +# input + +# expected output +1 +``` + +--- + _Use an array subquery if multiple values expected_ ```mdtest-spq diff --git a/book/src/super-sql/expressions/subqueries.md b/book/src/super-sql/expressions/subqueries.md index 268e8ca6b2..a27da13b6f 100644 --- a/book/src/super-sql/expressions/subqueries.md +++ b/book/src/super-sql/expressions/subqueries.md @@ -74,6 +74,27 @@ Then, for each input value `3` and `4`, the result is emitted, e.g., {that:4,count:3} ``` +A subquery may also be made independent explicitly by placing the keyword +`materialized` before its parentheses, as in +``` +materialized ( ) +``` +A materialized subquery is evaluated just once and receives a single `null` +value as its input, so it need not begin with a source. For example, +the subquery `materialized (values now())` is evaluated once even though +it does not begin with a `from` operator. + +```mdtest-spq +# spq +values 1,2,3 +| values materialized (values now()) +| count(distinct this) +# input + +# expected output +1 +``` + ## Correlated Subqueries When a subquery appears within a [SQL operator](../sql/intro.md), diff --git a/book/src/super-sql/sql/with.md b/book/src/super-sql/sql/with.md index 444edc2890..e4eda68e46 100644 --- a/book/src/super-sql/sql/with.md +++ b/book/src/super-sql/sql/with.md @@ -3,10 +3,10 @@ A [WITH](with.md) clause may precede any [SQL operator](intro.md#sql-operator) and has the form ``` -WITH AS ( +WITH AS [ [ NOT ] MATERIALIZED ] ( ) -[ , AS ( ) ... ] +[ , AS [ [ NOT ] MATERIALIZED ] ( ) ... ] ``` where * `` is a table alias with optional columns as defined @@ -21,6 +21,10 @@ but the CTE body must be a [SQL operator](intro.md#sql-operator) and the CTE name can be used only with a [FROM](from.md) clause and is not accessible in an expression. +By default, or when `NOT MATERIALIZED` is given, the body of a CTE is evaluated +each time the CTE is referenced. When `MATERIALIZED` is given, the body is +evaluated at most once and every reference to the CTE sees the same result. + The table aliases form a lexical scope which is available in any `FROM` clause defined within the SQL operator that follows the `WITH` clause and any `FROM` clauses recursively @@ -49,6 +53,24 @@ SELECT * FROM hello --- +_A materialized CTE is evaluated once_ +```mdtest-spq +# spq +WITH T AS MATERIALIZED ( + SELECT now() AS x +) +SELECT x FROM T +UNION ALL +SELECT x FROM T +| count(distinct this) +# input + +# expected output +1 +``` + +--- + _A first CTE referenced in a second CTE_ ```mdtest-spq # spq diff --git a/compiler/ast/decl.go b/compiler/ast/decl.go index 4b04cdf682..0a7554dbbb 100644 --- a/compiler/ast/decl.go +++ b/compiler/ast/decl.go @@ -35,10 +35,11 @@ type PragmaDecl struct { } type QueryDecl struct { - Kind string `json:"kind" unpack:""` - Name *ID `json:"name"` - Body Seq `json:"body"` - Loc `json:"loc"` + Kind string `json:"kind" unpack:""` + Name *ID `json:"name"` + Materialized bool `json:"materialized"` + Body Seq `json:"body"` + Loc `json:"loc"` } type TypeDecl struct { diff --git a/compiler/ast/expr.go b/compiler/ast/expr.go index 4e3b07cfac..30b74edf47 100644 --- a/compiler/ast/expr.go +++ b/compiler/ast/expr.go @@ -195,10 +195,11 @@ type ( Loc `json:"loc"` } SubqueryExpr struct { - Kind string `json:"kind" unpack:""` - Body Seq `json:"body"` - Array bool `json:"array"` - Loc `json:"loc"` + Kind string `json:"kind" unpack:""` + Materialized bool `json:"materialized"` + Body Seq `json:"body"` + Array bool `json:"array"` + Loc `json:"loc"` } SubstringExpr struct { Kind string `json:"kind" unpack:""` diff --git a/compiler/dag/expr.go b/compiler/dag/expr.go index ef701942a3..304041aa89 100644 --- a/compiler/dag/expr.go +++ b/compiler/dag/expr.go @@ -10,9 +10,10 @@ import ( ) type MainExpr struct { - Types []byte `json:"types"` - Funcs []*FuncDef `json:"funcs"` - Expr Expr `json:"expr"` + Types []byte `json:"types"` + Funcs []*FuncDef `json:"funcs"` + Materialized []*MaterializedDef `json:"materialized"` + Expr Expr `json:"expr"` } type ( @@ -144,8 +145,8 @@ type ( Nulls order.Nulls `json:"nulls"` } SubqueryExpr struct { - Kind string `json:"kind" unpack:""` - Correlated bool `json:"correlated"` + Kind string `json:"kind" unpack:""` + Materialized bool `json:"materialized"` // SQL is true for a subquery in a SQL expression, whose value is // null when the subquery produces no values. Otherwise, the value // is none. diff --git a/compiler/dag/op.go b/compiler/dag/op.go index 7e810d9a1e..3abba43357 100644 --- a/compiler/dag/op.go +++ b/compiler/dag/op.go @@ -18,9 +18,10 @@ import ( ) type Main struct { - Types []byte `json:"types"` - Funcs []*FuncDef `json:"funcs"` - Body Seq `json:"body"` + Types []byte `json:"types"` + Funcs []*FuncDef `json:"funcs"` + Materialized []*MaterializedDef `json:"materialized"` + Body Seq `json:"body"` } type FuncDef struct { @@ -31,6 +32,12 @@ type FuncDef struct { Expr Expr `json:"expr"` } +type MaterializedDef struct { + Kind string `json:"kind" unpack:""` + Name string `json:"name"` + Body Seq `json:"body"` +} + type Op interface { opNode() } @@ -124,6 +131,10 @@ type ( Message string `json:"message"` Meta string `json:"meta"` } + MaterializedRefOp struct { + Kind string `json:"kind" unpack:""` + Name string `json:"name"` + } MergeOp struct { Kind string `json:"kind" unpack:""` Exprs []SortExpr `json:"exprs"` @@ -206,35 +217,36 @@ type ( } ) -func (*AggregateOp) opNode() {} -func (*CombineOp) opNode() {} -func (*CountOp) opNode() {} -func (*DebugOp) opNode() {} -func (*DistinctOp) opNode() {} -func (*DropOp) opNode() {} -func (*FilterOp) opNode() {} -func (*ForkOp) opNode() {} -func (*FuseOp) opNode() {} -func (*HashJoinOp) opNode() {} -func (*HeadOp) opNode() {} -func (*InferOp) opNode() {} -func (*JoinOp) opNode() {} -func (*LoadOp) opNode() {} -func (*MergeOp) opNode() {} -func (*OutputOp) opNode() {} -func (*PassOp) opNode() {} -func (*PutOp) opNode() {} -func (*RenameOp) opNode() {} -func (*ScatterOp) opNode() {} -func (*SkipOp) opNode() {} -func (*SlicerOp) opNode() {} -func (*SortOp) opNode() {} -func (*SwitchOp) opNode() {} -func (*TailOp) opNode() {} -func (*TopOp) opNode() {} -func (*UniqOp) opNode() {} -func (*UnnestOp) opNode() {} -func (*ValuesOp) opNode() {} +func (*AggregateOp) opNode() {} +func (*CombineOp) opNode() {} +func (*CountOp) opNode() {} +func (*DebugOp) opNode() {} +func (*DistinctOp) opNode() {} +func (*DropOp) opNode() {} +func (*FilterOp) opNode() {} +func (*ForkOp) opNode() {} +func (*FuseOp) opNode() {} +func (*HashJoinOp) opNode() {} +func (*HeadOp) opNode() {} +func (*InferOp) opNode() {} +func (*JoinOp) opNode() {} +func (*LoadOp) opNode() {} +func (*MaterializedRefOp) opNode() {} +func (*MergeOp) opNode() {} +func (*OutputOp) opNode() {} +func (*PassOp) opNode() {} +func (*PutOp) opNode() {} +func (*RenameOp) opNode() {} +func (*ScatterOp) opNode() {} +func (*SkipOp) opNode() {} +func (*SlicerOp) opNode() {} +func (*SortOp) opNode() {} +func (*SwitchOp) opNode() {} +func (*TailOp) opNode() {} +func (*TopOp) opNode() {} +func (*UniqOp) opNode() {} +func (*UnnestOp) opNode() {} +func (*ValuesOp) opNode() {} // Scanner sources also implement Op and all have suffix "Scan". type ( diff --git a/compiler/dag/unpack.go b/compiler/dag/unpack.go index a9aa3eb978..08ad2c471a 100644 --- a/compiler/dag/unpack.go +++ b/compiler/dag/unpack.go @@ -44,6 +44,8 @@ var unpacker = unpack.New( LoadOp{}, MapCallExpr{}, MapExpr{}, + MaterializedDef{}, + MaterializedRefOp{}, MergeOp{}, NullScan{}, OutputOp{}, diff --git a/compiler/describe/analyze.go b/compiler/describe/analyze.go index b4b9361d96..5d3d6c4e75 100644 --- a/compiler/describe/analyze.go +++ b/compiler/describe/analyze.go @@ -70,7 +70,11 @@ func AnalyzeDAG(ctx context.Context, main *dag.Main, src *exec.Environment) (*In entry := main.Body var err error var info Info - if info.Sources, err = describeSources(ctx, src.DB(), entry[0]); err != nil { + materialized := make(map[string]*dag.MaterializedDef) + for _, m := range main.Materialized { + materialized[m.Name] = m + } + if info.Sources, err = describeSources(ctx, src.DB(), materialized, entry[0]); err != nil { return nil, err } sortKeys, err := optimizer.New(ctx, src).SortKeys(entry) @@ -100,18 +104,24 @@ func AnalyzeDAG(ctx context.Context, main *dag.Main, src *exec.Environment) (*In return &info, nil } -func describeSources(ctx context.Context, root *db.Root, o dag.Op) ([]Source, error) { +func describeSources(ctx context.Context, root *db.Root, materialized map[string]*dag.MaterializedDef, o dag.Op) ([]Source, error) { switch o := o.(type) { case *dag.ForkOp: var s []Source for _, p := range o.Paths { - out, err := describeSources(ctx, root, p[0]) + out, err := describeSources(ctx, root, materialized, p[0]) if err != nil { return nil, err } s = append(s, out...) } return s, nil + case *dag.MaterializedRefOp: + def, ok := materialized[o.Name] + if !ok || len(def.Body) == 0 { + return nil, fmt.Errorf("internal error: undefined materialized query %q", o.Name) + } + return describeSources(ctx, root, materialized, def.Body[0]) case *dag.NullScan: return []Source{&Null{Kind: "Null"}}, nil case *dag.FileScan: diff --git a/compiler/optimizer/demand.go b/compiler/optimizer/demand.go index 350c3b6ec6..99939f62d8 100644 --- a/compiler/optimizer/demand.go +++ b/compiler/optimizer/demand.go @@ -147,7 +147,7 @@ func (a *demandAnalyzer) demandForSimpleOp(op dag.Op, downstream demand.Demand) a.demandForExpr(df.Expr) } return demand.None() - case *dag.HTTPScan, *dag.ListerScan, *dag.NullScan, *dag.TableMetaScan, *dag.TableScan: + case *dag.HTTPScan, *dag.ListerScan, *dag.MaterializedRefOp, *dag.NullScan, *dag.TableMetaScan, *dag.TableScan: return demand.None() case *dag.RobotScan: return demand.Union(a.demandForExpr(op.Expr), a.demandForExpr(op.Method), a.demandForExpr(op.Headers), a.demandForExpr(op.Body)) diff --git a/compiler/optimizer/optimizer.go b/compiler/optimizer/optimizer.go index 2257893351..3238fbc436 100644 --- a/compiler/optimizer/optimizer.go +++ b/compiler/optimizer/optimizer.go @@ -121,7 +121,22 @@ func walkEntries(seq dag.Seq, post func(dag.Seq) (dag.Seq, error)) (dag.Seq, err // source's pushdown predicate. This should be called before ParallelizeScan(). // TBD: we need to do pushdown for search/cut to optimize columnar extraction. func (o *Optimizer) Optimize(main *dag.Main) error { - seq := main.Body + for _, m := range main.Materialized { + seq, err := o.optimizeSeq(m.Body) + if err != nil { + return err + } + m.Body = seq + } + seq, err := o.optimizeSeq(main.Body) + if err != nil { + return err + } + main.Body = seq + return nil +} + +func (o *Optimizer) optimizeSeq(seq dag.Seq) (dag.Seq, error) { seq = liftFilterOps(seq) seq = mergeFilters(seq) seq = mergeValuesOps(seq) @@ -135,7 +150,7 @@ func (o *Optimizer) Optimize(main *dag.Main) error { seq = mergeFilters(seq) seq, err := o.optimizeSourcePaths(seq) if err != nil { - return err + return nil, err } seq = removePassOps(seq) table := analyzeDemand(seq) @@ -144,8 +159,7 @@ func (o *Optimizer) Optimize(main *dag.Main) error { } setProjections(table) setPushdownUnordered(seq, false) - main.Body = seq - return nil + return seq, nil } func (o *Optimizer) OptimizeDeleter(main *dag.Main, replicas int) error { diff --git a/compiler/optimizer/parallelize.go b/compiler/optimizer/parallelize.go index ed433f3bf0..d9805bc520 100644 --- a/compiler/optimizer/parallelize.go +++ b/compiler/optimizer/parallelize.go @@ -17,7 +17,23 @@ func (o *Optimizer) Parallelize(main *dag.Main, concurrency int) error { return nil } concurrency = max(concurrency/o.nent, 2) - seq, err := walkEntries(main.Body, func(seq dag.Seq) (dag.Seq, error) { + for _, m := range main.Materialized { + seq, err := o.parallelizeSeq(m.Body, concurrency) + if err != nil { + return err + } + m.Body = seq + } + seq, err := o.parallelizeSeq(main.Body, concurrency) + if err != nil { + return err + } + main.Body = seq + return nil +} + +func (o *Optimizer) parallelizeSeq(seq dag.Seq, concurrency int) (dag.Seq, error) { + seq, err := walkEntries(seq, func(seq dag.Seq) (dag.Seq, error) { if len(seq) == 0 { return seq, nil } @@ -47,11 +63,10 @@ func (o *Optimizer) Parallelize(main *dag.Main, concurrency int) error { return append(front, parallel...), nil }) if err != nil { - return err + return nil, err } o.optimizeParallels(seq) - main.Body = removePassOps(seq) - return nil + return removePassOps(seq), nil } func matchSource(seq dag.Seq) (*dag.ListerScan, *dag.SlicerOp, dag.Seq) { diff --git a/compiler/parser/parser.go b/compiler/parser/parser.go index c9025e0a08..abdb6f809f 100644 --- a/compiler/parser/parser.go +++ b/compiler/parser/parser.go @@ -1266,34 +1266,42 @@ var g = &grammar{ ignoreCase: false, want: "\"=\"", }, + &labeledExpr{ + pos: position{line: 168, col: 34, offset: 4353}, + label: "m", + expr: &ruleRefExpr{ + pos: position{line: 168, col: 36, offset: 4355}, + name: "OptMaterialized", + }, + }, &ruleRefExpr{ - pos: position{line: 168, col: 34, offset: 4353}, + pos: position{line: 168, col: 52, offset: 4371}, name: "__", }, &litMatcher{ - pos: position{line: 168, col: 37, offset: 4356}, + pos: position{line: 168, col: 55, offset: 4374}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 168, col: 41, offset: 4360}, + pos: position{line: 168, col: 59, offset: 4378}, name: "__", }, &labeledExpr{ - pos: position{line: 168, col: 44, offset: 4363}, + pos: position{line: 168, col: 62, offset: 4381}, label: "body", expr: &ruleRefExpr{ - pos: position{line: 168, col: 49, offset: 4368}, + pos: position{line: 168, col: 67, offset: 4386}, name: "Query", }, }, &ruleRefExpr{ - pos: position{line: 168, col: 55, offset: 4374}, + pos: position{line: 168, col: 73, offset: 4392}, name: "__", }, &litMatcher{ - pos: position{line: 168, col: 58, offset: 4377}, + pos: position{line: 168, col: 76, offset: 4395}, val: ")", ignoreCase: false, want: "\")\"", @@ -1306,40 +1314,40 @@ var g = &grammar{ }, { name: "LambdaExpr", - pos: position{line: 177, col: 1, offset: 4547}, + pos: position{line: 178, col: 1, offset: 4597}, expr: &choiceExpr{ - pos: position{line: 178, col: 5, offset: 4562}, + pos: position{line: 179, col: 5, offset: 4612}, alternatives: []any{ &actionExpr{ - pos: position{line: 178, col: 5, offset: 4562}, + pos: position{line: 179, col: 5, offset: 4612}, run: (*parser).callonLambdaExpr2, expr: &seqExpr{ - pos: position{line: 178, col: 5, offset: 4562}, + pos: position{line: 179, col: 5, offset: 4612}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 178, col: 5, offset: 4562}, + pos: position{line: 179, col: 5, offset: 4612}, name: "LAMBDA", }, &labeledExpr{ - pos: position{line: 178, col: 12, offset: 4569}, + pos: position{line: 179, col: 12, offset: 4619}, label: "params", expr: &zeroOrOneExpr{ - pos: position{line: 178, col: 19, offset: 4576}, + pos: position{line: 179, col: 19, offset: 4626}, expr: &actionExpr{ - pos: position{line: 178, col: 20, offset: 4577}, + pos: position{line: 179, col: 20, offset: 4627}, run: (*parser).callonLambdaExpr7, expr: &seqExpr{ - pos: position{line: 178, col: 20, offset: 4577}, + pos: position{line: 179, col: 20, offset: 4627}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 178, col: 20, offset: 4577}, + pos: position{line: 179, col: 20, offset: 4627}, name: "_", }, &labeledExpr{ - pos: position{line: 178, col: 22, offset: 4579}, + pos: position{line: 179, col: 22, offset: 4629}, label: "ids", expr: &ruleRefExpr{ - pos: position{line: 178, col: 26, offset: 4583}, + pos: position{line: 179, col: 26, offset: 4633}, name: "Identifiers", }, }, @@ -1349,24 +1357,24 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 178, col: 60, offset: 4617}, + pos: position{line: 179, col: 60, offset: 4667}, name: "__", }, &litMatcher{ - pos: position{line: 178, col: 63, offset: 4620}, + pos: position{line: 179, col: 63, offset: 4670}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 178, col: 67, offset: 4624}, + pos: position{line: 179, col: 67, offset: 4674}, name: "__", }, &labeledExpr{ - pos: position{line: 178, col: 70, offset: 4627}, + pos: position{line: 179, col: 70, offset: 4677}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 178, col: 75, offset: 4632}, + pos: position{line: 179, col: 75, offset: 4682}, name: "Expr", }, }, @@ -1374,35 +1382,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 186, col: 7, offset: 4816}, + pos: position{line: 187, col: 7, offset: 4866}, run: (*parser).callonLambdaExpr17, expr: &seqExpr{ - pos: position{line: 186, col: 7, offset: 4816}, + pos: position{line: 187, col: 7, offset: 4866}, exprs: []any{ &litMatcher{ - pos: position{line: 186, col: 7, offset: 4816}, + pos: position{line: 187, col: 7, offset: 4866}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 186, col: 11, offset: 4820}, + pos: position{line: 187, col: 11, offset: 4870}, name: "__", }, &labeledExpr{ - pos: position{line: 186, col: 14, offset: 4823}, + pos: position{line: 187, col: 14, offset: 4873}, label: "lambda", expr: &ruleRefExpr{ - pos: position{line: 186, col: 21, offset: 4830}, + pos: position{line: 187, col: 21, offset: 4880}, name: "LambdaExpr", }, }, &ruleRefExpr{ - pos: position{line: 186, col: 32, offset: 4841}, + pos: position{line: 187, col: 32, offset: 4891}, name: "__", }, &litMatcher{ - pos: position{line: 186, col: 35, offset: 4844}, + pos: position{line: 187, col: 35, offset: 4894}, val: ")", ignoreCase: false, want: "\")\"", @@ -1417,51 +1425,51 @@ var g = &grammar{ }, { name: "FuncOrExprs", - pos: position{line: 188, col: 1, offset: 4872}, + pos: position{line: 189, col: 1, offset: 4922}, expr: &actionExpr{ - pos: position{line: 189, col: 5, offset: 4888}, + pos: position{line: 190, col: 5, offset: 4938}, run: (*parser).callonFuncOrExprs1, expr: &seqExpr{ - pos: position{line: 189, col: 5, offset: 4888}, + pos: position{line: 190, col: 5, offset: 4938}, exprs: []any{ &labeledExpr{ - pos: position{line: 189, col: 5, offset: 4888}, + pos: position{line: 190, col: 5, offset: 4938}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 189, col: 11, offset: 4894}, + pos: position{line: 190, col: 11, offset: 4944}, name: "FuncOrExpr", }, }, &labeledExpr{ - pos: position{line: 189, col: 22, offset: 4905}, + pos: position{line: 190, col: 22, offset: 4955}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 189, col: 27, offset: 4910}, + pos: position{line: 190, col: 27, offset: 4960}, expr: &actionExpr{ - pos: position{line: 189, col: 28, offset: 4911}, + pos: position{line: 190, col: 28, offset: 4961}, run: (*parser).callonFuncOrExprs7, expr: &seqExpr{ - pos: position{line: 189, col: 28, offset: 4911}, + pos: position{line: 190, col: 28, offset: 4961}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 189, col: 28, offset: 4911}, + pos: position{line: 190, col: 28, offset: 4961}, name: "__", }, &litMatcher{ - pos: position{line: 189, col: 31, offset: 4914}, + pos: position{line: 190, col: 31, offset: 4964}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 189, col: 35, offset: 4918}, + pos: position{line: 190, col: 35, offset: 4968}, name: "__", }, &labeledExpr{ - pos: position{line: 189, col: 38, offset: 4921}, + pos: position{line: 190, col: 38, offset: 4971}, label: "f", expr: &ruleRefExpr{ - pos: position{line: 189, col: 40, offset: 4923}, + pos: position{line: 190, col: 40, offset: 4973}, name: "FuncOrExpr", }, }, @@ -1478,16 +1486,16 @@ var g = &grammar{ }, { name: "FuncOrExpr", - pos: position{line: 193, col: 1, offset: 5002}, + pos: position{line: 194, col: 1, offset: 5052}, expr: &choiceExpr{ - pos: position{line: 193, col: 14, offset: 5015}, + pos: position{line: 194, col: 14, offset: 5065}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 193, col: 14, offset: 5015}, + pos: position{line: 194, col: 14, offset: 5065}, name: "FuncValue", }, &ruleRefExpr{ - pos: position{line: 193, col: 26, offset: 5027}, + pos: position{line: 194, col: 26, offset: 5077}, name: "Expr", }, }, @@ -1497,49 +1505,49 @@ var g = &grammar{ }, { name: "OpDecl", - pos: position{line: 195, col: 1, offset: 5033}, + pos: position{line: 196, col: 1, offset: 5083}, expr: &actionExpr{ - pos: position{line: 196, col: 5, offset: 5044}, + pos: position{line: 197, col: 5, offset: 5094}, run: (*parser).callonOpDecl1, expr: &seqExpr{ - pos: position{line: 196, col: 5, offset: 5044}, + pos: position{line: 197, col: 5, offset: 5094}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 196, col: 5, offset: 5044}, + pos: position{line: 197, col: 5, offset: 5094}, name: "OP", }, &ruleRefExpr{ - pos: position{line: 196, col: 8, offset: 5047}, + pos: position{line: 197, col: 8, offset: 5097}, name: "_", }, &labeledExpr{ - pos: position{line: 196, col: 10, offset: 5049}, + pos: position{line: 197, col: 10, offset: 5099}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 196, col: 15, offset: 5054}, + pos: position{line: 197, col: 15, offset: 5104}, name: "Identifier", }, }, &labeledExpr{ - pos: position{line: 196, col: 26, offset: 5065}, + pos: position{line: 197, col: 26, offset: 5115}, label: "params", expr: &zeroOrOneExpr{ - pos: position{line: 196, col: 33, offset: 5072}, + pos: position{line: 197, col: 33, offset: 5122}, expr: &actionExpr{ - pos: position{line: 196, col: 34, offset: 5073}, + pos: position{line: 197, col: 34, offset: 5123}, run: (*parser).callonOpDecl9, expr: &seqExpr{ - pos: position{line: 196, col: 34, offset: 5073}, + pos: position{line: 197, col: 34, offset: 5123}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 196, col: 34, offset: 5073}, + pos: position{line: 197, col: 34, offset: 5123}, name: "_", }, &labeledExpr{ - pos: position{line: 196, col: 36, offset: 5075}, + pos: position{line: 197, col: 36, offset: 5125}, label: "ids", expr: &ruleRefExpr{ - pos: position{line: 196, col: 40, offset: 5079}, + pos: position{line: 197, col: 40, offset: 5129}, name: "Identifiers", }, }, @@ -1549,24 +1557,24 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 196, col: 74, offset: 5113}, + pos: position{line: 197, col: 74, offset: 5163}, name: "__", }, &litMatcher{ - pos: position{line: 196, col: 77, offset: 5116}, + pos: position{line: 197, col: 77, offset: 5166}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 196, col: 81, offset: 5120}, + pos: position{line: 197, col: 81, offset: 5170}, name: "__", }, &labeledExpr{ - pos: position{line: 196, col: 84, offset: 5123}, + pos: position{line: 197, col: 84, offset: 5173}, label: "body", expr: &ruleRefExpr{ - pos: position{line: 196, col: 89, offset: 5128}, + pos: position{line: 197, col: 89, offset: 5178}, name: "ScopeBody", }, }, @@ -1578,40 +1586,40 @@ var g = &grammar{ }, { name: "ScopeBody", - pos: position{line: 206, col: 1, offset: 5340}, + pos: position{line: 207, col: 1, offset: 5390}, expr: &choiceExpr{ - pos: position{line: 207, col: 5, offset: 5354}, + pos: position{line: 208, col: 5, offset: 5404}, alternatives: []any{ &actionExpr{ - pos: position{line: 207, col: 5, offset: 5354}, + pos: position{line: 208, col: 5, offset: 5404}, run: (*parser).callonScopeBody2, expr: &seqExpr{ - pos: position{line: 207, col: 5, offset: 5354}, + pos: position{line: 208, col: 5, offset: 5404}, exprs: []any{ &litMatcher{ - pos: position{line: 207, col: 5, offset: 5354}, + pos: position{line: 208, col: 5, offset: 5404}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 207, col: 9, offset: 5358}, + pos: position{line: 208, col: 9, offset: 5408}, name: "__", }, &labeledExpr{ - pos: position{line: 207, col: 12, offset: 5361}, + pos: position{line: 208, col: 12, offset: 5411}, label: "scope", expr: &ruleRefExpr{ - pos: position{line: 207, col: 18, offset: 5367}, + pos: position{line: 208, col: 18, offset: 5417}, name: "Scope", }, }, &ruleRefExpr{ - pos: position{line: 207, col: 24, offset: 5373}, + pos: position{line: 208, col: 24, offset: 5423}, name: "__", }, &litMatcher{ - pos: position{line: 207, col: 27, offset: 5376}, + pos: position{line: 208, col: 27, offset: 5426}, val: ")", ignoreCase: false, want: "\")\"", @@ -1620,35 +1628,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 208, col: 5, offset: 5415}, + pos: position{line: 209, col: 5, offset: 5465}, run: (*parser).callonScopeBody10, expr: &seqExpr{ - pos: position{line: 208, col: 5, offset: 5415}, + pos: position{line: 209, col: 5, offset: 5465}, exprs: []any{ &litMatcher{ - pos: position{line: 208, col: 5, offset: 5415}, + pos: position{line: 209, col: 5, offset: 5465}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 208, col: 9, offset: 5419}, + pos: position{line: 209, col: 9, offset: 5469}, name: "__", }, &labeledExpr{ - pos: position{line: 208, col: 12, offset: 5422}, + pos: position{line: 209, col: 12, offset: 5472}, label: "seq", expr: &ruleRefExpr{ - pos: position{line: 208, col: 16, offset: 5426}, + pos: position{line: 209, col: 16, offset: 5476}, name: "Seq", }, }, &ruleRefExpr{ - pos: position{line: 208, col: 20, offset: 5430}, + pos: position{line: 209, col: 20, offset: 5480}, name: "__", }, &litMatcher{ - pos: position{line: 208, col: 23, offset: 5433}, + pos: position{line: 209, col: 23, offset: 5483}, val: ")", ignoreCase: false, want: "\")\"", @@ -1663,59 +1671,59 @@ var g = &grammar{ }, { name: "PragmaDecl", - pos: position{line: 210, col: 1, offset: 5464}, + pos: position{line: 211, col: 1, offset: 5514}, expr: &actionExpr{ - pos: position{line: 211, col: 5, offset: 5479}, + pos: position{line: 212, col: 5, offset: 5529}, run: (*parser).callonPragmaDecl1, expr: &seqExpr{ - pos: position{line: 211, col: 5, offset: 5479}, + pos: position{line: 212, col: 5, offset: 5529}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 211, col: 5, offset: 5479}, + pos: position{line: 212, col: 5, offset: 5529}, name: "PRAGMA", }, &ruleRefExpr{ - pos: position{line: 211, col: 12, offset: 5486}, + pos: position{line: 212, col: 12, offset: 5536}, name: "_", }, &labeledExpr{ - pos: position{line: 211, col: 14, offset: 5488}, + pos: position{line: 212, col: 14, offset: 5538}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 211, col: 19, offset: 5493}, + pos: position{line: 212, col: 19, offset: 5543}, name: "Identifier", }, }, &labeledExpr{ - pos: position{line: 211, col: 30, offset: 5504}, + pos: position{line: 212, col: 30, offset: 5554}, label: "expr", expr: &zeroOrOneExpr{ - pos: position{line: 211, col: 35, offset: 5509}, + pos: position{line: 212, col: 35, offset: 5559}, expr: &actionExpr{ - pos: position{line: 211, col: 36, offset: 5510}, + pos: position{line: 212, col: 36, offset: 5560}, run: (*parser).callonPragmaDecl9, expr: &seqExpr{ - pos: position{line: 211, col: 36, offset: 5510}, + pos: position{line: 212, col: 36, offset: 5560}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 211, col: 36, offset: 5510}, + pos: position{line: 212, col: 36, offset: 5560}, name: "__", }, &litMatcher{ - pos: position{line: 211, col: 39, offset: 5513}, + pos: position{line: 212, col: 39, offset: 5563}, val: "=", ignoreCase: false, want: "\"=\"", }, &ruleRefExpr{ - pos: position{line: 211, col: 43, offset: 5517}, + pos: position{line: 212, col: 43, offset: 5567}, name: "__", }, &labeledExpr{ - pos: position{line: 211, col: 46, offset: 5520}, + pos: position{line: 212, col: 46, offset: 5570}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 211, col: 48, offset: 5522}, + pos: position{line: 212, col: 48, offset: 5572}, name: "Expr", }, }, @@ -1732,51 +1740,51 @@ var g = &grammar{ }, { name: "TypeDecl", - pos: position{line: 223, col: 1, offset: 5754}, + pos: position{line: 224, col: 1, offset: 5804}, expr: &choiceExpr{ - pos: position{line: 224, col: 5, offset: 5767}, + pos: position{line: 225, col: 5, offset: 5817}, alternatives: []any{ &actionExpr{ - pos: position{line: 224, col: 5, offset: 5767}, + pos: position{line: 225, col: 5, offset: 5817}, run: (*parser).callonTypeDecl2, expr: &seqExpr{ - pos: position{line: 224, col: 5, offset: 5767}, + pos: position{line: 225, col: 5, offset: 5817}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 224, col: 5, offset: 5767}, + pos: position{line: 225, col: 5, offset: 5817}, name: "TYPE", }, &ruleRefExpr{ - pos: position{line: 224, col: 10, offset: 5772}, + pos: position{line: 225, col: 10, offset: 5822}, name: "_", }, &labeledExpr{ - pos: position{line: 224, col: 12, offset: 5774}, + pos: position{line: 225, col: 12, offset: 5824}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 224, col: 17, offset: 5779}, + pos: position{line: 225, col: 17, offset: 5829}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 224, col: 28, offset: 5790}, + pos: position{line: 225, col: 28, offset: 5840}, name: "__", }, &litMatcher{ - pos: position{line: 224, col: 31, offset: 5793}, + pos: position{line: 225, col: 31, offset: 5843}, val: "=", ignoreCase: false, want: "\"=\"", }, &ruleRefExpr{ - pos: position{line: 224, col: 35, offset: 5797}, + pos: position{line: 225, col: 35, offset: 5847}, name: "__", }, &labeledExpr{ - pos: position{line: 224, col: 38, offset: 5800}, + pos: position{line: 225, col: 38, offset: 5850}, label: "typ", expr: &ruleRefExpr{ - pos: position{line: 224, col: 42, offset: 5804}, + pos: position{line: 225, col: 42, offset: 5854}, name: "Type", }, }, @@ -1784,65 +1792,65 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 232, col: 5, offset: 5969}, + pos: position{line: 233, col: 5, offset: 6019}, run: (*parser).callonTypeDecl13, expr: &seqExpr{ - pos: position{line: 232, col: 5, offset: 5969}, + pos: position{line: 233, col: 5, offset: 6019}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 232, col: 5, offset: 5969}, + pos: position{line: 233, col: 5, offset: 6019}, name: "TYPE", }, &ruleRefExpr{ - pos: position{line: 232, col: 10, offset: 5974}, + pos: position{line: 233, col: 10, offset: 6024}, name: "_", }, &labeledExpr{ - pos: position{line: 232, col: 12, offset: 5976}, + pos: position{line: 233, col: 12, offset: 6026}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 232, col: 17, offset: 5981}, + pos: position{line: 233, col: 17, offset: 6031}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 232, col: 28, offset: 5992}, + pos: position{line: 233, col: 28, offset: 6042}, name: "__", }, &litMatcher{ - pos: position{line: 232, col: 31, offset: 5995}, + pos: position{line: 233, col: 31, offset: 6045}, val: "=", ignoreCase: false, want: "\"=\"", }, &ruleRefExpr{ - pos: position{line: 232, col: 35, offset: 5999}, + pos: position{line: 233, col: 35, offset: 6049}, name: "__", }, &litMatcher{ - pos: position{line: 232, col: 38, offset: 6002}, + pos: position{line: 233, col: 38, offset: 6052}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 232, col: 42, offset: 6006}, + pos: position{line: 233, col: 42, offset: 6056}, name: "__", }, &labeledExpr{ - pos: position{line: 232, col: 45, offset: 6009}, + pos: position{line: 233, col: 45, offset: 6059}, label: "body", expr: &ruleRefExpr{ - pos: position{line: 232, col: 50, offset: 6014}, + pos: position{line: 233, col: 50, offset: 6064}, name: "Query", }, }, &ruleRefExpr{ - pos: position{line: 232, col: 56, offset: 6020}, + pos: position{line: 233, col: 56, offset: 6070}, name: "__", }, &litMatcher{ - pos: position{line: 232, col: 59, offset: 6023}, + pos: position{line: 233, col: 59, offset: 6073}, val: ")", ignoreCase: false, want: "\")\"", @@ -1857,44 +1865,44 @@ var g = &grammar{ }, { name: "PipeOp", - pos: position{line: 245, col: 1, offset: 6482}, + pos: position{line: 246, col: 1, offset: 6532}, expr: &choiceExpr{ - pos: position{line: 246, col: 5, offset: 6493}, + pos: position{line: 247, col: 5, offset: 6543}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 246, col: 5, offset: 6493}, + pos: position{line: 247, col: 5, offset: 6543}, name: "Operator", }, &actionExpr{ - pos: position{line: 247, col: 5, offset: 6506}, + pos: position{line: 248, col: 5, offset: 6556}, run: (*parser).callonPipeOp3, expr: &seqExpr{ - pos: position{line: 247, col: 5, offset: 6506}, + pos: position{line: 248, col: 5, offset: 6556}, exprs: []any{ &litMatcher{ - pos: position{line: 247, col: 5, offset: 6506}, + pos: position{line: 248, col: 5, offset: 6556}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 247, col: 9, offset: 6510}, + pos: position{line: 248, col: 9, offset: 6560}, name: "__", }, &labeledExpr{ - pos: position{line: 247, col: 12, offset: 6513}, + pos: position{line: 248, col: 12, offset: 6563}, label: "scope", expr: &ruleRefExpr{ - pos: position{line: 247, col: 18, offset: 6519}, + pos: position{line: 248, col: 18, offset: 6569}, name: "Scope", }, }, &ruleRefExpr{ - pos: position{line: 247, col: 24, offset: 6525}, + pos: position{line: 248, col: 24, offset: 6575}, name: "__", }, &litMatcher{ - pos: position{line: 247, col: 27, offset: 6528}, + pos: position{line: 248, col: 27, offset: 6578}, val: ")", ignoreCase: false, want: "\")\"", @@ -1903,23 +1911,23 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 248, col: 5, offset: 6558}, + pos: position{line: 249, col: 5, offset: 6608}, run: (*parser).callonPipeOp11, expr: &seqExpr{ - pos: position{line: 248, col: 5, offset: 6558}, + pos: position{line: 249, col: 5, offset: 6608}, exprs: []any{ &labeledExpr{ - pos: position{line: 248, col: 5, offset: 6558}, + pos: position{line: 249, col: 5, offset: 6608}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 248, col: 7, offset: 6560}, + pos: position{line: 249, col: 7, offset: 6610}, name: "AssignmentOp", }, }, &andExpr{ - pos: position{line: 248, col: 20, offset: 6573}, + pos: position{line: 249, col: 20, offset: 6623}, expr: &ruleRefExpr{ - pos: position{line: 248, col: 21, offset: 6574}, + pos: position{line: 249, col: 21, offset: 6624}, name: "EndOfOp", }, }, @@ -1927,39 +1935,39 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 249, col: 5, offset: 6604}, + pos: position{line: 250, col: 5, offset: 6654}, run: (*parser).callonPipeOp17, expr: &seqExpr{ - pos: position{line: 249, col: 5, offset: 6604}, + pos: position{line: 250, col: 5, offset: 6654}, exprs: []any{ ¬Expr{ - pos: position{line: 249, col: 5, offset: 6604}, + pos: position{line: 250, col: 5, offset: 6654}, expr: &seqExpr{ - pos: position{line: 249, col: 7, offset: 6606}, + pos: position{line: 250, col: 7, offset: 6656}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 249, col: 7, offset: 6606}, + pos: position{line: 250, col: 7, offset: 6656}, name: "Function", }, &ruleRefExpr{ - pos: position{line: 249, col: 16, offset: 6615}, + pos: position{line: 250, col: 16, offset: 6665}, name: "EndOfOp", }, }, }, }, &labeledExpr{ - pos: position{line: 249, col: 25, offset: 6624}, + pos: position{line: 250, col: 25, offset: 6674}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 249, col: 27, offset: 6626}, + pos: position{line: 250, col: 27, offset: 6676}, name: "Aggregation", }, }, &andExpr{ - pos: position{line: 249, col: 39, offset: 6638}, + pos: position{line: 250, col: 39, offset: 6688}, expr: &ruleRefExpr{ - pos: position{line: 249, col: 40, offset: 6639}, + pos: position{line: 250, col: 40, offset: 6689}, name: "EndOfOp", }, }, @@ -1967,42 +1975,42 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 250, col: 5, offset: 6669}, + pos: position{line: 251, col: 5, offset: 6719}, run: (*parser).callonPipeOp27, expr: &seqExpr{ - pos: position{line: 250, col: 5, offset: 6669}, + pos: position{line: 251, col: 5, offset: 6719}, exprs: []any{ ¬Expr{ - pos: position{line: 250, col: 5, offset: 6669}, + pos: position{line: 251, col: 5, offset: 6719}, expr: &ruleRefExpr{ - pos: position{line: 250, col: 6, offset: 6670}, + pos: position{line: 251, col: 6, offset: 6720}, name: "CallIDGuard", }, }, &labeledExpr{ - pos: position{line: 250, col: 18, offset: 6682}, + pos: position{line: 251, col: 18, offset: 6732}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 250, col: 23, offset: 6687}, + pos: position{line: 251, col: 23, offset: 6737}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 250, col: 34, offset: 6698}, + pos: position{line: 251, col: 34, offset: 6748}, name: "_", }, ¬Expr{ - pos: position{line: 250, col: 36, offset: 6700}, + pos: position{line: 251, col: 36, offset: 6750}, expr: &ruleRefExpr{ - pos: position{line: 250, col: 37, offset: 6701}, + pos: position{line: 251, col: 37, offset: 6751}, name: "CallExprGuard", }, }, &labeledExpr{ - pos: position{line: 250, col: 51, offset: 6715}, + pos: position{line: 251, col: 51, offset: 6765}, label: "args", expr: &ruleRefExpr{ - pos: position{line: 250, col: 56, offset: 6720}, + pos: position{line: 251, col: 56, offset: 6770}, name: "FuncOrExprs", }, }, @@ -2010,30 +2018,30 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 253, col: 5, offset: 6853}, + pos: position{line: 254, col: 5, offset: 6903}, run: (*parser).callonPipeOp38, expr: &seqExpr{ - pos: position{line: 253, col: 5, offset: 6853}, + pos: position{line: 254, col: 5, offset: 6903}, exprs: []any{ ¬Expr{ - pos: position{line: 253, col: 5, offset: 6853}, + pos: position{line: 254, col: 5, offset: 6903}, expr: &ruleRefExpr{ - pos: position{line: 253, col: 6, offset: 6854}, + pos: position{line: 254, col: 6, offset: 6904}, name: "CallIDGuard", }, }, &labeledExpr{ - pos: position{line: 253, col: 18, offset: 6866}, + pos: position{line: 254, col: 18, offset: 6916}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 253, col: 23, offset: 6871}, + pos: position{line: 254, col: 23, offset: 6921}, name: "Identifier", }, }, &andExpr{ - pos: position{line: 253, col: 34, offset: 6882}, + pos: position{line: 254, col: 34, offset: 6932}, expr: &ruleRefExpr{ - pos: position{line: 253, col: 35, offset: 6883}, + pos: position{line: 254, col: 35, offset: 6933}, name: "EndOfOp", }, }, @@ -2041,42 +2049,42 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 256, col: 5, offset: 6982}, + pos: position{line: 257, col: 5, offset: 7032}, run: (*parser).callonPipeOp46, expr: &seqExpr{ - pos: position{line: 256, col: 5, offset: 6982}, + pos: position{line: 257, col: 5, offset: 7032}, exprs: []any{ ¬Expr{ - pos: position{line: 256, col: 5, offset: 6982}, + pos: position{line: 257, col: 5, offset: 7032}, expr: &seqExpr{ - pos: position{line: 256, col: 7, offset: 6984}, + pos: position{line: 257, col: 7, offset: 7034}, exprs: []any{ &choiceExpr{ - pos: position{line: 256, col: 8, offset: 6985}, + pos: position{line: 257, col: 8, offset: 7035}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 256, col: 8, offset: 6985}, + pos: position{line: 257, col: 8, offset: 7035}, name: "Identifier", }, &ruleRefExpr{ - pos: position{line: 256, col: 21, offset: 6998}, + pos: position{line: 257, col: 21, offset: 7048}, name: "Literal", }, }, }, &ruleRefExpr{ - pos: position{line: 256, col: 30, offset: 7007}, + pos: position{line: 257, col: 30, offset: 7057}, name: "__", }, &choiceExpr{ - pos: position{line: 256, col: 34, offset: 7011}, + pos: position{line: 257, col: 34, offset: 7061}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 256, col: 34, offset: 7011}, + pos: position{line: 257, col: 34, offset: 7061}, name: "Pipe", }, &ruleRefExpr{ - pos: position{line: 256, col: 39, offset: 7016}, + pos: position{line: 257, col: 39, offset: 7066}, name: "EOF", }, }, @@ -2085,10 +2093,10 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 256, col: 45, offset: 7022}, + pos: position{line: 257, col: 45, offset: 7072}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 256, col: 47, offset: 7024}, + pos: position{line: 257, col: 47, offset: 7074}, name: "Expr", }, }, @@ -2102,41 +2110,41 @@ var g = &grammar{ }, { name: "EndOfOp", - pos: position{line: 260, col: 1, offset: 7112}, + pos: position{line: 261, col: 1, offset: 7162}, expr: &seqExpr{ - pos: position{line: 260, col: 11, offset: 7122}, + pos: position{line: 261, col: 11, offset: 7172}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 260, col: 11, offset: 7122}, + pos: position{line: 261, col: 11, offset: 7172}, name: "__", }, &choiceExpr{ - pos: position{line: 260, col: 15, offset: 7126}, + pos: position{line: 261, col: 15, offset: 7176}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 260, col: 15, offset: 7126}, + pos: position{line: 261, col: 15, offset: 7176}, name: "Pipe", }, &litMatcher{ - pos: position{line: 260, col: 22, offset: 7133}, + pos: position{line: 261, col: 22, offset: 7183}, val: ")", ignoreCase: false, want: "\")\"", }, &litMatcher{ - pos: position{line: 260, col: 28, offset: 7139}, + pos: position{line: 261, col: 28, offset: 7189}, val: "]", ignoreCase: false, want: "\"]\"", }, &litMatcher{ - pos: position{line: 260, col: 34, offset: 7145}, + pos: position{line: 261, col: 34, offset: 7195}, val: ";", ignoreCase: false, want: "\";\"", }, &ruleRefExpr{ - pos: position{line: 260, col: 40, offset: 7151}, + pos: position{line: 261, col: 40, offset: 7201}, name: "EOF", }, }, @@ -2148,18 +2156,18 @@ var g = &grammar{ }, { name: "Pipe", - pos: position{line: 261, col: 1, offset: 7156}, + pos: position{line: 262, col: 1, offset: 7206}, expr: &choiceExpr{ - pos: position{line: 261, col: 8, offset: 7163}, + pos: position{line: 262, col: 8, offset: 7213}, alternatives: []any{ &litMatcher{ - pos: position{line: 261, col: 8, offset: 7163}, + pos: position{line: 262, col: 8, offset: 7213}, val: "|>", ignoreCase: false, want: "\"|>\"", }, &litMatcher{ - pos: position{line: 261, col: 15, offset: 7170}, + pos: position{line: 262, col: 15, offset: 7220}, val: "|", ignoreCase: false, want: "\"|\"", @@ -2171,28 +2179,28 @@ var g = &grammar{ }, { name: "CallExprGuard", - pos: position{line: 263, col: 1, offset: 7175}, + pos: position{line: 264, col: 1, offset: 7225}, expr: &choiceExpr{ - pos: position{line: 263, col: 17, offset: 7191}, + pos: position{line: 264, col: 17, offset: 7241}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 263, col: 17, offset: 7191}, + pos: position{line: 264, col: 17, offset: 7241}, name: "IN", }, &ruleRefExpr{ - pos: position{line: 263, col: 22, offset: 7196}, + pos: position{line: 264, col: 22, offset: 7246}, name: "LIKE", }, &ruleRefExpr{ - pos: position{line: 263, col: 29, offset: 7203}, + pos: position{line: 264, col: 29, offset: 7253}, name: "IS", }, &ruleRefExpr{ - pos: position{line: 263, col: 34, offset: 7208}, + pos: position{line: 264, col: 34, offset: 7258}, name: "OR", }, &ruleRefExpr{ - pos: position{line: 263, col: 39, offset: 7213}, + pos: position{line: 264, col: 39, offset: 7263}, name: "AND", }, }, @@ -2202,20 +2210,20 @@ var g = &grammar{ }, { name: "CallIDGuard", - pos: position{line: 264, col: 1, offset: 7217}, + pos: position{line: 265, col: 1, offset: 7267}, expr: &choiceExpr{ - pos: position{line: 264, col: 15, offset: 7231}, + pos: position{line: 265, col: 15, offset: 7281}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 264, col: 15, offset: 7231}, + pos: position{line: 265, col: 15, offset: 7281}, name: "NOT", }, &ruleRefExpr{ - pos: position{line: 264, col: 21, offset: 7237}, + pos: position{line: 265, col: 21, offset: 7287}, name: "SQLGuard", }, &ruleRefExpr{ - pos: position{line: 264, col: 32, offset: 7248}, + pos: position{line: 265, col: 32, offset: 7298}, name: "PRAGMA", }, }, @@ -2225,49 +2233,49 @@ var g = &grammar{ }, { name: "ExprGuard", - pos: position{line: 266, col: 1, offset: 7256}, + pos: position{line: 267, col: 1, offset: 7306}, expr: &seqExpr{ - pos: position{line: 266, col: 13, offset: 7268}, + pos: position{line: 267, col: 13, offset: 7318}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 266, col: 13, offset: 7268}, + pos: position{line: 267, col: 13, offset: 7318}, name: "__", }, &choiceExpr{ - pos: position{line: 266, col: 17, offset: 7272}, + pos: position{line: 267, col: 17, offset: 7322}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 266, col: 17, offset: 7272}, + pos: position{line: 267, col: 17, offset: 7322}, name: "Comparator", }, &ruleRefExpr{ - pos: position{line: 266, col: 30, offset: 7285}, + pos: position{line: 267, col: 30, offset: 7335}, name: "AdditiveOperator", }, &ruleRefExpr{ - pos: position{line: 266, col: 49, offset: 7304}, + pos: position{line: 267, col: 49, offset: 7354}, name: "MultiplicativeOperator", }, &litMatcher{ - pos: position{line: 266, col: 74, offset: 7329}, + pos: position{line: 267, col: 74, offset: 7379}, val: ":", ignoreCase: false, want: "\":\"", }, &litMatcher{ - pos: position{line: 266, col: 80, offset: 7335}, + pos: position{line: 267, col: 80, offset: 7385}, val: "(", ignoreCase: false, want: "\"(\"", }, &litMatcher{ - pos: position{line: 266, col: 86, offset: 7341}, + pos: position{line: 267, col: 86, offset: 7391}, val: "[", ignoreCase: false, want: "\"[\"", }, &litMatcher{ - pos: position{line: 266, col: 92, offset: 7347}, + pos: position{line: 267, col: 92, offset: 7397}, val: "~", ignoreCase: false, want: "\"~\"", @@ -2281,68 +2289,68 @@ var g = &grammar{ }, { name: "Comparator", - pos: position{line: 268, col: 1, offset: 7353}, + pos: position{line: 269, col: 1, offset: 7403}, expr: &choiceExpr{ - pos: position{line: 269, col: 5, offset: 7368}, + pos: position{line: 270, col: 5, offset: 7418}, alternatives: []any{ &actionExpr{ - pos: position{line: 269, col: 5, offset: 7368}, + pos: position{line: 270, col: 5, offset: 7418}, run: (*parser).callonComparator2, expr: &choiceExpr{ - pos: position{line: 269, col: 6, offset: 7369}, + pos: position{line: 270, col: 6, offset: 7419}, alternatives: []any{ &litMatcher{ - pos: position{line: 269, col: 6, offset: 7369}, + pos: position{line: 270, col: 6, offset: 7419}, val: "==", ignoreCase: false, want: "\"==\"", }, &litMatcher{ - pos: position{line: 269, col: 13, offset: 7376}, + pos: position{line: 270, col: 13, offset: 7426}, val: "=", ignoreCase: false, want: "\"=\"", }, &litMatcher{ - pos: position{line: 269, col: 19, offset: 7382}, + pos: position{line: 270, col: 19, offset: 7432}, val: "!=", ignoreCase: false, want: "\"!=\"", }, &litMatcher{ - pos: position{line: 269, col: 26, offset: 7389}, + pos: position{line: 270, col: 26, offset: 7439}, val: "<>", ignoreCase: false, want: "\"<>\"", }, &ruleRefExpr{ - pos: position{line: 269, col: 33, offset: 7396}, + pos: position{line: 270, col: 33, offset: 7446}, name: "IN", }, &ruleRefExpr{ - pos: position{line: 269, col: 38, offset: 7401}, + pos: position{line: 270, col: 38, offset: 7451}, name: "LIKE", }, &litMatcher{ - pos: position{line: 269, col: 45, offset: 7408}, + pos: position{line: 270, col: 45, offset: 7458}, val: "<=", ignoreCase: false, want: "\"<=\"", }, &litMatcher{ - pos: position{line: 269, col: 52, offset: 7415}, + pos: position{line: 270, col: 52, offset: 7465}, val: "<", ignoreCase: false, want: "\"<\"", }, &litMatcher{ - pos: position{line: 269, col: 58, offset: 7421}, + pos: position{line: 270, col: 58, offset: 7471}, val: ">=", ignoreCase: false, want: "\">=\"", }, &litMatcher{ - pos: position{line: 269, col: 65, offset: 7428}, + pos: position{line: 270, col: 65, offset: 7478}, val: ">", ignoreCase: false, want: "\">\"", @@ -2351,42 +2359,42 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 270, col: 5, offset: 7468}, + pos: position{line: 271, col: 5, offset: 7518}, run: (*parser).callonComparator14, expr: &seqExpr{ - pos: position{line: 270, col: 5, offset: 7468}, + pos: position{line: 271, col: 5, offset: 7518}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 270, col: 5, offset: 7468}, + pos: position{line: 271, col: 5, offset: 7518}, name: "NOT", }, &ruleRefExpr{ - pos: position{line: 270, col: 9, offset: 7472}, + pos: position{line: 271, col: 9, offset: 7522}, name: "_", }, &ruleRefExpr{ - pos: position{line: 270, col: 11, offset: 7474}, + pos: position{line: 271, col: 11, offset: 7524}, name: "LIKE", }, }, }, }, &actionExpr{ - pos: position{line: 271, col: 5, offset: 7510}, + pos: position{line: 272, col: 5, offset: 7560}, run: (*parser).callonComparator19, expr: &seqExpr{ - pos: position{line: 271, col: 5, offset: 7510}, + pos: position{line: 272, col: 5, offset: 7560}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 271, col: 5, offset: 7510}, + pos: position{line: 272, col: 5, offset: 7560}, name: "NOT", }, &ruleRefExpr{ - pos: position{line: 271, col: 9, offset: 7514}, + pos: position{line: 272, col: 9, offset: 7564}, name: "_", }, &ruleRefExpr{ - pos: position{line: 271, col: 11, offset: 7516}, + pos: position{line: 272, col: 11, offset: 7566}, name: "IN", }, }, @@ -2399,28 +2407,28 @@ var g = &grammar{ }, { name: "SearchBoolean", - pos: position{line: 273, col: 1, offset: 7545}, + pos: position{line: 274, col: 1, offset: 7595}, expr: &actionExpr{ - pos: position{line: 274, col: 5, offset: 7563}, + pos: position{line: 275, col: 5, offset: 7613}, run: (*parser).callonSearchBoolean1, expr: &seqExpr{ - pos: position{line: 274, col: 5, offset: 7563}, + pos: position{line: 275, col: 5, offset: 7613}, exprs: []any{ &labeledExpr{ - pos: position{line: 274, col: 5, offset: 7563}, + pos: position{line: 275, col: 5, offset: 7613}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 274, col: 11, offset: 7569}, + pos: position{line: 275, col: 11, offset: 7619}, name: "SearchAnd", }, }, &labeledExpr{ - pos: position{line: 274, col: 21, offset: 7579}, + pos: position{line: 275, col: 21, offset: 7629}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 274, col: 26, offset: 7584}, + pos: position{line: 275, col: 26, offset: 7634}, expr: &ruleRefExpr{ - pos: position{line: 274, col: 26, offset: 7584}, + pos: position{line: 275, col: 26, offset: 7634}, name: "SearchOrTerm", }, }, @@ -2433,30 +2441,30 @@ var g = &grammar{ }, { name: "SearchOrTerm", - pos: position{line: 278, col: 1, offset: 7661}, + pos: position{line: 279, col: 1, offset: 7711}, expr: &actionExpr{ - pos: position{line: 278, col: 16, offset: 7676}, + pos: position{line: 279, col: 16, offset: 7726}, run: (*parser).callonSearchOrTerm1, expr: &seqExpr{ - pos: position{line: 278, col: 16, offset: 7676}, + pos: position{line: 279, col: 16, offset: 7726}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 278, col: 16, offset: 7676}, + pos: position{line: 279, col: 16, offset: 7726}, name: "_", }, &ruleRefExpr{ - pos: position{line: 278, col: 18, offset: 7678}, + pos: position{line: 279, col: 18, offset: 7728}, name: "OR", }, &ruleRefExpr{ - pos: position{line: 278, col: 21, offset: 7681}, + pos: position{line: 279, col: 21, offset: 7731}, name: "_", }, &labeledExpr{ - pos: position{line: 278, col: 23, offset: 7683}, + pos: position{line: 279, col: 23, offset: 7733}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 278, col: 25, offset: 7685}, + pos: position{line: 279, col: 25, offset: 7735}, name: "SearchAnd", }, }, @@ -2468,64 +2476,64 @@ var g = &grammar{ }, { name: "SearchAnd", - pos: position{line: 280, col: 1, offset: 7727}, + pos: position{line: 281, col: 1, offset: 7777}, expr: &actionExpr{ - pos: position{line: 281, col: 5, offset: 7741}, + pos: position{line: 282, col: 5, offset: 7791}, run: (*parser).callonSearchAnd1, expr: &seqExpr{ - pos: position{line: 281, col: 5, offset: 7741}, + pos: position{line: 282, col: 5, offset: 7791}, exprs: []any{ &labeledExpr{ - pos: position{line: 281, col: 5, offset: 7741}, + pos: position{line: 282, col: 5, offset: 7791}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 281, col: 11, offset: 7747}, + pos: position{line: 282, col: 11, offset: 7797}, name: "SearchFactor", }, }, &labeledExpr{ - pos: position{line: 282, col: 5, offset: 7764}, + pos: position{line: 283, col: 5, offset: 7814}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 282, col: 10, offset: 7769}, + pos: position{line: 283, col: 10, offset: 7819}, expr: &actionExpr{ - pos: position{line: 282, col: 11, offset: 7770}, + pos: position{line: 283, col: 11, offset: 7820}, run: (*parser).callonSearchAnd7, expr: &seqExpr{ - pos: position{line: 282, col: 11, offset: 7770}, + pos: position{line: 283, col: 11, offset: 7820}, exprs: []any{ &zeroOrOneExpr{ - pos: position{line: 282, col: 11, offset: 7770}, + pos: position{line: 283, col: 11, offset: 7820}, expr: &seqExpr{ - pos: position{line: 282, col: 12, offset: 7771}, + pos: position{line: 283, col: 12, offset: 7821}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 282, col: 12, offset: 7771}, + pos: position{line: 283, col: 12, offset: 7821}, name: "_", }, &ruleRefExpr{ - pos: position{line: 282, col: 14, offset: 7773}, + pos: position{line: 283, col: 14, offset: 7823}, name: "AND", }, }, }, }, &ruleRefExpr{ - pos: position{line: 282, col: 20, offset: 7779}, + pos: position{line: 283, col: 20, offset: 7829}, name: "_", }, ¬Expr{ - pos: position{line: 282, col: 22, offset: 7781}, + pos: position{line: 283, col: 22, offset: 7831}, expr: &ruleRefExpr{ - pos: position{line: 282, col: 23, offset: 7782}, + pos: position{line: 283, col: 23, offset: 7832}, name: "OR", }, }, &labeledExpr{ - pos: position{line: 282, col: 26, offset: 7785}, + pos: position{line: 283, col: 26, offset: 7835}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 282, col: 31, offset: 7790}, + pos: position{line: 283, col: 31, offset: 7840}, name: "SearchFactor", }, }, @@ -2542,43 +2550,43 @@ var g = &grammar{ }, { name: "SearchFactor", - pos: position{line: 286, col: 1, offset: 7903}, + pos: position{line: 287, col: 1, offset: 7953}, expr: &choiceExpr{ - pos: position{line: 287, col: 5, offset: 7920}, + pos: position{line: 288, col: 5, offset: 7970}, alternatives: []any{ &actionExpr{ - pos: position{line: 287, col: 5, offset: 7920}, + pos: position{line: 288, col: 5, offset: 7970}, run: (*parser).callonSearchFactor2, expr: &seqExpr{ - pos: position{line: 287, col: 5, offset: 7920}, + pos: position{line: 288, col: 5, offset: 7970}, exprs: []any{ &choiceExpr{ - pos: position{line: 287, col: 6, offset: 7921}, + pos: position{line: 288, col: 6, offset: 7971}, alternatives: []any{ &seqExpr{ - pos: position{line: 287, col: 6, offset: 7921}, + pos: position{line: 288, col: 6, offset: 7971}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 287, col: 6, offset: 7921}, + pos: position{line: 288, col: 6, offset: 7971}, name: "NOT", }, &ruleRefExpr{ - pos: position{line: 287, col: 10, offset: 7925}, + pos: position{line: 288, col: 10, offset: 7975}, name: "_", }, }, }, &seqExpr{ - pos: position{line: 287, col: 14, offset: 7929}, + pos: position{line: 288, col: 14, offset: 7979}, exprs: []any{ &litMatcher{ - pos: position{line: 287, col: 14, offset: 7929}, + pos: position{line: 288, col: 14, offset: 7979}, val: "!", ignoreCase: false, want: "\"!\"", }, &ruleRefExpr{ - pos: position{line: 287, col: 18, offset: 7933}, + pos: position{line: 288, col: 18, offset: 7983}, name: "__", }, }, @@ -2586,10 +2594,10 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 287, col: 22, offset: 7937}, + pos: position{line: 288, col: 22, offset: 7987}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 287, col: 24, offset: 7939}, + pos: position{line: 288, col: 24, offset: 7989}, name: "SearchFactor", }, }, @@ -2597,35 +2605,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 295, col: 5, offset: 8110}, + pos: position{line: 296, col: 5, offset: 8160}, run: (*parser).callonSearchFactor13, expr: &seqExpr{ - pos: position{line: 295, col: 5, offset: 8110}, + pos: position{line: 296, col: 5, offset: 8160}, exprs: []any{ &litMatcher{ - pos: position{line: 295, col: 5, offset: 8110}, + pos: position{line: 296, col: 5, offset: 8160}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 295, col: 9, offset: 8114}, + pos: position{line: 296, col: 9, offset: 8164}, name: "__", }, &labeledExpr{ - pos: position{line: 295, col: 12, offset: 8117}, + pos: position{line: 296, col: 12, offset: 8167}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 295, col: 17, offset: 8122}, + pos: position{line: 296, col: 17, offset: 8172}, name: "SearchBoolean", }, }, &ruleRefExpr{ - pos: position{line: 295, col: 31, offset: 8136}, + pos: position{line: 296, col: 31, offset: 8186}, name: "__", }, &litMatcher{ - pos: position{line: 295, col: 34, offset: 8139}, + pos: position{line: 296, col: 34, offset: 8189}, val: ")", ignoreCase: false, want: "\")\"", @@ -2634,7 +2642,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 296, col: 5, offset: 8168}, + pos: position{line: 297, col: 5, offset: 8218}, name: "SearchExpr", }, }, @@ -2644,32 +2652,32 @@ var g = &grammar{ }, { name: "SearchExpr", - pos: position{line: 298, col: 1, offset: 8180}, + pos: position{line: 299, col: 1, offset: 8230}, expr: &choiceExpr{ - pos: position{line: 299, col: 5, offset: 8195}, + pos: position{line: 300, col: 5, offset: 8245}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 299, col: 5, offset: 8195}, + pos: position{line: 300, col: 5, offset: 8245}, name: "Regexp", }, &actionExpr{ - pos: position{line: 300, col: 5, offset: 8206}, + pos: position{line: 301, col: 5, offset: 8256}, run: (*parser).callonSearchExpr3, expr: &seqExpr{ - pos: position{line: 300, col: 5, offset: 8206}, + pos: position{line: 301, col: 5, offset: 8256}, exprs: []any{ &labeledExpr{ - pos: position{line: 300, col: 5, offset: 8206}, + pos: position{line: 301, col: 5, offset: 8256}, label: "g", expr: &ruleRefExpr{ - pos: position{line: 300, col: 7, offset: 8208}, + pos: position{line: 301, col: 7, offset: 8258}, name: "Glob", }, }, ¬Expr{ - pos: position{line: 300, col: 12, offset: 8213}, + pos: position{line: 301, col: 12, offset: 8263}, expr: &ruleRefExpr{ - pos: position{line: 300, col: 13, offset: 8214}, + pos: position{line: 301, col: 13, offset: 8264}, name: "ExprGuard", }, }, @@ -2677,40 +2685,40 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 301, col: 5, offset: 8246}, + pos: position{line: 302, col: 5, offset: 8296}, run: (*parser).callonSearchExpr9, expr: &seqExpr{ - pos: position{line: 301, col: 5, offset: 8246}, + pos: position{line: 302, col: 5, offset: 8296}, exprs: []any{ &labeledExpr{ - pos: position{line: 301, col: 5, offset: 8246}, + pos: position{line: 302, col: 5, offset: 8296}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 301, col: 7, offset: 8248}, + pos: position{line: 302, col: 7, offset: 8298}, name: "SearchValue", }, }, &choiceExpr{ - pos: position{line: 301, col: 20, offset: 8261}, + pos: position{line: 302, col: 20, offset: 8311}, alternatives: []any{ ¬Expr{ - pos: position{line: 301, col: 20, offset: 8261}, + pos: position{line: 302, col: 20, offset: 8311}, expr: &ruleRefExpr{ - pos: position{line: 301, col: 21, offset: 8262}, + pos: position{line: 302, col: 21, offset: 8312}, name: "ExprGuard", }, }, &andExpr{ - pos: position{line: 301, col: 33, offset: 8274}, + pos: position{line: 302, col: 33, offset: 8324}, expr: &seqExpr{ - pos: position{line: 301, col: 35, offset: 8276}, + pos: position{line: 302, col: 35, offset: 8326}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 301, col: 35, offset: 8276}, + pos: position{line: 302, col: 35, offset: 8326}, name: "_", }, &ruleRefExpr{ - pos: position{line: 301, col: 37, offset: 8278}, + pos: position{line: 302, col: 37, offset: 8328}, name: "Glob", }, }, @@ -2722,7 +2730,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 309, col: 5, offset: 8457}, + pos: position{line: 310, col: 5, offset: 8507}, name: "SearchPredicate", }, }, @@ -2732,45 +2740,45 @@ var g = &grammar{ }, { name: "SearchPredicate", - pos: position{line: 311, col: 1, offset: 8474}, + pos: position{line: 312, col: 1, offset: 8524}, expr: &choiceExpr{ - pos: position{line: 312, col: 5, offset: 8494}, + pos: position{line: 313, col: 5, offset: 8544}, alternatives: []any{ &actionExpr{ - pos: position{line: 312, col: 5, offset: 8494}, + pos: position{line: 313, col: 5, offset: 8544}, run: (*parser).callonSearchPredicate2, expr: &seqExpr{ - pos: position{line: 312, col: 5, offset: 8494}, + pos: position{line: 313, col: 5, offset: 8544}, exprs: []any{ &labeledExpr{ - pos: position{line: 312, col: 5, offset: 8494}, + pos: position{line: 313, col: 5, offset: 8544}, label: "lhs", expr: &ruleRefExpr{ - pos: position{line: 312, col: 9, offset: 8498}, + pos: position{line: 313, col: 9, offset: 8548}, name: "AdditiveExpr", }, }, &ruleRefExpr{ - pos: position{line: 312, col: 22, offset: 8511}, + pos: position{line: 313, col: 22, offset: 8561}, name: "__", }, &labeledExpr{ - pos: position{line: 312, col: 25, offset: 8514}, + pos: position{line: 313, col: 25, offset: 8564}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 312, col: 28, offset: 8517}, + pos: position{line: 313, col: 28, offset: 8567}, name: "Comparator", }, }, &ruleRefExpr{ - pos: position{line: 312, col: 39, offset: 8528}, + pos: position{line: 313, col: 39, offset: 8578}, name: "__", }, &labeledExpr{ - pos: position{line: 312, col: 42, offset: 8531}, + pos: position{line: 313, col: 42, offset: 8581}, label: "rhs", expr: &ruleRefExpr{ - pos: position{line: 312, col: 46, offset: 8535}, + pos: position{line: 313, col: 46, offset: 8585}, name: "AdditiveExpr", }, }, @@ -2778,13 +2786,13 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 321, col: 5, offset: 8735}, + pos: position{line: 322, col: 5, offset: 8785}, run: (*parser).callonSearchPredicate12, expr: &labeledExpr{ - pos: position{line: 321, col: 5, offset: 8735}, + pos: position{line: 322, col: 5, offset: 8785}, label: "f", expr: &ruleRefExpr{ - pos: position{line: 321, col: 7, offset: 8737}, + pos: position{line: 322, col: 7, offset: 8787}, name: "Function", }, }, @@ -2796,32 +2804,32 @@ var g = &grammar{ }, { name: "SearchValue", - pos: position{line: 323, col: 1, offset: 8765}, + pos: position{line: 324, col: 1, offset: 8815}, expr: &choiceExpr{ - pos: position{line: 324, col: 5, offset: 8781}, + pos: position{line: 325, col: 5, offset: 8831}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 324, col: 5, offset: 8781}, + pos: position{line: 325, col: 5, offset: 8831}, name: "Literal", }, &actionExpr{ - pos: position{line: 325, col: 5, offset: 8793}, + pos: position{line: 326, col: 5, offset: 8843}, run: (*parser).callonSearchValue3, expr: &seqExpr{ - pos: position{line: 325, col: 5, offset: 8793}, + pos: position{line: 326, col: 5, offset: 8843}, exprs: []any{ ¬Expr{ - pos: position{line: 325, col: 5, offset: 8793}, + pos: position{line: 326, col: 5, offset: 8843}, expr: &ruleRefExpr{ - pos: position{line: 325, col: 6, offset: 8794}, + pos: position{line: 326, col: 6, offset: 8844}, name: "Regexp", }, }, &labeledExpr{ - pos: position{line: 325, col: 13, offset: 8801}, + pos: position{line: 326, col: 13, offset: 8851}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 325, col: 15, offset: 8803}, + pos: position{line: 326, col: 15, offset: 8853}, name: "KeyWord", }, }, @@ -2835,15 +2843,15 @@ var g = &grammar{ }, { name: "Glob", - pos: position{line: 329, col: 1, offset: 8876}, + pos: position{line: 330, col: 1, offset: 8926}, expr: &actionExpr{ - pos: position{line: 330, col: 5, offset: 8885}, + pos: position{line: 331, col: 5, offset: 8935}, run: (*parser).callonGlob1, expr: &labeledExpr{ - pos: position{line: 330, col: 5, offset: 8885}, + pos: position{line: 331, col: 5, offset: 8935}, label: "pattern", expr: &ruleRefExpr{ - pos: position{line: 330, col: 13, offset: 8893}, + pos: position{line: 331, col: 13, offset: 8943}, name: "GlobPattern", }, }, @@ -2853,37 +2861,37 @@ var g = &grammar{ }, { name: "Regexp", - pos: position{line: 334, col: 1, offset: 9004}, + pos: position{line: 335, col: 1, offset: 9054}, expr: &actionExpr{ - pos: position{line: 335, col: 5, offset: 9015}, + pos: position{line: 336, col: 5, offset: 9065}, run: (*parser).callonRegexp1, expr: &seqExpr{ - pos: position{line: 335, col: 5, offset: 9015}, + pos: position{line: 336, col: 5, offset: 9065}, exprs: []any{ &litMatcher{ - pos: position{line: 335, col: 5, offset: 9015}, + pos: position{line: 336, col: 5, offset: 9065}, val: "/", ignoreCase: false, want: "\"/\"", }, &labeledExpr{ - pos: position{line: 335, col: 9, offset: 9019}, + pos: position{line: 336, col: 9, offset: 9069}, label: "pattern", expr: &ruleRefExpr{ - pos: position{line: 335, col: 17, offset: 9027}, + pos: position{line: 336, col: 17, offset: 9077}, name: "RegexpBody", }, }, &litMatcher{ - pos: position{line: 335, col: 28, offset: 9038}, + pos: position{line: 336, col: 28, offset: 9088}, val: "/", ignoreCase: false, want: "\"/\"", }, ¬Expr{ - pos: position{line: 335, col: 32, offset: 9042}, + pos: position{line: 336, col: 32, offset: 9092}, expr: &ruleRefExpr{ - pos: position{line: 335, col: 33, offset: 9043}, + pos: position{line: 336, col: 33, offset: 9093}, name: "KeyWordStart", }, }, @@ -2895,33 +2903,33 @@ var g = &grammar{ }, { name: "RegexpBody", - pos: position{line: 339, col: 1, offset: 9157}, + pos: position{line: 340, col: 1, offset: 9207}, expr: &actionExpr{ - pos: position{line: 340, col: 5, offset: 9172}, + pos: position{line: 341, col: 5, offset: 9222}, run: (*parser).callonRegexpBody1, expr: &oneOrMoreExpr{ - pos: position{line: 340, col: 5, offset: 9172}, + pos: position{line: 341, col: 5, offset: 9222}, expr: &choiceExpr{ - pos: position{line: 340, col: 6, offset: 9173}, + pos: position{line: 341, col: 6, offset: 9223}, alternatives: []any{ &charClassMatcher{ - pos: position{line: 340, col: 6, offset: 9173}, + pos: position{line: 341, col: 6, offset: 9223}, val: "[^/\\\\]", chars: []rune{'/', '\\'}, ignoreCase: false, inverted: true, }, &seqExpr{ - pos: position{line: 340, col: 15, offset: 9182}, + pos: position{line: 341, col: 15, offset: 9232}, exprs: []any{ &litMatcher{ - pos: position{line: 340, col: 15, offset: 9182}, + pos: position{line: 341, col: 15, offset: 9232}, val: "\\", ignoreCase: false, want: "\"\\\\\"", }, &anyMatcher{ - line: 340, col: 20, offset: 9187, + line: 341, col: 20, offset: 9237, }, }, }, @@ -2934,36 +2942,36 @@ var g = &grammar{ }, { name: "Aggregation", - pos: position{line: 344, col: 1, offset: 9249}, + pos: position{line: 345, col: 1, offset: 9299}, expr: &choiceExpr{ - pos: position{line: 345, col: 5, offset: 9265}, + pos: position{line: 346, col: 5, offset: 9315}, alternatives: []any{ &actionExpr{ - pos: position{line: 345, col: 5, offset: 9265}, + pos: position{line: 346, col: 5, offset: 9315}, run: (*parser).callonAggregation2, expr: &seqExpr{ - pos: position{line: 345, col: 5, offset: 9265}, + pos: position{line: 346, col: 5, offset: 9315}, exprs: []any{ &zeroOrOneExpr{ - pos: position{line: 345, col: 5, offset: 9265}, + pos: position{line: 346, col: 5, offset: 9315}, expr: &ruleRefExpr{ - pos: position{line: 345, col: 5, offset: 9265}, + pos: position{line: 346, col: 5, offset: 9315}, name: "Aggregate", }, }, &labeledExpr{ - pos: position{line: 345, col: 16, offset: 9276}, + pos: position{line: 346, col: 16, offset: 9326}, label: "keys", expr: &ruleRefExpr{ - pos: position{line: 345, col: 21, offset: 9281}, + pos: position{line: 346, col: 21, offset: 9331}, name: "AggregateKeys", }, }, &labeledExpr{ - pos: position{line: 345, col: 35, offset: 9295}, + pos: position{line: 346, col: 35, offset: 9345}, label: "limit", expr: &ruleRefExpr{ - pos: position{line: 345, col: 41, offset: 9301}, + pos: position{line: 346, col: 41, offset: 9351}, name: "LimitArg", }, }, @@ -2971,40 +2979,40 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 353, col: 5, offset: 9489}, + pos: position{line: 354, col: 5, offset: 9539}, run: (*parser).callonAggregation10, expr: &seqExpr{ - pos: position{line: 353, col: 5, offset: 9489}, + pos: position{line: 354, col: 5, offset: 9539}, exprs: []any{ &zeroOrOneExpr{ - pos: position{line: 353, col: 5, offset: 9489}, + pos: position{line: 354, col: 5, offset: 9539}, expr: &ruleRefExpr{ - pos: position{line: 353, col: 5, offset: 9489}, + pos: position{line: 354, col: 5, offset: 9539}, name: "Aggregate", }, }, &labeledExpr{ - pos: position{line: 353, col: 16, offset: 9500}, + pos: position{line: 354, col: 16, offset: 9550}, label: "aggs", expr: &ruleRefExpr{ - pos: position{line: 353, col: 21, offset: 9505}, + pos: position{line: 354, col: 21, offset: 9555}, name: "AggAssignments", }, }, &labeledExpr{ - pos: position{line: 353, col: 36, offset: 9520}, + pos: position{line: 354, col: 36, offset: 9570}, label: "keys", expr: &zeroOrOneExpr{ - pos: position{line: 353, col: 41, offset: 9525}, + pos: position{line: 354, col: 41, offset: 9575}, expr: &seqExpr{ - pos: position{line: 353, col: 42, offset: 9526}, + pos: position{line: 354, col: 42, offset: 9576}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 353, col: 42, offset: 9526}, + pos: position{line: 354, col: 42, offset: 9576}, name: "_", }, &ruleRefExpr{ - pos: position{line: 353, col: 44, offset: 9528}, + pos: position{line: 354, col: 44, offset: 9578}, name: "AggregateKeys", }, }, @@ -3012,10 +3020,10 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 353, col: 60, offset: 9544}, + pos: position{line: 354, col: 60, offset: 9594}, label: "limit", expr: &ruleRefExpr{ - pos: position{line: 353, col: 66, offset: 9550}, + pos: position{line: 354, col: 66, offset: 9600}, name: "LimitArg", }, }, @@ -3029,25 +3037,25 @@ var g = &grammar{ }, { name: "Aggregate", - pos: position{line: 366, col: 1, offset: 9838}, + pos: position{line: 367, col: 1, offset: 9888}, expr: &seqExpr{ - pos: position{line: 366, col: 13, offset: 9850}, + pos: position{line: 367, col: 13, offset: 9900}, exprs: []any{ &choiceExpr{ - pos: position{line: 366, col: 14, offset: 9851}, + pos: position{line: 367, col: 14, offset: 9901}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 366, col: 14, offset: 9851}, + pos: position{line: 367, col: 14, offset: 9901}, name: "AGGREGATE", }, &ruleRefExpr{ - pos: position{line: 366, col: 26, offset: 9863}, + pos: position{line: 367, col: 26, offset: 9913}, name: "SUMMARIZE", }, }, }, &ruleRefExpr{ - pos: position{line: 366, col: 37, offset: 9874}, + pos: position{line: 367, col: 37, offset: 9924}, name: "_", }, }, @@ -3057,42 +3065,42 @@ var g = &grammar{ }, { name: "AggregateKeys", - pos: position{line: 368, col: 1, offset: 9877}, + pos: position{line: 369, col: 1, offset: 9927}, expr: &actionExpr{ - pos: position{line: 369, col: 5, offset: 9895}, + pos: position{line: 370, col: 5, offset: 9945}, run: (*parser).callonAggregateKeys1, expr: &seqExpr{ - pos: position{line: 369, col: 5, offset: 9895}, + pos: position{line: 370, col: 5, offset: 9945}, exprs: []any{ &zeroOrOneExpr{ - pos: position{line: 369, col: 5, offset: 9895}, + pos: position{line: 370, col: 5, offset: 9945}, expr: &seqExpr{ - pos: position{line: 369, col: 6, offset: 9896}, + pos: position{line: 370, col: 6, offset: 9946}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 369, col: 6, offset: 9896}, + pos: position{line: 370, col: 6, offset: 9946}, name: "GROUP", }, &ruleRefExpr{ - pos: position{line: 369, col: 12, offset: 9902}, + pos: position{line: 370, col: 12, offset: 9952}, name: "_", }, }, }, }, &ruleRefExpr{ - pos: position{line: 369, col: 16, offset: 9906}, + pos: position{line: 370, col: 16, offset: 9956}, name: "BY", }, &ruleRefExpr{ - pos: position{line: 369, col: 19, offset: 9909}, + pos: position{line: 370, col: 19, offset: 9959}, name: "_", }, &labeledExpr{ - pos: position{line: 369, col: 21, offset: 9911}, + pos: position{line: 370, col: 21, offset: 9961}, label: "columns", expr: &ruleRefExpr{ - pos: position{line: 369, col: 29, offset: 9919}, + pos: position{line: 370, col: 29, offset: 9969}, name: "Assignments", }, }, @@ -3104,43 +3112,43 @@ var g = &grammar{ }, { name: "LimitArg", - pos: position{line: 371, col: 1, offset: 9956}, + pos: position{line: 372, col: 1, offset: 10006}, expr: &choiceExpr{ - pos: position{line: 372, col: 5, offset: 9969}, + pos: position{line: 373, col: 5, offset: 10019}, alternatives: []any{ &actionExpr{ - pos: position{line: 372, col: 5, offset: 9969}, + pos: position{line: 373, col: 5, offset: 10019}, run: (*parser).callonLimitArg2, expr: &seqExpr{ - pos: position{line: 372, col: 5, offset: 9969}, + pos: position{line: 373, col: 5, offset: 10019}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 372, col: 5, offset: 9969}, + pos: position{line: 373, col: 5, offset: 10019}, name: "_", }, &ruleRefExpr{ - pos: position{line: 372, col: 7, offset: 9971}, + pos: position{line: 373, col: 7, offset: 10021}, name: "WITH", }, &ruleRefExpr{ - pos: position{line: 372, col: 12, offset: 9976}, + pos: position{line: 373, col: 12, offset: 10026}, name: "_", }, &litMatcher{ - pos: position{line: 372, col: 14, offset: 9978}, + pos: position{line: 373, col: 14, offset: 10028}, val: "-limit", ignoreCase: false, want: "\"-limit\"", }, &ruleRefExpr{ - pos: position{line: 372, col: 23, offset: 9987}, + pos: position{line: 373, col: 23, offset: 10037}, name: "_", }, &labeledExpr{ - pos: position{line: 372, col: 25, offset: 9989}, + pos: position{line: 373, col: 25, offset: 10039}, label: "limit", expr: &ruleRefExpr{ - pos: position{line: 372, col: 31, offset: 9995}, + pos: position{line: 373, col: 31, offset: 10045}, name: "UInt", }, }, @@ -3148,10 +3156,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 373, col: 5, offset: 10026}, + pos: position{line: 374, col: 5, offset: 10076}, run: (*parser).callonLimitArg11, expr: &litMatcher{ - pos: position{line: 373, col: 5, offset: 10026}, + pos: position{line: 374, col: 5, offset: 10076}, val: "", ignoreCase: false, want: "\"\"", @@ -3164,43 +3172,43 @@ var g = &grammar{ }, { name: "AggAssignment", - pos: position{line: 375, col: 1, offset: 10048}, + pos: position{line: 376, col: 1, offset: 10098}, expr: &choiceExpr{ - pos: position{line: 376, col: 5, offset: 10066}, + pos: position{line: 377, col: 5, offset: 10116}, alternatives: []any{ &actionExpr{ - pos: position{line: 376, col: 5, offset: 10066}, + pos: position{line: 377, col: 5, offset: 10116}, run: (*parser).callonAggAssignment2, expr: &seqExpr{ - pos: position{line: 376, col: 5, offset: 10066}, + pos: position{line: 377, col: 5, offset: 10116}, exprs: []any{ &labeledExpr{ - pos: position{line: 376, col: 5, offset: 10066}, + pos: position{line: 377, col: 5, offset: 10116}, label: "lval", expr: &ruleRefExpr{ - pos: position{line: 376, col: 10, offset: 10071}, + pos: position{line: 377, col: 10, offset: 10121}, name: "Lval", }, }, &ruleRefExpr{ - pos: position{line: 376, col: 15, offset: 10076}, + pos: position{line: 377, col: 15, offset: 10126}, name: "__", }, &litMatcher{ - pos: position{line: 376, col: 18, offset: 10079}, + pos: position{line: 377, col: 18, offset: 10129}, val: ":=", ignoreCase: false, want: "\":=\"", }, &ruleRefExpr{ - pos: position{line: 376, col: 23, offset: 10084}, + pos: position{line: 377, col: 23, offset: 10134}, name: "__", }, &labeledExpr{ - pos: position{line: 376, col: 26, offset: 10087}, + pos: position{line: 377, col: 26, offset: 10137}, label: "agg", expr: &ruleRefExpr{ - pos: position{line: 376, col: 30, offset: 10091}, + pos: position{line: 377, col: 30, offset: 10141}, name: "AggFunc", }, }, @@ -3208,13 +3216,13 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 379, col: 5, offset: 10195}, + pos: position{line: 380, col: 5, offset: 10245}, run: (*parser).callonAggAssignment11, expr: &labeledExpr{ - pos: position{line: 379, col: 5, offset: 10195}, + pos: position{line: 380, col: 5, offset: 10245}, label: "agg", expr: &ruleRefExpr{ - pos: position{line: 379, col: 9, offset: 10199}, + pos: position{line: 380, col: 9, offset: 10249}, name: "AggFunc", }, }, @@ -3226,84 +3234,84 @@ var g = &grammar{ }, { name: "AggFunc", - pos: position{line: 383, col: 1, offset: 10280}, + pos: position{line: 384, col: 1, offset: 10330}, expr: &choiceExpr{ - pos: position{line: 384, col: 5, offset: 10292}, + pos: position{line: 385, col: 5, offset: 10342}, alternatives: []any{ &actionExpr{ - pos: position{line: 384, col: 5, offset: 10292}, + pos: position{line: 385, col: 5, offset: 10342}, run: (*parser).callonAggFunc2, expr: &seqExpr{ - pos: position{line: 384, col: 5, offset: 10292}, + pos: position{line: 385, col: 5, offset: 10342}, exprs: []any{ &labeledExpr{ - pos: position{line: 384, col: 5, offset: 10292}, + pos: position{line: 385, col: 5, offset: 10342}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 384, col: 10, offset: 10297}, + pos: position{line: 385, col: 10, offset: 10347}, name: "AggName", }, }, &ruleRefExpr{ - pos: position{line: 384, col: 18, offset: 10305}, + pos: position{line: 385, col: 18, offset: 10355}, name: "__", }, &litMatcher{ - pos: position{line: 384, col: 21, offset: 10308}, + pos: position{line: 385, col: 21, offset: 10358}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 384, col: 25, offset: 10312}, + pos: position{line: 385, col: 25, offset: 10362}, name: "__", }, &labeledExpr{ - pos: position{line: 384, col: 28, offset: 10315}, + pos: position{line: 385, col: 28, offset: 10365}, label: "q", expr: &choiceExpr{ - pos: position{line: 384, col: 31, offset: 10318}, + pos: position{line: 385, col: 31, offset: 10368}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 384, col: 31, offset: 10318}, + pos: position{line: 385, col: 31, offset: 10368}, name: "ALL", }, &ruleRefExpr{ - pos: position{line: 384, col: 37, offset: 10324}, + pos: position{line: 385, col: 37, offset: 10374}, name: "DISTINCT", }, }, }, }, &ruleRefExpr{ - pos: position{line: 384, col: 47, offset: 10334}, + pos: position{line: 385, col: 47, offset: 10384}, name: "_", }, &labeledExpr{ - pos: position{line: 384, col: 49, offset: 10336}, + pos: position{line: 385, col: 49, offset: 10386}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 384, col: 54, offset: 10341}, + pos: position{line: 385, col: 54, offset: 10391}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 384, col: 59, offset: 10346}, + pos: position{line: 385, col: 59, offset: 10396}, name: "__", }, &litMatcher{ - pos: position{line: 384, col: 62, offset: 10349}, + pos: position{line: 385, col: 62, offset: 10399}, val: ")", ignoreCase: false, want: "\")\"", }, &labeledExpr{ - pos: position{line: 384, col: 66, offset: 10353}, + pos: position{line: 385, col: 66, offset: 10403}, label: "filter", expr: &zeroOrOneExpr{ - pos: position{line: 384, col: 73, offset: 10360}, + pos: position{line: 385, col: 73, offset: 10410}, expr: &ruleRefExpr{ - pos: position{line: 384, col: 73, offset: 10360}, + pos: position{line: 385, col: 73, offset: 10410}, name: "FilterClause", }, }, @@ -3312,61 +3320,61 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 398, col: 5, offset: 10748}, + pos: position{line: 399, col: 5, offset: 10798}, run: (*parser).callonAggFunc21, expr: &seqExpr{ - pos: position{line: 398, col: 5, offset: 10748}, + pos: position{line: 399, col: 5, offset: 10798}, exprs: []any{ &labeledExpr{ - pos: position{line: 398, col: 5, offset: 10748}, + pos: position{line: 399, col: 5, offset: 10798}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 398, col: 10, offset: 10753}, + pos: position{line: 399, col: 10, offset: 10803}, name: "AggName", }, }, &ruleRefExpr{ - pos: position{line: 398, col: 18, offset: 10761}, + pos: position{line: 399, col: 18, offset: 10811}, name: "__", }, &litMatcher{ - pos: position{line: 398, col: 21, offset: 10764}, + pos: position{line: 399, col: 21, offset: 10814}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 398, col: 25, offset: 10768}, + pos: position{line: 399, col: 25, offset: 10818}, name: "__", }, &labeledExpr{ - pos: position{line: 398, col: 28, offset: 10771}, + pos: position{line: 399, col: 28, offset: 10821}, label: "expr", expr: &zeroOrOneExpr{ - pos: position{line: 398, col: 33, offset: 10776}, + pos: position{line: 399, col: 33, offset: 10826}, expr: &ruleRefExpr{ - pos: position{line: 398, col: 33, offset: 10776}, + pos: position{line: 399, col: 33, offset: 10826}, name: "Expr", }, }, }, &ruleRefExpr{ - pos: position{line: 398, col: 39, offset: 10782}, + pos: position{line: 399, col: 39, offset: 10832}, name: "__", }, &litMatcher{ - pos: position{line: 398, col: 42, offset: 10785}, + pos: position{line: 399, col: 42, offset: 10835}, val: ")", ignoreCase: false, want: "\")\"", }, &labeledExpr{ - pos: position{line: 398, col: 46, offset: 10789}, + pos: position{line: 399, col: 46, offset: 10839}, label: "filter", expr: &zeroOrOneExpr{ - pos: position{line: 398, col: 53, offset: 10796}, + pos: position{line: 399, col: 53, offset: 10846}, expr: &ruleRefExpr{ - pos: position{line: 398, col: 53, offset: 10796}, + pos: position{line: 399, col: 53, offset: 10846}, name: "FilterClause", }, }, @@ -3375,26 +3383,26 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 412, col: 5, offset: 11106}, + pos: position{line: 413, col: 5, offset: 11156}, run: (*parser).callonAggFunc36, expr: &seqExpr{ - pos: position{line: 412, col: 5, offset: 11106}, + pos: position{line: 413, col: 5, offset: 11156}, exprs: []any{ &labeledExpr{ - pos: position{line: 412, col: 5, offset: 11106}, + pos: position{line: 413, col: 5, offset: 11156}, label: "cs", expr: &ruleRefExpr{ - pos: position{line: 412, col: 8, offset: 11109}, + pos: position{line: 413, col: 8, offset: 11159}, name: "CountStar", }, }, &labeledExpr{ - pos: position{line: 412, col: 18, offset: 11119}, + pos: position{line: 413, col: 18, offset: 11169}, label: "filter", expr: &zeroOrOneExpr{ - pos: position{line: 412, col: 25, offset: 11126}, + pos: position{line: 413, col: 25, offset: 11176}, expr: &ruleRefExpr{ - pos: position{line: 412, col: 25, offset: 11126}, + pos: position{line: 413, col: 25, offset: 11176}, name: "FilterClause", }, }, @@ -3409,20 +3417,20 @@ var g = &grammar{ }, { name: "AggName", - pos: position{line: 424, col: 1, offset: 11361}, + pos: position{line: 425, col: 1, offset: 11411}, expr: &choiceExpr{ - pos: position{line: 425, col: 5, offset: 11373}, + pos: position{line: 426, col: 5, offset: 11423}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 425, col: 5, offset: 11373}, + pos: position{line: 426, col: 5, offset: 11423}, name: "IdentifierName", }, &ruleRefExpr{ - pos: position{line: 426, col: 5, offset: 11392}, + pos: position{line: 427, col: 5, offset: 11442}, name: "AND", }, &ruleRefExpr{ - pos: position{line: 427, col: 5, offset: 11400}, + pos: position{line: 428, col: 5, offset: 11450}, name: "OR", }, }, @@ -3432,65 +3440,65 @@ var g = &grammar{ }, { name: "FilterClause", - pos: position{line: 429, col: 1, offset: 11404}, + pos: position{line: 430, col: 1, offset: 11454}, expr: &actionExpr{ - pos: position{line: 429, col: 16, offset: 11419}, + pos: position{line: 430, col: 16, offset: 11469}, run: (*parser).callonFilterClause1, expr: &seqExpr{ - pos: position{line: 429, col: 16, offset: 11419}, + pos: position{line: 430, col: 16, offset: 11469}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 429, col: 16, offset: 11419}, + pos: position{line: 430, col: 16, offset: 11469}, name: "_", }, &ruleRefExpr{ - pos: position{line: 429, col: 18, offset: 11421}, + pos: position{line: 430, col: 18, offset: 11471}, name: "FILTER", }, &ruleRefExpr{ - pos: position{line: 429, col: 25, offset: 11428}, + pos: position{line: 430, col: 25, offset: 11478}, name: "__", }, &litMatcher{ - pos: position{line: 429, col: 28, offset: 11431}, + pos: position{line: 430, col: 28, offset: 11481}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 429, col: 32, offset: 11435}, + pos: position{line: 430, col: 32, offset: 11485}, name: "__", }, &zeroOrOneExpr{ - pos: position{line: 429, col: 35, offset: 11438}, + pos: position{line: 430, col: 35, offset: 11488}, expr: &seqExpr{ - pos: position{line: 429, col: 36, offset: 11439}, + pos: position{line: 430, col: 36, offset: 11489}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 429, col: 36, offset: 11439}, + pos: position{line: 430, col: 36, offset: 11489}, name: "WHERE", }, &ruleRefExpr{ - pos: position{line: 429, col: 42, offset: 11445}, + pos: position{line: 430, col: 42, offset: 11495}, name: "_", }, }, }, }, &labeledExpr{ - pos: position{line: 429, col: 46, offset: 11449}, + pos: position{line: 430, col: 46, offset: 11499}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 429, col: 51, offset: 11454}, + pos: position{line: 430, col: 51, offset: 11504}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 429, col: 56, offset: 11459}, + pos: position{line: 430, col: 56, offset: 11509}, name: "__", }, &litMatcher{ - pos: position{line: 429, col: 59, offset: 11462}, + pos: position{line: 430, col: 59, offset: 11512}, val: ")", ignoreCase: false, want: "\")\"", @@ -3503,45 +3511,45 @@ var g = &grammar{ }, { name: "AggAssignments", - pos: position{line: 431, col: 1, offset: 11488}, + pos: position{line: 432, col: 1, offset: 11538}, expr: &actionExpr{ - pos: position{line: 432, col: 5, offset: 11507}, + pos: position{line: 433, col: 5, offset: 11557}, run: (*parser).callonAggAssignments1, expr: &seqExpr{ - pos: position{line: 432, col: 5, offset: 11507}, + pos: position{line: 433, col: 5, offset: 11557}, exprs: []any{ &labeledExpr{ - pos: position{line: 432, col: 5, offset: 11507}, + pos: position{line: 433, col: 5, offset: 11557}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 432, col: 11, offset: 11513}, + pos: position{line: 433, col: 11, offset: 11563}, name: "AggAssignment", }, }, &labeledExpr{ - pos: position{line: 432, col: 25, offset: 11527}, + pos: position{line: 433, col: 25, offset: 11577}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 432, col: 30, offset: 11532}, + pos: position{line: 433, col: 30, offset: 11582}, expr: &seqExpr{ - pos: position{line: 432, col: 31, offset: 11533}, + pos: position{line: 433, col: 31, offset: 11583}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 432, col: 31, offset: 11533}, + pos: position{line: 433, col: 31, offset: 11583}, name: "__", }, &litMatcher{ - pos: position{line: 432, col: 34, offset: 11536}, + pos: position{line: 433, col: 34, offset: 11586}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 432, col: 38, offset: 11540}, + pos: position{line: 433, col: 38, offset: 11590}, name: "__", }, &ruleRefExpr{ - pos: position{line: 432, col: 41, offset: 11543}, + pos: position{line: 433, col: 41, offset: 11593}, name: "AggAssignment", }, }, @@ -3556,43 +3564,43 @@ var g = &grammar{ }, { name: "CountStar", - pos: position{line: 440, col: 1, offset: 11717}, + pos: position{line: 441, col: 1, offset: 11767}, expr: &actionExpr{ - pos: position{line: 440, col: 13, offset: 11729}, + pos: position{line: 441, col: 13, offset: 11779}, run: (*parser).callonCountStar1, expr: &seqExpr{ - pos: position{line: 440, col: 13, offset: 11729}, + pos: position{line: 441, col: 13, offset: 11779}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 440, col: 13, offset: 11729}, + pos: position{line: 441, col: 13, offset: 11779}, name: "COUNT", }, &ruleRefExpr{ - pos: position{line: 440, col: 19, offset: 11735}, + pos: position{line: 441, col: 19, offset: 11785}, name: "__", }, &litMatcher{ - pos: position{line: 440, col: 22, offset: 11738}, + pos: position{line: 441, col: 22, offset: 11788}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 440, col: 26, offset: 11742}, + pos: position{line: 441, col: 26, offset: 11792}, name: "__", }, &litMatcher{ - pos: position{line: 440, col: 29, offset: 11745}, + pos: position{line: 441, col: 29, offset: 11795}, val: "*", ignoreCase: false, want: "\"*\"", }, &ruleRefExpr{ - pos: position{line: 440, col: 33, offset: 11749}, + pos: position{line: 441, col: 33, offset: 11799}, name: "__", }, &litMatcher{ - pos: position{line: 440, col: 36, offset: 11752}, + pos: position{line: 441, col: 36, offset: 11802}, val: ")", ignoreCase: false, want: "\")\"", @@ -3605,28 +3613,28 @@ var g = &grammar{ }, { name: "Operator", - pos: position{line: 455, col: 1, offset: 11992}, + pos: position{line: 456, col: 1, offset: 12042}, expr: &choiceExpr{ - pos: position{line: 456, col: 5, offset: 12005}, + pos: position{line: 457, col: 5, offset: 12055}, alternatives: []any{ &actionExpr{ - pos: position{line: 456, col: 5, offset: 12005}, + pos: position{line: 457, col: 5, offset: 12055}, run: (*parser).callonOperator2, expr: &seqExpr{ - pos: position{line: 456, col: 5, offset: 12005}, + pos: position{line: 457, col: 5, offset: 12055}, exprs: []any{ &labeledExpr{ - pos: position{line: 456, col: 5, offset: 12005}, + pos: position{line: 457, col: 5, offset: 12055}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 456, col: 8, offset: 12008}, + pos: position{line: 457, col: 8, offset: 12058}, name: "SQLOp", }, }, &andExpr{ - pos: position{line: 456, col: 14, offset: 12014}, + pos: position{line: 457, col: 14, offset: 12064}, expr: &ruleRefExpr{ - pos: position{line: 456, col: 15, offset: 12015}, + pos: position{line: 457, col: 15, offset: 12065}, name: "EndOfOp", }, }, @@ -3634,123 +3642,123 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 457, col: 5, offset: 12046}, + pos: position{line: 458, col: 5, offset: 12096}, name: "ForkOp", }, &ruleRefExpr{ - pos: position{line: 458, col: 5, offset: 12057}, + pos: position{line: 459, col: 5, offset: 12107}, name: "SwitchOp", }, &ruleRefExpr{ - pos: position{line: 459, col: 5, offset: 12070}, + pos: position{line: 460, col: 5, offset: 12120}, name: "SearchOp", }, &ruleRefExpr{ - pos: position{line: 460, col: 5, offset: 12083}, + pos: position{line: 461, col: 5, offset: 12133}, name: "AssertOp", }, &ruleRefExpr{ - pos: position{line: 461, col: 5, offset: 12096}, + pos: position{line: 462, col: 5, offset: 12146}, name: "SortOp", }, &ruleRefExpr{ - pos: position{line: 462, col: 5, offset: 12107}, + pos: position{line: 463, col: 5, offset: 12157}, name: "TopOp", }, &ruleRefExpr{ - pos: position{line: 463, col: 5, offset: 12117}, + pos: position{line: 464, col: 5, offset: 12167}, name: "CallOp", }, &ruleRefExpr{ - pos: position{line: 464, col: 5, offset: 12128}, + pos: position{line: 465, col: 5, offset: 12178}, name: "CountOp", }, &ruleRefExpr{ - pos: position{line: 465, col: 5, offset: 12140}, + pos: position{line: 466, col: 5, offset: 12190}, name: "CutOp", }, &ruleRefExpr{ - pos: position{line: 466, col: 5, offset: 12150}, + pos: position{line: 467, col: 5, offset: 12200}, name: "DistinctOp", }, &ruleRefExpr{ - pos: position{line: 467, col: 5, offset: 12165}, + pos: position{line: 468, col: 5, offset: 12215}, name: "DropOp", }, &ruleRefExpr{ - pos: position{line: 468, col: 5, offset: 12176}, + pos: position{line: 469, col: 5, offset: 12226}, name: "HeadOp", }, &ruleRefExpr{ - pos: position{line: 469, col: 5, offset: 12187}, + pos: position{line: 470, col: 5, offset: 12237}, name: "TailOp", }, &ruleRefExpr{ - pos: position{line: 470, col: 5, offset: 12198}, + pos: position{line: 471, col: 5, offset: 12248}, name: "SkipOp", }, &ruleRefExpr{ - pos: position{line: 471, col: 5, offset: 12209}, + pos: position{line: 472, col: 5, offset: 12259}, name: "WhereOp", }, &ruleRefExpr{ - pos: position{line: 472, col: 5, offset: 12221}, + pos: position{line: 473, col: 5, offset: 12271}, name: "UniqOp", }, &ruleRefExpr{ - pos: position{line: 473, col: 5, offset: 12232}, + pos: position{line: 474, col: 5, offset: 12282}, name: "PutOp", }, &ruleRefExpr{ - pos: position{line: 474, col: 5, offset: 12242}, + pos: position{line: 475, col: 5, offset: 12292}, name: "RenameOp", }, &ruleRefExpr{ - pos: position{line: 475, col: 5, offset: 12255}, + pos: position{line: 476, col: 5, offset: 12305}, name: "FuseOp", }, &ruleRefExpr{ - pos: position{line: 476, col: 5, offset: 12266}, + pos: position{line: 477, col: 5, offset: 12316}, name: "JoinOp", }, &ruleRefExpr{ - pos: position{line: 477, col: 5, offset: 12277}, + pos: position{line: 478, col: 5, offset: 12327}, name: "ShapesOp", }, &ruleRefExpr{ - pos: position{line: 478, col: 5, offset: 12290}, + pos: position{line: 479, col: 5, offset: 12340}, name: "FromOp", }, &ruleRefExpr{ - pos: position{line: 479, col: 5, offset: 12301}, + pos: position{line: 480, col: 5, offset: 12351}, name: "PassOp", }, &ruleRefExpr{ - pos: position{line: 480, col: 5, offset: 12312}, + pos: position{line: 481, col: 5, offset: 12362}, name: "MergeOp", }, &ruleRefExpr{ - pos: position{line: 481, col: 5, offset: 12324}, + pos: position{line: 482, col: 5, offset: 12374}, name: "UnnestOp", }, &ruleRefExpr{ - pos: position{line: 482, col: 5, offset: 12337}, + pos: position{line: 483, col: 5, offset: 12387}, name: "ValuesOp", }, &ruleRefExpr{ - pos: position{line: 483, col: 5, offset: 12350}, + pos: position{line: 484, col: 5, offset: 12400}, name: "LoadOp", }, &ruleRefExpr{ - pos: position{line: 484, col: 5, offset: 12361}, + pos: position{line: 485, col: 5, offset: 12411}, name: "OutputOp", }, &ruleRefExpr{ - pos: position{line: 485, col: 5, offset: 12374}, + pos: position{line: 486, col: 5, offset: 12424}, name: "DebugOp", }, &ruleRefExpr{ - pos: position{line: 486, col: 5, offset: 12386}, + pos: position{line: 487, col: 5, offset: 12436}, name: "InferOp", }, }, @@ -3760,37 +3768,37 @@ var g = &grammar{ }, { name: "ForkOp", - pos: position{line: 488, col: 2, offset: 12396}, + pos: position{line: 489, col: 2, offset: 12446}, expr: &actionExpr{ - pos: position{line: 489, col: 4, offset: 12408}, + pos: position{line: 490, col: 4, offset: 12458}, run: (*parser).callonForkOp1, expr: &seqExpr{ - pos: position{line: 489, col: 4, offset: 12408}, + pos: position{line: 490, col: 4, offset: 12458}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 489, col: 4, offset: 12408}, + pos: position{line: 490, col: 4, offset: 12458}, name: "FORK", }, &labeledExpr{ - pos: position{line: 489, col: 9, offset: 12413}, + pos: position{line: 490, col: 9, offset: 12463}, label: "paths", expr: &oneOrMoreExpr{ - pos: position{line: 489, col: 15, offset: 12419}, + pos: position{line: 490, col: 15, offset: 12469}, expr: &actionExpr{ - pos: position{line: 489, col: 17, offset: 12421}, + pos: position{line: 490, col: 17, offset: 12471}, run: (*parser).callonForkOp6, expr: &seqExpr{ - pos: position{line: 489, col: 17, offset: 12421}, + pos: position{line: 490, col: 17, offset: 12471}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 489, col: 17, offset: 12421}, + pos: position{line: 490, col: 17, offset: 12471}, name: "__", }, &labeledExpr{ - pos: position{line: 489, col: 20, offset: 12424}, + pos: position{line: 490, col: 20, offset: 12474}, label: "path", expr: &ruleRefExpr{ - pos: position{line: 489, col: 25, offset: 12429}, + pos: position{line: 490, col: 25, offset: 12479}, name: "ScopeBody", }, }, @@ -3807,31 +3815,31 @@ var g = &grammar{ }, { name: "SwitchOp", - pos: position{line: 501, col: 1, offset: 12703}, + pos: position{line: 502, col: 1, offset: 12753}, expr: &choiceExpr{ - pos: position{line: 502, col: 5, offset: 12716}, + pos: position{line: 503, col: 5, offset: 12766}, alternatives: []any{ &actionExpr{ - pos: position{line: 502, col: 5, offset: 12716}, + pos: position{line: 503, col: 5, offset: 12766}, run: (*parser).callonSwitchOp2, expr: &seqExpr{ - pos: position{line: 502, col: 5, offset: 12716}, + pos: position{line: 503, col: 5, offset: 12766}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 502, col: 5, offset: 12716}, + pos: position{line: 503, col: 5, offset: 12766}, name: "SWITCH", }, &ruleRefExpr{ - pos: position{line: 502, col: 12, offset: 12723}, + pos: position{line: 503, col: 12, offset: 12773}, name: "_", }, &labeledExpr{ - pos: position{line: 502, col: 14, offset: 12725}, + pos: position{line: 503, col: 14, offset: 12775}, label: "cases", expr: &oneOrMoreExpr{ - pos: position{line: 502, col: 20, offset: 12731}, + pos: position{line: 503, col: 20, offset: 12781}, expr: &ruleRefExpr{ - pos: position{line: 502, col: 20, offset: 12731}, + pos: position{line: 503, col: 20, offset: 12781}, name: "SwitchPath", }, }, @@ -3840,38 +3848,38 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 509, col: 5, offset: 12890}, + pos: position{line: 510, col: 5, offset: 12940}, run: (*parser).callonSwitchOp9, expr: &seqExpr{ - pos: position{line: 509, col: 5, offset: 12890}, + pos: position{line: 510, col: 5, offset: 12940}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 509, col: 5, offset: 12890}, + pos: position{line: 510, col: 5, offset: 12940}, name: "SWITCH", }, &ruleRefExpr{ - pos: position{line: 509, col: 12, offset: 12897}, + pos: position{line: 510, col: 12, offset: 12947}, name: "_", }, &labeledExpr{ - pos: position{line: 509, col: 14, offset: 12899}, + pos: position{line: 510, col: 14, offset: 12949}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 509, col: 19, offset: 12904}, + pos: position{line: 510, col: 19, offset: 12954}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 509, col: 24, offset: 12909}, + pos: position{line: 510, col: 24, offset: 12959}, name: "_", }, &labeledExpr{ - pos: position{line: 509, col: 26, offset: 12911}, + pos: position{line: 510, col: 26, offset: 12961}, label: "cases", expr: &oneOrMoreExpr{ - pos: position{line: 509, col: 32, offset: 12917}, + pos: position{line: 510, col: 32, offset: 12967}, expr: &ruleRefExpr{ - pos: position{line: 509, col: 32, offset: 12917}, + pos: position{line: 510, col: 32, offset: 12967}, name: "SwitchPath", }, }, @@ -3886,34 +3894,34 @@ var g = &grammar{ }, { name: "SwitchPath", - pos: position{line: 518, col: 1, offset: 13106}, + pos: position{line: 519, col: 1, offset: 13156}, expr: &actionExpr{ - pos: position{line: 519, col: 5, offset: 13121}, + pos: position{line: 520, col: 5, offset: 13171}, run: (*parser).callonSwitchPath1, expr: &seqExpr{ - pos: position{line: 519, col: 5, offset: 13121}, + pos: position{line: 520, col: 5, offset: 13171}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 519, col: 5, offset: 13121}, + pos: position{line: 520, col: 5, offset: 13171}, name: "__", }, &labeledExpr{ - pos: position{line: 519, col: 8, offset: 13124}, + pos: position{line: 520, col: 8, offset: 13174}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 519, col: 13, offset: 13129}, + pos: position{line: 520, col: 13, offset: 13179}, name: "Case", }, }, &ruleRefExpr{ - pos: position{line: 519, col: 18, offset: 13134}, + pos: position{line: 520, col: 18, offset: 13184}, name: "__", }, &labeledExpr{ - pos: position{line: 519, col: 21, offset: 13137}, + pos: position{line: 520, col: 21, offset: 13187}, label: "path", expr: &ruleRefExpr{ - pos: position{line: 519, col: 26, offset: 13142}, + pos: position{line: 520, col: 26, offset: 13192}, name: "ScopeBody", }, }, @@ -3925,29 +3933,29 @@ var g = &grammar{ }, { name: "Case", - pos: position{line: 527, col: 1, offset: 13294}, + pos: position{line: 528, col: 1, offset: 13344}, expr: &choiceExpr{ - pos: position{line: 528, col: 5, offset: 13303}, + pos: position{line: 529, col: 5, offset: 13353}, alternatives: []any{ &actionExpr{ - pos: position{line: 528, col: 5, offset: 13303}, + pos: position{line: 529, col: 5, offset: 13353}, run: (*parser).callonCase2, expr: &seqExpr{ - pos: position{line: 528, col: 5, offset: 13303}, + pos: position{line: 529, col: 5, offset: 13353}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 528, col: 5, offset: 13303}, + pos: position{line: 529, col: 5, offset: 13353}, name: "CASE", }, &ruleRefExpr{ - pos: position{line: 528, col: 10, offset: 13308}, + pos: position{line: 529, col: 10, offset: 13358}, name: "_", }, &labeledExpr{ - pos: position{line: 528, col: 12, offset: 13310}, + pos: position{line: 529, col: 12, offset: 13360}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 528, col: 17, offset: 13315}, + pos: position{line: 529, col: 17, offset: 13365}, name: "Expr", }, }, @@ -3955,10 +3963,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 529, col: 5, offset: 13345}, + pos: position{line: 530, col: 5, offset: 13395}, run: (*parser).callonCase8, expr: &ruleRefExpr{ - pos: position{line: 529, col: 5, offset: 13345}, + pos: position{line: 530, col: 5, offset: 13395}, name: "DEFAULT", }, }, @@ -3969,40 +3977,40 @@ var g = &grammar{ }, { name: "SearchOp", - pos: position{line: 531, col: 1, offset: 13374}, + pos: position{line: 532, col: 1, offset: 13424}, expr: &actionExpr{ - pos: position{line: 532, col: 5, offset: 13387}, + pos: position{line: 533, col: 5, offset: 13437}, run: (*parser).callonSearchOp1, expr: &seqExpr{ - pos: position{line: 532, col: 5, offset: 13387}, + pos: position{line: 533, col: 5, offset: 13437}, exprs: []any{ &choiceExpr{ - pos: position{line: 532, col: 6, offset: 13388}, + pos: position{line: 533, col: 6, offset: 13438}, alternatives: []any{ &seqExpr{ - pos: position{line: 532, col: 6, offset: 13388}, + pos: position{line: 533, col: 6, offset: 13438}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 532, col: 6, offset: 13388}, + pos: position{line: 533, col: 6, offset: 13438}, name: "SEARCH", }, &ruleRefExpr{ - pos: position{line: 532, col: 13, offset: 13395}, + pos: position{line: 533, col: 13, offset: 13445}, name: "_", }, }, }, &seqExpr{ - pos: position{line: 532, col: 17, offset: 13399}, + pos: position{line: 533, col: 17, offset: 13449}, exprs: []any{ &litMatcher{ - pos: position{line: 532, col: 17, offset: 13399}, + pos: position{line: 533, col: 17, offset: 13449}, val: "?", ignoreCase: false, want: "\"?\"", }, &ruleRefExpr{ - pos: position{line: 532, col: 21, offset: 13403}, + pos: position{line: 533, col: 21, offset: 13453}, name: "__", }, }, @@ -4010,10 +4018,10 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 532, col: 25, offset: 13407}, + pos: position{line: 533, col: 25, offset: 13457}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 532, col: 30, offset: 13412}, + pos: position{line: 533, col: 30, offset: 13462}, name: "SearchBoolean", }, }, @@ -4025,32 +4033,32 @@ var g = &grammar{ }, { name: "AssertOp", - pos: position{line: 536, col: 1, offset: 13516}, + pos: position{line: 537, col: 1, offset: 13566}, expr: &actionExpr{ - pos: position{line: 537, col: 5, offset: 13529}, + pos: position{line: 538, col: 5, offset: 13579}, run: (*parser).callonAssertOp1, expr: &seqExpr{ - pos: position{line: 537, col: 5, offset: 13529}, + pos: position{line: 538, col: 5, offset: 13579}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 537, col: 5, offset: 13529}, + pos: position{line: 538, col: 5, offset: 13579}, name: "ASSERT", }, &ruleRefExpr{ - pos: position{line: 537, col: 12, offset: 13536}, + pos: position{line: 538, col: 12, offset: 13586}, name: "_", }, &labeledExpr{ - pos: position{line: 537, col: 14, offset: 13538}, + pos: position{line: 538, col: 14, offset: 13588}, label: "expr", expr: &actionExpr{ - pos: position{line: 537, col: 20, offset: 13544}, + pos: position{line: 538, col: 20, offset: 13594}, run: (*parser).callonAssertOp6, expr: &labeledExpr{ - pos: position{line: 537, col: 20, offset: 13544}, + pos: position{line: 538, col: 20, offset: 13594}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 537, col: 22, offset: 13546}, + pos: position{line: 538, col: 22, offset: 13596}, name: "Expr", }, }, @@ -4064,33 +4072,33 @@ var g = &grammar{ }, { name: "SortOp", - pos: position{line: 546, col: 1, offset: 13780}, + pos: position{line: 547, col: 1, offset: 13830}, expr: &actionExpr{ - pos: position{line: 547, col: 5, offset: 13791}, + pos: position{line: 548, col: 5, offset: 13841}, run: (*parser).callonSortOp1, expr: &seqExpr{ - pos: position{line: 547, col: 5, offset: 13791}, + pos: position{line: 548, col: 5, offset: 13841}, exprs: []any{ &choiceExpr{ - pos: position{line: 547, col: 6, offset: 13792}, + pos: position{line: 548, col: 6, offset: 13842}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 547, col: 6, offset: 13792}, + pos: position{line: 548, col: 6, offset: 13842}, name: "SORT", }, &seqExpr{ - pos: position{line: 547, col: 13, offset: 13799}, + pos: position{line: 548, col: 13, offset: 13849}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 547, col: 13, offset: 13799}, + pos: position{line: 548, col: 13, offset: 13849}, name: "ORDER", }, &ruleRefExpr{ - pos: position{line: 547, col: 19, offset: 13805}, + pos: position{line: 548, col: 19, offset: 13855}, name: "_", }, &ruleRefExpr{ - pos: position{line: 547, col: 21, offset: 13807}, + pos: position{line: 548, col: 21, offset: 13857}, name: "BY", }, }, @@ -4098,33 +4106,33 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 547, col: 25, offset: 13811}, + pos: position{line: 548, col: 25, offset: 13861}, label: "args", expr: &ruleRefExpr{ - pos: position{line: 547, col: 30, offset: 13816}, + pos: position{line: 548, col: 30, offset: 13866}, name: "SortArgs", }, }, &labeledExpr{ - pos: position{line: 547, col: 39, offset: 13825}, + pos: position{line: 548, col: 39, offset: 13875}, label: "exprs", expr: &zeroOrOneExpr{ - pos: position{line: 547, col: 45, offset: 13831}, + pos: position{line: 548, col: 45, offset: 13881}, expr: &actionExpr{ - pos: position{line: 547, col: 46, offset: 13832}, + pos: position{line: 548, col: 46, offset: 13882}, run: (*parser).callonSortOp13, expr: &seqExpr{ - pos: position{line: 547, col: 46, offset: 13832}, + pos: position{line: 548, col: 46, offset: 13882}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 547, col: 46, offset: 13832}, + pos: position{line: 548, col: 46, offset: 13882}, name: "__", }, &labeledExpr{ - pos: position{line: 547, col: 49, offset: 13835}, + pos: position{line: 548, col: 49, offset: 13885}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 547, col: 51, offset: 13837}, + pos: position{line: 548, col: 51, offset: 13887}, name: "OrderByList", }, }, @@ -4141,30 +4149,30 @@ var g = &grammar{ }, { name: "SortArgs", - pos: position{line: 562, col: 1, offset: 14151}, + pos: position{line: 563, col: 1, offset: 14201}, expr: &actionExpr{ - pos: position{line: 562, col: 12, offset: 14162}, + pos: position{line: 563, col: 12, offset: 14212}, run: (*parser).callonSortArgs1, expr: &labeledExpr{ - pos: position{line: 562, col: 12, offset: 14162}, + pos: position{line: 563, col: 12, offset: 14212}, label: "args", expr: &zeroOrMoreExpr{ - pos: position{line: 562, col: 17, offset: 14167}, + pos: position{line: 563, col: 17, offset: 14217}, expr: &actionExpr{ - pos: position{line: 562, col: 18, offset: 14168}, + pos: position{line: 563, col: 18, offset: 14218}, run: (*parser).callonSortArgs4, expr: &seqExpr{ - pos: position{line: 562, col: 18, offset: 14168}, + pos: position{line: 563, col: 18, offset: 14218}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 562, col: 18, offset: 14168}, + pos: position{line: 563, col: 18, offset: 14218}, name: "_", }, &labeledExpr{ - pos: position{line: 562, col: 20, offset: 14170}, + pos: position{line: 563, col: 20, offset: 14220}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 562, col: 22, offset: 14172}, + pos: position{line: 563, col: 22, offset: 14222}, name: "SortArg", }, }, @@ -4179,12 +4187,12 @@ var g = &grammar{ }, { name: "SortArg", - pos: position{line: 564, col: 1, offset: 14229}, + pos: position{line: 565, col: 1, offset: 14279}, expr: &actionExpr{ - pos: position{line: 565, col: 5, offset: 14241}, + pos: position{line: 566, col: 5, offset: 14291}, run: (*parser).callonSortArg1, expr: &litMatcher{ - pos: position{line: 565, col: 5, offset: 14241}, + pos: position{line: 566, col: 5, offset: 14291}, val: "-r", ignoreCase: false, want: "\"-r\"", @@ -4195,45 +4203,45 @@ var g = &grammar{ }, { name: "TopOp", - pos: position{line: 567, col: 1, offset: 14305}, + pos: position{line: 568, col: 1, offset: 14355}, expr: &actionExpr{ - pos: position{line: 568, col: 5, offset: 14315}, + pos: position{line: 569, col: 5, offset: 14365}, run: (*parser).callonTopOp1, expr: &seqExpr{ - pos: position{line: 568, col: 5, offset: 14315}, + pos: position{line: 569, col: 5, offset: 14365}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 568, col: 5, offset: 14315}, + pos: position{line: 569, col: 5, offset: 14365}, name: "TOP", }, &labeledExpr{ - pos: position{line: 568, col: 9, offset: 14319}, + pos: position{line: 569, col: 9, offset: 14369}, label: "args", expr: &ruleRefExpr{ - pos: position{line: 568, col: 14, offset: 14324}, + pos: position{line: 569, col: 14, offset: 14374}, name: "SortArgs", }, }, &labeledExpr{ - pos: position{line: 568, col: 23, offset: 14333}, + pos: position{line: 569, col: 23, offset: 14383}, label: "limit", expr: &zeroOrOneExpr{ - pos: position{line: 568, col: 29, offset: 14339}, + pos: position{line: 569, col: 29, offset: 14389}, expr: &actionExpr{ - pos: position{line: 568, col: 30, offset: 14340}, + pos: position{line: 569, col: 30, offset: 14390}, run: (*parser).callonTopOp8, expr: &seqExpr{ - pos: position{line: 568, col: 30, offset: 14340}, + pos: position{line: 569, col: 30, offset: 14390}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 568, col: 30, offset: 14340}, + pos: position{line: 569, col: 30, offset: 14390}, name: "_", }, &labeledExpr{ - pos: position{line: 568, col: 32, offset: 14342}, + pos: position{line: 569, col: 32, offset: 14392}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 568, col: 34, offset: 14344}, + pos: position{line: 569, col: 34, offset: 14394}, name: "Expr", }, }, @@ -4243,25 +4251,25 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 568, col: 59, offset: 14369}, + pos: position{line: 569, col: 59, offset: 14419}, label: "exprs", expr: &zeroOrOneExpr{ - pos: position{line: 568, col: 65, offset: 14375}, + pos: position{line: 569, col: 65, offset: 14425}, expr: &actionExpr{ - pos: position{line: 568, col: 66, offset: 14376}, + pos: position{line: 569, col: 66, offset: 14426}, run: (*parser).callonTopOp15, expr: &seqExpr{ - pos: position{line: 568, col: 66, offset: 14376}, + pos: position{line: 569, col: 66, offset: 14426}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 568, col: 66, offset: 14376}, + pos: position{line: 569, col: 66, offset: 14426}, name: "_", }, &labeledExpr{ - pos: position{line: 568, col: 68, offset: 14378}, + pos: position{line: 569, col: 68, offset: 14428}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 568, col: 70, offset: 14380}, + pos: position{line: 569, col: 70, offset: 14430}, name: "OrderByList", }, }, @@ -4278,49 +4286,49 @@ var g = &grammar{ }, { name: "CallOp", - pos: position{line: 586, col: 1, offset: 14764}, + pos: position{line: 587, col: 1, offset: 14814}, expr: &actionExpr{ - pos: position{line: 587, col: 5, offset: 14775}, + pos: position{line: 588, col: 5, offset: 14825}, run: (*parser).callonCallOp1, expr: &seqExpr{ - pos: position{line: 587, col: 5, offset: 14775}, + pos: position{line: 588, col: 5, offset: 14825}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 587, col: 5, offset: 14775}, + pos: position{line: 588, col: 5, offset: 14825}, name: "CALL", }, &ruleRefExpr{ - pos: position{line: 587, col: 10, offset: 14780}, + pos: position{line: 588, col: 10, offset: 14830}, name: "_", }, &labeledExpr{ - pos: position{line: 587, col: 12, offset: 14782}, + pos: position{line: 588, col: 12, offset: 14832}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 587, col: 17, offset: 14787}, + pos: position{line: 588, col: 17, offset: 14837}, name: "Identifier", }, }, &labeledExpr{ - pos: position{line: 587, col: 28, offset: 14798}, + pos: position{line: 588, col: 28, offset: 14848}, label: "args", expr: &zeroOrOneExpr{ - pos: position{line: 587, col: 33, offset: 14803}, + pos: position{line: 588, col: 33, offset: 14853}, expr: &actionExpr{ - pos: position{line: 587, col: 34, offset: 14804}, + pos: position{line: 588, col: 34, offset: 14854}, run: (*parser).callonCallOp9, expr: &seqExpr{ - pos: position{line: 587, col: 35, offset: 14805}, + pos: position{line: 588, col: 35, offset: 14855}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 587, col: 35, offset: 14805}, + pos: position{line: 588, col: 35, offset: 14855}, name: "_", }, &labeledExpr{ - pos: position{line: 587, col: 37, offset: 14807}, + pos: position{line: 588, col: 37, offset: 14857}, label: "args", expr: &ruleRefExpr{ - pos: position{line: 587, col: 42, offset: 14812}, + pos: position{line: 588, col: 42, offset: 14862}, name: "FuncOrExprs", }, }, @@ -4337,29 +4345,29 @@ var g = &grammar{ }, { name: "CountOp", - pos: position{line: 596, col: 1, offset: 15010}, + pos: position{line: 597, col: 1, offset: 15060}, expr: &choiceExpr{ - pos: position{line: 597, col: 5, offset: 15022}, + pos: position{line: 598, col: 5, offset: 15072}, alternatives: []any{ &actionExpr{ - pos: position{line: 597, col: 5, offset: 15022}, + pos: position{line: 598, col: 5, offset: 15072}, run: (*parser).callonCountOp2, expr: &seqExpr{ - pos: position{line: 597, col: 5, offset: 15022}, + pos: position{line: 598, col: 5, offset: 15072}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 597, col: 5, offset: 15022}, + pos: position{line: 598, col: 5, offset: 15072}, name: "COUNT", }, &ruleRefExpr{ - pos: position{line: 597, col: 11, offset: 15028}, + pos: position{line: 598, col: 11, offset: 15078}, name: "_", }, &labeledExpr{ - pos: position{line: 597, col: 13, offset: 15030}, + pos: position{line: 598, col: 13, offset: 15080}, label: "rec", expr: &ruleRefExpr{ - pos: position{line: 597, col: 17, offset: 15034}, + pos: position{line: 598, col: 17, offset: 15084}, name: "Record", }, }, @@ -4367,19 +4375,19 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 604, col: 5, offset: 15176}, + pos: position{line: 605, col: 5, offset: 15226}, run: (*parser).callonCountOp8, expr: &seqExpr{ - pos: position{line: 604, col: 5, offset: 15176}, + pos: position{line: 605, col: 5, offset: 15226}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 604, col: 5, offset: 15176}, + pos: position{line: 605, col: 5, offset: 15226}, name: "COUNT", }, &andExpr{ - pos: position{line: 604, col: 11, offset: 15182}, + pos: position{line: 605, col: 11, offset: 15232}, expr: &ruleRefExpr{ - pos: position{line: 604, col: 12, offset: 15183}, + pos: position{line: 605, col: 12, offset: 15233}, name: "EndOfOp", }, }, @@ -4393,26 +4401,26 @@ var g = &grammar{ }, { name: "CutOp", - pos: position{line: 611, col: 1, offset: 15286}, + pos: position{line: 612, col: 1, offset: 15336}, expr: &actionExpr{ - pos: position{line: 612, col: 5, offset: 15296}, + pos: position{line: 613, col: 5, offset: 15346}, run: (*parser).callonCutOp1, expr: &seqExpr{ - pos: position{line: 612, col: 5, offset: 15296}, + pos: position{line: 613, col: 5, offset: 15346}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 612, col: 5, offset: 15296}, + pos: position{line: 613, col: 5, offset: 15346}, name: "CUT", }, &ruleRefExpr{ - pos: position{line: 612, col: 9, offset: 15300}, + pos: position{line: 613, col: 9, offset: 15350}, name: "_", }, &labeledExpr{ - pos: position{line: 612, col: 11, offset: 15302}, + pos: position{line: 613, col: 11, offset: 15352}, label: "args", expr: &ruleRefExpr{ - pos: position{line: 612, col: 16, offset: 15307}, + pos: position{line: 613, col: 16, offset: 15357}, name: "Assignments", }, }, @@ -4424,26 +4432,26 @@ var g = &grammar{ }, { name: "DistinctOp", - pos: position{line: 620, col: 1, offset: 15455}, + pos: position{line: 621, col: 1, offset: 15505}, expr: &actionExpr{ - pos: position{line: 621, col: 5, offset: 15470}, + pos: position{line: 622, col: 5, offset: 15520}, run: (*parser).callonDistinctOp1, expr: &seqExpr{ - pos: position{line: 621, col: 5, offset: 15470}, + pos: position{line: 622, col: 5, offset: 15520}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 621, col: 5, offset: 15470}, + pos: position{line: 622, col: 5, offset: 15520}, name: "DISTINCT", }, &ruleRefExpr{ - pos: position{line: 621, col: 14, offset: 15479}, + pos: position{line: 622, col: 14, offset: 15529}, name: "_", }, &labeledExpr{ - pos: position{line: 621, col: 16, offset: 15481}, + pos: position{line: 622, col: 16, offset: 15531}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 621, col: 18, offset: 15483}, + pos: position{line: 622, col: 18, offset: 15533}, name: "Expr", }, }, @@ -4455,26 +4463,26 @@ var g = &grammar{ }, { name: "DropOp", - pos: position{line: 629, col: 1, offset: 15623}, + pos: position{line: 630, col: 1, offset: 15673}, expr: &actionExpr{ - pos: position{line: 630, col: 5, offset: 15634}, + pos: position{line: 631, col: 5, offset: 15684}, run: (*parser).callonDropOp1, expr: &seqExpr{ - pos: position{line: 630, col: 5, offset: 15634}, + pos: position{line: 631, col: 5, offset: 15684}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 630, col: 5, offset: 15634}, + pos: position{line: 631, col: 5, offset: 15684}, name: "DROP", }, &ruleRefExpr{ - pos: position{line: 630, col: 10, offset: 15639}, + pos: position{line: 631, col: 10, offset: 15689}, name: "_", }, &labeledExpr{ - pos: position{line: 630, col: 12, offset: 15641}, + pos: position{line: 631, col: 12, offset: 15691}, label: "args", expr: &ruleRefExpr{ - pos: position{line: 630, col: 17, offset: 15646}, + pos: position{line: 631, col: 17, offset: 15696}, name: "Lvals", }, }, @@ -4486,38 +4494,38 @@ var g = &grammar{ }, { name: "HeadOp", - pos: position{line: 638, col: 1, offset: 15790}, + pos: position{line: 639, col: 1, offset: 15840}, expr: &choiceExpr{ - pos: position{line: 639, col: 5, offset: 15801}, + pos: position{line: 640, col: 5, offset: 15851}, alternatives: []any{ &actionExpr{ - pos: position{line: 639, col: 5, offset: 15801}, + pos: position{line: 640, col: 5, offset: 15851}, run: (*parser).callonHeadOp2, expr: &seqExpr{ - pos: position{line: 639, col: 5, offset: 15801}, + pos: position{line: 640, col: 5, offset: 15851}, exprs: []any{ &choiceExpr{ - pos: position{line: 639, col: 6, offset: 15802}, + pos: position{line: 640, col: 6, offset: 15852}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 639, col: 6, offset: 15802}, + pos: position{line: 640, col: 6, offset: 15852}, name: "HEAD", }, &ruleRefExpr{ - pos: position{line: 639, col: 13, offset: 15809}, + pos: position{line: 640, col: 13, offset: 15859}, name: "LIMIT", }, }, }, &ruleRefExpr{ - pos: position{line: 639, col: 20, offset: 15816}, + pos: position{line: 640, col: 20, offset: 15866}, name: "_", }, &labeledExpr{ - pos: position{line: 639, col: 22, offset: 15818}, + pos: position{line: 640, col: 22, offset: 15868}, label: "count", expr: &ruleRefExpr{ - pos: position{line: 639, col: 28, offset: 15824}, + pos: position{line: 640, col: 28, offset: 15874}, name: "Expr", }, }, @@ -4525,19 +4533,19 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 646, col: 5, offset: 15958}, + pos: position{line: 647, col: 5, offset: 16008}, run: (*parser).callonHeadOp10, expr: &seqExpr{ - pos: position{line: 646, col: 5, offset: 15958}, + pos: position{line: 647, col: 5, offset: 16008}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 646, col: 5, offset: 15958}, + pos: position{line: 647, col: 5, offset: 16008}, name: "HEAD", }, &andExpr{ - pos: position{line: 646, col: 10, offset: 15963}, + pos: position{line: 647, col: 10, offset: 16013}, expr: &ruleRefExpr{ - pos: position{line: 646, col: 11, offset: 15964}, + pos: position{line: 647, col: 11, offset: 16014}, name: "EndOfOp", }, }, @@ -4551,29 +4559,29 @@ var g = &grammar{ }, { name: "TailOp", - pos: position{line: 653, col: 1, offset: 16065}, + pos: position{line: 654, col: 1, offset: 16115}, expr: &choiceExpr{ - pos: position{line: 654, col: 5, offset: 16076}, + pos: position{line: 655, col: 5, offset: 16126}, alternatives: []any{ &actionExpr{ - pos: position{line: 654, col: 5, offset: 16076}, + pos: position{line: 655, col: 5, offset: 16126}, run: (*parser).callonTailOp2, expr: &seqExpr{ - pos: position{line: 654, col: 5, offset: 16076}, + pos: position{line: 655, col: 5, offset: 16126}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 654, col: 5, offset: 16076}, + pos: position{line: 655, col: 5, offset: 16126}, name: "TAIL", }, &ruleRefExpr{ - pos: position{line: 654, col: 10, offset: 16081}, + pos: position{line: 655, col: 10, offset: 16131}, name: "_", }, &labeledExpr{ - pos: position{line: 654, col: 12, offset: 16083}, + pos: position{line: 655, col: 12, offset: 16133}, label: "count", expr: &ruleRefExpr{ - pos: position{line: 654, col: 18, offset: 16089}, + pos: position{line: 655, col: 18, offset: 16139}, name: "Expr", }, }, @@ -4581,19 +4589,19 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 661, col: 5, offset: 16223}, + pos: position{line: 662, col: 5, offset: 16273}, run: (*parser).callonTailOp8, expr: &seqExpr{ - pos: position{line: 661, col: 5, offset: 16223}, + pos: position{line: 662, col: 5, offset: 16273}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 661, col: 5, offset: 16223}, + pos: position{line: 662, col: 5, offset: 16273}, name: "TAIL", }, &andExpr{ - pos: position{line: 661, col: 10, offset: 16228}, + pos: position{line: 662, col: 10, offset: 16278}, expr: &ruleRefExpr{ - pos: position{line: 661, col: 11, offset: 16229}, + pos: position{line: 662, col: 11, offset: 16279}, name: "EndOfOp", }, }, @@ -4607,26 +4615,26 @@ var g = &grammar{ }, { name: "SkipOp", - pos: position{line: 668, col: 1, offset: 16330}, + pos: position{line: 669, col: 1, offset: 16380}, expr: &actionExpr{ - pos: position{line: 669, col: 5, offset: 16341}, + pos: position{line: 670, col: 5, offset: 16391}, run: (*parser).callonSkipOp1, expr: &seqExpr{ - pos: position{line: 669, col: 5, offset: 16341}, + pos: position{line: 670, col: 5, offset: 16391}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 669, col: 5, offset: 16341}, + pos: position{line: 670, col: 5, offset: 16391}, name: "SKIP", }, &ruleRefExpr{ - pos: position{line: 669, col: 10, offset: 16346}, + pos: position{line: 670, col: 10, offset: 16396}, name: "_", }, &labeledExpr{ - pos: position{line: 669, col: 12, offset: 16348}, + pos: position{line: 670, col: 12, offset: 16398}, label: "count", expr: &ruleRefExpr{ - pos: position{line: 669, col: 18, offset: 16354}, + pos: position{line: 670, col: 18, offset: 16404}, name: "Expr", }, }, @@ -4638,26 +4646,26 @@ var g = &grammar{ }, { name: "WhereOp", - pos: position{line: 677, col: 1, offset: 16485}, + pos: position{line: 678, col: 1, offset: 16535}, expr: &actionExpr{ - pos: position{line: 678, col: 5, offset: 16497}, + pos: position{line: 679, col: 5, offset: 16547}, run: (*parser).callonWhereOp1, expr: &seqExpr{ - pos: position{line: 678, col: 5, offset: 16497}, + pos: position{line: 679, col: 5, offset: 16547}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 678, col: 5, offset: 16497}, + pos: position{line: 679, col: 5, offset: 16547}, name: "WHERE", }, &ruleRefExpr{ - pos: position{line: 678, col: 11, offset: 16503}, + pos: position{line: 679, col: 11, offset: 16553}, name: "_", }, &labeledExpr{ - pos: position{line: 678, col: 13, offset: 16505}, + pos: position{line: 679, col: 13, offset: 16555}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 678, col: 18, offset: 16510}, + pos: position{line: 679, col: 18, offset: 16560}, name: "Expr", }, }, @@ -4669,26 +4677,26 @@ var g = &grammar{ }, { name: "UniqOp", - pos: position{line: 686, col: 1, offset: 16641}, + pos: position{line: 687, col: 1, offset: 16691}, expr: &choiceExpr{ - pos: position{line: 687, col: 5, offset: 16652}, + pos: position{line: 688, col: 5, offset: 16702}, alternatives: []any{ &actionExpr{ - pos: position{line: 687, col: 5, offset: 16652}, + pos: position{line: 688, col: 5, offset: 16702}, run: (*parser).callonUniqOp2, expr: &seqExpr{ - pos: position{line: 687, col: 5, offset: 16652}, + pos: position{line: 688, col: 5, offset: 16702}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 687, col: 5, offset: 16652}, + pos: position{line: 688, col: 5, offset: 16702}, name: "UNIQ", }, &ruleRefExpr{ - pos: position{line: 687, col: 10, offset: 16657}, + pos: position{line: 688, col: 10, offset: 16707}, name: "_", }, &litMatcher{ - pos: position{line: 687, col: 12, offset: 16659}, + pos: position{line: 688, col: 12, offset: 16709}, val: "-c", ignoreCase: false, want: "\"-c\"", @@ -4697,19 +4705,19 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 690, col: 5, offset: 16748}, + pos: position{line: 691, col: 5, offset: 16798}, run: (*parser).callonUniqOp7, expr: &seqExpr{ - pos: position{line: 690, col: 5, offset: 16748}, + pos: position{line: 691, col: 5, offset: 16798}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 690, col: 5, offset: 16748}, + pos: position{line: 691, col: 5, offset: 16798}, name: "UNIQ", }, &andExpr{ - pos: position{line: 690, col: 10, offset: 16753}, + pos: position{line: 691, col: 10, offset: 16803}, expr: &ruleRefExpr{ - pos: position{line: 690, col: 11, offset: 16754}, + pos: position{line: 691, col: 11, offset: 16804}, name: "EndOfOp", }, }, @@ -4723,26 +4731,26 @@ var g = &grammar{ }, { name: "PutOp", - pos: position{line: 694, col: 1, offset: 16830}, + pos: position{line: 695, col: 1, offset: 16880}, expr: &actionExpr{ - pos: position{line: 695, col: 5, offset: 16840}, + pos: position{line: 696, col: 5, offset: 16890}, run: (*parser).callonPutOp1, expr: &seqExpr{ - pos: position{line: 695, col: 5, offset: 16840}, + pos: position{line: 696, col: 5, offset: 16890}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 695, col: 5, offset: 16840}, + pos: position{line: 696, col: 5, offset: 16890}, name: "PUT", }, &ruleRefExpr{ - pos: position{line: 695, col: 9, offset: 16844}, + pos: position{line: 696, col: 9, offset: 16894}, name: "_", }, &labeledExpr{ - pos: position{line: 695, col: 11, offset: 16846}, + pos: position{line: 696, col: 11, offset: 16896}, label: "args", expr: &ruleRefExpr{ - pos: position{line: 695, col: 16, offset: 16851}, + pos: position{line: 696, col: 16, offset: 16901}, name: "Assignments", }, }, @@ -4754,59 +4762,59 @@ var g = &grammar{ }, { name: "RenameOp", - pos: position{line: 703, col: 1, offset: 17005}, + pos: position{line: 704, col: 1, offset: 17055}, expr: &actionExpr{ - pos: position{line: 704, col: 5, offset: 17018}, + pos: position{line: 705, col: 5, offset: 17068}, run: (*parser).callonRenameOp1, expr: &seqExpr{ - pos: position{line: 704, col: 5, offset: 17018}, + pos: position{line: 705, col: 5, offset: 17068}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 704, col: 5, offset: 17018}, + pos: position{line: 705, col: 5, offset: 17068}, name: "RENAME", }, &ruleRefExpr{ - pos: position{line: 704, col: 12, offset: 17025}, + pos: position{line: 705, col: 12, offset: 17075}, name: "_", }, &labeledExpr{ - pos: position{line: 704, col: 14, offset: 17027}, + pos: position{line: 705, col: 14, offset: 17077}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 704, col: 20, offset: 17033}, + pos: position{line: 705, col: 20, offset: 17083}, name: "Assignment", }, }, &labeledExpr{ - pos: position{line: 704, col: 31, offset: 17044}, + pos: position{line: 705, col: 31, offset: 17094}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 704, col: 36, offset: 17049}, + pos: position{line: 705, col: 36, offset: 17099}, expr: &actionExpr{ - pos: position{line: 704, col: 37, offset: 17050}, + pos: position{line: 705, col: 37, offset: 17100}, run: (*parser).callonRenameOp9, expr: &seqExpr{ - pos: position{line: 704, col: 37, offset: 17050}, + pos: position{line: 705, col: 37, offset: 17100}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 704, col: 37, offset: 17050}, + pos: position{line: 705, col: 37, offset: 17100}, name: "__", }, &litMatcher{ - pos: position{line: 704, col: 40, offset: 17053}, + pos: position{line: 705, col: 40, offset: 17103}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 704, col: 44, offset: 17057}, + pos: position{line: 705, col: 44, offset: 17107}, name: "__", }, &labeledExpr{ - pos: position{line: 704, col: 47, offset: 17060}, + pos: position{line: 705, col: 47, offset: 17110}, label: "cl", expr: &ruleRefExpr{ - pos: position{line: 704, col: 50, offset: 17063}, + pos: position{line: 705, col: 50, offset: 17113}, name: "Assignment", }, }, @@ -4823,24 +4831,24 @@ var g = &grammar{ }, { name: "FuseOp", - pos: position{line: 713, col: 1, offset: 17289}, + pos: position{line: 714, col: 1, offset: 17339}, expr: &choiceExpr{ - pos: position{line: 714, col: 5, offset: 17300}, + pos: position{line: 715, col: 5, offset: 17350}, alternatives: []any{ &actionExpr{ - pos: position{line: 714, col: 5, offset: 17300}, + pos: position{line: 715, col: 5, offset: 17350}, run: (*parser).callonFuseOp2, expr: &seqExpr{ - pos: position{line: 714, col: 5, offset: 17300}, + pos: position{line: 715, col: 5, offset: 17350}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 714, col: 5, offset: 17300}, + pos: position{line: 715, col: 5, offset: 17350}, name: "FUSE", }, &andExpr{ - pos: position{line: 714, col: 10, offset: 17305}, + pos: position{line: 715, col: 10, offset: 17355}, expr: &ruleRefExpr{ - pos: position{line: 714, col: 11, offset: 17306}, + pos: position{line: 715, col: 11, offset: 17356}, name: "EndOfOp", }, }, @@ -4848,19 +4856,19 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 717, col: 5, offset: 17385}, + pos: position{line: 718, col: 5, offset: 17435}, run: (*parser).callonFuseOp7, expr: &seqExpr{ - pos: position{line: 717, col: 5, offset: 17385}, + pos: position{line: 718, col: 5, offset: 17435}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 717, col: 5, offset: 17385}, + pos: position{line: 718, col: 5, offset: 17435}, name: "SUPERFUSE", }, &andExpr{ - pos: position{line: 717, col: 15, offset: 17395}, + pos: position{line: 718, col: 15, offset: 17445}, expr: &ruleRefExpr{ - pos: position{line: 717, col: 16, offset: 17396}, + pos: position{line: 718, col: 16, offset: 17446}, name: "EndOfOp", }, }, @@ -4874,41 +4882,41 @@ var g = &grammar{ }, { name: "JoinOp", - pos: position{line: 721, col: 1, offset: 17488}, + pos: position{line: 722, col: 1, offset: 17538}, expr: &choiceExpr{ - pos: position{line: 722, col: 5, offset: 17499}, + pos: position{line: 723, col: 5, offset: 17549}, alternatives: []any{ &actionExpr{ - pos: position{line: 722, col: 5, offset: 17499}, + pos: position{line: 723, col: 5, offset: 17549}, run: (*parser).callonJoinOp2, expr: &seqExpr{ - pos: position{line: 722, col: 5, offset: 17499}, + pos: position{line: 723, col: 5, offset: 17549}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 722, col: 5, offset: 17499}, + pos: position{line: 723, col: 5, offset: 17549}, name: "CROSS", }, &ruleRefExpr{ - pos: position{line: 722, col: 11, offset: 17505}, + pos: position{line: 723, col: 11, offset: 17555}, name: "_", }, &ruleRefExpr{ - pos: position{line: 722, col: 13, offset: 17507}, + pos: position{line: 723, col: 13, offset: 17557}, name: "JOIN", }, &labeledExpr{ - pos: position{line: 722, col: 18, offset: 17512}, + pos: position{line: 723, col: 18, offset: 17562}, label: "rightInput", expr: &ruleRefExpr{ - pos: position{line: 722, col: 29, offset: 17523}, + pos: position{line: 723, col: 29, offset: 17573}, name: "JoinRightInput", }, }, &labeledExpr{ - pos: position{line: 722, col: 44, offset: 17538}, + pos: position{line: 723, col: 44, offset: 17588}, label: "alias", expr: &ruleRefExpr{ - pos: position{line: 722, col: 50, offset: 17544}, + pos: position{line: 723, col: 50, offset: 17594}, name: "OptJoinAlias", }, }, @@ -4916,48 +4924,48 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 736, col: 5, offset: 17851}, + pos: position{line: 737, col: 5, offset: 17901}, run: (*parser).callonJoinOp11, expr: &seqExpr{ - pos: position{line: 736, col: 5, offset: 17851}, + pos: position{line: 737, col: 5, offset: 17901}, exprs: []any{ &labeledExpr{ - pos: position{line: 736, col: 5, offset: 17851}, + pos: position{line: 737, col: 5, offset: 17901}, label: "style", expr: &ruleRefExpr{ - pos: position{line: 736, col: 11, offset: 17857}, + pos: position{line: 737, col: 11, offset: 17907}, name: "JoinStyle", }, }, &ruleRefExpr{ - pos: position{line: 736, col: 21, offset: 17867}, + pos: position{line: 737, col: 21, offset: 17917}, name: "JOIN", }, &labeledExpr{ - pos: position{line: 736, col: 26, offset: 17872}, + pos: position{line: 737, col: 26, offset: 17922}, label: "rightInput", expr: &ruleRefExpr{ - pos: position{line: 736, col: 37, offset: 17883}, + pos: position{line: 737, col: 37, offset: 17933}, name: "JoinRightInput", }, }, &labeledExpr{ - pos: position{line: 736, col: 52, offset: 17898}, + pos: position{line: 737, col: 52, offset: 17948}, label: "alias", expr: &ruleRefExpr{ - pos: position{line: 736, col: 58, offset: 17904}, + pos: position{line: 737, col: 58, offset: 17954}, name: "OptJoinAlias", }, }, &ruleRefExpr{ - pos: position{line: 736, col: 71, offset: 17917}, + pos: position{line: 737, col: 71, offset: 17967}, name: "_", }, &labeledExpr{ - pos: position{line: 736, col: 73, offset: 17919}, + pos: position{line: 737, col: 73, offset: 17969}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 736, col: 75, offset: 17921}, + pos: position{line: 737, col: 75, offset: 17971}, name: "JoinCond", }, }, @@ -4971,83 +4979,83 @@ var g = &grammar{ }, { name: "JoinStyle", - pos: position{line: 752, col: 1, offset: 18260}, + pos: position{line: 753, col: 1, offset: 18310}, expr: &choiceExpr{ - pos: position{line: 753, col: 5, offset: 18274}, + pos: position{line: 754, col: 5, offset: 18324}, alternatives: []any{ &actionExpr{ - pos: position{line: 753, col: 5, offset: 18274}, + pos: position{line: 754, col: 5, offset: 18324}, run: (*parser).callonJoinStyle2, expr: &seqExpr{ - pos: position{line: 753, col: 5, offset: 18274}, + pos: position{line: 754, col: 5, offset: 18324}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 753, col: 5, offset: 18274}, + pos: position{line: 754, col: 5, offset: 18324}, name: "ANTI", }, &ruleRefExpr{ - pos: position{line: 753, col: 10, offset: 18279}, + pos: position{line: 754, col: 10, offset: 18329}, name: "_", }, }, }, }, &actionExpr{ - pos: position{line: 754, col: 5, offset: 18309}, + pos: position{line: 755, col: 5, offset: 18359}, run: (*parser).callonJoinStyle6, expr: &seqExpr{ - pos: position{line: 754, col: 5, offset: 18309}, + pos: position{line: 755, col: 5, offset: 18359}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 754, col: 5, offset: 18309}, + pos: position{line: 755, col: 5, offset: 18359}, name: "INNER", }, &ruleRefExpr{ - pos: position{line: 754, col: 11, offset: 18315}, + pos: position{line: 755, col: 11, offset: 18365}, name: "_", }, }, }, }, &actionExpr{ - pos: position{line: 755, col: 5, offset: 18345}, + pos: position{line: 756, col: 5, offset: 18395}, run: (*parser).callonJoinStyle10, expr: &seqExpr{ - pos: position{line: 755, col: 5, offset: 18345}, + pos: position{line: 756, col: 5, offset: 18395}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 755, col: 5, offset: 18345}, + pos: position{line: 756, col: 5, offset: 18395}, name: "LEFT", }, &ruleRefExpr{ - pos: position{line: 755, col: 11, offset: 18351}, + pos: position{line: 756, col: 11, offset: 18401}, name: "_", }, }, }, }, &actionExpr{ - pos: position{line: 756, col: 5, offset: 18380}, + pos: position{line: 757, col: 5, offset: 18430}, run: (*parser).callonJoinStyle14, expr: &seqExpr{ - pos: position{line: 756, col: 5, offset: 18380}, + pos: position{line: 757, col: 5, offset: 18430}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 756, col: 5, offset: 18380}, + pos: position{line: 757, col: 5, offset: 18430}, name: "RIGHT", }, &ruleRefExpr{ - pos: position{line: 756, col: 11, offset: 18386}, + pos: position{line: 757, col: 11, offset: 18436}, name: "_", }, }, }, }, &actionExpr{ - pos: position{line: 757, col: 5, offset: 18416}, + pos: position{line: 758, col: 5, offset: 18466}, run: (*parser).callonJoinStyle18, expr: &litMatcher{ - pos: position{line: 757, col: 5, offset: 18416}, + pos: position{line: 758, col: 5, offset: 18466}, val: "", ignoreCase: false, want: "\"\"", @@ -5060,33 +5068,33 @@ var g = &grammar{ }, { name: "OptJoinAlias", - pos: position{line: 759, col: 1, offset: 18444}, + pos: position{line: 760, col: 1, offset: 18494}, expr: &choiceExpr{ - pos: position{line: 760, col: 5, offset: 18461}, + pos: position{line: 761, col: 5, offset: 18511}, alternatives: []any{ &actionExpr{ - pos: position{line: 760, col: 5, offset: 18461}, + pos: position{line: 761, col: 5, offset: 18511}, run: (*parser).callonOptJoinAlias2, expr: &seqExpr{ - pos: position{line: 760, col: 5, offset: 18461}, + pos: position{line: 761, col: 5, offset: 18511}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 760, col: 5, offset: 18461}, + pos: position{line: 761, col: 5, offset: 18511}, name: "_", }, &ruleRefExpr{ - pos: position{line: 760, col: 7, offset: 18463}, + pos: position{line: 761, col: 7, offset: 18513}, name: "AS", }, &ruleRefExpr{ - pos: position{line: 760, col: 10, offset: 18466}, + pos: position{line: 761, col: 10, offset: 18516}, name: "_", }, &labeledExpr{ - pos: position{line: 760, col: 12, offset: 18468}, + pos: position{line: 761, col: 12, offset: 18518}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 760, col: 14, offset: 18470}, + pos: position{line: 761, col: 14, offset: 18520}, name: "JoinAlias", }, }, @@ -5094,10 +5102,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 761, col: 5, offset: 18502}, + pos: position{line: 762, col: 5, offset: 18552}, run: (*parser).callonOptJoinAlias9, expr: &litMatcher{ - pos: position{line: 761, col: 5, offset: 18502}, + pos: position{line: 762, col: 5, offset: 18552}, val: "", ignoreCase: false, want: "\"\"", @@ -5110,59 +5118,59 @@ var g = &grammar{ }, { name: "JoinAlias", - pos: position{line: 763, col: 1, offset: 18526}, + pos: position{line: 764, col: 1, offset: 18576}, expr: &actionExpr{ - pos: position{line: 764, col: 5, offset: 18540}, + pos: position{line: 765, col: 5, offset: 18590}, run: (*parser).callonJoinAlias1, expr: &seqExpr{ - pos: position{line: 764, col: 5, offset: 18540}, + pos: position{line: 765, col: 5, offset: 18590}, exprs: []any{ &litMatcher{ - pos: position{line: 764, col: 5, offset: 18540}, + pos: position{line: 765, col: 5, offset: 18590}, val: "{", ignoreCase: false, want: "\"{\"", }, &ruleRefExpr{ - pos: position{line: 764, col: 9, offset: 18544}, + pos: position{line: 765, col: 9, offset: 18594}, name: "__", }, &labeledExpr{ - pos: position{line: 764, col: 12, offset: 18547}, + pos: position{line: 765, col: 12, offset: 18597}, label: "left", expr: &ruleRefExpr{ - pos: position{line: 764, col: 17, offset: 18552}, + pos: position{line: 765, col: 17, offset: 18602}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 764, col: 28, offset: 18563}, + pos: position{line: 765, col: 28, offset: 18613}, name: "__", }, &litMatcher{ - pos: position{line: 764, col: 31, offset: 18566}, + pos: position{line: 765, col: 31, offset: 18616}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 764, col: 35, offset: 18570}, + pos: position{line: 765, col: 35, offset: 18620}, name: "__", }, &labeledExpr{ - pos: position{line: 764, col: 38, offset: 18573}, + pos: position{line: 765, col: 38, offset: 18623}, label: "right", expr: &ruleRefExpr{ - pos: position{line: 764, col: 44, offset: 18579}, + pos: position{line: 765, col: 44, offset: 18629}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 764, col: 55, offset: 18590}, + pos: position{line: 765, col: 55, offset: 18640}, name: "__", }, &litMatcher{ - pos: position{line: 764, col: 58, offset: 18593}, + pos: position{line: 765, col: 58, offset: 18643}, val: "}", ignoreCase: false, want: "\"}\"", @@ -5175,44 +5183,44 @@ var g = &grammar{ }, { name: "JoinRightInput", - pos: position{line: 772, col: 1, offset: 18731}, + pos: position{line: 773, col: 1, offset: 18781}, expr: &choiceExpr{ - pos: position{line: 773, col: 5, offset: 18750}, + pos: position{line: 774, col: 5, offset: 18800}, alternatives: []any{ &actionExpr{ - pos: position{line: 773, col: 5, offset: 18750}, + pos: position{line: 774, col: 5, offset: 18800}, run: (*parser).callonJoinRightInput2, expr: &seqExpr{ - pos: position{line: 773, col: 5, offset: 18750}, + pos: position{line: 774, col: 5, offset: 18800}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 773, col: 5, offset: 18750}, + pos: position{line: 774, col: 5, offset: 18800}, name: "__", }, &litMatcher{ - pos: position{line: 773, col: 8, offset: 18753}, + pos: position{line: 774, col: 8, offset: 18803}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 773, col: 12, offset: 18757}, + pos: position{line: 774, col: 12, offset: 18807}, name: "__", }, &labeledExpr{ - pos: position{line: 773, col: 15, offset: 18760}, + pos: position{line: 774, col: 15, offset: 18810}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 773, col: 17, offset: 18762}, + pos: position{line: 774, col: 17, offset: 18812}, name: "Seq", }, }, &ruleRefExpr{ - pos: position{line: 773, col: 21, offset: 18766}, + pos: position{line: 774, col: 21, offset: 18816}, name: "__", }, &litMatcher{ - pos: position{line: 773, col: 24, offset: 18769}, + pos: position{line: 774, col: 24, offset: 18819}, val: ")", ignoreCase: false, want: "\")\"", @@ -5221,10 +5229,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 774, col: 5, offset: 18795}, + pos: position{line: 775, col: 5, offset: 18845}, run: (*parser).callonJoinRightInput11, expr: &litMatcher{ - pos: position{line: 774, col: 5, offset: 18795}, + pos: position{line: 775, col: 5, offset: 18845}, val: "", ignoreCase: false, want: "\"\"", @@ -5237,37 +5245,37 @@ var g = &grammar{ }, { name: "ShapesOp", - pos: position{line: 776, col: 1, offset: 18819}, + pos: position{line: 777, col: 1, offset: 18869}, expr: &actionExpr{ - pos: position{line: 777, col: 5, offset: 18832}, + pos: position{line: 778, col: 5, offset: 18882}, run: (*parser).callonShapesOp1, expr: &seqExpr{ - pos: position{line: 777, col: 5, offset: 18832}, + pos: position{line: 778, col: 5, offset: 18882}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 777, col: 5, offset: 18832}, + pos: position{line: 778, col: 5, offset: 18882}, name: "SHAPES", }, &labeledExpr{ - pos: position{line: 777, col: 12, offset: 18839}, + pos: position{line: 778, col: 12, offset: 18889}, label: "expr", expr: &zeroOrOneExpr{ - pos: position{line: 777, col: 17, offset: 18844}, + pos: position{line: 778, col: 17, offset: 18894}, expr: &actionExpr{ - pos: position{line: 777, col: 18, offset: 18845}, + pos: position{line: 778, col: 18, offset: 18895}, run: (*parser).callonShapesOp6, expr: &seqExpr{ - pos: position{line: 777, col: 18, offset: 18845}, + pos: position{line: 778, col: 18, offset: 18895}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 777, col: 18, offset: 18845}, + pos: position{line: 778, col: 18, offset: 18895}, name: "_", }, &labeledExpr{ - pos: position{line: 777, col: 20, offset: 18847}, + pos: position{line: 778, col: 20, offset: 18897}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 777, col: 22, offset: 18849}, + pos: position{line: 778, col: 22, offset: 18899}, name: "Lval", }, }, @@ -5284,28 +5292,28 @@ var g = &grammar{ }, { name: "AssignmentOp", - pos: position{line: 790, col: 1, offset: 19292}, + pos: position{line: 791, col: 1, offset: 19342}, expr: &actionExpr{ - pos: position{line: 791, col: 5, offset: 19309}, + pos: position{line: 792, col: 5, offset: 19359}, run: (*parser).callonAssignmentOp1, expr: &seqExpr{ - pos: position{line: 791, col: 5, offset: 19309}, + pos: position{line: 792, col: 5, offset: 19359}, exprs: []any{ &andExpr{ - pos: position{line: 791, col: 5, offset: 19309}, + pos: position{line: 792, col: 5, offset: 19359}, expr: &seqExpr{ - pos: position{line: 791, col: 7, offset: 19311}, + pos: position{line: 792, col: 7, offset: 19361}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 791, col: 7, offset: 19311}, + pos: position{line: 792, col: 7, offset: 19361}, name: "Lval", }, &ruleRefExpr{ - pos: position{line: 791, col: 12, offset: 19316}, + pos: position{line: 792, col: 12, offset: 19366}, name: "__", }, &litMatcher{ - pos: position{line: 791, col: 15, offset: 19319}, + pos: position{line: 792, col: 15, offset: 19369}, val: ":=", ignoreCase: false, want: "\":=\"", @@ -5314,10 +5322,10 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 791, col: 21, offset: 19325}, + pos: position{line: 792, col: 21, offset: 19375}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 791, col: 23, offset: 19327}, + pos: position{line: 792, col: 23, offset: 19377}, name: "Assignments", }, }, @@ -5329,36 +5337,36 @@ var g = &grammar{ }, { name: "LoadOp", - pos: position{line: 799, col: 1, offset: 19499}, + pos: position{line: 800, col: 1, offset: 19549}, expr: &actionExpr{ - pos: position{line: 800, col: 5, offset: 19510}, + pos: position{line: 801, col: 5, offset: 19560}, run: (*parser).callonLoadOp1, expr: &seqExpr{ - pos: position{line: 800, col: 5, offset: 19510}, + pos: position{line: 801, col: 5, offset: 19560}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 800, col: 5, offset: 19510}, + pos: position{line: 801, col: 5, offset: 19560}, name: "LOAD", }, &ruleRefExpr{ - pos: position{line: 800, col: 10, offset: 19515}, + pos: position{line: 801, col: 10, offset: 19565}, name: "_", }, &labeledExpr{ - pos: position{line: 800, col: 12, offset: 19517}, + pos: position{line: 801, col: 12, offset: 19567}, label: "table", expr: &ruleRefExpr{ - pos: position{line: 800, col: 18, offset: 19523}, + pos: position{line: 801, col: 18, offset: 19573}, name: "Text", }, }, &labeledExpr{ - pos: position{line: 800, col: 23, offset: 19528}, + pos: position{line: 801, col: 23, offset: 19578}, label: "args", expr: &zeroOrOneExpr{ - pos: position{line: 800, col: 28, offset: 19533}, + pos: position{line: 801, col: 28, offset: 19583}, expr: &ruleRefExpr{ - pos: position{line: 800, col: 28, offset: 19533}, + pos: position{line: 801, col: 28, offset: 19583}, name: "CommittishOpArgs", }, }, @@ -5371,26 +5379,26 @@ var g = &grammar{ }, { name: "OutputOp", - pos: position{line: 809, col: 1, offset: 19718}, + pos: position{line: 810, col: 1, offset: 19768}, expr: &actionExpr{ - pos: position{line: 810, col: 5, offset: 19731}, + pos: position{line: 811, col: 5, offset: 19781}, run: (*parser).callonOutputOp1, expr: &seqExpr{ - pos: position{line: 810, col: 5, offset: 19731}, + pos: position{line: 811, col: 5, offset: 19781}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 810, col: 5, offset: 19731}, + pos: position{line: 811, col: 5, offset: 19781}, name: "OUTPUT", }, &ruleRefExpr{ - pos: position{line: 810, col: 12, offset: 19738}, + pos: position{line: 811, col: 12, offset: 19788}, name: "_", }, &labeledExpr{ - pos: position{line: 810, col: 14, offset: 19740}, + pos: position{line: 811, col: 14, offset: 19790}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 810, col: 19, offset: 19745}, + pos: position{line: 811, col: 19, offset: 19795}, name: "Identifier", }, }, @@ -5402,44 +5410,44 @@ var g = &grammar{ }, { name: "DebugOp", - pos: position{line: 818, col: 1, offset: 19883}, + pos: position{line: 819, col: 1, offset: 19933}, expr: &actionExpr{ - pos: position{line: 819, col: 5, offset: 19895}, + pos: position{line: 820, col: 5, offset: 19945}, run: (*parser).callonDebugOp1, expr: &seqExpr{ - pos: position{line: 819, col: 5, offset: 19895}, + pos: position{line: 820, col: 5, offset: 19945}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 819, col: 5, offset: 19895}, + pos: position{line: 820, col: 5, offset: 19945}, name: "DEBUG", }, &labeledExpr{ - pos: position{line: 819, col: 11, offset: 19901}, + pos: position{line: 820, col: 11, offset: 19951}, label: "expr", expr: &zeroOrOneExpr{ - pos: position{line: 819, col: 16, offset: 19906}, + pos: position{line: 820, col: 16, offset: 19956}, expr: &actionExpr{ - pos: position{line: 819, col: 17, offset: 19907}, + pos: position{line: 820, col: 17, offset: 19957}, run: (*parser).callonDebugOp6, expr: &seqExpr{ - pos: position{line: 819, col: 17, offset: 19907}, + pos: position{line: 820, col: 17, offset: 19957}, exprs: []any{ ¬Expr{ - pos: position{line: 819, col: 17, offset: 19907}, + pos: position{line: 820, col: 17, offset: 19957}, expr: &ruleRefExpr{ - pos: position{line: 819, col: 18, offset: 19908}, + pos: position{line: 820, col: 18, offset: 19958}, name: "FilterClause", }, }, &ruleRefExpr{ - pos: position{line: 819, col: 31, offset: 19921}, + pos: position{line: 820, col: 31, offset: 19971}, name: "_", }, &labeledExpr{ - pos: position{line: 819, col: 33, offset: 19923}, + pos: position{line: 820, col: 33, offset: 19973}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 819, col: 35, offset: 19925}, + pos: position{line: 820, col: 35, offset: 19975}, name: "Expr", }, }, @@ -5449,12 +5457,12 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 819, col: 60, offset: 19950}, + pos: position{line: 820, col: 60, offset: 20000}, label: "filter", expr: &zeroOrOneExpr{ - pos: position{line: 819, col: 67, offset: 19957}, + pos: position{line: 820, col: 67, offset: 20007}, expr: &ruleRefExpr{ - pos: position{line: 819, col: 67, offset: 19957}, + pos: position{line: 820, col: 67, offset: 20007}, name: "FilterClause", }, }, @@ -5467,37 +5475,37 @@ var g = &grammar{ }, { name: "InferOp", - pos: position{line: 833, col: 1, offset: 20213}, + pos: position{line: 834, col: 1, offset: 20263}, expr: &actionExpr{ - pos: position{line: 834, col: 5, offset: 20225}, + pos: position{line: 835, col: 5, offset: 20275}, run: (*parser).callonInferOp1, expr: &seqExpr{ - pos: position{line: 834, col: 5, offset: 20225}, + pos: position{line: 835, col: 5, offset: 20275}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 834, col: 5, offset: 20225}, + pos: position{line: 835, col: 5, offset: 20275}, name: "INFER", }, &labeledExpr{ - pos: position{line: 834, col: 11, offset: 20231}, + pos: position{line: 835, col: 11, offset: 20281}, label: "limit", expr: &zeroOrOneExpr{ - pos: position{line: 834, col: 17, offset: 20237}, + pos: position{line: 835, col: 17, offset: 20287}, expr: &actionExpr{ - pos: position{line: 834, col: 18, offset: 20238}, + pos: position{line: 835, col: 18, offset: 20288}, run: (*parser).callonInferOp6, expr: &seqExpr{ - pos: position{line: 834, col: 18, offset: 20238}, + pos: position{line: 835, col: 18, offset: 20288}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 834, col: 18, offset: 20238}, + pos: position{line: 835, col: 18, offset: 20288}, name: "_", }, &labeledExpr{ - pos: position{line: 834, col: 20, offset: 20240}, + pos: position{line: 835, col: 20, offset: 20290}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 834, col: 22, offset: 20242}, + pos: position{line: 835, col: 22, offset: 20292}, name: "Expr", }, }, @@ -5514,26 +5522,26 @@ var g = &grammar{ }, { name: "FromOp", - pos: position{line: 845, col: 1, offset: 20445}, + pos: position{line: 846, col: 1, offset: 20495}, expr: &actionExpr{ - pos: position{line: 846, col: 5, offset: 20456}, + pos: position{line: 847, col: 5, offset: 20506}, run: (*parser).callonFromOp1, expr: &seqExpr{ - pos: position{line: 846, col: 5, offset: 20456}, + pos: position{line: 847, col: 5, offset: 20506}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 846, col: 5, offset: 20456}, + pos: position{line: 847, col: 5, offset: 20506}, name: "FROM", }, &ruleRefExpr{ - pos: position{line: 846, col: 10, offset: 20461}, + pos: position{line: 847, col: 10, offset: 20511}, name: "_", }, &labeledExpr{ - pos: position{line: 846, col: 12, offset: 20463}, + pos: position{line: 847, col: 12, offset: 20513}, label: "item", expr: &ruleRefExpr{ - pos: position{line: 846, col: 17, offset: 20468}, + pos: position{line: 847, col: 17, offset: 20518}, name: "FromItem", }, }, @@ -5545,28 +5553,28 @@ var g = &grammar{ }, { name: "JoinedTable", - pos: position{line: 854, col: 1, offset: 20604}, + pos: position{line: 855, col: 1, offset: 20654}, expr: &actionExpr{ - pos: position{line: 855, col: 5, offset: 20620}, + pos: position{line: 856, col: 5, offset: 20670}, run: (*parser).callonJoinedTable1, expr: &seqExpr{ - pos: position{line: 855, col: 5, offset: 20620}, + pos: position{line: 856, col: 5, offset: 20670}, exprs: []any{ &labeledExpr{ - pos: position{line: 855, col: 5, offset: 20620}, + pos: position{line: 856, col: 5, offset: 20670}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 855, col: 11, offset: 20626}, + pos: position{line: 856, col: 11, offset: 20676}, name: "SQLTableExpr", }, }, &labeledExpr{ - pos: position{line: 855, col: 24, offset: 20639}, + pos: position{line: 856, col: 24, offset: 20689}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 855, col: 29, offset: 20644}, + pos: position{line: 856, col: 29, offset: 20694}, expr: &ruleRefExpr{ - pos: position{line: 855, col: 30, offset: 20645}, + pos: position{line: 856, col: 30, offset: 20695}, name: "JoinOperation", }, }, @@ -5579,40 +5587,40 @@ var g = &grammar{ }, { name: "SQLTableExpr", - pos: position{line: 873, col: 1, offset: 21089}, + pos: position{line: 874, col: 1, offset: 21139}, expr: &choiceExpr{ - pos: position{line: 874, col: 5, offset: 21106}, + pos: position{line: 875, col: 5, offset: 21156}, alternatives: []any{ &actionExpr{ - pos: position{line: 874, col: 5, offset: 21106}, + pos: position{line: 875, col: 5, offset: 21156}, run: (*parser).callonSQLTableExpr2, expr: &seqExpr{ - pos: position{line: 874, col: 5, offset: 21106}, + pos: position{line: 875, col: 5, offset: 21156}, exprs: []any{ &litMatcher{ - pos: position{line: 874, col: 5, offset: 21106}, + pos: position{line: 875, col: 5, offset: 21156}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 874, col: 9, offset: 21110}, + pos: position{line: 875, col: 9, offset: 21160}, name: "__", }, &labeledExpr{ - pos: position{line: 874, col: 12, offset: 21113}, + pos: position{line: 875, col: 12, offset: 21163}, label: "table", expr: &ruleRefExpr{ - pos: position{line: 874, col: 18, offset: 21119}, + pos: position{line: 875, col: 18, offset: 21169}, name: "JoinedTable", }, }, &ruleRefExpr{ - pos: position{line: 874, col: 30, offset: 21131}, + pos: position{line: 875, col: 30, offset: 21181}, name: "__", }, &litMatcher{ - pos: position{line: 874, col: 33, offset: 21134}, + pos: position{line: 875, col: 33, offset: 21184}, val: ")", ignoreCase: false, want: "\")\"", @@ -5621,52 +5629,52 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 875, col: 5, offset: 21164}, + pos: position{line: 876, col: 5, offset: 21214}, run: (*parser).callonSQLTableExpr10, expr: &seqExpr{ - pos: position{line: 875, col: 5, offset: 21164}, + pos: position{line: 876, col: 5, offset: 21214}, exprs: []any{ &litMatcher{ - pos: position{line: 875, col: 5, offset: 21164}, + pos: position{line: 876, col: 5, offset: 21214}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 875, col: 9, offset: 21168}, + pos: position{line: 876, col: 9, offset: 21218}, name: "__", }, &labeledExpr{ - pos: position{line: 875, col: 12, offset: 21171}, + pos: position{line: 876, col: 12, offset: 21221}, label: "pipe", expr: &ruleRefExpr{ - pos: position{line: 875, col: 17, offset: 21176}, + pos: position{line: 876, col: 17, offset: 21226}, name: "SQLPipe", }, }, &ruleRefExpr{ - pos: position{line: 875, col: 25, offset: 21184}, + pos: position{line: 876, col: 25, offset: 21234}, name: "__", }, &litMatcher{ - pos: position{line: 875, col: 28, offset: 21187}, + pos: position{line: 876, col: 28, offset: 21237}, val: ")", ignoreCase: false, want: "\")\"", }, &labeledExpr{ - pos: position{line: 875, col: 32, offset: 21191}, + pos: position{line: 876, col: 32, offset: 21241}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 875, col: 34, offset: 21193}, + pos: position{line: 876, col: 34, offset: 21243}, name: "OptOrdinality", }, }, &labeledExpr{ - pos: position{line: 875, col: 48, offset: 21207}, + pos: position{line: 876, col: 48, offset: 21257}, label: "alias", expr: &ruleRefExpr{ - pos: position{line: 875, col: 54, offset: 21213}, + pos: position{line: 876, col: 54, offset: 21263}, name: "OptAlias", }, }, @@ -5674,32 +5682,32 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 889, col: 5, offset: 21534}, + pos: position{line: 890, col: 5, offset: 21584}, run: (*parser).callonSQLTableExpr22, expr: &seqExpr{ - pos: position{line: 889, col: 5, offset: 21534}, + pos: position{line: 890, col: 5, offset: 21584}, exprs: []any{ &labeledExpr{ - pos: position{line: 889, col: 5, offset: 21534}, + pos: position{line: 890, col: 5, offset: 21584}, label: "f", expr: &ruleRefExpr{ - pos: position{line: 889, col: 7, offset: 21536}, + pos: position{line: 890, col: 7, offset: 21586}, name: "FromItem", }, }, &labeledExpr{ - pos: position{line: 889, col: 16, offset: 21545}, + pos: position{line: 890, col: 16, offset: 21595}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 889, col: 18, offset: 21547}, + pos: position{line: 890, col: 18, offset: 21597}, name: "OptOrdinality", }, }, &labeledExpr{ - pos: position{line: 889, col: 32, offset: 21561}, + pos: position{line: 890, col: 32, offset: 21611}, label: "alias", expr: &ruleRefExpr{ - pos: position{line: 889, col: 38, offset: 21567}, + pos: position{line: 890, col: 38, offset: 21617}, name: "OptAlias", }, }, @@ -5713,28 +5721,28 @@ var g = &grammar{ }, { name: "FromItem", - pos: position{line: 904, col: 1, offset: 21883}, + pos: position{line: 905, col: 1, offset: 21933}, expr: &actionExpr{ - pos: position{line: 905, col: 5, offset: 21896}, + pos: position{line: 906, col: 5, offset: 21946}, run: (*parser).callonFromItem1, expr: &seqExpr{ - pos: position{line: 905, col: 5, offset: 21896}, + pos: position{line: 906, col: 5, offset: 21946}, exprs: []any{ &labeledExpr{ - pos: position{line: 905, col: 5, offset: 21896}, + pos: position{line: 906, col: 5, offset: 21946}, label: "source", expr: &ruleRefExpr{ - pos: position{line: 905, col: 12, offset: 21903}, + pos: position{line: 906, col: 12, offset: 21953}, name: "FromSource", }, }, &labeledExpr{ - pos: position{line: 905, col: 23, offset: 21914}, + pos: position{line: 906, col: 23, offset: 21964}, label: "args", expr: &zeroOrOneExpr{ - pos: position{line: 905, col: 28, offset: 21919}, + pos: position{line: 906, col: 28, offset: 21969}, expr: &ruleRefExpr{ - pos: position{line: 905, col: 28, offset: 21919}, + pos: position{line: 906, col: 28, offset: 21969}, name: "CommittishOpArgs", }, }, @@ -5747,34 +5755,34 @@ var g = &grammar{ }, { name: "FromSource", - pos: position{line: 913, col: 1, offset: 22089}, + pos: position{line: 914, col: 1, offset: 22139}, expr: &choiceExpr{ - pos: position{line: 914, col: 5, offset: 22104}, + pos: position{line: 915, col: 5, offset: 22154}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 914, col: 5, offset: 22104}, + pos: position{line: 915, col: 5, offset: 22154}, name: "Regexp", }, &ruleRefExpr{ - pos: position{line: 915, col: 5, offset: 22115}, + pos: position{line: 916, col: 5, offset: 22165}, name: "Glob", }, &actionExpr{ - pos: position{line: 916, col: 5, offset: 22124}, + pos: position{line: 917, col: 5, offset: 22174}, run: (*parser).callonFromSource4, expr: &seqExpr{ - pos: position{line: 916, col: 5, offset: 22124}, + pos: position{line: 917, col: 5, offset: 22174}, exprs: []any{ &litMatcher{ - pos: position{line: 916, col: 5, offset: 22124}, + pos: position{line: 917, col: 5, offset: 22174}, val: "*", ignoreCase: false, want: "\"*\"", }, ¬Expr{ - pos: position{line: 916, col: 9, offset: 22128}, + pos: position{line: 917, col: 9, offset: 22178}, expr: &ruleRefExpr{ - pos: position{line: 916, col: 10, offset: 22129}, + pos: position{line: 917, col: 10, offset: 22179}, name: "ExprGuard", }, }, @@ -5782,31 +5790,31 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 917, col: 5, offset: 22218}, + pos: position{line: 918, col: 5, offset: 22268}, run: (*parser).callonFromSource9, expr: &labeledExpr{ - pos: position{line: 917, col: 5, offset: 22218}, + pos: position{line: 918, col: 5, offset: 22268}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 917, col: 7, offset: 22220}, + pos: position{line: 918, col: 7, offset: 22270}, name: "FString", }, }, }, &actionExpr{ - pos: position{line: 924, col: 5, offset: 22364}, + pos: position{line: 925, col: 5, offset: 22414}, run: (*parser).callonFromSource12, expr: &labeledExpr{ - pos: position{line: 924, col: 5, offset: 22364}, + pos: position{line: 925, col: 5, offset: 22414}, label: "meta", expr: &ruleRefExpr{ - pos: position{line: 924, col: 10, offset: 22369}, + pos: position{line: 925, col: 10, offset: 22419}, name: "ColonName", }, }, }, &ruleRefExpr{ - pos: position{line: 931, col: 5, offset: 22507}, + pos: position{line: 932, col: 5, offset: 22557}, name: "Text", }, }, @@ -5816,34 +5824,34 @@ var g = &grammar{ }, { name: "Text", - pos: position{line: 933, col: 1, offset: 22513}, + pos: position{line: 934, col: 1, offset: 22563}, expr: &actionExpr{ - pos: position{line: 934, col: 4, offset: 22521}, + pos: position{line: 935, col: 4, offset: 22571}, run: (*parser).callonText1, expr: &labeledExpr{ - pos: position{line: 934, col: 4, offset: 22521}, + pos: position{line: 935, col: 4, offset: 22571}, label: "s", expr: &choiceExpr{ - pos: position{line: 934, col: 7, offset: 22524}, + pos: position{line: 935, col: 7, offset: 22574}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 934, col: 7, offset: 22524}, + pos: position{line: 935, col: 7, offset: 22574}, name: "SimpleURL", }, &ruleRefExpr{ - pos: position{line: 934, col: 19, offset: 22536}, + pos: position{line: 935, col: 19, offset: 22586}, name: "TextChars", }, &ruleRefExpr{ - pos: position{line: 934, col: 31, offset: 22548}, + pos: position{line: 935, col: 31, offset: 22598}, name: "DoubleQuotedString", }, &ruleRefExpr{ - pos: position{line: 934, col: 52, offset: 22569}, + pos: position{line: 935, col: 52, offset: 22619}, name: "SingleQuotedString", }, &ruleRefExpr{ - pos: position{line: 934, col: 73, offset: 22590}, + pos: position{line: 935, col: 73, offset: 22640}, name: "RString", }, }, @@ -5855,29 +5863,29 @@ var g = &grammar{ }, { name: "SimpleURL", - pos: position{line: 938, col: 1, offset: 22679}, + pos: position{line: 939, col: 1, offset: 22729}, expr: &actionExpr{ - pos: position{line: 939, col: 3, offset: 22693}, + pos: position{line: 940, col: 3, offset: 22743}, run: (*parser).callonSimpleURL1, expr: &seqExpr{ - pos: position{line: 939, col: 3, offset: 22693}, + pos: position{line: 940, col: 3, offset: 22743}, exprs: []any{ &choiceExpr{ - pos: position{line: 939, col: 4, offset: 22694}, + pos: position{line: 940, col: 4, offset: 22744}, alternatives: []any{ &seqExpr{ - pos: position{line: 939, col: 4, offset: 22694}, + pos: position{line: 940, col: 4, offset: 22744}, exprs: []any{ &litMatcher{ - pos: position{line: 939, col: 4, offset: 22694}, + pos: position{line: 940, col: 4, offset: 22744}, val: "http", ignoreCase: false, want: "\"http\"", }, &zeroOrOneExpr{ - pos: position{line: 939, col: 11, offset: 22701}, + pos: position{line: 940, col: 11, offset: 22751}, expr: &litMatcher{ - pos: position{line: 939, col: 11, offset: 22701}, + pos: position{line: 940, col: 11, offset: 22751}, val: "s", ignoreCase: false, want: "\"s\"", @@ -5886,7 +5894,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 939, col: 18, offset: 22708}, + pos: position{line: 940, col: 18, offset: 22758}, val: "s3", ignoreCase: false, want: "\"s3\"", @@ -5894,15 +5902,15 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 939, col: 24, offset: 22714}, + pos: position{line: 940, col: 24, offset: 22764}, val: "://", ignoreCase: false, want: "\"://\"", }, &oneOrMoreExpr{ - pos: position{line: 940, col: 4, offset: 22723}, + pos: position{line: 941, col: 4, offset: 22773}, expr: &charClassMatcher{ - pos: position{line: 940, col: 4, offset: 22723}, + pos: position{line: 941, col: 4, offset: 22773}, val: "[a-zA-Z0-9_-]", chars: []rune{'_', '-'}, ranges: []rune{'a', 'z', 'A', 'Z', '0', '9'}, @@ -5911,20 +5919,20 @@ var g = &grammar{ }, }, &zeroOrMoreExpr{ - pos: position{line: 940, col: 20, offset: 22739}, + pos: position{line: 941, col: 20, offset: 22789}, expr: &seqExpr{ - pos: position{line: 940, col: 22, offset: 22741}, + pos: position{line: 941, col: 22, offset: 22791}, exprs: []any{ &litMatcher{ - pos: position{line: 940, col: 22, offset: 22741}, + pos: position{line: 941, col: 22, offset: 22791}, val: ".", ignoreCase: false, want: "\".\"", }, &oneOrMoreExpr{ - pos: position{line: 940, col: 26, offset: 22745}, + pos: position{line: 941, col: 26, offset: 22795}, expr: &charClassMatcher{ - pos: position{line: 940, col: 26, offset: 22745}, + pos: position{line: 941, col: 26, offset: 22795}, val: "[a-zA-Z0-9_-]", chars: []rune{'_', '-'}, ranges: []rune{'a', 'z', 'A', 'Z', '0', '9'}, @@ -5936,20 +5944,20 @@ var g = &grammar{ }, }, &zeroOrOneExpr{ - pos: position{line: 941, col: 3, offset: 22764}, + pos: position{line: 942, col: 3, offset: 22814}, expr: &seqExpr{ - pos: position{line: 941, col: 4, offset: 22765}, + pos: position{line: 942, col: 4, offset: 22815}, exprs: []any{ &litMatcher{ - pos: position{line: 941, col: 4, offset: 22765}, + pos: position{line: 942, col: 4, offset: 22815}, val: "/", ignoreCase: false, want: "\"/\"", }, &zeroOrOneExpr{ - pos: position{line: 941, col: 8, offset: 22769}, + pos: position{line: 942, col: 8, offset: 22819}, expr: &ruleRefExpr{ - pos: position{line: 941, col: 8, offset: 22769}, + pos: position{line: 942, col: 8, offset: 22819}, name: "TextChars", }, }, @@ -5964,27 +5972,27 @@ var g = &grammar{ }, { name: "TextChars", - pos: position{line: 943, col: 1, offset: 22814}, + pos: position{line: 944, col: 1, offset: 22864}, expr: &actionExpr{ - pos: position{line: 944, col: 5, offset: 22828}, + pos: position{line: 945, col: 5, offset: 22878}, run: (*parser).callonTextChars1, expr: &oneOrMoreExpr{ - pos: position{line: 944, col: 5, offset: 22828}, + pos: position{line: 945, col: 5, offset: 22878}, expr: &choiceExpr{ - pos: position{line: 944, col: 6, offset: 22829}, + pos: position{line: 945, col: 6, offset: 22879}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 944, col: 6, offset: 22829}, + pos: position{line: 945, col: 6, offset: 22879}, name: "IdentifierRest", }, &litMatcher{ - pos: position{line: 944, col: 23, offset: 22846}, + pos: position{line: 945, col: 23, offset: 22896}, val: ".", ignoreCase: false, want: "\".\"", }, &litMatcher{ - pos: position{line: 944, col: 29, offset: 22852}, + pos: position{line: 945, col: 29, offset: 22902}, val: "/", ignoreCase: false, want: "\"/\"", @@ -5998,40 +6006,40 @@ var g = &grammar{ }, { name: "CommittishOpArgs", - pos: position{line: 946, col: 1, offset: 22890}, + pos: position{line: 947, col: 1, offset: 22940}, expr: &choiceExpr{ - pos: position{line: 947, col: 5, offset: 22911}, + pos: position{line: 948, col: 5, offset: 22961}, alternatives: []any{ &actionExpr{ - pos: position{line: 947, col: 5, offset: 22911}, + pos: position{line: 948, col: 5, offset: 22961}, run: (*parser).callonCommittishOpArgs2, expr: &seqExpr{ - pos: position{line: 947, col: 5, offset: 22911}, + pos: position{line: 948, col: 5, offset: 22961}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 947, col: 5, offset: 22911}, + pos: position{line: 948, col: 5, offset: 22961}, name: "__", }, &labeledExpr{ - pos: position{line: 947, col: 8, offset: 22914}, + pos: position{line: 948, col: 8, offset: 22964}, label: "commit", expr: &zeroOrOneExpr{ - pos: position{line: 947, col: 15, offset: 22921}, + pos: position{line: 948, col: 15, offset: 22971}, expr: &ruleRefExpr{ - pos: position{line: 947, col: 15, offset: 22921}, + pos: position{line: 948, col: 15, offset: 22971}, name: "MetaCommittish", }, }, }, &ruleRefExpr{ - pos: position{line: 947, col: 31, offset: 22937}, + pos: position{line: 948, col: 31, offset: 22987}, name: "__", }, &labeledExpr{ - pos: position{line: 947, col: 34, offset: 22940}, + pos: position{line: 948, col: 34, offset: 22990}, label: "args", expr: &ruleRefExpr{ - pos: position{line: 947, col: 39, offset: 22945}, + pos: position{line: 948, col: 39, offset: 22995}, name: "OpArgs", }, }, @@ -6039,20 +6047,20 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 953, col: 5, offset: 23075}, + pos: position{line: 954, col: 5, offset: 23125}, run: (*parser).callonCommittishOpArgs11, expr: &seqExpr{ - pos: position{line: 953, col: 5, offset: 23075}, + pos: position{line: 954, col: 5, offset: 23125}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 953, col: 5, offset: 23075}, + pos: position{line: 954, col: 5, offset: 23125}, name: "__", }, &labeledExpr{ - pos: position{line: 953, col: 8, offset: 23078}, + pos: position{line: 954, col: 8, offset: 23128}, label: "commit", expr: &ruleRefExpr{ - pos: position{line: 953, col: 15, offset: 23085}, + pos: position{line: 954, col: 15, offset: 23135}, name: "MetaCommittish", }, }, @@ -6066,31 +6074,31 @@ var g = &grammar{ }, { name: "MetaCommittish", - pos: position{line: 955, col: 1, offset: 23124}, + pos: position{line: 956, col: 1, offset: 23174}, expr: &choiceExpr{ - pos: position{line: 956, col: 5, offset: 23143}, + pos: position{line: 957, col: 5, offset: 23193}, alternatives: []any{ &actionExpr{ - pos: position{line: 956, col: 5, offset: 23143}, + pos: position{line: 957, col: 5, offset: 23193}, run: (*parser).callonMetaCommittish2, expr: &seqExpr{ - pos: position{line: 956, col: 5, offset: 23143}, + pos: position{line: 957, col: 5, offset: 23193}, exprs: []any{ &labeledExpr{ - pos: position{line: 956, col: 5, offset: 23143}, + pos: position{line: 957, col: 5, offset: 23193}, label: "commit", expr: &ruleRefExpr{ - pos: position{line: 956, col: 12, offset: 23150}, + pos: position{line: 957, col: 12, offset: 23200}, name: "Committish", }, }, &labeledExpr{ - pos: position{line: 956, col: 23, offset: 23161}, + pos: position{line: 957, col: 23, offset: 23211}, label: "meta", expr: &zeroOrOneExpr{ - pos: position{line: 956, col: 28, offset: 23166}, + pos: position{line: 957, col: 28, offset: 23216}, expr: &ruleRefExpr{ - pos: position{line: 956, col: 28, offset: 23166}, + pos: position{line: 957, col: 28, offset: 23216}, name: "ColonName", }, }, @@ -6099,13 +6107,13 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 963, col: 5, offset: 23390}, + pos: position{line: 964, col: 5, offset: 23440}, run: (*parser).callonMetaCommittish9, expr: &labeledExpr{ - pos: position{line: 963, col: 5, offset: 23390}, + pos: position{line: 964, col: 5, offset: 23440}, label: "meta", expr: &ruleRefExpr{ - pos: position{line: 963, col: 10, offset: 23395}, + pos: position{line: 964, col: 10, offset: 23445}, name: "ColonName", }, }, @@ -6117,24 +6125,24 @@ var g = &grammar{ }, { name: "Committish", - pos: position{line: 967, col: 1, offset: 23519}, + pos: position{line: 968, col: 1, offset: 23569}, expr: &actionExpr{ - pos: position{line: 968, col: 5, offset: 23534}, + pos: position{line: 969, col: 5, offset: 23584}, run: (*parser).callonCommittish1, expr: &seqExpr{ - pos: position{line: 968, col: 5, offset: 23534}, + pos: position{line: 969, col: 5, offset: 23584}, exprs: []any{ &litMatcher{ - pos: position{line: 968, col: 5, offset: 23534}, + pos: position{line: 969, col: 5, offset: 23584}, val: "@", ignoreCase: false, want: "\"@\"", }, &labeledExpr{ - pos: position{line: 968, col: 9, offset: 23538}, + pos: position{line: 969, col: 9, offset: 23588}, label: "text", expr: &ruleRefExpr{ - pos: position{line: 968, col: 14, offset: 23543}, + pos: position{line: 969, col: 14, offset: 23593}, name: "CommitText", }, }, @@ -6146,19 +6154,19 @@ var g = &grammar{ }, { name: "CommitText", - pos: position{line: 972, col: 1, offset: 23678}, + pos: position{line: 973, col: 1, offset: 23728}, expr: &choiceExpr{ - pos: position{line: 973, col: 5, offset: 23693}, + pos: position{line: 974, col: 5, offset: 23743}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 973, col: 5, offset: 23693}, + pos: position{line: 974, col: 5, offset: 23743}, name: "Name", }, &actionExpr{ - pos: position{line: 974, col: 5, offset: 23702}, + pos: position{line: 975, col: 5, offset: 23752}, run: (*parser).callonCommitText3, expr: &ruleRefExpr{ - pos: position{line: 974, col: 5, offset: 23702}, + pos: position{line: 975, col: 5, offset: 23752}, name: "UUID", }, }, @@ -6169,11 +6177,11 @@ var g = &grammar{ }, { name: "UUID", - pos: position{line: 976, col: 1, offset: 23779}, + pos: position{line: 977, col: 1, offset: 23829}, expr: &oneOrMoreExpr{ - pos: position{line: 976, col: 8, offset: 23786}, + pos: position{line: 977, col: 8, offset: 23836}, expr: &charClassMatcher{ - pos: position{line: 976, col: 8, offset: 23786}, + pos: position{line: 977, col: 8, offset: 23836}, val: "[-0-9a-zA-Z]", chars: []rune{'-'}, ranges: []rune{'0', '9', 'a', 'z', 'A', 'Z'}, @@ -6186,40 +6194,40 @@ var g = &grammar{ }, { name: "OpArg", - pos: position{line: 978, col: 1, offset: 23801}, + pos: position{line: 979, col: 1, offset: 23851}, expr: &choiceExpr{ - pos: position{line: 979, col: 5, offset: 23811}, + pos: position{line: 980, col: 5, offset: 23861}, alternatives: []any{ &actionExpr{ - pos: position{line: 979, col: 5, offset: 23811}, + pos: position{line: 980, col: 5, offset: 23861}, run: (*parser).callonOpArg2, expr: &seqExpr{ - pos: position{line: 979, col: 5, offset: 23811}, + pos: position{line: 980, col: 5, offset: 23861}, exprs: []any{ &andExpr{ - pos: position{line: 979, col: 5, offset: 23811}, + pos: position{line: 980, col: 5, offset: 23861}, expr: &ruleRefExpr{ - pos: position{line: 979, col: 6, offset: 23812}, + pos: position{line: 980, col: 6, offset: 23862}, name: "ArgNameExpr", }, }, &labeledExpr{ - pos: position{line: 979, col: 18, offset: 23824}, + pos: position{line: 980, col: 18, offset: 23874}, label: "key", expr: &ruleRefExpr{ - pos: position{line: 979, col: 22, offset: 23828}, + pos: position{line: 980, col: 22, offset: 23878}, name: "ArgName", }, }, &ruleRefExpr{ - pos: position{line: 979, col: 30, offset: 23836}, + pos: position{line: 980, col: 30, offset: 23886}, name: "_", }, &labeledExpr{ - pos: position{line: 979, col: 32, offset: 23838}, + pos: position{line: 980, col: 32, offset: 23888}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 979, col: 34, offset: 23840}, + pos: position{line: 980, col: 34, offset: 23890}, name: "Expr", }, }, @@ -6227,35 +6235,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 980, col: 5, offset: 23947}, + pos: position{line: 981, col: 5, offset: 23997}, run: (*parser).callonOpArg11, expr: &seqExpr{ - pos: position{line: 980, col: 5, offset: 23947}, + pos: position{line: 981, col: 5, offset: 23997}, exprs: []any{ &andExpr{ - pos: position{line: 980, col: 5, offset: 23947}, + pos: position{line: 981, col: 5, offset: 23997}, expr: &ruleRefExpr{ - pos: position{line: 980, col: 6, offset: 23948}, + pos: position{line: 981, col: 6, offset: 23998}, name: "ArgNameFString", }, }, &labeledExpr{ - pos: position{line: 980, col: 21, offset: 23963}, + pos: position{line: 981, col: 21, offset: 24013}, label: "key", expr: &ruleRefExpr{ - pos: position{line: 980, col: 25, offset: 23967}, + pos: position{line: 981, col: 25, offset: 24017}, name: "ArgName", }, }, &ruleRefExpr{ - pos: position{line: 980, col: 33, offset: 23975}, + pos: position{line: 981, col: 33, offset: 24025}, name: "_", }, &labeledExpr{ - pos: position{line: 980, col: 35, offset: 23977}, + pos: position{line: 981, col: 35, offset: 24027}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 980, col: 37, offset: 23979}, + pos: position{line: 981, col: 37, offset: 24029}, name: "FString", }, }, @@ -6263,28 +6271,28 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 981, col: 5, offset: 24089}, + pos: position{line: 982, col: 5, offset: 24139}, run: (*parser).callonOpArg20, expr: &seqExpr{ - pos: position{line: 981, col: 5, offset: 24089}, + pos: position{line: 982, col: 5, offset: 24139}, exprs: []any{ &labeledExpr{ - pos: position{line: 981, col: 5, offset: 24089}, + pos: position{line: 982, col: 5, offset: 24139}, label: "key", expr: &ruleRefExpr{ - pos: position{line: 981, col: 9, offset: 24093}, + pos: position{line: 982, col: 9, offset: 24143}, name: "ArgName", }, }, &ruleRefExpr{ - pos: position{line: 981, col: 17, offset: 24101}, + pos: position{line: 982, col: 17, offset: 24151}, name: "_", }, &labeledExpr{ - pos: position{line: 981, col: 19, offset: 24103}, + pos: position{line: 982, col: 19, offset: 24153}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 981, col: 21, offset: 24105}, + pos: position{line: 982, col: 21, offset: 24155}, name: "Text", }, }, @@ -6298,51 +6306,51 @@ var g = &grammar{ }, { name: "OpArgs", - pos: position{line: 983, col: 1, offset: 24210}, + pos: position{line: 984, col: 1, offset: 24260}, expr: &actionExpr{ - pos: position{line: 984, col: 5, offset: 24221}, + pos: position{line: 985, col: 5, offset: 24271}, run: (*parser).callonOpArgs1, expr: &seqExpr{ - pos: position{line: 984, col: 5, offset: 24221}, + pos: position{line: 985, col: 5, offset: 24271}, exprs: []any{ &litMatcher{ - pos: position{line: 984, col: 5, offset: 24221}, + pos: position{line: 985, col: 5, offset: 24271}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 984, col: 9, offset: 24225}, + pos: position{line: 985, col: 9, offset: 24275}, name: "__", }, &labeledExpr{ - pos: position{line: 984, col: 12, offset: 24228}, + pos: position{line: 985, col: 12, offset: 24278}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 984, col: 18, offset: 24234}, + pos: position{line: 985, col: 18, offset: 24284}, name: "OpArg", }, }, &labeledExpr{ - pos: position{line: 984, col: 24, offset: 24240}, + pos: position{line: 985, col: 24, offset: 24290}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 984, col: 29, offset: 24245}, + pos: position{line: 985, col: 29, offset: 24295}, expr: &actionExpr{ - pos: position{line: 984, col: 30, offset: 24246}, + pos: position{line: 985, col: 30, offset: 24296}, run: (*parser).callonOpArgs9, expr: &seqExpr{ - pos: position{line: 984, col: 30, offset: 24246}, + pos: position{line: 985, col: 30, offset: 24296}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 984, col: 30, offset: 24246}, + pos: position{line: 985, col: 30, offset: 24296}, name: "_", }, &labeledExpr{ - pos: position{line: 984, col: 32, offset: 24248}, + pos: position{line: 985, col: 32, offset: 24298}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 984, col: 34, offset: 24250}, + pos: position{line: 985, col: 34, offset: 24300}, name: "OpArg", }, }, @@ -6352,11 +6360,11 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 984, col: 60, offset: 24276}, + pos: position{line: 985, col: 60, offset: 24326}, name: "__", }, &litMatcher{ - pos: position{line: 984, col: 63, offset: 24279}, + pos: position{line: 985, col: 63, offset: 24329}, val: ")", ignoreCase: false, want: "\")\"", @@ -6369,14 +6377,14 @@ var g = &grammar{ }, { name: "ArgName", - pos: position{line: 988, col: 1, offset: 24331}, + pos: position{line: 989, col: 1, offset: 24381}, expr: &actionExpr{ - pos: position{line: 988, col: 11, offset: 24341}, + pos: position{line: 989, col: 11, offset: 24391}, run: (*parser).callonArgName1, expr: &oneOrMoreExpr{ - pos: position{line: 988, col: 11, offset: 24341}, + pos: position{line: 989, col: 11, offset: 24391}, expr: &ruleRefExpr{ - pos: position{line: 988, col: 11, offset: 24341}, + pos: position{line: 989, col: 11, offset: 24391}, name: "UnicodeLetter", }, }, @@ -6386,21 +6394,21 @@ var g = &grammar{ }, { name: "ArgNameExpr", - pos: position{line: 991, col: 1, offset: 24431}, + pos: position{line: 992, col: 1, offset: 24481}, expr: &seqExpr{ - pos: position{line: 992, col: 5, offset: 24447}, + pos: position{line: 993, col: 5, offset: 24497}, exprs: []any{ &choiceExpr{ - pos: position{line: 992, col: 6, offset: 24448}, + pos: position{line: 993, col: 6, offset: 24498}, alternatives: []any{ &litMatcher{ - pos: position{line: 992, col: 6, offset: 24448}, + pos: position{line: 993, col: 6, offset: 24498}, val: "headers", ignoreCase: true, want: "\"headers\"i", }, &litMatcher{ - pos: position{line: 992, col: 19, offset: 24461}, + pos: position{line: 993, col: 19, offset: 24511}, val: "body", ignoreCase: true, want: "\"body\"i", @@ -6408,9 +6416,9 @@ var g = &grammar{ }, }, ¬Expr{ - pos: position{line: 992, col: 28, offset: 24470}, + pos: position{line: 993, col: 28, offset: 24520}, expr: &ruleRefExpr{ - pos: position{line: 992, col: 29, offset: 24471}, + pos: position{line: 993, col: 29, offset: 24521}, name: "UnicodeLetter", }, }, @@ -6421,20 +6429,20 @@ var g = &grammar{ }, { name: "ArgNameFString", - pos: position{line: 995, col: 1, offset: 24537}, + pos: position{line: 996, col: 1, offset: 24587}, expr: &seqExpr{ - pos: position{line: 996, col: 5, offset: 24556}, + pos: position{line: 997, col: 5, offset: 24606}, exprs: []any{ &litMatcher{ - pos: position{line: 996, col: 5, offset: 24556}, + pos: position{line: 997, col: 5, offset: 24606}, val: "method", ignoreCase: true, want: "\"method\"i", }, ¬Expr{ - pos: position{line: 996, col: 15, offset: 24566}, + pos: position{line: 997, col: 15, offset: 24616}, expr: &ruleRefExpr{ - pos: position{line: 996, col: 16, offset: 24567}, + pos: position{line: 997, col: 16, offset: 24617}, name: "UnicodeLetter", }, }, @@ -6445,24 +6453,24 @@ var g = &grammar{ }, { name: "ColonName", - pos: position{line: 998, col: 1, offset: 24582}, + pos: position{line: 999, col: 1, offset: 24632}, expr: &actionExpr{ - pos: position{line: 999, col: 5, offset: 24596}, + pos: position{line: 1000, col: 5, offset: 24646}, run: (*parser).callonColonName1, expr: &seqExpr{ - pos: position{line: 999, col: 5, offset: 24596}, + pos: position{line: 1000, col: 5, offset: 24646}, exprs: []any{ &litMatcher{ - pos: position{line: 999, col: 5, offset: 24596}, + pos: position{line: 1000, col: 5, offset: 24646}, val: ":", ignoreCase: false, want: "\":\"", }, &labeledExpr{ - pos: position{line: 999, col: 9, offset: 24600}, + pos: position{line: 1000, col: 9, offset: 24650}, label: "n", expr: &ruleRefExpr{ - pos: position{line: 999, col: 11, offset: 24602}, + pos: position{line: 1000, col: 11, offset: 24652}, name: "Name", }, }, @@ -6474,21 +6482,21 @@ var g = &grammar{ }, { name: "PassOp", - pos: position{line: 1001, col: 1, offset: 24626}, + pos: position{line: 1002, col: 1, offset: 24676}, expr: &actionExpr{ - pos: position{line: 1002, col: 5, offset: 24637}, + pos: position{line: 1003, col: 5, offset: 24687}, run: (*parser).callonPassOp1, expr: &seqExpr{ - pos: position{line: 1002, col: 5, offset: 24637}, + pos: position{line: 1003, col: 5, offset: 24687}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1002, col: 5, offset: 24637}, + pos: position{line: 1003, col: 5, offset: 24687}, name: "PASS", }, &andExpr{ - pos: position{line: 1002, col: 10, offset: 24642}, + pos: position{line: 1003, col: 10, offset: 24692}, expr: &ruleRefExpr{ - pos: position{line: 1002, col: 11, offset: 24643}, + pos: position{line: 1003, col: 11, offset: 24693}, name: "EndOfOp", }, }, @@ -6500,26 +6508,26 @@ var g = &grammar{ }, { name: "MergeOp", - pos: position{line: 1006, col: 1, offset: 24719}, + pos: position{line: 1007, col: 1, offset: 24769}, expr: &actionExpr{ - pos: position{line: 1007, col: 5, offset: 24731}, + pos: position{line: 1008, col: 5, offset: 24781}, run: (*parser).callonMergeOp1, expr: &seqExpr{ - pos: position{line: 1007, col: 5, offset: 24731}, + pos: position{line: 1008, col: 5, offset: 24781}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1007, col: 5, offset: 24731}, + pos: position{line: 1008, col: 5, offset: 24781}, name: "MERGE", }, &ruleRefExpr{ - pos: position{line: 1007, col: 11, offset: 24737}, + pos: position{line: 1008, col: 11, offset: 24787}, name: "_", }, &labeledExpr{ - pos: position{line: 1007, col: 13, offset: 24739}, + pos: position{line: 1008, col: 13, offset: 24789}, label: "exprs", expr: &ruleRefExpr{ - pos: position{line: 1007, col: 19, offset: 24745}, + pos: position{line: 1008, col: 19, offset: 24795}, name: "OrderByList", }, }, @@ -6531,57 +6539,57 @@ var g = &grammar{ }, { name: "UnnestOp", - pos: position{line: 1015, col: 1, offset: 24891}, + pos: position{line: 1016, col: 1, offset: 24941}, expr: &actionExpr{ - pos: position{line: 1016, col: 6, offset: 24905}, + pos: position{line: 1017, col: 6, offset: 24955}, run: (*parser).callonUnnestOp1, expr: &seqExpr{ - pos: position{line: 1016, col: 6, offset: 24905}, + pos: position{line: 1017, col: 6, offset: 24955}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1016, col: 6, offset: 24905}, + pos: position{line: 1017, col: 6, offset: 24955}, name: "UNNEST", }, &ruleRefExpr{ - pos: position{line: 1016, col: 13, offset: 24912}, + pos: position{line: 1017, col: 13, offset: 24962}, name: "_", }, &labeledExpr{ - pos: position{line: 1016, col: 15, offset: 24914}, + pos: position{line: 1017, col: 15, offset: 24964}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 1016, col: 17, offset: 24916}, + pos: position{line: 1017, col: 17, offset: 24966}, name: "Assignment", }, }, &labeledExpr{ - pos: position{line: 1016, col: 28, offset: 24927}, + pos: position{line: 1017, col: 28, offset: 24977}, label: "with", expr: &zeroOrOneExpr{ - pos: position{line: 1016, col: 33, offset: 24932}, + pos: position{line: 1017, col: 33, offset: 24982}, expr: &actionExpr{ - pos: position{line: 1016, col: 34, offset: 24933}, + pos: position{line: 1017, col: 34, offset: 24983}, run: (*parser).callonUnnestOp9, expr: &seqExpr{ - pos: position{line: 1016, col: 34, offset: 24933}, + pos: position{line: 1017, col: 34, offset: 24983}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1016, col: 34, offset: 24933}, + pos: position{line: 1017, col: 34, offset: 24983}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1016, col: 36, offset: 24935}, + pos: position{line: 1017, col: 36, offset: 24985}, name: "WITH", }, &ruleRefExpr{ - pos: position{line: 1016, col: 41, offset: 24940}, + pos: position{line: 1017, col: 41, offset: 24990}, name: "_", }, &labeledExpr{ - pos: position{line: 1016, col: 43, offset: 24942}, + pos: position{line: 1017, col: 43, offset: 24992}, label: "w", expr: &ruleRefExpr{ - pos: position{line: 1016, col: 45, offset: 24944}, + pos: position{line: 1017, col: 45, offset: 24994}, name: "Assignments", }, }, @@ -6591,35 +6599,35 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 1016, col: 77, offset: 24976}, + pos: position{line: 1017, col: 77, offset: 25026}, label: "body", expr: &zeroOrOneExpr{ - pos: position{line: 1016, col: 82, offset: 24981}, + pos: position{line: 1017, col: 82, offset: 25031}, expr: &actionExpr{ - pos: position{line: 1016, col: 83, offset: 24982}, + pos: position{line: 1017, col: 83, offset: 25032}, run: (*parser).callonUnnestOp18, expr: &seqExpr{ - pos: position{line: 1016, col: 83, offset: 24982}, + pos: position{line: 1017, col: 83, offset: 25032}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1016, col: 83, offset: 24982}, + pos: position{line: 1017, col: 83, offset: 25032}, name: "_", }, &litMatcher{ - pos: position{line: 1016, col: 85, offset: 24984}, + pos: position{line: 1017, col: 85, offset: 25034}, val: "into", ignoreCase: true, want: "\"into\"i", }, &ruleRefExpr{ - pos: position{line: 1016, col: 93, offset: 24992}, + pos: position{line: 1017, col: 93, offset: 25042}, name: "_", }, &labeledExpr{ - pos: position{line: 1016, col: 95, offset: 24994}, + pos: position{line: 1017, col: 95, offset: 25044}, label: "body", expr: &ruleRefExpr{ - pos: position{line: 1016, col: 100, offset: 24999}, + pos: position{line: 1017, col: 100, offset: 25049}, name: "ScopeBody", }, }, @@ -6636,30 +6644,30 @@ var g = &grammar{ }, { name: "AsArg", - pos: position{line: 1031, col: 1, offset: 25344}, + pos: position{line: 1032, col: 1, offset: 25394}, expr: &actionExpr{ - pos: position{line: 1032, col: 5, offset: 25354}, + pos: position{line: 1033, col: 5, offset: 25404}, run: (*parser).callonAsArg1, expr: &seqExpr{ - pos: position{line: 1032, col: 5, offset: 25354}, + pos: position{line: 1033, col: 5, offset: 25404}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1032, col: 5, offset: 25354}, + pos: position{line: 1033, col: 5, offset: 25404}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1032, col: 7, offset: 25356}, + pos: position{line: 1033, col: 7, offset: 25406}, name: "AS", }, &ruleRefExpr{ - pos: position{line: 1032, col: 10, offset: 25359}, + pos: position{line: 1033, col: 10, offset: 25409}, name: "_", }, &labeledExpr{ - pos: position{line: 1032, col: 12, offset: 25361}, + pos: position{line: 1033, col: 12, offset: 25411}, label: "lhs", expr: &ruleRefExpr{ - pos: position{line: 1032, col: 16, offset: 25365}, + pos: position{line: 1033, col: 16, offset: 25415}, name: "Lval", }, }, @@ -6671,9 +6679,9 @@ var g = &grammar{ }, { name: "Lval", - pos: position{line: 1036, col: 1, offset: 25416}, + pos: position{line: 1037, col: 1, offset: 25466}, expr: &ruleRefExpr{ - pos: position{line: 1036, col: 8, offset: 25423}, + pos: position{line: 1037, col: 8, offset: 25473}, name: "DerefExpr", }, leader: false, @@ -6681,51 +6689,51 @@ var g = &grammar{ }, { name: "Lvals", - pos: position{line: 1038, col: 1, offset: 25434}, + pos: position{line: 1039, col: 1, offset: 25484}, expr: &actionExpr{ - pos: position{line: 1039, col: 5, offset: 25444}, + pos: position{line: 1040, col: 5, offset: 25494}, run: (*parser).callonLvals1, expr: &seqExpr{ - pos: position{line: 1039, col: 5, offset: 25444}, + pos: position{line: 1040, col: 5, offset: 25494}, exprs: []any{ &labeledExpr{ - pos: position{line: 1039, col: 5, offset: 25444}, + pos: position{line: 1040, col: 5, offset: 25494}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1039, col: 11, offset: 25450}, + pos: position{line: 1040, col: 11, offset: 25500}, name: "Lval", }, }, &labeledExpr{ - pos: position{line: 1039, col: 16, offset: 25455}, + pos: position{line: 1040, col: 16, offset: 25505}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1039, col: 21, offset: 25460}, + pos: position{line: 1040, col: 21, offset: 25510}, expr: &actionExpr{ - pos: position{line: 1039, col: 22, offset: 25461}, + pos: position{line: 1040, col: 22, offset: 25511}, run: (*parser).callonLvals7, expr: &seqExpr{ - pos: position{line: 1039, col: 22, offset: 25461}, + pos: position{line: 1040, col: 22, offset: 25511}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1039, col: 22, offset: 25461}, + pos: position{line: 1040, col: 22, offset: 25511}, name: "__", }, &litMatcher{ - pos: position{line: 1039, col: 25, offset: 25464}, + pos: position{line: 1040, col: 25, offset: 25514}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 1039, col: 29, offset: 25468}, + pos: position{line: 1040, col: 29, offset: 25518}, name: "__", }, &labeledExpr{ - pos: position{line: 1039, col: 32, offset: 25471}, + pos: position{line: 1040, col: 32, offset: 25521}, label: "lval", expr: &ruleRefExpr{ - pos: position{line: 1039, col: 37, offset: 25476}, + pos: position{line: 1040, col: 37, offset: 25526}, name: "Lval", }, }, @@ -6742,51 +6750,51 @@ var g = &grammar{ }, { name: "Assignments", - pos: position{line: 1043, col: 1, offset: 25552}, + pos: position{line: 1044, col: 1, offset: 25602}, expr: &actionExpr{ - pos: position{line: 1044, col: 5, offset: 25568}, + pos: position{line: 1045, col: 5, offset: 25618}, run: (*parser).callonAssignments1, expr: &seqExpr{ - pos: position{line: 1044, col: 5, offset: 25568}, + pos: position{line: 1045, col: 5, offset: 25618}, exprs: []any{ &labeledExpr{ - pos: position{line: 1044, col: 5, offset: 25568}, + pos: position{line: 1045, col: 5, offset: 25618}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1044, col: 11, offset: 25574}, + pos: position{line: 1045, col: 11, offset: 25624}, name: "Assignment", }, }, &labeledExpr{ - pos: position{line: 1044, col: 22, offset: 25585}, + pos: position{line: 1045, col: 22, offset: 25635}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1044, col: 27, offset: 25590}, + pos: position{line: 1045, col: 27, offset: 25640}, expr: &actionExpr{ - pos: position{line: 1044, col: 28, offset: 25591}, + pos: position{line: 1045, col: 28, offset: 25641}, run: (*parser).callonAssignments7, expr: &seqExpr{ - pos: position{line: 1044, col: 28, offset: 25591}, + pos: position{line: 1045, col: 28, offset: 25641}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1044, col: 28, offset: 25591}, + pos: position{line: 1045, col: 28, offset: 25641}, name: "__", }, &litMatcher{ - pos: position{line: 1044, col: 31, offset: 25594}, + pos: position{line: 1045, col: 31, offset: 25644}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 1044, col: 35, offset: 25598}, + pos: position{line: 1045, col: 35, offset: 25648}, name: "__", }, &labeledExpr{ - pos: position{line: 1044, col: 38, offset: 25601}, + pos: position{line: 1045, col: 38, offset: 25651}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 1044, col: 40, offset: 25603}, + pos: position{line: 1045, col: 40, offset: 25653}, name: "Assignment", }, }, @@ -6803,38 +6811,38 @@ var g = &grammar{ }, { name: "Assignment", - pos: position{line: 1048, col: 1, offset: 25678}, + pos: position{line: 1049, col: 1, offset: 25728}, expr: &actionExpr{ - pos: position{line: 1049, col: 5, offset: 25693}, + pos: position{line: 1050, col: 5, offset: 25743}, run: (*parser).callonAssignment1, expr: &seqExpr{ - pos: position{line: 1049, col: 5, offset: 25693}, + pos: position{line: 1050, col: 5, offset: 25743}, exprs: []any{ &labeledExpr{ - pos: position{line: 1049, col: 5, offset: 25693}, + pos: position{line: 1050, col: 5, offset: 25743}, label: "lhs", expr: &zeroOrOneExpr{ - pos: position{line: 1049, col: 9, offset: 25697}, + pos: position{line: 1050, col: 9, offset: 25747}, expr: &actionExpr{ - pos: position{line: 1049, col: 10, offset: 25698}, + pos: position{line: 1050, col: 10, offset: 25748}, run: (*parser).callonAssignment5, expr: &seqExpr{ - pos: position{line: 1049, col: 10, offset: 25698}, + pos: position{line: 1050, col: 10, offset: 25748}, exprs: []any{ &labeledExpr{ - pos: position{line: 1049, col: 10, offset: 25698}, + pos: position{line: 1050, col: 10, offset: 25748}, label: "lval", expr: &ruleRefExpr{ - pos: position{line: 1049, col: 15, offset: 25703}, + pos: position{line: 1050, col: 15, offset: 25753}, name: "Lval", }, }, &ruleRefExpr{ - pos: position{line: 1049, col: 20, offset: 25708}, + pos: position{line: 1050, col: 20, offset: 25758}, name: "__", }, &litMatcher{ - pos: position{line: 1049, col: 23, offset: 25711}, + pos: position{line: 1050, col: 23, offset: 25761}, val: ":=", ignoreCase: false, want: "\":=\"", @@ -6845,14 +6853,14 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1049, col: 51, offset: 25739}, + pos: position{line: 1050, col: 51, offset: 25789}, name: "__", }, &labeledExpr{ - pos: position{line: 1049, col: 54, offset: 25742}, + pos: position{line: 1050, col: 54, offset: 25792}, label: "rhs", expr: &ruleRefExpr{ - pos: position{line: 1049, col: 58, offset: 25746}, + pos: position{line: 1050, col: 58, offset: 25796}, name: "Expr", }, }, @@ -6864,9 +6872,9 @@ var g = &grammar{ }, { name: "Expr", - pos: position{line: 1060, col: 1, offset: 25930}, + pos: position{line: 1061, col: 1, offset: 25980}, expr: &ruleRefExpr{ - pos: position{line: 1060, col: 8, offset: 25937}, + pos: position{line: 1061, col: 8, offset: 25987}, name: "CondExpr", }, leader: false, @@ -6874,72 +6882,72 @@ var g = &grammar{ }, { name: "CondExpr", - pos: position{line: 1062, col: 1, offset: 25947}, + pos: position{line: 1063, col: 1, offset: 25997}, expr: &actionExpr{ - pos: position{line: 1063, col: 5, offset: 25960}, + pos: position{line: 1064, col: 5, offset: 26010}, run: (*parser).callonCondExpr1, expr: &seqExpr{ - pos: position{line: 1063, col: 5, offset: 25960}, + pos: position{line: 1064, col: 5, offset: 26010}, exprs: []any{ &labeledExpr{ - pos: position{line: 1063, col: 5, offset: 25960}, + pos: position{line: 1064, col: 5, offset: 26010}, label: "cond", expr: &ruleRefExpr{ - pos: position{line: 1063, col: 10, offset: 25965}, + pos: position{line: 1064, col: 10, offset: 26015}, name: "NoneishExpr", }, }, &labeledExpr{ - pos: position{line: 1063, col: 22, offset: 25977}, + pos: position{line: 1064, col: 22, offset: 26027}, label: "opt", expr: &zeroOrOneExpr{ - pos: position{line: 1063, col: 26, offset: 25981}, + pos: position{line: 1064, col: 26, offset: 26031}, expr: &seqExpr{ - pos: position{line: 1063, col: 27, offset: 25982}, + pos: position{line: 1064, col: 27, offset: 26032}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1063, col: 27, offset: 25982}, + pos: position{line: 1064, col: 27, offset: 26032}, name: "__", }, &litMatcher{ - pos: position{line: 1063, col: 30, offset: 25985}, + pos: position{line: 1064, col: 30, offset: 26035}, val: "?", ignoreCase: false, want: "\"?\"", }, ¬Expr{ - pos: position{line: 1063, col: 34, offset: 25989}, + pos: position{line: 1064, col: 34, offset: 26039}, expr: &litMatcher{ - pos: position{line: 1063, col: 35, offset: 25990}, + pos: position{line: 1064, col: 35, offset: 26040}, val: "?", ignoreCase: false, want: "\"?\"", }, }, &ruleRefExpr{ - pos: position{line: 1063, col: 39, offset: 25994}, + pos: position{line: 1064, col: 39, offset: 26044}, name: "__", }, &ruleRefExpr{ - pos: position{line: 1063, col: 42, offset: 25997}, + pos: position{line: 1064, col: 42, offset: 26047}, name: "Expr", }, &ruleRefExpr{ - pos: position{line: 1063, col: 47, offset: 26002}, + pos: position{line: 1064, col: 47, offset: 26052}, name: "__", }, &litMatcher{ - pos: position{line: 1063, col: 50, offset: 26005}, + pos: position{line: 1064, col: 50, offset: 26055}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 1063, col: 54, offset: 26009}, + pos: position{line: 1064, col: 54, offset: 26059}, name: "__", }, &ruleRefExpr{ - pos: position{line: 1063, col: 57, offset: 26012}, + pos: position{line: 1064, col: 57, offset: 26062}, name: "Expr", }, }, @@ -6954,51 +6962,51 @@ var g = &grammar{ }, { name: "NoneishExpr", - pos: position{line: 1077, col: 1, offset: 26327}, + pos: position{line: 1078, col: 1, offset: 26377}, expr: &actionExpr{ - pos: position{line: 1078, col: 5, offset: 26343}, + pos: position{line: 1079, col: 5, offset: 26393}, run: (*parser).callonNoneishExpr1, expr: &seqExpr{ - pos: position{line: 1078, col: 5, offset: 26343}, + pos: position{line: 1079, col: 5, offset: 26393}, exprs: []any{ &labeledExpr{ - pos: position{line: 1078, col: 5, offset: 26343}, + pos: position{line: 1079, col: 5, offset: 26393}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1078, col: 11, offset: 26349}, + pos: position{line: 1079, col: 11, offset: 26399}, name: "LogicalOrExpr", }, }, &labeledExpr{ - pos: position{line: 1079, col: 5, offset: 26367}, + pos: position{line: 1080, col: 5, offset: 26417}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1079, col: 10, offset: 26372}, + pos: position{line: 1080, col: 10, offset: 26422}, expr: &actionExpr{ - pos: position{line: 1079, col: 11, offset: 26373}, + pos: position{line: 1080, col: 11, offset: 26423}, run: (*parser).callonNoneishExpr7, expr: &seqExpr{ - pos: position{line: 1079, col: 11, offset: 26373}, + pos: position{line: 1080, col: 11, offset: 26423}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1079, col: 11, offset: 26373}, + pos: position{line: 1080, col: 11, offset: 26423}, name: "__", }, &litMatcher{ - pos: position{line: 1079, col: 14, offset: 26376}, + pos: position{line: 1080, col: 14, offset: 26426}, val: "??", ignoreCase: false, want: "\"??\"", }, &ruleRefExpr{ - pos: position{line: 1079, col: 19, offset: 26381}, + pos: position{line: 1080, col: 19, offset: 26431}, name: "__", }, &labeledExpr{ - pos: position{line: 1079, col: 22, offset: 26384}, + pos: position{line: 1080, col: 22, offset: 26434}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1079, col: 27, offset: 26389}, + pos: position{line: 1080, col: 27, offset: 26439}, name: "LogicalOrExpr", }, }, @@ -7015,53 +7023,53 @@ var g = &grammar{ }, { name: "LogicalOrExpr", - pos: position{line: 1083, col: 1, offset: 26504}, + pos: position{line: 1084, col: 1, offset: 26554}, expr: &actionExpr{ - pos: position{line: 1084, col: 5, offset: 26522}, + pos: position{line: 1085, col: 5, offset: 26572}, run: (*parser).callonLogicalOrExpr1, expr: &seqExpr{ - pos: position{line: 1084, col: 5, offset: 26522}, + pos: position{line: 1085, col: 5, offset: 26572}, exprs: []any{ &labeledExpr{ - pos: position{line: 1084, col: 5, offset: 26522}, + pos: position{line: 1085, col: 5, offset: 26572}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1084, col: 11, offset: 26528}, + pos: position{line: 1085, col: 11, offset: 26578}, name: "LogicalAndExpr", }, }, &labeledExpr{ - pos: position{line: 1085, col: 5, offset: 26547}, + pos: position{line: 1086, col: 5, offset: 26597}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1085, col: 10, offset: 26552}, + pos: position{line: 1086, col: 10, offset: 26602}, expr: &actionExpr{ - pos: position{line: 1085, col: 11, offset: 26553}, + pos: position{line: 1086, col: 11, offset: 26603}, run: (*parser).callonLogicalOrExpr7, expr: &seqExpr{ - pos: position{line: 1085, col: 11, offset: 26553}, + pos: position{line: 1086, col: 11, offset: 26603}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1085, col: 11, offset: 26553}, + pos: position{line: 1086, col: 11, offset: 26603}, name: "__", }, &labeledExpr{ - pos: position{line: 1085, col: 14, offset: 26556}, + pos: position{line: 1086, col: 14, offset: 26606}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 1085, col: 17, offset: 26559}, + pos: position{line: 1086, col: 17, offset: 26609}, name: "OR", }, }, &ruleRefExpr{ - pos: position{line: 1085, col: 20, offset: 26562}, + pos: position{line: 1086, col: 20, offset: 26612}, name: "__", }, &labeledExpr{ - pos: position{line: 1085, col: 23, offset: 26565}, + pos: position{line: 1086, col: 23, offset: 26615}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1085, col: 28, offset: 26570}, + pos: position{line: 1086, col: 28, offset: 26620}, name: "LogicalAndExpr", }, }, @@ -7078,53 +7086,53 @@ var g = &grammar{ }, { name: "LogicalAndExpr", - pos: position{line: 1089, col: 1, offset: 26684}, + pos: position{line: 1090, col: 1, offset: 26734}, expr: &actionExpr{ - pos: position{line: 1090, col: 5, offset: 26703}, + pos: position{line: 1091, col: 5, offset: 26753}, run: (*parser).callonLogicalAndExpr1, expr: &seqExpr{ - pos: position{line: 1090, col: 5, offset: 26703}, + pos: position{line: 1091, col: 5, offset: 26753}, exprs: []any{ &labeledExpr{ - pos: position{line: 1090, col: 5, offset: 26703}, + pos: position{line: 1091, col: 5, offset: 26753}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1090, col: 11, offset: 26709}, + pos: position{line: 1091, col: 11, offset: 26759}, name: "NotExpr", }, }, &labeledExpr{ - pos: position{line: 1091, col: 5, offset: 26721}, + pos: position{line: 1092, col: 5, offset: 26771}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1091, col: 10, offset: 26726}, + pos: position{line: 1092, col: 10, offset: 26776}, expr: &actionExpr{ - pos: position{line: 1091, col: 11, offset: 26727}, + pos: position{line: 1092, col: 11, offset: 26777}, run: (*parser).callonLogicalAndExpr7, expr: &seqExpr{ - pos: position{line: 1091, col: 11, offset: 26727}, + pos: position{line: 1092, col: 11, offset: 26777}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1091, col: 11, offset: 26727}, + pos: position{line: 1092, col: 11, offset: 26777}, name: "__", }, &labeledExpr{ - pos: position{line: 1091, col: 14, offset: 26730}, + pos: position{line: 1092, col: 14, offset: 26780}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 1091, col: 17, offset: 26733}, + pos: position{line: 1092, col: 17, offset: 26783}, name: "AND", }, }, &ruleRefExpr{ - pos: position{line: 1091, col: 21, offset: 26737}, + pos: position{line: 1092, col: 21, offset: 26787}, name: "__", }, &labeledExpr{ - pos: position{line: 1091, col: 24, offset: 26740}, + pos: position{line: 1092, col: 24, offset: 26790}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1091, col: 29, offset: 26745}, + pos: position{line: 1092, col: 29, offset: 26795}, name: "NotExpr", }, }, @@ -7141,43 +7149,43 @@ var g = &grammar{ }, { name: "NotExpr", - pos: position{line: 1095, col: 1, offset: 26852}, + pos: position{line: 1096, col: 1, offset: 26902}, expr: &choiceExpr{ - pos: position{line: 1096, col: 5, offset: 26864}, + pos: position{line: 1097, col: 5, offset: 26914}, alternatives: []any{ &actionExpr{ - pos: position{line: 1096, col: 5, offset: 26864}, + pos: position{line: 1097, col: 5, offset: 26914}, run: (*parser).callonNotExpr2, expr: &seqExpr{ - pos: position{line: 1096, col: 5, offset: 26864}, + pos: position{line: 1097, col: 5, offset: 26914}, exprs: []any{ &choiceExpr{ - pos: position{line: 1096, col: 6, offset: 26865}, + pos: position{line: 1097, col: 6, offset: 26915}, alternatives: []any{ &seqExpr{ - pos: position{line: 1096, col: 6, offset: 26865}, + pos: position{line: 1097, col: 6, offset: 26915}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1096, col: 6, offset: 26865}, + pos: position{line: 1097, col: 6, offset: 26915}, name: "NOT", }, &ruleRefExpr{ - pos: position{line: 1096, col: 10, offset: 26869}, + pos: position{line: 1097, col: 10, offset: 26919}, name: "__", }, }, }, &seqExpr{ - pos: position{line: 1096, col: 15, offset: 26874}, + pos: position{line: 1097, col: 15, offset: 26924}, exprs: []any{ &litMatcher{ - pos: position{line: 1096, col: 15, offset: 26874}, + pos: position{line: 1097, col: 15, offset: 26924}, val: "!", ignoreCase: false, want: "\"!\"", }, &ruleRefExpr{ - pos: position{line: 1096, col: 19, offset: 26878}, + pos: position{line: 1097, col: 19, offset: 26928}, name: "__", }, }, @@ -7185,10 +7193,10 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 1096, col: 23, offset: 26882}, + pos: position{line: 1097, col: 23, offset: 26932}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1096, col: 25, offset: 26884}, + pos: position{line: 1097, col: 25, offset: 26934}, name: "NotExpr", }, }, @@ -7196,7 +7204,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1104, col: 5, offset: 27050}, + pos: position{line: 1105, col: 5, offset: 27100}, name: "BetweenExpr", }, }, @@ -7206,42 +7214,42 @@ var g = &grammar{ }, { name: "BetweenExpr", - pos: position{line: 1106, col: 1, offset: 27063}, + pos: position{line: 1107, col: 1, offset: 27113}, expr: &choiceExpr{ - pos: position{line: 1107, col: 5, offset: 27079}, + pos: position{line: 1108, col: 5, offset: 27129}, alternatives: []any{ &actionExpr{ - pos: position{line: 1107, col: 5, offset: 27079}, + pos: position{line: 1108, col: 5, offset: 27129}, run: (*parser).callonBetweenExpr2, expr: &seqExpr{ - pos: position{line: 1107, col: 5, offset: 27079}, + pos: position{line: 1108, col: 5, offset: 27129}, exprs: []any{ &labeledExpr{ - pos: position{line: 1107, col: 5, offset: 27079}, + pos: position{line: 1108, col: 5, offset: 27129}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1107, col: 10, offset: 27084}, + pos: position{line: 1108, col: 10, offset: 27134}, name: "ComparisonExpr", }, }, &ruleRefExpr{ - pos: position{line: 1107, col: 25, offset: 27099}, + pos: position{line: 1108, col: 25, offset: 27149}, name: "_", }, &labeledExpr{ - pos: position{line: 1107, col: 27, offset: 27101}, + pos: position{line: 1108, col: 27, offset: 27151}, label: "not", expr: &zeroOrOneExpr{ - pos: position{line: 1107, col: 31, offset: 27105}, + pos: position{line: 1108, col: 31, offset: 27155}, expr: &seqExpr{ - pos: position{line: 1107, col: 32, offset: 27106}, + pos: position{line: 1108, col: 32, offset: 27156}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1107, col: 32, offset: 27106}, + pos: position{line: 1108, col: 32, offset: 27156}, name: "NOT", }, &ruleRefExpr{ - pos: position{line: 1107, col: 36, offset: 27110}, + pos: position{line: 1108, col: 36, offset: 27160}, name: "_", }, }, @@ -7249,38 +7257,38 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1107, col: 40, offset: 27114}, + pos: position{line: 1108, col: 40, offset: 27164}, name: "BETWEEN", }, &ruleRefExpr{ - pos: position{line: 1107, col: 48, offset: 27122}, + pos: position{line: 1108, col: 48, offset: 27172}, name: "_", }, &labeledExpr{ - pos: position{line: 1107, col: 50, offset: 27124}, + pos: position{line: 1108, col: 50, offset: 27174}, label: "lower", expr: &ruleRefExpr{ - pos: position{line: 1107, col: 56, offset: 27130}, + pos: position{line: 1108, col: 56, offset: 27180}, name: "BetweenExpr", }, }, &ruleRefExpr{ - pos: position{line: 1107, col: 68, offset: 27142}, + pos: position{line: 1108, col: 68, offset: 27192}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1107, col: 70, offset: 27144}, + pos: position{line: 1108, col: 70, offset: 27194}, name: "AND", }, &ruleRefExpr{ - pos: position{line: 1107, col: 74, offset: 27148}, + pos: position{line: 1108, col: 74, offset: 27198}, name: "_", }, &labeledExpr{ - pos: position{line: 1107, col: 76, offset: 27150}, + pos: position{line: 1108, col: 76, offset: 27200}, label: "upper", expr: &ruleRefExpr{ - pos: position{line: 1107, col: 82, offset: 27156}, + pos: position{line: 1108, col: 82, offset: 27206}, name: "BetweenExpr", }, }, @@ -7288,7 +7296,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1117, col: 5, offset: 27396}, + pos: position{line: 1118, col: 5, offset: 27446}, name: "ComparisonExpr", }, }, @@ -7298,46 +7306,46 @@ var g = &grammar{ }, { name: "ComparisonExpr", - pos: position{line: 1119, col: 1, offset: 27412}, + pos: position{line: 1120, col: 1, offset: 27462}, expr: &choiceExpr{ - pos: position{line: 1120, col: 5, offset: 27431}, + pos: position{line: 1121, col: 5, offset: 27481}, alternatives: []any{ &actionExpr{ - pos: position{line: 1120, col: 5, offset: 27431}, + pos: position{line: 1121, col: 5, offset: 27481}, run: (*parser).callonComparisonExpr2, expr: &seqExpr{ - pos: position{line: 1120, col: 5, offset: 27431}, + pos: position{line: 1121, col: 5, offset: 27481}, exprs: []any{ &labeledExpr{ - pos: position{line: 1120, col: 5, offset: 27431}, + pos: position{line: 1121, col: 5, offset: 27481}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1120, col: 10, offset: 27436}, + pos: position{line: 1121, col: 10, offset: 27486}, name: "AdditiveExpr", }, }, &ruleRefExpr{ - pos: position{line: 1120, col: 23, offset: 27449}, + pos: position{line: 1121, col: 23, offset: 27499}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1120, col: 25, offset: 27451}, + pos: position{line: 1121, col: 25, offset: 27501}, name: "IS", }, &labeledExpr{ - pos: position{line: 1120, col: 28, offset: 27454}, + pos: position{line: 1121, col: 28, offset: 27504}, label: "not", expr: &zeroOrOneExpr{ - pos: position{line: 1120, col: 32, offset: 27458}, + pos: position{line: 1121, col: 32, offset: 27508}, expr: &seqExpr{ - pos: position{line: 1120, col: 33, offset: 27459}, + pos: position{line: 1121, col: 33, offset: 27509}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1120, col: 33, offset: 27459}, + pos: position{line: 1121, col: 33, offset: 27509}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1120, col: 35, offset: 27461}, + pos: position{line: 1121, col: 35, offset: 27511}, name: "NOT", }, }, @@ -7345,82 +7353,82 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1120, col: 41, offset: 27467}, + pos: position{line: 1121, col: 41, offset: 27517}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1120, col: 43, offset: 27469}, + pos: position{line: 1121, col: 43, offset: 27519}, name: "NULL", }, }, }, }, &actionExpr{ - pos: position{line: 1128, col: 5, offset: 27634}, + pos: position{line: 1129, col: 5, offset: 27684}, run: (*parser).callonComparisonExpr15, expr: &seqExpr{ - pos: position{line: 1128, col: 5, offset: 27634}, + pos: position{line: 1129, col: 5, offset: 27684}, exprs: []any{ &labeledExpr{ - pos: position{line: 1128, col: 5, offset: 27634}, + pos: position{line: 1129, col: 5, offset: 27684}, label: "lhs", expr: &ruleRefExpr{ - pos: position{line: 1128, col: 9, offset: 27638}, + pos: position{line: 1129, col: 9, offset: 27688}, name: "AdditiveExpr", }, }, &labeledExpr{ - pos: position{line: 1128, col: 22, offset: 27651}, + pos: position{line: 1129, col: 22, offset: 27701}, label: "opAndRHS", expr: &zeroOrOneExpr{ - pos: position{line: 1128, col: 31, offset: 27660}, + pos: position{line: 1129, col: 31, offset: 27710}, expr: &choiceExpr{ - pos: position{line: 1128, col: 32, offset: 27661}, + pos: position{line: 1129, col: 32, offset: 27711}, alternatives: []any{ &seqExpr{ - pos: position{line: 1128, col: 32, offset: 27661}, + pos: position{line: 1129, col: 32, offset: 27711}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1128, col: 32, offset: 27661}, + pos: position{line: 1129, col: 32, offset: 27711}, name: "__", }, &ruleRefExpr{ - pos: position{line: 1128, col: 35, offset: 27664}, + pos: position{line: 1129, col: 35, offset: 27714}, name: "Comparator", }, &ruleRefExpr{ - pos: position{line: 1128, col: 46, offset: 27675}, + pos: position{line: 1129, col: 46, offset: 27725}, name: "__", }, &ruleRefExpr{ - pos: position{line: 1128, col: 49, offset: 27678}, + pos: position{line: 1129, col: 49, offset: 27728}, name: "AdditiveExpr", }, }, }, &seqExpr{ - pos: position{line: 1128, col: 64, offset: 27693}, + pos: position{line: 1129, col: 64, offset: 27743}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1128, col: 64, offset: 27693}, + pos: position{line: 1129, col: 64, offset: 27743}, name: "__", }, &actionExpr{ - pos: position{line: 1128, col: 68, offset: 27697}, + pos: position{line: 1129, col: 68, offset: 27747}, run: (*parser).callonComparisonExpr29, expr: &litMatcher{ - pos: position{line: 1128, col: 68, offset: 27697}, + pos: position{line: 1129, col: 68, offset: 27747}, val: "~", ignoreCase: false, want: "\"~\"", }, }, &ruleRefExpr{ - pos: position{line: 1128, col: 104, offset: 27733}, + pos: position{line: 1129, col: 104, offset: 27783}, name: "__", }, &ruleRefExpr{ - pos: position{line: 1128, col: 107, offset: 27736}, + pos: position{line: 1129, col: 107, offset: 27786}, name: "AdditiveExpr", }, }, @@ -7439,53 +7447,53 @@ var g = &grammar{ }, { name: "AdditiveExpr", - pos: position{line: 1141, col: 1, offset: 28027}, + pos: position{line: 1142, col: 1, offset: 28077}, expr: &actionExpr{ - pos: position{line: 1142, col: 5, offset: 28044}, + pos: position{line: 1143, col: 5, offset: 28094}, run: (*parser).callonAdditiveExpr1, expr: &seqExpr{ - pos: position{line: 1142, col: 5, offset: 28044}, + pos: position{line: 1143, col: 5, offset: 28094}, exprs: []any{ &labeledExpr{ - pos: position{line: 1142, col: 5, offset: 28044}, + pos: position{line: 1143, col: 5, offset: 28094}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1142, col: 11, offset: 28050}, + pos: position{line: 1143, col: 11, offset: 28100}, name: "MultiplicativeExpr", }, }, &labeledExpr{ - pos: position{line: 1143, col: 5, offset: 28073}, + pos: position{line: 1144, col: 5, offset: 28123}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1143, col: 10, offset: 28078}, + pos: position{line: 1144, col: 10, offset: 28128}, expr: &actionExpr{ - pos: position{line: 1143, col: 11, offset: 28079}, + pos: position{line: 1144, col: 11, offset: 28129}, run: (*parser).callonAdditiveExpr7, expr: &seqExpr{ - pos: position{line: 1143, col: 11, offset: 28079}, + pos: position{line: 1144, col: 11, offset: 28129}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1143, col: 11, offset: 28079}, + pos: position{line: 1144, col: 11, offset: 28129}, name: "__", }, &labeledExpr{ - pos: position{line: 1143, col: 14, offset: 28082}, + pos: position{line: 1144, col: 14, offset: 28132}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 1143, col: 17, offset: 28085}, + pos: position{line: 1144, col: 17, offset: 28135}, name: "AdditiveOperator", }, }, &ruleRefExpr{ - pos: position{line: 1143, col: 34, offset: 28102}, + pos: position{line: 1144, col: 34, offset: 28152}, name: "__", }, &labeledExpr{ - pos: position{line: 1143, col: 37, offset: 28105}, + pos: position{line: 1144, col: 37, offset: 28155}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1143, col: 42, offset: 28110}, + pos: position{line: 1144, col: 42, offset: 28160}, name: "MultiplicativeExpr", }, }, @@ -7502,21 +7510,21 @@ var g = &grammar{ }, { name: "AdditiveOperator", - pos: position{line: 1147, col: 1, offset: 28228}, + pos: position{line: 1148, col: 1, offset: 28278}, expr: &actionExpr{ - pos: position{line: 1147, col: 20, offset: 28247}, + pos: position{line: 1148, col: 20, offset: 28297}, run: (*parser).callonAdditiveOperator1, expr: &choiceExpr{ - pos: position{line: 1147, col: 21, offset: 28248}, + pos: position{line: 1148, col: 21, offset: 28298}, alternatives: []any{ &litMatcher{ - pos: position{line: 1147, col: 21, offset: 28248}, + pos: position{line: 1148, col: 21, offset: 28298}, val: "+", ignoreCase: false, want: "\"+\"", }, &litMatcher{ - pos: position{line: 1147, col: 27, offset: 28254}, + pos: position{line: 1148, col: 27, offset: 28304}, val: "-", ignoreCase: false, want: "\"-\"", @@ -7529,53 +7537,53 @@ var g = &grammar{ }, { name: "MultiplicativeExpr", - pos: position{line: 1149, col: 1, offset: 28291}, + pos: position{line: 1150, col: 1, offset: 28341}, expr: &actionExpr{ - pos: position{line: 1150, col: 5, offset: 28314}, + pos: position{line: 1151, col: 5, offset: 28364}, run: (*parser).callonMultiplicativeExpr1, expr: &seqExpr{ - pos: position{line: 1150, col: 5, offset: 28314}, + pos: position{line: 1151, col: 5, offset: 28364}, exprs: []any{ &labeledExpr{ - pos: position{line: 1150, col: 5, offset: 28314}, + pos: position{line: 1151, col: 5, offset: 28364}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1150, col: 11, offset: 28320}, + pos: position{line: 1151, col: 11, offset: 28370}, name: "ConcatExpr", }, }, &labeledExpr{ - pos: position{line: 1151, col: 5, offset: 28335}, + pos: position{line: 1152, col: 5, offset: 28385}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1151, col: 10, offset: 28340}, + pos: position{line: 1152, col: 10, offset: 28390}, expr: &actionExpr{ - pos: position{line: 1151, col: 11, offset: 28341}, + pos: position{line: 1152, col: 11, offset: 28391}, run: (*parser).callonMultiplicativeExpr7, expr: &seqExpr{ - pos: position{line: 1151, col: 11, offset: 28341}, + pos: position{line: 1152, col: 11, offset: 28391}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1151, col: 11, offset: 28341}, + pos: position{line: 1152, col: 11, offset: 28391}, name: "__", }, &labeledExpr{ - pos: position{line: 1151, col: 14, offset: 28344}, + pos: position{line: 1152, col: 14, offset: 28394}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 1151, col: 17, offset: 28347}, + pos: position{line: 1152, col: 17, offset: 28397}, name: "MultiplicativeOperator", }, }, &ruleRefExpr{ - pos: position{line: 1151, col: 40, offset: 28370}, + pos: position{line: 1152, col: 40, offset: 28420}, name: "__", }, &labeledExpr{ - pos: position{line: 1151, col: 43, offset: 28373}, + pos: position{line: 1152, col: 43, offset: 28423}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1151, col: 48, offset: 28378}, + pos: position{line: 1152, col: 48, offset: 28428}, name: "ConcatExpr", }, }, @@ -7592,27 +7600,27 @@ var g = &grammar{ }, { name: "MultiplicativeOperator", - pos: position{line: 1155, col: 1, offset: 28488}, + pos: position{line: 1156, col: 1, offset: 28538}, expr: &actionExpr{ - pos: position{line: 1155, col: 26, offset: 28513}, + pos: position{line: 1156, col: 26, offset: 28563}, run: (*parser).callonMultiplicativeOperator1, expr: &choiceExpr{ - pos: position{line: 1155, col: 27, offset: 28514}, + pos: position{line: 1156, col: 27, offset: 28564}, alternatives: []any{ &litMatcher{ - pos: position{line: 1155, col: 27, offset: 28514}, + pos: position{line: 1156, col: 27, offset: 28564}, val: "*", ignoreCase: false, want: "\"*\"", }, &litMatcher{ - pos: position{line: 1155, col: 33, offset: 28520}, + pos: position{line: 1156, col: 33, offset: 28570}, val: "/", ignoreCase: false, want: "\"/\"", }, &litMatcher{ - pos: position{line: 1155, col: 39, offset: 28526}, + pos: position{line: 1156, col: 39, offset: 28576}, val: "%", ignoreCase: false, want: "\"%\"", @@ -7625,51 +7633,51 @@ var g = &grammar{ }, { name: "ConcatExpr", - pos: position{line: 1157, col: 1, offset: 28563}, + pos: position{line: 1158, col: 1, offset: 28613}, expr: &actionExpr{ - pos: position{line: 1158, col: 5, offset: 28578}, + pos: position{line: 1159, col: 5, offset: 28628}, run: (*parser).callonConcatExpr1, expr: &seqExpr{ - pos: position{line: 1158, col: 5, offset: 28578}, + pos: position{line: 1159, col: 5, offset: 28628}, exprs: []any{ &labeledExpr{ - pos: position{line: 1158, col: 5, offset: 28578}, + pos: position{line: 1159, col: 5, offset: 28628}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1158, col: 11, offset: 28584}, + pos: position{line: 1159, col: 11, offset: 28634}, name: "UnaryPlusOrMinus", }, }, &labeledExpr{ - pos: position{line: 1159, col: 5, offset: 28605}, + pos: position{line: 1160, col: 5, offset: 28655}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1159, col: 10, offset: 28610}, + pos: position{line: 1160, col: 10, offset: 28660}, expr: &actionExpr{ - pos: position{line: 1159, col: 11, offset: 28611}, + pos: position{line: 1160, col: 11, offset: 28661}, run: (*parser).callonConcatExpr7, expr: &seqExpr{ - pos: position{line: 1159, col: 11, offset: 28611}, + pos: position{line: 1160, col: 11, offset: 28661}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1159, col: 11, offset: 28611}, + pos: position{line: 1160, col: 11, offset: 28661}, name: "__", }, &litMatcher{ - pos: position{line: 1159, col: 14, offset: 28614}, + pos: position{line: 1160, col: 14, offset: 28664}, val: "||", ignoreCase: false, want: "\"||\"", }, &ruleRefExpr{ - pos: position{line: 1159, col: 19, offset: 28619}, + pos: position{line: 1160, col: 19, offset: 28669}, name: "__", }, &labeledExpr{ - pos: position{line: 1159, col: 22, offset: 28622}, + pos: position{line: 1160, col: 22, offset: 28672}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1159, col: 27, offset: 28627}, + pos: position{line: 1160, col: 27, offset: 28677}, name: "UnaryPlusOrMinus", }, }, @@ -7686,40 +7694,40 @@ var g = &grammar{ }, { name: "UnaryPlusOrMinus", - pos: position{line: 1163, col: 1, offset: 28745}, + pos: position{line: 1164, col: 1, offset: 28795}, expr: &choiceExpr{ - pos: position{line: 1164, col: 5, offset: 28766}, + pos: position{line: 1165, col: 5, offset: 28816}, alternatives: []any{ &actionExpr{ - pos: position{line: 1164, col: 5, offset: 28766}, + pos: position{line: 1165, col: 5, offset: 28816}, run: (*parser).callonUnaryPlusOrMinus2, expr: &seqExpr{ - pos: position{line: 1164, col: 5, offset: 28766}, + pos: position{line: 1165, col: 5, offset: 28816}, exprs: []any{ ¬Expr{ - pos: position{line: 1164, col: 5, offset: 28766}, + pos: position{line: 1165, col: 5, offset: 28816}, expr: &ruleRefExpr{ - pos: position{line: 1164, col: 6, offset: 28767}, + pos: position{line: 1165, col: 6, offset: 28817}, name: "Literal", }, }, &labeledExpr{ - pos: position{line: 1164, col: 14, offset: 28775}, + pos: position{line: 1165, col: 14, offset: 28825}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 1164, col: 17, offset: 28778}, + pos: position{line: 1165, col: 17, offset: 28828}, name: "PlusOrMinusOp", }, }, &ruleRefExpr{ - pos: position{line: 1164, col: 31, offset: 28792}, + pos: position{line: 1165, col: 31, offset: 28842}, name: "__", }, &labeledExpr{ - pos: position{line: 1164, col: 34, offset: 28795}, + pos: position{line: 1165, col: 34, offset: 28845}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1164, col: 36, offset: 28797}, + pos: position{line: 1165, col: 36, offset: 28847}, name: "UnaryPlusOrMinus", }, }, @@ -7727,7 +7735,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1173, col: 5, offset: 28981}, + pos: position{line: 1174, col: 5, offset: 29031}, name: "ColonCast", }, }, @@ -7737,21 +7745,21 @@ var g = &grammar{ }, { name: "PlusOrMinusOp", - pos: position{line: 1175, col: 1, offset: 28992}, + pos: position{line: 1176, col: 1, offset: 29042}, expr: &actionExpr{ - pos: position{line: 1175, col: 17, offset: 29008}, + pos: position{line: 1176, col: 17, offset: 29058}, run: (*parser).callonPlusOrMinusOp1, expr: &choiceExpr{ - pos: position{line: 1175, col: 18, offset: 29009}, + pos: position{line: 1176, col: 18, offset: 29059}, alternatives: []any{ &litMatcher{ - pos: position{line: 1175, col: 18, offset: 29009}, + pos: position{line: 1176, col: 18, offset: 29059}, val: "+", ignoreCase: false, want: "\"+\"", }, &litMatcher{ - pos: position{line: 1175, col: 24, offset: 29015}, + pos: position{line: 1176, col: 24, offset: 29065}, val: "-", ignoreCase: false, want: "\"-\"", @@ -7764,58 +7772,58 @@ var g = &grammar{ }, { name: "ColonCast", - pos: position{line: 1177, col: 1, offset: 29052}, + pos: position{line: 1178, col: 1, offset: 29102}, expr: &actionExpr{ - pos: position{line: 1178, col: 5, offset: 29066}, + pos: position{line: 1179, col: 5, offset: 29116}, run: (*parser).callonColonCast1, expr: &seqExpr{ - pos: position{line: 1178, col: 5, offset: 29066}, + pos: position{line: 1179, col: 5, offset: 29116}, exprs: []any{ &labeledExpr{ - pos: position{line: 1178, col: 5, offset: 29066}, + pos: position{line: 1179, col: 5, offset: 29116}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1178, col: 11, offset: 29072}, + pos: position{line: 1179, col: 11, offset: 29122}, name: "DerefExpr", }, }, &labeledExpr{ - pos: position{line: 1179, col: 5, offset: 29086}, + pos: position{line: 1180, col: 5, offset: 29136}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1179, col: 10, offset: 29091}, + pos: position{line: 1180, col: 10, offset: 29141}, expr: &actionExpr{ - pos: position{line: 1179, col: 11, offset: 29092}, + pos: position{line: 1180, col: 11, offset: 29142}, run: (*parser).callonColonCast7, expr: &seqExpr{ - pos: position{line: 1179, col: 11, offset: 29092}, + pos: position{line: 1180, col: 11, offset: 29142}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1179, col: 11, offset: 29092}, + pos: position{line: 1180, col: 11, offset: 29142}, name: "__", }, &litMatcher{ - pos: position{line: 1179, col: 14, offset: 29095}, + pos: position{line: 1180, col: 14, offset: 29145}, val: "::", ignoreCase: false, want: "\"::\"", }, &ruleRefExpr{ - pos: position{line: 1179, col: 19, offset: 29100}, + pos: position{line: 1180, col: 19, offset: 29150}, name: "__", }, &labeledExpr{ - pos: position{line: 1179, col: 22, offset: 29103}, + pos: position{line: 1180, col: 22, offset: 29153}, label: "expr", expr: &choiceExpr{ - pos: position{line: 1179, col: 28, offset: 29109}, + pos: position{line: 1180, col: 28, offset: 29159}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1179, col: 28, offset: 29109}, + pos: position{line: 1180, col: 28, offset: 29159}, name: "TypeAsValue", }, &ruleRefExpr{ - pos: position{line: 1179, col: 42, offset: 29123}, + pos: position{line: 1180, col: 42, offset: 29173}, name: "IDExpr", }, }, @@ -7834,15 +7842,15 @@ var g = &grammar{ }, { name: "IDExpr", - pos: position{line: 1183, col: 1, offset: 29230}, + pos: position{line: 1184, col: 1, offset: 29280}, expr: &actionExpr{ - pos: position{line: 1183, col: 10, offset: 29239}, + pos: position{line: 1184, col: 10, offset: 29289}, run: (*parser).callonIDExpr1, expr: &labeledExpr{ - pos: position{line: 1183, col: 10, offset: 29239}, + pos: position{line: 1184, col: 10, offset: 29289}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 1183, col: 13, offset: 29242}, + pos: position{line: 1184, col: 13, offset: 29292}, name: "Identifier", }, }, @@ -7852,73 +7860,73 @@ var g = &grammar{ }, { name: "DerefExpr", - pos: position{line: 1185, col: 1, offset: 29319}, + pos: position{line: 1186, col: 1, offset: 29369}, expr: &choiceExpr{ - pos: position{line: 1186, col: 5, offset: 29333}, + pos: position{line: 1187, col: 5, offset: 29383}, alternatives: []any{ &actionExpr{ - pos: position{line: 1186, col: 5, offset: 29333}, + pos: position{line: 1187, col: 5, offset: 29383}, run: (*parser).callonDerefExpr2, expr: &seqExpr{ - pos: position{line: 1186, col: 5, offset: 29333}, + pos: position{line: 1187, col: 5, offset: 29383}, exprs: []any{ &labeledExpr{ - pos: position{line: 1186, col: 5, offset: 29333}, + pos: position{line: 1187, col: 5, offset: 29383}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1186, col: 10, offset: 29338}, + pos: position{line: 1187, col: 10, offset: 29388}, name: "DerefExpr", }, }, &litMatcher{ - pos: position{line: 1186, col: 20, offset: 29348}, + pos: position{line: 1187, col: 20, offset: 29398}, val: "[", ignoreCase: false, want: "\"[\"", }, &ruleRefExpr{ - pos: position{line: 1186, col: 24, offset: 29352}, + pos: position{line: 1187, col: 24, offset: 29402}, name: "__", }, &labeledExpr{ - pos: position{line: 1186, col: 27, offset: 29355}, + pos: position{line: 1187, col: 27, offset: 29405}, label: "from", expr: &ruleRefExpr{ - pos: position{line: 1186, col: 32, offset: 29360}, + pos: position{line: 1187, col: 32, offset: 29410}, name: "AdditiveExpr", }, }, &ruleRefExpr{ - pos: position{line: 1186, col: 45, offset: 29373}, + pos: position{line: 1187, col: 45, offset: 29423}, name: "__", }, &litMatcher{ - pos: position{line: 1186, col: 48, offset: 29376}, + pos: position{line: 1187, col: 48, offset: 29426}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 1186, col: 52, offset: 29380}, + pos: position{line: 1187, col: 52, offset: 29430}, name: "__", }, &labeledExpr{ - pos: position{line: 1186, col: 55, offset: 29383}, + pos: position{line: 1187, col: 55, offset: 29433}, label: "to", expr: &zeroOrOneExpr{ - pos: position{line: 1186, col: 58, offset: 29386}, + pos: position{line: 1187, col: 58, offset: 29436}, expr: &ruleRefExpr{ - pos: position{line: 1186, col: 58, offset: 29386}, + pos: position{line: 1187, col: 58, offset: 29436}, name: "AdditiveExpr", }, }, }, &ruleRefExpr{ - pos: position{line: 1186, col: 72, offset: 29400}, + pos: position{line: 1187, col: 72, offset: 29450}, name: "__", }, &litMatcher{ - pos: position{line: 1186, col: 75, offset: 29403}, + pos: position{line: 1187, col: 75, offset: 29453}, val: "]", ignoreCase: false, want: "\"]\"", @@ -7927,49 +7935,49 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1198, col: 5, offset: 29642}, + pos: position{line: 1199, col: 5, offset: 29692}, run: (*parser).callonDerefExpr18, expr: &seqExpr{ - pos: position{line: 1198, col: 5, offset: 29642}, + pos: position{line: 1199, col: 5, offset: 29692}, exprs: []any{ &labeledExpr{ - pos: position{line: 1198, col: 5, offset: 29642}, + pos: position{line: 1199, col: 5, offset: 29692}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1198, col: 10, offset: 29647}, + pos: position{line: 1199, col: 10, offset: 29697}, name: "DerefExpr", }, }, &litMatcher{ - pos: position{line: 1198, col: 20, offset: 29657}, + pos: position{line: 1199, col: 20, offset: 29707}, val: "[", ignoreCase: false, want: "\"[\"", }, &ruleRefExpr{ - pos: position{line: 1198, col: 24, offset: 29661}, + pos: position{line: 1199, col: 24, offset: 29711}, name: "__", }, &litMatcher{ - pos: position{line: 1198, col: 27, offset: 29664}, + pos: position{line: 1199, col: 27, offset: 29714}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 1198, col: 31, offset: 29668}, + pos: position{line: 1199, col: 31, offset: 29718}, name: "__", }, &labeledExpr{ - pos: position{line: 1198, col: 34, offset: 29671}, + pos: position{line: 1199, col: 34, offset: 29721}, label: "to", expr: &ruleRefExpr{ - pos: position{line: 1198, col: 37, offset: 29674}, + pos: position{line: 1199, col: 37, offset: 29724}, name: "AdditiveExpr", }, }, &litMatcher{ - pos: position{line: 1198, col: 50, offset: 29687}, + pos: position{line: 1199, col: 50, offset: 29737}, val: "]", ignoreCase: false, want: "\"]\"", @@ -7978,35 +7986,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1206, col: 5, offset: 29851}, + pos: position{line: 1207, col: 5, offset: 29901}, run: (*parser).callonDerefExpr29, expr: &seqExpr{ - pos: position{line: 1206, col: 5, offset: 29851}, + pos: position{line: 1207, col: 5, offset: 29901}, exprs: []any{ &labeledExpr{ - pos: position{line: 1206, col: 5, offset: 29851}, + pos: position{line: 1207, col: 5, offset: 29901}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1206, col: 10, offset: 29856}, + pos: position{line: 1207, col: 10, offset: 29906}, name: "DerefExpr", }, }, &litMatcher{ - pos: position{line: 1206, col: 20, offset: 29866}, + pos: position{line: 1207, col: 20, offset: 29916}, val: "[", ignoreCase: false, want: "\"[\"", }, &labeledExpr{ - pos: position{line: 1206, col: 24, offset: 29870}, + pos: position{line: 1207, col: 24, offset: 29920}, label: "index", expr: &ruleRefExpr{ - pos: position{line: 1206, col: 30, offset: 29876}, + pos: position{line: 1207, col: 30, offset: 29926}, name: "Expr", }, }, &litMatcher{ - pos: position{line: 1206, col: 35, offset: 29881}, + pos: position{line: 1207, col: 35, offset: 29931}, val: "]", ignoreCase: false, want: "\"]\"", @@ -8015,49 +8023,49 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1214, col: 5, offset: 30051}, + pos: position{line: 1215, col: 5, offset: 30101}, run: (*parser).callonDerefExpr37, expr: &seqExpr{ - pos: position{line: 1214, col: 5, offset: 30051}, + pos: position{line: 1215, col: 5, offset: 30101}, exprs: []any{ &labeledExpr{ - pos: position{line: 1214, col: 5, offset: 30051}, + pos: position{line: 1215, col: 5, offset: 30101}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1214, col: 10, offset: 30056}, + pos: position{line: 1215, col: 10, offset: 30106}, name: "DerefExpr", }, }, &litMatcher{ - pos: position{line: 1214, col: 20, offset: 30066}, + pos: position{line: 1215, col: 20, offset: 30116}, val: ".", ignoreCase: false, want: "\".\"", }, &litMatcher{ - pos: position{line: 1214, col: 24, offset: 30070}, + pos: position{line: 1215, col: 24, offset: 30120}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1214, col: 28, offset: 30074}, + pos: position{line: 1215, col: 28, offset: 30124}, name: "__", }, &labeledExpr{ - pos: position{line: 1214, col: 31, offset: 30077}, + pos: position{line: 1215, col: 31, offset: 30127}, label: "typ", expr: &ruleRefExpr{ - pos: position{line: 1214, col: 35, offset: 30081}, + pos: position{line: 1215, col: 35, offset: 30131}, name: "Type", }, }, &ruleRefExpr{ - pos: position{line: 1214, col: 40, offset: 30086}, + pos: position{line: 1215, col: 40, offset: 30136}, name: "__", }, &litMatcher{ - pos: position{line: 1214, col: 43, offset: 30089}, + pos: position{line: 1215, col: 43, offset: 30139}, val: ")", ignoreCase: false, want: "\")\"", @@ -8066,57 +8074,57 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1222, col: 5, offset: 30266}, + pos: position{line: 1223, col: 5, offset: 30316}, run: (*parser).callonDerefExpr48, expr: &seqExpr{ - pos: position{line: 1222, col: 5, offset: 30266}, + pos: position{line: 1223, col: 5, offset: 30316}, exprs: []any{ &labeledExpr{ - pos: position{line: 1222, col: 5, offset: 30266}, + pos: position{line: 1223, col: 5, offset: 30316}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1222, col: 10, offset: 30271}, + pos: position{line: 1223, col: 10, offset: 30321}, name: "DerefExpr", }, }, &litMatcher{ - pos: position{line: 1222, col: 20, offset: 30281}, + pos: position{line: 1223, col: 20, offset: 30331}, val: ".", ignoreCase: false, want: "\".\"", }, &labeledExpr{ - pos: position{line: 1222, col: 25, offset: 30286}, + pos: position{line: 1223, col: 25, offset: 30336}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 1222, col: 30, offset: 30291}, + pos: position{line: 1223, col: 30, offset: 30341}, name: "FuncNameExpr", }, }, &litMatcher{ - pos: position{line: 1222, col: 43, offset: 30304}, + pos: position{line: 1223, col: 43, offset: 30354}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1222, col: 46, offset: 30307}, + pos: position{line: 1223, col: 46, offset: 30357}, name: "__", }, &labeledExpr{ - pos: position{line: 1222, col: 49, offset: 30310}, + pos: position{line: 1223, col: 49, offset: 30360}, label: "args", expr: &ruleRefExpr{ - pos: position{line: 1222, col: 54, offset: 30315}, + pos: position{line: 1223, col: 54, offset: 30365}, name: "FunctionArgs", }, }, &ruleRefExpr{ - pos: position{line: 1222, col: 67, offset: 30328}, + pos: position{line: 1223, col: 67, offset: 30378}, name: "__", }, &litMatcher{ - pos: position{line: 1222, col: 70, offset: 30331}, + pos: position{line: 1223, col: 70, offset: 30381}, val: ")", ignoreCase: false, want: "\")\"", @@ -8125,32 +8133,32 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1230, col: 5, offset: 30518}, + pos: position{line: 1231, col: 5, offset: 30568}, run: (*parser).callonDerefExpr61, expr: &seqExpr{ - pos: position{line: 1230, col: 5, offset: 30518}, + pos: position{line: 1231, col: 5, offset: 30568}, exprs: []any{ &labeledExpr{ - pos: position{line: 1230, col: 5, offset: 30518}, + pos: position{line: 1231, col: 5, offset: 30568}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1230, col: 10, offset: 30523}, + pos: position{line: 1231, col: 10, offset: 30573}, name: "DerefExpr", }, }, &labeledExpr{ - pos: position{line: 1230, col: 20, offset: 30533}, + pos: position{line: 1231, col: 20, offset: 30583}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 1230, col: 23, offset: 30536}, + pos: position{line: 1231, col: 23, offset: 30586}, name: "DotOp", }, }, &labeledExpr{ - pos: position{line: 1230, col: 29, offset: 30542}, + pos: position{line: 1231, col: 29, offset: 30592}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 1230, col: 32, offset: 30545}, + pos: position{line: 1231, col: 32, offset: 30595}, name: "DerefKey", }, }, @@ -8158,19 +8166,19 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1239, col: 5, offset: 30741}, + pos: position{line: 1240, col: 5, offset: 30791}, name: "MatchExpr", }, &ruleRefExpr{ - pos: position{line: 1240, col: 5, offset: 30755}, + pos: position{line: 1241, col: 5, offset: 30805}, name: "CaseExpr", }, &ruleRefExpr{ - pos: position{line: 1241, col: 5, offset: 30768}, + pos: position{line: 1242, col: 5, offset: 30818}, name: "Function", }, &ruleRefExpr{ - pos: position{line: 1242, col: 5, offset: 30781}, + pos: position{line: 1243, col: 5, offset: 30831}, name: "Primary", }, }, @@ -8180,25 +8188,25 @@ var g = &grammar{ }, { name: "DotOp", - pos: position{line: 1244, col: 1, offset: 30790}, + pos: position{line: 1245, col: 1, offset: 30840}, expr: &choiceExpr{ - pos: position{line: 1245, col: 5, offset: 30800}, + pos: position{line: 1246, col: 5, offset: 30850}, alternatives: []any{ &actionExpr{ - pos: position{line: 1245, col: 5, offset: 30800}, + pos: position{line: 1246, col: 5, offset: 30850}, run: (*parser).callonDotOp2, expr: &litMatcher{ - pos: position{line: 1245, col: 5, offset: 30800}, + pos: position{line: 1246, col: 5, offset: 30850}, val: ".", ignoreCase: false, want: "\".\"", }, }, &actionExpr{ - pos: position{line: 1246, col: 5, offset: 30828}, + pos: position{line: 1247, col: 5, offset: 30878}, run: (*parser).callonDotOp4, expr: &litMatcher{ - pos: position{line: 1246, col: 5, offset: 30828}, + pos: position{line: 1247, col: 5, offset: 30878}, val: "?.", ignoreCase: false, want: "\"?.\"", @@ -8211,42 +8219,42 @@ var g = &grammar{ }, { name: "DerefKey", - pos: position{line: 1248, col: 1, offset: 30855}, + pos: position{line: 1249, col: 1, offset: 30905}, expr: &choiceExpr{ - pos: position{line: 1249, col: 5, offset: 30868}, + pos: position{line: 1250, col: 5, offset: 30918}, alternatives: []any{ &actionExpr{ - pos: position{line: 1249, col: 5, offset: 30868}, + pos: position{line: 1250, col: 5, offset: 30918}, run: (*parser).callonDerefKey2, expr: &labeledExpr{ - pos: position{line: 1249, col: 5, offset: 30868}, + pos: position{line: 1250, col: 5, offset: 30918}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 1249, col: 8, offset: 30871}, + pos: position{line: 1250, col: 8, offset: 30921}, name: "Identifier", }, }, }, &actionExpr{ - pos: position{line: 1250, col: 5, offset: 30962}, + pos: position{line: 1251, col: 5, offset: 31012}, run: (*parser).callonDerefKey5, expr: &labeledExpr{ - pos: position{line: 1250, col: 5, offset: 30962}, + pos: position{line: 1251, col: 5, offset: 31012}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 1250, col: 7, offset: 30964}, + pos: position{line: 1251, col: 7, offset: 31014}, name: "DoubleQuotedString", }, }, }, &actionExpr{ - pos: position{line: 1251, col: 5, offset: 31076}, + pos: position{line: 1252, col: 5, offset: 31126}, run: (*parser).callonDerefKey8, expr: &labeledExpr{ - pos: position{line: 1251, col: 5, offset: 31076}, + pos: position{line: 1252, col: 5, offset: 31126}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 1251, col: 7, offset: 31078}, + pos: position{line: 1252, col: 7, offset: 31128}, name: "BacktickString", }, }, @@ -8258,68 +8266,68 @@ var g = &grammar{ }, { name: "Function", - pos: position{line: 1253, col: 1, offset: 31187}, + pos: position{line: 1254, col: 1, offset: 31237}, expr: &choiceExpr{ - pos: position{line: 1254, col: 5, offset: 31200}, + pos: position{line: 1255, col: 5, offset: 31250}, alternatives: []any{ &actionExpr{ - pos: position{line: 1254, col: 5, offset: 31200}, + pos: position{line: 1255, col: 5, offset: 31250}, run: (*parser).callonFunction2, expr: &seqExpr{ - pos: position{line: 1254, col: 5, offset: 31200}, + pos: position{line: 1255, col: 5, offset: 31250}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1254, col: 5, offset: 31200}, + pos: position{line: 1255, col: 5, offset: 31250}, name: "EXTRACT", }, &ruleRefExpr{ - pos: position{line: 1254, col: 13, offset: 31208}, + pos: position{line: 1255, col: 13, offset: 31258}, name: "__", }, &litMatcher{ - pos: position{line: 1254, col: 16, offset: 31211}, + pos: position{line: 1255, col: 16, offset: 31261}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1254, col: 20, offset: 31215}, + pos: position{line: 1255, col: 20, offset: 31265}, name: "__", }, &labeledExpr{ - pos: position{line: 1254, col: 23, offset: 31218}, + pos: position{line: 1255, col: 23, offset: 31268}, label: "part", expr: &ruleRefExpr{ - pos: position{line: 1254, col: 28, offset: 31223}, + pos: position{line: 1255, col: 28, offset: 31273}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 1254, col: 33, offset: 31228}, + pos: position{line: 1255, col: 33, offset: 31278}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1254, col: 35, offset: 31230}, + pos: position{line: 1255, col: 35, offset: 31280}, name: "FROM", }, &ruleRefExpr{ - pos: position{line: 1254, col: 40, offset: 31235}, + pos: position{line: 1255, col: 40, offset: 31285}, name: "_", }, &labeledExpr{ - pos: position{line: 1254, col: 42, offset: 31237}, + pos: position{line: 1255, col: 42, offset: 31287}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1254, col: 44, offset: 31239}, + pos: position{line: 1255, col: 44, offset: 31289}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 1254, col: 49, offset: 31244}, + pos: position{line: 1255, col: 49, offset: 31294}, name: "__", }, &litMatcher{ - pos: position{line: 1254, col: 52, offset: 31247}, + pos: position{line: 1255, col: 52, offset: 31297}, val: ")", ignoreCase: false, want: "\")\"", @@ -8328,43 +8336,43 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1262, col: 5, offset: 31416}, + pos: position{line: 1263, col: 5, offset: 31466}, run: (*parser).callonFunction17, expr: &seqExpr{ - pos: position{line: 1262, col: 5, offset: 31416}, + pos: position{line: 1263, col: 5, offset: 31466}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1262, col: 5, offset: 31416}, + pos: position{line: 1263, col: 5, offset: 31466}, name: "EXISTS", }, &ruleRefExpr{ - pos: position{line: 1262, col: 12, offset: 31423}, + pos: position{line: 1263, col: 12, offset: 31473}, name: "__", }, &litMatcher{ - pos: position{line: 1262, col: 15, offset: 31426}, + pos: position{line: 1263, col: 15, offset: 31476}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1262, col: 19, offset: 31430}, + pos: position{line: 1263, col: 19, offset: 31480}, name: "__", }, &labeledExpr{ - pos: position{line: 1262, col: 22, offset: 31433}, + pos: position{line: 1263, col: 22, offset: 31483}, label: "body", expr: &ruleRefExpr{ - pos: position{line: 1262, col: 27, offset: 31438}, + pos: position{line: 1263, col: 27, offset: 31488}, name: "Seq", }, }, &ruleRefExpr{ - pos: position{line: 1262, col: 31, offset: 31442}, + pos: position{line: 1263, col: 31, offset: 31492}, name: "__", }, &litMatcher{ - pos: position{line: 1262, col: 34, offset: 31445}, + pos: position{line: 1263, col: 34, offset: 31495}, val: ")", ignoreCase: false, want: "\")\"", @@ -8373,72 +8381,72 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1269, col: 5, offset: 31590}, + pos: position{line: 1270, col: 5, offset: 31640}, run: (*parser).callonFunction27, expr: &seqExpr{ - pos: position{line: 1269, col: 5, offset: 31590}, + pos: position{line: 1270, col: 5, offset: 31640}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1269, col: 5, offset: 31590}, + pos: position{line: 1270, col: 5, offset: 31640}, name: "CAST", }, &ruleRefExpr{ - pos: position{line: 1269, col: 10, offset: 31595}, + pos: position{line: 1270, col: 10, offset: 31645}, name: "__", }, &litMatcher{ - pos: position{line: 1269, col: 13, offset: 31598}, + pos: position{line: 1270, col: 13, offset: 31648}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1269, col: 17, offset: 31602}, + pos: position{line: 1270, col: 17, offset: 31652}, name: "__", }, &labeledExpr{ - pos: position{line: 1269, col: 20, offset: 31605}, + pos: position{line: 1270, col: 20, offset: 31655}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1269, col: 22, offset: 31607}, + pos: position{line: 1270, col: 22, offset: 31657}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 1269, col: 27, offset: 31612}, + pos: position{line: 1270, col: 27, offset: 31662}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1269, col: 29, offset: 31614}, + pos: position{line: 1270, col: 29, offset: 31664}, name: "AS", }, &ruleRefExpr{ - pos: position{line: 1269, col: 32, offset: 31617}, + pos: position{line: 1270, col: 32, offset: 31667}, name: "_", }, &labeledExpr{ - pos: position{line: 1269, col: 34, offset: 31619}, + pos: position{line: 1270, col: 34, offset: 31669}, label: "typ", expr: &choiceExpr{ - pos: position{line: 1269, col: 39, offset: 31624}, + pos: position{line: 1270, col: 39, offset: 31674}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1269, col: 39, offset: 31624}, + pos: position{line: 1270, col: 39, offset: 31674}, name: "DateTypeHack", }, &ruleRefExpr{ - pos: position{line: 1269, col: 54, offset: 31639}, + pos: position{line: 1270, col: 54, offset: 31689}, name: "Type", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1269, col: 60, offset: 31645}, + pos: position{line: 1270, col: 60, offset: 31695}, name: "__", }, &litMatcher{ - pos: position{line: 1269, col: 63, offset: 31648}, + pos: position{line: 1270, col: 63, offset: 31698}, val: ")", ignoreCase: false, want: "\")\"", @@ -8447,65 +8455,65 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1277, col: 5, offset: 31810}, + pos: position{line: 1278, col: 5, offset: 31860}, run: (*parser).callonFunction44, expr: &seqExpr{ - pos: position{line: 1277, col: 5, offset: 31810}, + pos: position{line: 1278, col: 5, offset: 31860}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1277, col: 5, offset: 31810}, + pos: position{line: 1278, col: 5, offset: 31860}, name: "SUBSTRING", }, &ruleRefExpr{ - pos: position{line: 1277, col: 15, offset: 31820}, + pos: position{line: 1278, col: 15, offset: 31870}, name: "__", }, &litMatcher{ - pos: position{line: 1277, col: 18, offset: 31823}, + pos: position{line: 1278, col: 18, offset: 31873}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1277, col: 22, offset: 31827}, + pos: position{line: 1278, col: 22, offset: 31877}, name: "__", }, &labeledExpr{ - pos: position{line: 1277, col: 25, offset: 31830}, + pos: position{line: 1278, col: 25, offset: 31880}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1277, col: 30, offset: 31835}, + pos: position{line: 1278, col: 30, offset: 31885}, name: "Expr", }, }, &labeledExpr{ - pos: position{line: 1277, col: 35, offset: 31840}, + pos: position{line: 1278, col: 35, offset: 31890}, label: "from", expr: &zeroOrOneExpr{ - pos: position{line: 1277, col: 40, offset: 31845}, + pos: position{line: 1278, col: 40, offset: 31895}, expr: &actionExpr{ - pos: position{line: 1277, col: 41, offset: 31846}, + pos: position{line: 1278, col: 41, offset: 31896}, run: (*parser).callonFunction54, expr: &seqExpr{ - pos: position{line: 1277, col: 41, offset: 31846}, + pos: position{line: 1278, col: 41, offset: 31896}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1277, col: 41, offset: 31846}, + pos: position{line: 1278, col: 41, offset: 31896}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1277, col: 43, offset: 31848}, + pos: position{line: 1278, col: 43, offset: 31898}, name: "FROM", }, &ruleRefExpr{ - pos: position{line: 1277, col: 48, offset: 31853}, + pos: position{line: 1278, col: 48, offset: 31903}, name: "_", }, &labeledExpr{ - pos: position{line: 1277, col: 50, offset: 31855}, + pos: position{line: 1278, col: 50, offset: 31905}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1277, col: 52, offset: 31857}, + pos: position{line: 1278, col: 52, offset: 31907}, name: "Expr", }, }, @@ -8515,33 +8523,33 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 1277, col: 77, offset: 31882}, + pos: position{line: 1278, col: 77, offset: 31932}, label: "for_", expr: &zeroOrOneExpr{ - pos: position{line: 1277, col: 82, offset: 31887}, + pos: position{line: 1278, col: 82, offset: 31937}, expr: &actionExpr{ - pos: position{line: 1277, col: 83, offset: 31888}, + pos: position{line: 1278, col: 83, offset: 31938}, run: (*parser).callonFunction63, expr: &seqExpr{ - pos: position{line: 1277, col: 83, offset: 31888}, + pos: position{line: 1278, col: 83, offset: 31938}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1277, col: 83, offset: 31888}, + pos: position{line: 1278, col: 83, offset: 31938}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1277, col: 85, offset: 31890}, + pos: position{line: 1278, col: 85, offset: 31940}, name: "FOR", }, &ruleRefExpr{ - pos: position{line: 1277, col: 89, offset: 31894}, + pos: position{line: 1278, col: 89, offset: 31944}, name: "_", }, &labeledExpr{ - pos: position{line: 1277, col: 91, offset: 31896}, + pos: position{line: 1278, col: 91, offset: 31946}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1277, col: 93, offset: 31898}, + pos: position{line: 1278, col: 93, offset: 31948}, name: "Expr", }, }, @@ -8551,7 +8559,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 1277, col: 118, offset: 31923}, + pos: position{line: 1278, col: 118, offset: 31973}, val: ")", ignoreCase: false, want: "\")\"", @@ -8560,62 +8568,62 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1291, col: 5, offset: 32208}, + pos: position{line: 1292, col: 5, offset: 32258}, run: (*parser).callonFunction71, expr: &seqExpr{ - pos: position{line: 1291, col: 5, offset: 32208}, + pos: position{line: 1292, col: 5, offset: 32258}, exprs: []any{ &labeledExpr{ - pos: position{line: 1291, col: 5, offset: 32208}, + pos: position{line: 1292, col: 5, offset: 32258}, label: "f", expr: &ruleRefExpr{ - pos: position{line: 1291, col: 7, offset: 32210}, + pos: position{line: 1292, col: 7, offset: 32260}, name: "Callable", }, }, &ruleRefExpr{ - pos: position{line: 1291, col: 16, offset: 32219}, + pos: position{line: 1292, col: 16, offset: 32269}, name: "__", }, &litMatcher{ - pos: position{line: 1291, col: 19, offset: 32222}, + pos: position{line: 1292, col: 19, offset: 32272}, val: "(", ignoreCase: false, want: "\"(\"", }, ¬Expr{ - pos: position{line: 1291, col: 23, offset: 32226}, + pos: position{line: 1292, col: 23, offset: 32276}, expr: &ruleRefExpr{ - pos: position{line: 1291, col: 24, offset: 32227}, + pos: position{line: 1292, col: 24, offset: 32277}, name: "AggArgGuard", }, }, &ruleRefExpr{ - pos: position{line: 1291, col: 36, offset: 32239}, + pos: position{line: 1292, col: 36, offset: 32289}, name: "__", }, &labeledExpr{ - pos: position{line: 1291, col: 39, offset: 32242}, + pos: position{line: 1292, col: 39, offset: 32292}, label: "args", expr: &ruleRefExpr{ - pos: position{line: 1291, col: 44, offset: 32247}, + pos: position{line: 1292, col: 44, offset: 32297}, name: "FunctionArgs", }, }, &ruleRefExpr{ - pos: position{line: 1291, col: 57, offset: 32260}, + pos: position{line: 1292, col: 57, offset: 32310}, name: "__", }, &litMatcher{ - pos: position{line: 1291, col: 60, offset: 32263}, + pos: position{line: 1292, col: 60, offset: 32313}, val: ")", ignoreCase: false, want: "\")\"", }, ¬Expr{ - pos: position{line: 1291, col: 64, offset: 32267}, + pos: position{line: 1292, col: 64, offset: 32317}, expr: &ruleRefExpr{ - pos: position{line: 1291, col: 65, offset: 32268}, + pos: position{line: 1292, col: 65, offset: 32318}, name: "FilterClause", }, }, @@ -8623,7 +8631,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1294, col: 5, offset: 32331}, + pos: position{line: 1295, col: 5, offset: 32381}, name: "AggFunc", }, }, @@ -8633,33 +8641,33 @@ var g = &grammar{ }, { name: "AggArgGuard", - pos: position{line: 1296, col: 1, offset: 32340}, + pos: position{line: 1297, col: 1, offset: 32390}, expr: &seqExpr{ - pos: position{line: 1296, col: 15, offset: 32354}, + pos: position{line: 1297, col: 15, offset: 32404}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1296, col: 15, offset: 32354}, + pos: position{line: 1297, col: 15, offset: 32404}, name: "__", }, &choiceExpr{ - pos: position{line: 1296, col: 19, offset: 32358}, + pos: position{line: 1297, col: 19, offset: 32408}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1296, col: 19, offset: 32358}, + pos: position{line: 1297, col: 19, offset: 32408}, name: "ALL", }, &ruleRefExpr{ - pos: position{line: 1296, col: 25, offset: 32364}, + pos: position{line: 1297, col: 25, offset: 32414}, name: "DISTINCT", }, }, }, &ruleRefExpr{ - pos: position{line: 1296, col: 35, offset: 32374}, + pos: position{line: 1297, col: 35, offset: 32424}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1296, col: 37, offset: 32376}, + pos: position{line: 1297, col: 37, offset: 32426}, name: "Expr", }, }, @@ -8669,16 +8677,16 @@ var g = &grammar{ }, { name: "Callable", - pos: position{line: 1298, col: 1, offset: 32382}, + pos: position{line: 1299, col: 1, offset: 32432}, expr: &choiceExpr{ - pos: position{line: 1298, col: 12, offset: 32393}, + pos: position{line: 1299, col: 12, offset: 32443}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1298, col: 12, offset: 32393}, + pos: position{line: 1299, col: 12, offset: 32443}, name: "LambdaExpr", }, &ruleRefExpr{ - pos: position{line: 1298, col: 25, offset: 32406}, + pos: position{line: 1299, col: 25, offset: 32456}, name: "FuncNameExpr", }, }, @@ -8688,15 +8696,15 @@ var g = &grammar{ }, { name: "FuncNameExpr", - pos: position{line: 1300, col: 1, offset: 32420}, + pos: position{line: 1301, col: 1, offset: 32470}, expr: &actionExpr{ - pos: position{line: 1301, col: 5, offset: 32437}, + pos: position{line: 1302, col: 5, offset: 32487}, run: (*parser).callonFuncNameExpr1, expr: &labeledExpr{ - pos: position{line: 1301, col: 5, offset: 32437}, + pos: position{line: 1302, col: 5, offset: 32487}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 1301, col: 8, offset: 32440}, + pos: position{line: 1302, col: 8, offset: 32490}, name: "FuncIdentifier", }, }, @@ -8706,16 +8714,16 @@ var g = &grammar{ }, { name: "FuncIdentifier", - pos: position{line: 1309, col: 1, offset: 32587}, + pos: position{line: 1310, col: 1, offset: 32637}, expr: &choiceExpr{ - pos: position{line: 1309, col: 18, offset: 32604}, + pos: position{line: 1310, col: 18, offset: 32654}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1309, col: 18, offset: 32604}, + pos: position{line: 1310, col: 18, offset: 32654}, name: "IdentifierName", }, &ruleRefExpr{ - pos: position{line: 1309, col: 35, offset: 32621}, + pos: position{line: 1310, col: 35, offset: 32671}, name: "BacktickString", }, }, @@ -8725,27 +8733,27 @@ var g = &grammar{ }, { name: "FuncValue", - pos: position{line: 1311, col: 1, offset: 32637}, + pos: position{line: 1312, col: 1, offset: 32687}, expr: &choiceExpr{ - pos: position{line: 1312, col: 5, offset: 32651}, + pos: position{line: 1313, col: 5, offset: 32701}, alternatives: []any{ &actionExpr{ - pos: position{line: 1312, col: 5, offset: 32651}, + pos: position{line: 1313, col: 5, offset: 32701}, run: (*parser).callonFuncValue2, expr: &seqExpr{ - pos: position{line: 1312, col: 5, offset: 32651}, + pos: position{line: 1313, col: 5, offset: 32701}, exprs: []any{ &litMatcher{ - pos: position{line: 1312, col: 5, offset: 32651}, + pos: position{line: 1313, col: 5, offset: 32701}, val: "&", ignoreCase: false, want: "\"&\"", }, &labeledExpr{ - pos: position{line: 1312, col: 9, offset: 32655}, + pos: position{line: 1313, col: 9, offset: 32705}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 1312, col: 12, offset: 32658}, + pos: position{line: 1313, col: 12, offset: 32708}, name: "IdentifierName", }, }, @@ -8753,7 +8761,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1319, col: 5, offset: 32808}, + pos: position{line: 1320, col: 5, offset: 32858}, name: "LambdaExpr", }, }, @@ -8763,12 +8771,12 @@ var g = &grammar{ }, { name: "DateTypeHack", - pos: position{line: 1321, col: 1, offset: 32820}, + pos: position{line: 1322, col: 1, offset: 32870}, expr: &actionExpr{ - pos: position{line: 1322, col: 5, offset: 32837}, + pos: position{line: 1323, col: 5, offset: 32887}, run: (*parser).callonDateTypeHack1, expr: &litMatcher{ - pos: position{line: 1322, col: 5, offset: 32837}, + pos: position{line: 1323, col: 5, offset: 32887}, val: "date", ignoreCase: true, want: "\"date\"i", @@ -8779,19 +8787,19 @@ var g = &grammar{ }, { name: "FunctionArgs", - pos: position{line: 1329, col: 1, offset: 32949}, + pos: position{line: 1330, col: 1, offset: 32999}, expr: &choiceExpr{ - pos: position{line: 1330, col: 5, offset: 32966}, + pos: position{line: 1331, col: 5, offset: 33016}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1330, col: 5, offset: 32966}, + pos: position{line: 1331, col: 5, offset: 33016}, name: "FuncOrExprs", }, &actionExpr{ - pos: position{line: 1331, col: 5, offset: 32982}, + pos: position{line: 1332, col: 5, offset: 33032}, run: (*parser).callonFunctionArgs3, expr: &ruleRefExpr{ - pos: position{line: 1331, col: 5, offset: 32982}, + pos: position{line: 1332, col: 5, offset: 33032}, name: "__", }, }, @@ -8802,51 +8810,51 @@ var g = &grammar{ }, { name: "Exprs", - pos: position{line: 1333, col: 1, offset: 33010}, + pos: position{line: 1334, col: 1, offset: 33060}, expr: &actionExpr{ - pos: position{line: 1334, col: 5, offset: 33020}, + pos: position{line: 1335, col: 5, offset: 33070}, run: (*parser).callonExprs1, expr: &seqExpr{ - pos: position{line: 1334, col: 5, offset: 33020}, + pos: position{line: 1335, col: 5, offset: 33070}, exprs: []any{ &labeledExpr{ - pos: position{line: 1334, col: 5, offset: 33020}, + pos: position{line: 1335, col: 5, offset: 33070}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1334, col: 11, offset: 33026}, + pos: position{line: 1335, col: 11, offset: 33076}, name: "Expr", }, }, &labeledExpr{ - pos: position{line: 1334, col: 16, offset: 33031}, + pos: position{line: 1335, col: 16, offset: 33081}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1334, col: 21, offset: 33036}, + pos: position{line: 1335, col: 21, offset: 33086}, expr: &actionExpr{ - pos: position{line: 1334, col: 22, offset: 33037}, + pos: position{line: 1335, col: 22, offset: 33087}, run: (*parser).callonExprs7, expr: &seqExpr{ - pos: position{line: 1334, col: 22, offset: 33037}, + pos: position{line: 1335, col: 22, offset: 33087}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1334, col: 22, offset: 33037}, + pos: position{line: 1335, col: 22, offset: 33087}, name: "__", }, &litMatcher{ - pos: position{line: 1334, col: 25, offset: 33040}, + pos: position{line: 1335, col: 25, offset: 33090}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 1334, col: 29, offset: 33044}, + pos: position{line: 1335, col: 29, offset: 33094}, name: "__", }, &labeledExpr{ - pos: position{line: 1334, col: 32, offset: 33047}, + pos: position{line: 1335, col: 32, offset: 33097}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1334, col: 34, offset: 33049}, + pos: position{line: 1335, col: 34, offset: 33099}, name: "Expr", }, }, @@ -8863,80 +8871,125 @@ var g = &grammar{ }, { name: "Primary", - pos: position{line: 1338, col: 1, offset: 33122}, + pos: position{line: 1339, col: 1, offset: 33172}, expr: &choiceExpr{ - pos: position{line: 1339, col: 5, offset: 33134}, + pos: position{line: 1340, col: 5, offset: 33184}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1339, col: 5, offset: 33134}, + pos: position{line: 1340, col: 5, offset: 33184}, name: "Record", }, &ruleRefExpr{ - pos: position{line: 1340, col: 5, offset: 33145}, + pos: position{line: 1341, col: 5, offset: 33195}, name: "Array", }, &ruleRefExpr{ - pos: position{line: 1341, col: 5, offset: 33155}, + pos: position{line: 1342, col: 5, offset: 33205}, name: "Set", }, &ruleRefExpr{ - pos: position{line: 1342, col: 5, offset: 33163}, + pos: position{line: 1343, col: 5, offset: 33213}, name: "Map", }, &ruleRefExpr{ - pos: position{line: 1343, col: 5, offset: 33171}, + pos: position{line: 1344, col: 5, offset: 33221}, name: "SQLTimeExpr", }, &ruleRefExpr{ - pos: position{line: 1344, col: 5, offset: 33187}, + pos: position{line: 1345, col: 5, offset: 33237}, name: "Literal", }, &actionExpr{ - pos: position{line: 1345, col: 5, offset: 33199}, + pos: position{line: 1346, col: 5, offset: 33249}, run: (*parser).callonPrimary8, + expr: &seqExpr{ + pos: position{line: 1346, col: 5, offset: 33249}, + exprs: []any{ + &ruleRefExpr{ + pos: position{line: 1346, col: 5, offset: 33249}, + name: "MATERIALIZED", + }, + &ruleRefExpr{ + pos: position{line: 1346, col: 18, offset: 33262}, + name: "__", + }, + &litMatcher{ + pos: position{line: 1346, col: 21, offset: 33265}, + val: "(", + ignoreCase: false, + want: "\"(\"", + }, + &ruleRefExpr{ + pos: position{line: 1346, col: 25, offset: 33269}, + name: "__", + }, + &labeledExpr{ + pos: position{line: 1346, col: 28, offset: 33272}, + label: "expr", + expr: &ruleRefExpr{ + pos: position{line: 1346, col: 33, offset: 33277}, + name: "SubqueryExpr", + }, + }, + &ruleRefExpr{ + pos: position{line: 1346, col: 46, offset: 33290}, + name: "__", + }, + &litMatcher{ + pos: position{line: 1346, col: 49, offset: 33293}, + val: ")", + ignoreCase: false, + want: "\")\"", + }, + }, + }, + }, + &actionExpr{ + pos: position{line: 1350, col: 5, offset: 33383}, + run: (*parser).callonPrimary18, expr: &labeledExpr{ - pos: position{line: 1345, col: 5, offset: 33199}, + pos: position{line: 1350, col: 5, offset: 33383}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 1345, col: 8, offset: 33202}, + pos: position{line: 1350, col: 8, offset: 33386}, name: "Identifier", }, }, }, &ruleRefExpr{ - pos: position{line: 1346, col: 5, offset: 33295}, + pos: position{line: 1351, col: 5, offset: 33479}, name: "Tuple", }, &actionExpr{ - pos: position{line: 1347, col: 5, offset: 33305}, - run: (*parser).callonPrimary12, + pos: position{line: 1352, col: 5, offset: 33489}, + run: (*parser).callonPrimary22, expr: &seqExpr{ - pos: position{line: 1347, col: 5, offset: 33305}, + pos: position{line: 1352, col: 5, offset: 33489}, exprs: []any{ &litMatcher{ - pos: position{line: 1347, col: 5, offset: 33305}, + pos: position{line: 1352, col: 5, offset: 33489}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1347, col: 9, offset: 33309}, + pos: position{line: 1352, col: 9, offset: 33493}, name: "__", }, &labeledExpr{ - pos: position{line: 1347, col: 12, offset: 33312}, + pos: position{line: 1352, col: 12, offset: 33496}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1347, col: 17, offset: 33317}, + pos: position{line: 1352, col: 17, offset: 33501}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 1347, col: 22, offset: 33322}, + pos: position{line: 1352, col: 22, offset: 33506}, name: "__", }, &litMatcher{ - pos: position{line: 1347, col: 25, offset: 33325}, + pos: position{line: 1352, col: 25, offset: 33509}, val: ")", ignoreCase: false, want: "\")\"", @@ -8945,35 +8998,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1348, col: 5, offset: 33354}, - run: (*parser).callonPrimary20, + pos: position{line: 1353, col: 5, offset: 33538}, + run: (*parser).callonPrimary30, expr: &seqExpr{ - pos: position{line: 1348, col: 5, offset: 33354}, + pos: position{line: 1353, col: 5, offset: 33538}, exprs: []any{ &litMatcher{ - pos: position{line: 1348, col: 5, offset: 33354}, + pos: position{line: 1353, col: 5, offset: 33538}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1348, col: 9, offset: 33358}, + pos: position{line: 1353, col: 9, offset: 33542}, name: "__", }, &labeledExpr{ - pos: position{line: 1348, col: 12, offset: 33361}, + pos: position{line: 1353, col: 12, offset: 33545}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1348, col: 17, offset: 33366}, + pos: position{line: 1353, col: 17, offset: 33550}, name: "SubqueryExpr", }, }, &ruleRefExpr{ - pos: position{line: 1348, col: 30, offset: 33379}, + pos: position{line: 1353, col: 30, offset: 33563}, name: "__", }, &litMatcher{ - pos: position{line: 1348, col: 33, offset: 33382}, + pos: position{line: 1353, col: 33, offset: 33566}, val: ")", ignoreCase: false, want: "\")\"", @@ -8982,35 +9035,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1349, col: 5, offset: 33411}, - run: (*parser).callonPrimary28, + pos: position{line: 1354, col: 5, offset: 33595}, + run: (*parser).callonPrimary38, expr: &seqExpr{ - pos: position{line: 1349, col: 5, offset: 33411}, + pos: position{line: 1354, col: 5, offset: 33595}, exprs: []any{ &litMatcher{ - pos: position{line: 1349, col: 5, offset: 33411}, + pos: position{line: 1354, col: 5, offset: 33595}, val: "[", ignoreCase: false, want: "\"[\"", }, &ruleRefExpr{ - pos: position{line: 1349, col: 9, offset: 33415}, + pos: position{line: 1354, col: 9, offset: 33599}, name: "__", }, &labeledExpr{ - pos: position{line: 1349, col: 12, offset: 33418}, + pos: position{line: 1354, col: 12, offset: 33602}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1349, col: 17, offset: 33423}, + pos: position{line: 1354, col: 17, offset: 33607}, name: "SubqueryExpr", }, }, &ruleRefExpr{ - pos: position{line: 1349, col: 30, offset: 33436}, + pos: position{line: 1354, col: 30, offset: 33620}, name: "__", }, &litMatcher{ - pos: position{line: 1349, col: 33, offset: 33439}, + pos: position{line: 1354, col: 33, offset: 33623}, val: "]", ignoreCase: false, want: "\"]\"", @@ -9025,57 +9078,57 @@ var g = &grammar{ }, { name: "MatchExpr", - pos: position{line: 1354, col: 1, offset: 33521}, + pos: position{line: 1359, col: 1, offset: 33705}, expr: &actionExpr{ - pos: position{line: 1355, col: 5, offset: 33535}, + pos: position{line: 1360, col: 5, offset: 33719}, run: (*parser).callonMatchExpr1, expr: &seqExpr{ - pos: position{line: 1355, col: 5, offset: 33535}, + pos: position{line: 1360, col: 5, offset: 33719}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1355, col: 5, offset: 33535}, + pos: position{line: 1360, col: 5, offset: 33719}, name: "MATCH", }, &ruleRefExpr{ - pos: position{line: 1355, col: 11, offset: 33541}, + pos: position{line: 1360, col: 11, offset: 33725}, name: "_", }, &labeledExpr{ - pos: position{line: 1355, col: 13, offset: 33543}, + pos: position{line: 1360, col: 13, offset: 33727}, label: "match", expr: &ruleRefExpr{ - pos: position{line: 1355, col: 19, offset: 33549}, + pos: position{line: 1360, col: 19, offset: 33733}, name: "Assignment", }, }, &labeledExpr{ - pos: position{line: 1355, col: 30, offset: 33560}, + pos: position{line: 1360, col: 30, offset: 33744}, label: "with", expr: &zeroOrOneExpr{ - pos: position{line: 1355, col: 35, offset: 33565}, + pos: position{line: 1360, col: 35, offset: 33749}, expr: &actionExpr{ - pos: position{line: 1355, col: 36, offset: 33566}, + pos: position{line: 1360, col: 36, offset: 33750}, run: (*parser).callonMatchExpr9, expr: &seqExpr{ - pos: position{line: 1355, col: 36, offset: 33566}, + pos: position{line: 1360, col: 36, offset: 33750}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1355, col: 36, offset: 33566}, + pos: position{line: 1360, col: 36, offset: 33750}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1355, col: 38, offset: 33568}, + pos: position{line: 1360, col: 38, offset: 33752}, name: "WITH", }, &ruleRefExpr{ - pos: position{line: 1355, col: 43, offset: 33573}, + pos: position{line: 1360, col: 43, offset: 33757}, name: "_", }, &labeledExpr{ - pos: position{line: 1355, col: 45, offset: 33575}, + pos: position{line: 1360, col: 45, offset: 33759}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 1355, col: 47, offset: 33577}, + pos: position{line: 1360, col: 47, offset: 33761}, name: "Assignments", }, }, @@ -9085,38 +9138,38 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 1355, col: 79, offset: 33609}, + pos: position{line: 1360, col: 79, offset: 33793}, label: "cases", expr: &oneOrMoreExpr{ - pos: position{line: 1355, col: 85, offset: 33615}, + pos: position{line: 1360, col: 85, offset: 33799}, expr: &ruleRefExpr{ - pos: position{line: 1355, col: 85, offset: 33615}, + pos: position{line: 1360, col: 85, offset: 33799}, name: "MatchCase", }, }, }, &labeledExpr{ - pos: position{line: 1355, col: 96, offset: 33626}, + pos: position{line: 1360, col: 96, offset: 33810}, label: "else_", expr: &zeroOrOneExpr{ - pos: position{line: 1355, col: 102, offset: 33632}, + pos: position{line: 1360, col: 102, offset: 33816}, expr: &seqExpr{ - pos: position{line: 1355, col: 103, offset: 33633}, + pos: position{line: 1360, col: 103, offset: 33817}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1355, col: 103, offset: 33633}, + pos: position{line: 1360, col: 103, offset: 33817}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1355, col: 105, offset: 33635}, + pos: position{line: 1360, col: 105, offset: 33819}, name: "ELSE", }, &ruleRefExpr{ - pos: position{line: 1355, col: 110, offset: 33640}, + pos: position{line: 1360, col: 110, offset: 33824}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1355, col: 112, offset: 33642}, + pos: position{line: 1360, col: 112, offset: 33826}, name: "Expr", }, }, @@ -9124,16 +9177,16 @@ var g = &grammar{ }, }, &zeroOrOneExpr{ - pos: position{line: 1355, col: 119, offset: 33649}, + pos: position{line: 1360, col: 119, offset: 33833}, expr: &seqExpr{ - pos: position{line: 1355, col: 120, offset: 33650}, + pos: position{line: 1360, col: 120, offset: 33834}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1355, col: 120, offset: 33650}, + pos: position{line: 1360, col: 120, offset: 33834}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1355, col: 122, offset: 33652}, + pos: position{line: 1360, col: 122, offset: 33836}, name: "END", }, }, @@ -9147,58 +9200,58 @@ var g = &grammar{ }, { name: "MatchCase", - pos: position{line: 1371, col: 1, offset: 34014}, + pos: position{line: 1376, col: 1, offset: 34198}, expr: &actionExpr{ - pos: position{line: 1372, col: 5, offset: 34028}, + pos: position{line: 1377, col: 5, offset: 34212}, run: (*parser).callonMatchCase1, expr: &seqExpr{ - pos: position{line: 1372, col: 5, offset: 34028}, + pos: position{line: 1377, col: 5, offset: 34212}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1372, col: 5, offset: 34028}, + pos: position{line: 1377, col: 5, offset: 34212}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1372, col: 7, offset: 34030}, + pos: position{line: 1377, col: 7, offset: 34214}, name: "WHEN", }, &ruleRefExpr{ - pos: position{line: 1372, col: 12, offset: 34035}, + pos: position{line: 1377, col: 12, offset: 34219}, name: "_", }, &labeledExpr{ - pos: position{line: 1372, col: 14, offset: 34037}, + pos: position{line: 1377, col: 14, offset: 34221}, label: "typ", expr: &ruleRefExpr{ - pos: position{line: 1372, col: 18, offset: 34041}, + pos: position{line: 1377, col: 18, offset: 34225}, name: "Type", }, }, &zeroOrOneExpr{ - pos: position{line: 1372, col: 23, offset: 34046}, + pos: position{line: 1377, col: 23, offset: 34230}, expr: &seqExpr{ - pos: position{line: 1372, col: 24, offset: 34047}, + pos: position{line: 1377, col: 24, offset: 34231}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1372, col: 24, offset: 34047}, + pos: position{line: 1377, col: 24, offset: 34231}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1372, col: 26, offset: 34049}, + pos: position{line: 1377, col: 26, offset: 34233}, name: "THEN", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1372, col: 33, offset: 34056}, + pos: position{line: 1377, col: 33, offset: 34240}, name: "_", }, &labeledExpr{ - pos: position{line: 1372, col: 35, offset: 34058}, + pos: position{line: 1377, col: 35, offset: 34242}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1372, col: 40, offset: 34063}, + pos: position{line: 1377, col: 40, offset: 34247}, name: "Expr", }, }, @@ -9210,53 +9263,53 @@ var g = &grammar{ }, { name: "CaseExpr", - pos: position{line: 1380, col: 1, offset: 34200}, + pos: position{line: 1385, col: 1, offset: 34384}, expr: &choiceExpr{ - pos: position{line: 1381, col: 5, offset: 34213}, + pos: position{line: 1386, col: 5, offset: 34397}, alternatives: []any{ &actionExpr{ - pos: position{line: 1381, col: 5, offset: 34213}, + pos: position{line: 1386, col: 5, offset: 34397}, run: (*parser).callonCaseExpr2, expr: &seqExpr{ - pos: position{line: 1381, col: 5, offset: 34213}, + pos: position{line: 1386, col: 5, offset: 34397}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1381, col: 5, offset: 34213}, + pos: position{line: 1386, col: 5, offset: 34397}, name: "CASE", }, &labeledExpr{ - pos: position{line: 1381, col: 10, offset: 34218}, + pos: position{line: 1386, col: 10, offset: 34402}, label: "whens", expr: &oneOrMoreExpr{ - pos: position{line: 1381, col: 16, offset: 34224}, + pos: position{line: 1386, col: 16, offset: 34408}, expr: &ruleRefExpr{ - pos: position{line: 1381, col: 16, offset: 34224}, + pos: position{line: 1386, col: 16, offset: 34408}, name: "When", }, }, }, &labeledExpr{ - pos: position{line: 1381, col: 22, offset: 34230}, + pos: position{line: 1386, col: 22, offset: 34414}, label: "else_", expr: &zeroOrOneExpr{ - pos: position{line: 1381, col: 28, offset: 34236}, + pos: position{line: 1386, col: 28, offset: 34420}, expr: &seqExpr{ - pos: position{line: 1381, col: 29, offset: 34237}, + pos: position{line: 1386, col: 29, offset: 34421}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1381, col: 29, offset: 34237}, + pos: position{line: 1386, col: 29, offset: 34421}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1381, col: 31, offset: 34239}, + pos: position{line: 1386, col: 31, offset: 34423}, name: "ELSE", }, &ruleRefExpr{ - pos: position{line: 1381, col: 36, offset: 34244}, + pos: position{line: 1386, col: 36, offset: 34428}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1381, col: 38, offset: 34246}, + pos: position{line: 1386, col: 38, offset: 34430}, name: "Expr", }, }, @@ -9264,24 +9317,24 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1381, col: 45, offset: 34253}, + pos: position{line: 1386, col: 45, offset: 34437}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1381, col: 47, offset: 34255}, + pos: position{line: 1386, col: 47, offset: 34439}, name: "END", }, &zeroOrOneExpr{ - pos: position{line: 1381, col: 51, offset: 34259}, + pos: position{line: 1386, col: 51, offset: 34443}, expr: &seqExpr{ - pos: position{line: 1381, col: 52, offset: 34260}, + pos: position{line: 1386, col: 52, offset: 34444}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1381, col: 52, offset: 34260}, + pos: position{line: 1386, col: 52, offset: 34444}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1381, col: 54, offset: 34262}, + pos: position{line: 1386, col: 54, offset: 34446}, name: "CASE", }, }, @@ -9291,60 +9344,60 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1392, col: 5, offset: 34535}, + pos: position{line: 1397, col: 5, offset: 34719}, run: (*parser).callonCaseExpr21, expr: &seqExpr{ - pos: position{line: 1392, col: 5, offset: 34535}, + pos: position{line: 1397, col: 5, offset: 34719}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1392, col: 5, offset: 34535}, + pos: position{line: 1397, col: 5, offset: 34719}, name: "CASE", }, &ruleRefExpr{ - pos: position{line: 1392, col: 10, offset: 34540}, + pos: position{line: 1397, col: 10, offset: 34724}, name: "_", }, &labeledExpr{ - pos: position{line: 1392, col: 12, offset: 34542}, + pos: position{line: 1397, col: 12, offset: 34726}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1392, col: 17, offset: 34547}, + pos: position{line: 1397, col: 17, offset: 34731}, name: "Expr", }, }, &labeledExpr{ - pos: position{line: 1392, col: 22, offset: 34552}, + pos: position{line: 1397, col: 22, offset: 34736}, label: "whens", expr: &oneOrMoreExpr{ - pos: position{line: 1392, col: 28, offset: 34558}, + pos: position{line: 1397, col: 28, offset: 34742}, expr: &ruleRefExpr{ - pos: position{line: 1392, col: 28, offset: 34558}, + pos: position{line: 1397, col: 28, offset: 34742}, name: "When", }, }, }, &labeledExpr{ - pos: position{line: 1392, col: 34, offset: 34564}, + pos: position{line: 1397, col: 34, offset: 34748}, label: "else_", expr: &zeroOrOneExpr{ - pos: position{line: 1392, col: 40, offset: 34570}, + pos: position{line: 1397, col: 40, offset: 34754}, expr: &seqExpr{ - pos: position{line: 1392, col: 41, offset: 34571}, + pos: position{line: 1397, col: 41, offset: 34755}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1392, col: 41, offset: 34571}, + pos: position{line: 1397, col: 41, offset: 34755}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1392, col: 43, offset: 34573}, + pos: position{line: 1397, col: 43, offset: 34757}, name: "ELSE", }, &ruleRefExpr{ - pos: position{line: 1392, col: 48, offset: 34578}, + pos: position{line: 1397, col: 48, offset: 34762}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1392, col: 50, offset: 34580}, + pos: position{line: 1397, col: 50, offset: 34764}, name: "Expr", }, }, @@ -9352,24 +9405,24 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1392, col: 57, offset: 34587}, + pos: position{line: 1397, col: 57, offset: 34771}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1392, col: 59, offset: 34589}, + pos: position{line: 1397, col: 59, offset: 34773}, name: "END", }, &zeroOrOneExpr{ - pos: position{line: 1392, col: 63, offset: 34593}, + pos: position{line: 1397, col: 63, offset: 34777}, expr: &seqExpr{ - pos: position{line: 1392, col: 64, offset: 34594}, + pos: position{line: 1397, col: 64, offset: 34778}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1392, col: 64, offset: 34594}, + pos: position{line: 1397, col: 64, offset: 34778}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1392, col: 66, offset: 34596}, + pos: position{line: 1397, col: 66, offset: 34780}, name: "CASE", }, }, @@ -9385,50 +9438,50 @@ var g = &grammar{ }, { name: "When", - pos: position{line: 1405, col: 1, offset: 34902}, + pos: position{line: 1410, col: 1, offset: 35086}, expr: &actionExpr{ - pos: position{line: 1406, col: 5, offset: 34911}, + pos: position{line: 1411, col: 5, offset: 35095}, run: (*parser).callonWhen1, expr: &seqExpr{ - pos: position{line: 1406, col: 5, offset: 34911}, + pos: position{line: 1411, col: 5, offset: 35095}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1406, col: 5, offset: 34911}, + pos: position{line: 1411, col: 5, offset: 35095}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1406, col: 7, offset: 34913}, + pos: position{line: 1411, col: 7, offset: 35097}, name: "WHEN", }, &ruleRefExpr{ - pos: position{line: 1406, col: 12, offset: 34918}, + pos: position{line: 1411, col: 12, offset: 35102}, name: "_", }, &labeledExpr{ - pos: position{line: 1406, col: 14, offset: 34920}, + pos: position{line: 1411, col: 14, offset: 35104}, label: "cond", expr: &ruleRefExpr{ - pos: position{line: 1406, col: 19, offset: 34925}, + pos: position{line: 1411, col: 19, offset: 35109}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 1406, col: 24, offset: 34930}, + pos: position{line: 1411, col: 24, offset: 35114}, name: "_", }, &ruleRefExpr{ - pos: position{line: 1406, col: 26, offset: 34932}, + pos: position{line: 1411, col: 26, offset: 35116}, name: "THEN", }, &ruleRefExpr{ - pos: position{line: 1406, col: 31, offset: 34937}, + pos: position{line: 1411, col: 31, offset: 35121}, name: "_", }, &labeledExpr{ - pos: position{line: 1406, col: 33, offset: 34939}, + pos: position{line: 1411, col: 33, offset: 35123}, label: "then", expr: &ruleRefExpr{ - pos: position{line: 1406, col: 38, offset: 34944}, + pos: position{line: 1411, col: 38, offset: 35128}, name: "Expr", }, }, @@ -9440,15 +9493,15 @@ var g = &grammar{ }, { name: "SubqueryExpr", - pos: position{line: 1414, col: 1, offset: 35077}, + pos: position{line: 1419, col: 1, offset: 35261}, expr: &actionExpr{ - pos: position{line: 1415, col: 5, offset: 35094}, + pos: position{line: 1420, col: 5, offset: 35278}, run: (*parser).callonSubqueryExpr1, expr: &labeledExpr{ - pos: position{line: 1415, col: 5, offset: 35094}, + pos: position{line: 1420, col: 5, offset: 35278}, label: "body", expr: &ruleRefExpr{ - pos: position{line: 1415, col: 10, offset: 35099}, + pos: position{line: 1420, col: 10, offset: 35283}, name: "Query", }, }, @@ -9458,37 +9511,37 @@ var g = &grammar{ }, { name: "Record", - pos: position{line: 1423, col: 1, offset: 35245}, + pos: position{line: 1428, col: 1, offset: 35429}, expr: &actionExpr{ - pos: position{line: 1424, col: 5, offset: 35256}, + pos: position{line: 1429, col: 5, offset: 35440}, run: (*parser).callonRecord1, expr: &seqExpr{ - pos: position{line: 1424, col: 5, offset: 35256}, + pos: position{line: 1429, col: 5, offset: 35440}, exprs: []any{ &litMatcher{ - pos: position{line: 1424, col: 5, offset: 35256}, + pos: position{line: 1429, col: 5, offset: 35440}, val: "{", ignoreCase: false, want: "\"{\"", }, &ruleRefExpr{ - pos: position{line: 1424, col: 9, offset: 35260}, + pos: position{line: 1429, col: 9, offset: 35444}, name: "__", }, &labeledExpr{ - pos: position{line: 1424, col: 12, offset: 35263}, + pos: position{line: 1429, col: 12, offset: 35447}, label: "elems", expr: &ruleRefExpr{ - pos: position{line: 1424, col: 18, offset: 35269}, + pos: position{line: 1429, col: 18, offset: 35453}, name: "RecordElems", }, }, &ruleRefExpr{ - pos: position{line: 1424, col: 30, offset: 35281}, + pos: position{line: 1429, col: 30, offset: 35465}, name: "__", }, &litMatcher{ - pos: position{line: 1424, col: 33, offset: 35284}, + pos: position{line: 1429, col: 33, offset: 35468}, val: "}", ignoreCase: false, want: "\"}\"", @@ -9501,31 +9554,31 @@ var g = &grammar{ }, { name: "RecordElems", - pos: position{line: 1432, col: 1, offset: 35442}, + pos: position{line: 1437, col: 1, offset: 35626}, expr: &choiceExpr{ - pos: position{line: 1433, col: 5, offset: 35458}, + pos: position{line: 1438, col: 5, offset: 35642}, alternatives: []any{ &actionExpr{ - pos: position{line: 1433, col: 5, offset: 35458}, + pos: position{line: 1438, col: 5, offset: 35642}, run: (*parser).callonRecordElems2, expr: &seqExpr{ - pos: position{line: 1433, col: 5, offset: 35458}, + pos: position{line: 1438, col: 5, offset: 35642}, exprs: []any{ &labeledExpr{ - pos: position{line: 1433, col: 5, offset: 35458}, + pos: position{line: 1438, col: 5, offset: 35642}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1433, col: 11, offset: 35464}, + pos: position{line: 1438, col: 11, offset: 35648}, name: "RecordElem", }, }, &labeledExpr{ - pos: position{line: 1433, col: 22, offset: 35475}, + pos: position{line: 1438, col: 22, offset: 35659}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1433, col: 27, offset: 35480}, + pos: position{line: 1438, col: 27, offset: 35664}, expr: &ruleRefExpr{ - pos: position{line: 1433, col: 27, offset: 35480}, + pos: position{line: 1438, col: 27, offset: 35664}, name: "RecordElemTail", }, }, @@ -9534,10 +9587,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1436, col: 5, offset: 35543}, + pos: position{line: 1441, col: 5, offset: 35727}, run: (*parser).callonRecordElems9, expr: &ruleRefExpr{ - pos: position{line: 1436, col: 5, offset: 35543}, + pos: position{line: 1441, col: 5, offset: 35727}, name: "__", }, }, @@ -9548,32 +9601,32 @@ var g = &grammar{ }, { name: "RecordElemTail", - pos: position{line: 1438, col: 1, offset: 35567}, + pos: position{line: 1443, col: 1, offset: 35751}, expr: &actionExpr{ - pos: position{line: 1438, col: 18, offset: 35584}, + pos: position{line: 1443, col: 18, offset: 35768}, run: (*parser).callonRecordElemTail1, expr: &seqExpr{ - pos: position{line: 1438, col: 18, offset: 35584}, + pos: position{line: 1443, col: 18, offset: 35768}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1438, col: 18, offset: 35584}, + pos: position{line: 1443, col: 18, offset: 35768}, name: "__", }, &litMatcher{ - pos: position{line: 1438, col: 21, offset: 35587}, + pos: position{line: 1443, col: 21, offset: 35771}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 1438, col: 25, offset: 35591}, + pos: position{line: 1443, col: 25, offset: 35775}, name: "__", }, &labeledExpr{ - pos: position{line: 1438, col: 28, offset: 35594}, + pos: position{line: 1443, col: 28, offset: 35778}, label: "elem", expr: &ruleRefExpr{ - pos: position{line: 1438, col: 33, offset: 35599}, + pos: position{line: 1443, col: 33, offset: 35783}, name: "RecordElem", }, }, @@ -9585,20 +9638,20 @@ var g = &grammar{ }, { name: "RecordElem", - pos: position{line: 1440, col: 1, offset: 35632}, + pos: position{line: 1445, col: 1, offset: 35816}, expr: &choiceExpr{ - pos: position{line: 1440, col: 14, offset: 35645}, + pos: position{line: 1445, col: 14, offset: 35829}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1440, col: 14, offset: 35645}, + pos: position{line: 1445, col: 14, offset: 35829}, name: "SpreadElem", }, &ruleRefExpr{ - pos: position{line: 1440, col: 27, offset: 35658}, + pos: position{line: 1445, col: 27, offset: 35842}, name: "FieldElem", }, &ruleRefExpr{ - pos: position{line: 1440, col: 39, offset: 35670}, + pos: position{line: 1445, col: 39, offset: 35854}, name: "ExprElem", }, }, @@ -9608,28 +9661,28 @@ var g = &grammar{ }, { name: "SpreadElem", - pos: position{line: 1442, col: 1, offset: 35680}, + pos: position{line: 1447, col: 1, offset: 35864}, expr: &actionExpr{ - pos: position{line: 1443, col: 5, offset: 35695}, + pos: position{line: 1448, col: 5, offset: 35879}, run: (*parser).callonSpreadElem1, expr: &seqExpr{ - pos: position{line: 1443, col: 5, offset: 35695}, + pos: position{line: 1448, col: 5, offset: 35879}, exprs: []any{ &litMatcher{ - pos: position{line: 1443, col: 5, offset: 35695}, + pos: position{line: 1448, col: 5, offset: 35879}, val: "...", ignoreCase: false, want: "\"...\"", }, &ruleRefExpr{ - pos: position{line: 1443, col: 11, offset: 35701}, + pos: position{line: 1448, col: 11, offset: 35885}, name: "__", }, &labeledExpr{ - pos: position{line: 1443, col: 14, offset: 35704}, + pos: position{line: 1448, col: 14, offset: 35888}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1443, col: 19, offset: 35709}, + pos: position{line: 1448, col: 19, offset: 35893}, name: "Expr", }, }, @@ -9641,52 +9694,52 @@ var g = &grammar{ }, { name: "FieldElem", - pos: position{line: 1447, col: 1, offset: 35813}, + pos: position{line: 1452, col: 1, offset: 35997}, expr: &actionExpr{ - pos: position{line: 1448, col: 5, offset: 35827}, + pos: position{line: 1453, col: 5, offset: 36011}, run: (*parser).callonFieldElem1, expr: &seqExpr{ - pos: position{line: 1448, col: 5, offset: 35827}, + pos: position{line: 1453, col: 5, offset: 36011}, exprs: []any{ &labeledExpr{ - pos: position{line: 1448, col: 5, offset: 35827}, + pos: position{line: 1453, col: 5, offset: 36011}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 1448, col: 10, offset: 35832}, + pos: position{line: 1453, col: 10, offset: 36016}, name: "Name", }, }, &ruleRefExpr{ - pos: position{line: 1448, col: 15, offset: 35837}, + pos: position{line: 1453, col: 15, offset: 36021}, name: "__", }, &labeledExpr{ - pos: position{line: 1448, col: 18, offset: 35840}, + pos: position{line: 1453, col: 18, offset: 36024}, label: "opt", expr: &ruleRefExpr{ - pos: position{line: 1448, col: 22, offset: 35844}, + pos: position{line: 1453, col: 22, offset: 36028}, name: "OptToken", }, }, &ruleRefExpr{ - pos: position{line: 1448, col: 31, offset: 35853}, + pos: position{line: 1453, col: 31, offset: 36037}, name: "__", }, &litMatcher{ - pos: position{line: 1448, col: 34, offset: 35856}, + pos: position{line: 1453, col: 34, offset: 36040}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 1448, col: 38, offset: 35860}, + pos: position{line: 1453, col: 38, offset: 36044}, name: "__", }, &labeledExpr{ - pos: position{line: 1448, col: 41, offset: 35863}, + pos: position{line: 1453, col: 41, offset: 36047}, label: "value", expr: &ruleRefExpr{ - pos: position{line: 1448, col: 47, offset: 35869}, + pos: position{line: 1453, col: 47, offset: 36053}, name: "Expr", }, }, @@ -9698,30 +9751,30 @@ var g = &grammar{ }, { name: "ExprElem", - pos: position{line: 1458, col: 1, offset: 36063}, + pos: position{line: 1463, col: 1, offset: 36247}, expr: &actionExpr{ - pos: position{line: 1459, col: 5, offset: 36076}, + pos: position{line: 1464, col: 5, offset: 36260}, run: (*parser).callonExprElem1, expr: &seqExpr{ - pos: position{line: 1459, col: 5, offset: 36076}, + pos: position{line: 1464, col: 5, offset: 36260}, exprs: []any{ &labeledExpr{ - pos: position{line: 1459, col: 5, offset: 36076}, + pos: position{line: 1464, col: 5, offset: 36260}, label: "opt", expr: &ruleRefExpr{ - pos: position{line: 1459, col: 9, offset: 36080}, + pos: position{line: 1464, col: 9, offset: 36264}, name: "OptToken", }, }, &ruleRefExpr{ - pos: position{line: 1459, col: 18, offset: 36089}, + pos: position{line: 1464, col: 18, offset: 36273}, name: "__", }, &labeledExpr{ - pos: position{line: 1459, col: 21, offset: 36092}, + pos: position{line: 1464, col: 21, offset: 36276}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 1459, col: 26, offset: 36097}, + pos: position{line: 1464, col: 26, offset: 36281}, name: "Expr", }, }, @@ -9733,37 +9786,37 @@ var g = &grammar{ }, { name: "Array", - pos: position{line: 1463, col: 1, offset: 36214}, + pos: position{line: 1468, col: 1, offset: 36398}, expr: &actionExpr{ - pos: position{line: 1464, col: 5, offset: 36224}, + pos: position{line: 1469, col: 5, offset: 36408}, run: (*parser).callonArray1, expr: &seqExpr{ - pos: position{line: 1464, col: 5, offset: 36224}, + pos: position{line: 1469, col: 5, offset: 36408}, exprs: []any{ &litMatcher{ - pos: position{line: 1464, col: 5, offset: 36224}, + pos: position{line: 1469, col: 5, offset: 36408}, val: "[", ignoreCase: false, want: "\"[\"", }, &ruleRefExpr{ - pos: position{line: 1464, col: 9, offset: 36228}, + pos: position{line: 1469, col: 9, offset: 36412}, name: "__", }, &labeledExpr{ - pos: position{line: 1464, col: 12, offset: 36231}, + pos: position{line: 1469, col: 12, offset: 36415}, label: "elems", expr: &ruleRefExpr{ - pos: position{line: 1464, col: 18, offset: 36237}, + pos: position{line: 1469, col: 18, offset: 36421}, name: "ArrayElems", }, }, &ruleRefExpr{ - pos: position{line: 1464, col: 29, offset: 36248}, + pos: position{line: 1469, col: 29, offset: 36432}, name: "__", }, &litMatcher{ - pos: position{line: 1464, col: 32, offset: 36251}, + pos: position{line: 1469, col: 32, offset: 36435}, val: "]", ignoreCase: false, want: "\"]\"", @@ -9776,37 +9829,37 @@ var g = &grammar{ }, { name: "Set", - pos: position{line: 1472, col: 1, offset: 36406}, + pos: position{line: 1477, col: 1, offset: 36590}, expr: &actionExpr{ - pos: position{line: 1473, col: 5, offset: 36414}, + pos: position{line: 1478, col: 5, offset: 36598}, run: (*parser).callonSet1, expr: &seqExpr{ - pos: position{line: 1473, col: 5, offset: 36414}, + pos: position{line: 1478, col: 5, offset: 36598}, exprs: []any{ &litMatcher{ - pos: position{line: 1473, col: 5, offset: 36414}, + pos: position{line: 1478, col: 5, offset: 36598}, val: "set[", ignoreCase: false, want: "\"set[\"", }, &ruleRefExpr{ - pos: position{line: 1473, col: 12, offset: 36421}, + pos: position{line: 1478, col: 12, offset: 36605}, name: "__", }, &labeledExpr{ - pos: position{line: 1473, col: 15, offset: 36424}, + pos: position{line: 1478, col: 15, offset: 36608}, label: "elems", expr: &ruleRefExpr{ - pos: position{line: 1473, col: 21, offset: 36430}, + pos: position{line: 1478, col: 21, offset: 36614}, name: "ArrayElems", }, }, &ruleRefExpr{ - pos: position{line: 1473, col: 32, offset: 36441}, + pos: position{line: 1478, col: 32, offset: 36625}, name: "__", }, &litMatcher{ - pos: position{line: 1473, col: 35, offset: 36444}, + pos: position{line: 1478, col: 35, offset: 36628}, val: "]", ignoreCase: false, want: "\"]\"", @@ -9819,54 +9872,54 @@ var g = &grammar{ }, { name: "ArrayElems", - pos: position{line: 1481, col: 1, offset: 36595}, + pos: position{line: 1486, col: 1, offset: 36779}, expr: &choiceExpr{ - pos: position{line: 1482, col: 5, offset: 36610}, + pos: position{line: 1487, col: 5, offset: 36794}, alternatives: []any{ &actionExpr{ - pos: position{line: 1482, col: 5, offset: 36610}, + pos: position{line: 1487, col: 5, offset: 36794}, run: (*parser).callonArrayElems2, expr: &seqExpr{ - pos: position{line: 1482, col: 5, offset: 36610}, + pos: position{line: 1487, col: 5, offset: 36794}, exprs: []any{ &labeledExpr{ - pos: position{line: 1482, col: 5, offset: 36610}, + pos: position{line: 1487, col: 5, offset: 36794}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1482, col: 11, offset: 36616}, + pos: position{line: 1487, col: 11, offset: 36800}, name: "ArrayElem", }, }, &labeledExpr{ - pos: position{line: 1482, col: 21, offset: 36626}, + pos: position{line: 1487, col: 21, offset: 36810}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1482, col: 26, offset: 36631}, + pos: position{line: 1487, col: 26, offset: 36815}, expr: &actionExpr{ - pos: position{line: 1482, col: 27, offset: 36632}, + pos: position{line: 1487, col: 27, offset: 36816}, run: (*parser).callonArrayElems8, expr: &seqExpr{ - pos: position{line: 1482, col: 27, offset: 36632}, + pos: position{line: 1487, col: 27, offset: 36816}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1482, col: 27, offset: 36632}, + pos: position{line: 1487, col: 27, offset: 36816}, name: "__", }, &litMatcher{ - pos: position{line: 1482, col: 30, offset: 36635}, + pos: position{line: 1487, col: 30, offset: 36819}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 1482, col: 34, offset: 36639}, + pos: position{line: 1487, col: 34, offset: 36823}, name: "__", }, &labeledExpr{ - pos: position{line: 1482, col: 37, offset: 36642}, + pos: position{line: 1487, col: 37, offset: 36826}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1482, col: 39, offset: 36644}, + pos: position{line: 1487, col: 39, offset: 36828}, name: "ArrayElem", }, }, @@ -9879,10 +9932,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1485, col: 5, offset: 36725}, + pos: position{line: 1490, col: 5, offset: 36909}, run: (*parser).callonArrayElems15, expr: &ruleRefExpr{ - pos: position{line: 1485, col: 5, offset: 36725}, + pos: position{line: 1490, col: 5, offset: 36909}, name: "__", }, }, @@ -9893,16 +9946,16 @@ var g = &grammar{ }, { name: "ArrayElem", - pos: position{line: 1487, col: 1, offset: 36749}, + pos: position{line: 1492, col: 1, offset: 36933}, expr: &choiceExpr{ - pos: position{line: 1487, col: 13, offset: 36761}, + pos: position{line: 1492, col: 13, offset: 36945}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1487, col: 13, offset: 36761}, + pos: position{line: 1492, col: 13, offset: 36945}, name: "SpreadElem", }, &ruleRefExpr{ - pos: position{line: 1487, col: 26, offset: 36774}, + pos: position{line: 1492, col: 26, offset: 36958}, name: "ExprElem", }, }, @@ -9912,37 +9965,37 @@ var g = &grammar{ }, { name: "Map", - pos: position{line: 1489, col: 1, offset: 36784}, + pos: position{line: 1494, col: 1, offset: 36968}, expr: &actionExpr{ - pos: position{line: 1490, col: 5, offset: 36792}, + pos: position{line: 1495, col: 5, offset: 36976}, run: (*parser).callonMap1, expr: &seqExpr{ - pos: position{line: 1490, col: 5, offset: 36792}, + pos: position{line: 1495, col: 5, offset: 36976}, exprs: []any{ &litMatcher{ - pos: position{line: 1490, col: 5, offset: 36792}, + pos: position{line: 1495, col: 5, offset: 36976}, val: "map{", ignoreCase: false, want: "\"map{\"", }, &ruleRefExpr{ - pos: position{line: 1490, col: 12, offset: 36799}, + pos: position{line: 1495, col: 12, offset: 36983}, name: "__", }, &labeledExpr{ - pos: position{line: 1490, col: 15, offset: 36802}, + pos: position{line: 1495, col: 15, offset: 36986}, label: "exprs", expr: &ruleRefExpr{ - pos: position{line: 1490, col: 21, offset: 36808}, + pos: position{line: 1495, col: 21, offset: 36992}, name: "Entries", }, }, &ruleRefExpr{ - pos: position{line: 1490, col: 29, offset: 36816}, + pos: position{line: 1495, col: 29, offset: 37000}, name: "__", }, &litMatcher{ - pos: position{line: 1490, col: 32, offset: 36819}, + pos: position{line: 1495, col: 32, offset: 37003}, val: "}", ignoreCase: false, want: "\"}\"", @@ -9955,31 +10008,31 @@ var g = &grammar{ }, { name: "Entries", - pos: position{line: 1498, col: 1, offset: 36971}, + pos: position{line: 1503, col: 1, offset: 37155}, expr: &choiceExpr{ - pos: position{line: 1499, col: 5, offset: 36983}, + pos: position{line: 1504, col: 5, offset: 37167}, alternatives: []any{ &actionExpr{ - pos: position{line: 1499, col: 5, offset: 36983}, + pos: position{line: 1504, col: 5, offset: 37167}, run: (*parser).callonEntries2, expr: &seqExpr{ - pos: position{line: 1499, col: 5, offset: 36983}, + pos: position{line: 1504, col: 5, offset: 37167}, exprs: []any{ &labeledExpr{ - pos: position{line: 1499, col: 5, offset: 36983}, + pos: position{line: 1504, col: 5, offset: 37167}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1499, col: 11, offset: 36989}, + pos: position{line: 1504, col: 11, offset: 37173}, name: "Entry", }, }, &labeledExpr{ - pos: position{line: 1499, col: 17, offset: 36995}, + pos: position{line: 1504, col: 17, offset: 37179}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1499, col: 22, offset: 37000}, + pos: position{line: 1504, col: 22, offset: 37184}, expr: &ruleRefExpr{ - pos: position{line: 1499, col: 22, offset: 37000}, + pos: position{line: 1504, col: 22, offset: 37184}, name: "EntryTail", }, }, @@ -9988,10 +10041,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1502, col: 5, offset: 37058}, + pos: position{line: 1507, col: 5, offset: 37242}, run: (*parser).callonEntries9, expr: &ruleRefExpr{ - pos: position{line: 1502, col: 5, offset: 37058}, + pos: position{line: 1507, col: 5, offset: 37242}, name: "__", }, }, @@ -10002,32 +10055,32 @@ var g = &grammar{ }, { name: "EntryTail", - pos: position{line: 1505, col: 1, offset: 37083}, + pos: position{line: 1510, col: 1, offset: 37267}, expr: &actionExpr{ - pos: position{line: 1505, col: 13, offset: 37095}, + pos: position{line: 1510, col: 13, offset: 37279}, run: (*parser).callonEntryTail1, expr: &seqExpr{ - pos: position{line: 1505, col: 13, offset: 37095}, + pos: position{line: 1510, col: 13, offset: 37279}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1505, col: 13, offset: 37095}, + pos: position{line: 1510, col: 13, offset: 37279}, name: "__", }, &litMatcher{ - pos: position{line: 1505, col: 16, offset: 37098}, + pos: position{line: 1510, col: 16, offset: 37282}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 1505, col: 20, offset: 37102}, + pos: position{line: 1510, col: 20, offset: 37286}, name: "__", }, &labeledExpr{ - pos: position{line: 1505, col: 23, offset: 37105}, + pos: position{line: 1510, col: 23, offset: 37289}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1505, col: 25, offset: 37107}, + pos: position{line: 1510, col: 25, offset: 37291}, name: "Entry", }, }, @@ -10039,40 +10092,40 @@ var g = &grammar{ }, { name: "Entry", - pos: position{line: 1507, col: 1, offset: 37132}, + pos: position{line: 1512, col: 1, offset: 37316}, expr: &actionExpr{ - pos: position{line: 1508, col: 5, offset: 37142}, + pos: position{line: 1513, col: 5, offset: 37326}, run: (*parser).callonEntry1, expr: &seqExpr{ - pos: position{line: 1508, col: 5, offset: 37142}, + pos: position{line: 1513, col: 5, offset: 37326}, exprs: []any{ &labeledExpr{ - pos: position{line: 1508, col: 5, offset: 37142}, + pos: position{line: 1513, col: 5, offset: 37326}, label: "key", expr: &ruleRefExpr{ - pos: position{line: 1508, col: 9, offset: 37146}, + pos: position{line: 1513, col: 9, offset: 37330}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 1508, col: 14, offset: 37151}, + pos: position{line: 1513, col: 14, offset: 37335}, name: "__", }, &litMatcher{ - pos: position{line: 1508, col: 17, offset: 37154}, + pos: position{line: 1513, col: 17, offset: 37338}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 1508, col: 21, offset: 37158}, + pos: position{line: 1513, col: 21, offset: 37342}, name: "__", }, &labeledExpr{ - pos: position{line: 1508, col: 24, offset: 37161}, + pos: position{line: 1513, col: 24, offset: 37345}, label: "value", expr: &ruleRefExpr{ - pos: position{line: 1508, col: 30, offset: 37167}, + pos: position{line: 1513, col: 30, offset: 37351}, name: "Expr", }, }, @@ -10084,61 +10137,61 @@ var g = &grammar{ }, { name: "Tuple", - pos: position{line: 1512, col: 1, offset: 37269}, + pos: position{line: 1517, col: 1, offset: 37453}, expr: &actionExpr{ - pos: position{line: 1513, col: 5, offset: 37279}, + pos: position{line: 1518, col: 5, offset: 37463}, run: (*parser).callonTuple1, expr: &seqExpr{ - pos: position{line: 1513, col: 5, offset: 37279}, + pos: position{line: 1518, col: 5, offset: 37463}, exprs: []any{ &litMatcher{ - pos: position{line: 1513, col: 5, offset: 37279}, + pos: position{line: 1518, col: 5, offset: 37463}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1513, col: 9, offset: 37283}, + pos: position{line: 1518, col: 9, offset: 37467}, name: "__", }, &labeledExpr{ - pos: position{line: 1513, col: 12, offset: 37286}, + pos: position{line: 1518, col: 12, offset: 37470}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1513, col: 18, offset: 37292}, + pos: position{line: 1518, col: 18, offset: 37476}, name: "Expr", }, }, &labeledExpr{ - pos: position{line: 1513, col: 23, offset: 37297}, + pos: position{line: 1518, col: 23, offset: 37481}, label: "rest", expr: &oneOrMoreExpr{ - pos: position{line: 1513, col: 28, offset: 37302}, + pos: position{line: 1518, col: 28, offset: 37486}, expr: &actionExpr{ - pos: position{line: 1513, col: 29, offset: 37303}, + pos: position{line: 1518, col: 29, offset: 37487}, run: (*parser).callonTuple9, expr: &seqExpr{ - pos: position{line: 1513, col: 29, offset: 37303}, + pos: position{line: 1518, col: 29, offset: 37487}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1513, col: 29, offset: 37303}, + pos: position{line: 1518, col: 29, offset: 37487}, name: "__", }, &litMatcher{ - pos: position{line: 1513, col: 32, offset: 37306}, + pos: position{line: 1518, col: 32, offset: 37490}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 1513, col: 36, offset: 37310}, + pos: position{line: 1518, col: 36, offset: 37494}, name: "__", }, &labeledExpr{ - pos: position{line: 1513, col: 39, offset: 37313}, + pos: position{line: 1518, col: 39, offset: 37497}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1513, col: 41, offset: 37315}, + pos: position{line: 1518, col: 41, offset: 37499}, name: "Expr", }, }, @@ -10148,11 +10201,11 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1513, col: 66, offset: 37340}, + pos: position{line: 1518, col: 66, offset: 37524}, name: "__", }, &litMatcher{ - pos: position{line: 1513, col: 69, offset: 37343}, + pos: position{line: 1518, col: 69, offset: 37527}, val: ")", ignoreCase: false, want: "\")\"", @@ -10165,39 +10218,39 @@ var g = &grammar{ }, { name: "SQLTimeExpr", - pos: position{line: 1521, col: 1, offset: 37502}, + pos: position{line: 1526, col: 1, offset: 37686}, expr: &actionExpr{ - pos: position{line: 1522, col: 5, offset: 37518}, + pos: position{line: 1527, col: 5, offset: 37702}, run: (*parser).callonSQLTimeExpr1, expr: &seqExpr{ - pos: position{line: 1522, col: 5, offset: 37518}, + pos: position{line: 1527, col: 5, offset: 37702}, exprs: []any{ &labeledExpr{ - pos: position{line: 1522, col: 5, offset: 37518}, + pos: position{line: 1527, col: 5, offset: 37702}, label: "typ", expr: &choiceExpr{ - pos: position{line: 1522, col: 10, offset: 37523}, + pos: position{line: 1527, col: 10, offset: 37707}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1522, col: 10, offset: 37523}, + pos: position{line: 1527, col: 10, offset: 37707}, name: "DATE", }, &ruleRefExpr{ - pos: position{line: 1522, col: 17, offset: 37530}, + pos: position{line: 1527, col: 17, offset: 37714}, name: "TIMESTAMP", }, }, }, }, &ruleRefExpr{ - pos: position{line: 1522, col: 28, offset: 37541}, + pos: position{line: 1527, col: 28, offset: 37725}, name: "_", }, &labeledExpr{ - pos: position{line: 1522, col: 30, offset: 37543}, + pos: position{line: 1527, col: 30, offset: 37727}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 1522, col: 32, offset: 37545}, + pos: position{line: 1527, col: 32, offset: 37729}, name: "StringLiteral", }, }, @@ -10209,68 +10262,68 @@ var g = &grammar{ }, { name: "Literal", - pos: position{line: 1533, col: 1, offset: 37760}, + pos: position{line: 1538, col: 1, offset: 37944}, expr: &choiceExpr{ - pos: position{line: 1534, col: 5, offset: 37772}, + pos: position{line: 1539, col: 5, offset: 37956}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1534, col: 5, offset: 37772}, + pos: position{line: 1539, col: 5, offset: 37956}, name: "TypeLiteral", }, &ruleRefExpr{ - pos: position{line: 1535, col: 5, offset: 37788}, + pos: position{line: 1540, col: 5, offset: 37972}, name: "StringLiteral", }, &ruleRefExpr{ - pos: position{line: 1536, col: 5, offset: 37806}, + pos: position{line: 1541, col: 5, offset: 37990}, name: "FString", }, &ruleRefExpr{ - pos: position{line: 1537, col: 5, offset: 37818}, + pos: position{line: 1542, col: 5, offset: 38002}, name: "UUIDLiteral", }, &ruleRefExpr{ - pos: position{line: 1538, col: 5, offset: 37834}, + pos: position{line: 1543, col: 5, offset: 38018}, name: "SubnetLiteral", }, &ruleRefExpr{ - pos: position{line: 1539, col: 5, offset: 37852}, + pos: position{line: 1544, col: 5, offset: 38036}, name: "AddressLiteral", }, &ruleRefExpr{ - pos: position{line: 1540, col: 5, offset: 37871}, + pos: position{line: 1545, col: 5, offset: 38055}, name: "BytesLiteral", }, &ruleRefExpr{ - pos: position{line: 1541, col: 5, offset: 37888}, + pos: position{line: 1546, col: 5, offset: 38072}, name: "Duration", }, &ruleRefExpr{ - pos: position{line: 1542, col: 5, offset: 37901}, + pos: position{line: 1547, col: 5, offset: 38085}, name: "Time", }, &ruleRefExpr{ - pos: position{line: 1543, col: 5, offset: 37910}, + pos: position{line: 1548, col: 5, offset: 38094}, name: "FloatLiteral", }, &ruleRefExpr{ - pos: position{line: 1544, col: 5, offset: 37927}, + pos: position{line: 1549, col: 5, offset: 38111}, name: "IntegerLiteral", }, &ruleRefExpr{ - pos: position{line: 1545, col: 5, offset: 37946}, + pos: position{line: 1550, col: 5, offset: 38130}, name: "BooleanLiteral", }, &ruleRefExpr{ - pos: position{line: 1546, col: 5, offset: 37965}, + pos: position{line: 1551, col: 5, offset: 38149}, name: "NullLiteral", }, &ruleRefExpr{ - pos: position{line: 1547, col: 5, offset: 37981}, + pos: position{line: 1552, col: 5, offset: 38165}, name: "NoneLiteral", }, &ruleRefExpr{ - pos: position{line: 1548, col: 5, offset: 37997}, + pos: position{line: 1553, col: 5, offset: 38181}, name: "MissingLiteral", }, }, @@ -10280,28 +10333,28 @@ var g = &grammar{ }, { name: "SubnetLiteral", - pos: position{line: 1550, col: 1, offset: 38013}, + pos: position{line: 1555, col: 1, offset: 38197}, expr: &choiceExpr{ - pos: position{line: 1551, col: 5, offset: 38031}, + pos: position{line: 1556, col: 5, offset: 38215}, alternatives: []any{ &actionExpr{ - pos: position{line: 1551, col: 5, offset: 38031}, + pos: position{line: 1556, col: 5, offset: 38215}, run: (*parser).callonSubnetLiteral2, expr: &seqExpr{ - pos: position{line: 1551, col: 5, offset: 38031}, + pos: position{line: 1556, col: 5, offset: 38215}, exprs: []any{ &labeledExpr{ - pos: position{line: 1551, col: 5, offset: 38031}, + pos: position{line: 1556, col: 5, offset: 38215}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 1551, col: 7, offset: 38033}, + pos: position{line: 1556, col: 7, offset: 38217}, name: "IP6Net", }, }, ¬Expr{ - pos: position{line: 1551, col: 14, offset: 38040}, + pos: position{line: 1556, col: 14, offset: 38224}, expr: &ruleRefExpr{ - pos: position{line: 1551, col: 15, offset: 38041}, + pos: position{line: 1556, col: 15, offset: 38225}, name: "IdentifierRest", }, }, @@ -10309,13 +10362,13 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1554, col: 5, offset: 38121}, + pos: position{line: 1559, col: 5, offset: 38305}, run: (*parser).callonSubnetLiteral8, expr: &labeledExpr{ - pos: position{line: 1554, col: 5, offset: 38121}, + pos: position{line: 1559, col: 5, offset: 38305}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 1554, col: 7, offset: 38123}, + pos: position{line: 1559, col: 7, offset: 38307}, name: "IP4Net", }, }, @@ -10327,35 +10380,35 @@ var g = &grammar{ }, { name: "AddressLiteral", - pos: position{line: 1558, col: 1, offset: 38192}, + pos: position{line: 1563, col: 1, offset: 38376}, expr: &choiceExpr{ - pos: position{line: 1559, col: 5, offset: 38211}, + pos: position{line: 1564, col: 5, offset: 38395}, alternatives: []any{ &actionExpr{ - pos: position{line: 1559, col: 5, offset: 38211}, + pos: position{line: 1564, col: 5, offset: 38395}, run: (*parser).callonAddressLiteral2, expr: &seqExpr{ - pos: position{line: 1559, col: 5, offset: 38211}, + pos: position{line: 1564, col: 5, offset: 38395}, exprs: []any{ &labeledExpr{ - pos: position{line: 1559, col: 5, offset: 38211}, + pos: position{line: 1564, col: 5, offset: 38395}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 1559, col: 7, offset: 38213}, + pos: position{line: 1564, col: 7, offset: 38397}, name: "IP6", }, }, ¬Expr{ - pos: position{line: 1559, col: 11, offset: 38217}, + pos: position{line: 1564, col: 11, offset: 38401}, expr: &choiceExpr{ - pos: position{line: 1559, col: 13, offset: 38219}, + pos: position{line: 1564, col: 13, offset: 38403}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1559, col: 13, offset: 38219}, + pos: position{line: 1564, col: 13, offset: 38403}, name: "IdentifierRest", }, &ruleRefExpr{ - pos: position{line: 1559, col: 30, offset: 38236}, + pos: position{line: 1564, col: 30, offset: 38420}, name: "TypeLiteral", }, }, @@ -10365,13 +10418,13 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1562, col: 5, offset: 38313}, + pos: position{line: 1567, col: 5, offset: 38497}, run: (*parser).callonAddressLiteral10, expr: &labeledExpr{ - pos: position{line: 1562, col: 5, offset: 38313}, + pos: position{line: 1567, col: 5, offset: 38497}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 1562, col: 7, offset: 38315}, + pos: position{line: 1567, col: 7, offset: 38499}, name: "IP", }, }, @@ -10383,15 +10436,15 @@ var g = &grammar{ }, { name: "FloatLiteral", - pos: position{line: 1566, col: 1, offset: 38379}, + pos: position{line: 1571, col: 1, offset: 38563}, expr: &actionExpr{ - pos: position{line: 1567, col: 5, offset: 38396}, + pos: position{line: 1572, col: 5, offset: 38580}, run: (*parser).callonFloatLiteral1, expr: &labeledExpr{ - pos: position{line: 1567, col: 5, offset: 38396}, + pos: position{line: 1572, col: 5, offset: 38580}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 1567, col: 7, offset: 38398}, + pos: position{line: 1572, col: 7, offset: 38582}, name: "FloatString", }, }, @@ -10401,15 +10454,15 @@ var g = &grammar{ }, { name: "IntegerLiteral", - pos: position{line: 1571, col: 1, offset: 38476}, + pos: position{line: 1576, col: 1, offset: 38660}, expr: &actionExpr{ - pos: position{line: 1572, col: 5, offset: 38495}, + pos: position{line: 1577, col: 5, offset: 38679}, run: (*parser).callonIntegerLiteral1, expr: &labeledExpr{ - pos: position{line: 1572, col: 5, offset: 38495}, + pos: position{line: 1577, col: 5, offset: 38679}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 1572, col: 7, offset: 38497}, + pos: position{line: 1577, col: 7, offset: 38681}, name: "IntString", }, }, @@ -10419,23 +10472,23 @@ var g = &grammar{ }, { name: "BooleanLiteral", - pos: position{line: 1576, col: 1, offset: 38571}, + pos: position{line: 1581, col: 1, offset: 38755}, expr: &choiceExpr{ - pos: position{line: 1577, col: 5, offset: 38590}, + pos: position{line: 1582, col: 5, offset: 38774}, alternatives: []any{ &actionExpr{ - pos: position{line: 1577, col: 5, offset: 38590}, + pos: position{line: 1582, col: 5, offset: 38774}, run: (*parser).callonBooleanLiteral2, expr: &ruleRefExpr{ - pos: position{line: 1577, col: 5, offset: 38590}, + pos: position{line: 1582, col: 5, offset: 38774}, name: "TRUE", }, }, &actionExpr{ - pos: position{line: 1578, col: 5, offset: 38648}, + pos: position{line: 1583, col: 5, offset: 38832}, run: (*parser).callonBooleanLiteral4, expr: &ruleRefExpr{ - pos: position{line: 1578, col: 5, offset: 38648}, + pos: position{line: 1583, col: 5, offset: 38832}, name: "FALSE", }, }, @@ -10446,12 +10499,12 @@ var g = &grammar{ }, { name: "NullLiteral", - pos: position{line: 1580, col: 1, offset: 38704}, + pos: position{line: 1585, col: 1, offset: 38888}, expr: &actionExpr{ - pos: position{line: 1581, col: 5, offset: 38720}, + pos: position{line: 1586, col: 5, offset: 38904}, run: (*parser).callonNullLiteral1, expr: &ruleRefExpr{ - pos: position{line: 1581, col: 5, offset: 38720}, + pos: position{line: 1586, col: 5, offset: 38904}, name: "NULL", }, }, @@ -10460,12 +10513,12 @@ var g = &grammar{ }, { name: "NoneLiteral", - pos: position{line: 1585, col: 1, offset: 38912}, + pos: position{line: 1590, col: 1, offset: 39096}, expr: &actionExpr{ - pos: position{line: 1586, col: 5, offset: 38928}, + pos: position{line: 1591, col: 5, offset: 39112}, run: (*parser).callonNoneLiteral1, expr: &ruleRefExpr{ - pos: position{line: 1586, col: 5, offset: 38928}, + pos: position{line: 1591, col: 5, offset: 39112}, name: "NONE", }, }, @@ -10474,12 +10527,12 @@ var g = &grammar{ }, { name: "MissingLiteral", - pos: position{line: 1588, col: 1, offset: 38978}, + pos: position{line: 1593, col: 1, offset: 39162}, expr: &actionExpr{ - pos: position{line: 1589, col: 5, offset: 38997}, + pos: position{line: 1594, col: 5, offset: 39181}, run: (*parser).callonMissingLiteral1, expr: &ruleRefExpr{ - pos: position{line: 1589, col: 5, offset: 38997}, + pos: position{line: 1594, col: 5, offset: 39181}, name: "MISSING", }, }, @@ -10488,73 +10541,73 @@ var g = &grammar{ }, { name: "UUIDLiteral", - pos: position{line: 1591, col: 1, offset: 39055}, + pos: position{line: 1596, col: 1, offset: 39239}, expr: &actionExpr{ - pos: position{line: 1592, col: 5, offset: 39071}, + pos: position{line: 1597, col: 5, offset: 39255}, run: (*parser).callonUUIDLiteral1, expr: &seqExpr{ - pos: position{line: 1592, col: 5, offset: 39071}, + pos: position{line: 1597, col: 5, offset: 39255}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1592, col: 5, offset: 39071}, + pos: position{line: 1597, col: 5, offset: 39255}, name: "H4", }, &ruleRefExpr{ - pos: position{line: 1592, col: 8, offset: 39074}, + pos: position{line: 1597, col: 8, offset: 39258}, name: "H4", }, &litMatcher{ - pos: position{line: 1592, col: 11, offset: 39077}, + pos: position{line: 1597, col: 11, offset: 39261}, val: "-", ignoreCase: false, want: "\"-\"", }, &ruleRefExpr{ - pos: position{line: 1592, col: 15, offset: 39081}, + pos: position{line: 1597, col: 15, offset: 39265}, name: "H4", }, &litMatcher{ - pos: position{line: 1592, col: 18, offset: 39084}, + pos: position{line: 1597, col: 18, offset: 39268}, val: "-", ignoreCase: false, want: "\"-\"", }, &ruleRefExpr{ - pos: position{line: 1592, col: 22, offset: 39088}, + pos: position{line: 1597, col: 22, offset: 39272}, name: "H4", }, &litMatcher{ - pos: position{line: 1592, col: 25, offset: 39091}, + pos: position{line: 1597, col: 25, offset: 39275}, val: "-", ignoreCase: false, want: "\"-\"", }, &ruleRefExpr{ - pos: position{line: 1592, col: 29, offset: 39095}, + pos: position{line: 1597, col: 29, offset: 39279}, name: "H4", }, &litMatcher{ - pos: position{line: 1592, col: 32, offset: 39098}, + pos: position{line: 1597, col: 32, offset: 39282}, val: "-", ignoreCase: false, want: "\"-\"", }, &ruleRefExpr{ - pos: position{line: 1592, col: 36, offset: 39102}, + pos: position{line: 1597, col: 36, offset: 39286}, name: "H4", }, &ruleRefExpr{ - pos: position{line: 1592, col: 39, offset: 39105}, + pos: position{line: 1597, col: 39, offset: 39289}, name: "H4", }, &ruleRefExpr{ - pos: position{line: 1592, col: 42, offset: 39108}, + pos: position{line: 1597, col: 42, offset: 39292}, name: "H4", }, ¬Expr{ - pos: position{line: 1592, col: 45, offset: 39111}, + pos: position{line: 1597, col: 45, offset: 39295}, expr: &ruleRefExpr{ - pos: position{line: 1592, col: 46, offset: 39112}, + pos: position{line: 1597, col: 46, offset: 39296}, name: "IdentifierRest", }, }, @@ -10566,24 +10619,24 @@ var g = &grammar{ }, { name: "H4", - pos: position{line: 1596, col: 1, offset: 39194}, + pos: position{line: 1601, col: 1, offset: 39378}, expr: &seqExpr{ - pos: position{line: 1596, col: 6, offset: 39199}, + pos: position{line: 1601, col: 6, offset: 39383}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1596, col: 6, offset: 39199}, + pos: position{line: 1601, col: 6, offset: 39383}, name: "HexDigit", }, &ruleRefExpr{ - pos: position{line: 1596, col: 15, offset: 39208}, + pos: position{line: 1601, col: 15, offset: 39392}, name: "HexDigit", }, &ruleRefExpr{ - pos: position{line: 1596, col: 24, offset: 39217}, + pos: position{line: 1601, col: 24, offset: 39401}, name: "HexDigit", }, &ruleRefExpr{ - pos: position{line: 1596, col: 33, offset: 39226}, + pos: position{line: 1601, col: 33, offset: 39410}, name: "HexDigit", }, }, @@ -10593,23 +10646,23 @@ var g = &grammar{ }, { name: "BytesLiteral", - pos: position{line: 1598, col: 1, offset: 39236}, + pos: position{line: 1603, col: 1, offset: 39420}, expr: &actionExpr{ - pos: position{line: 1599, col: 5, offset: 39253}, + pos: position{line: 1604, col: 5, offset: 39437}, run: (*parser).callonBytesLiteral1, expr: &seqExpr{ - pos: position{line: 1599, col: 5, offset: 39253}, + pos: position{line: 1604, col: 5, offset: 39437}, exprs: []any{ &litMatcher{ - pos: position{line: 1599, col: 5, offset: 39253}, + pos: position{line: 1604, col: 5, offset: 39437}, val: "0x", ignoreCase: false, want: "\"0x\"", }, &zeroOrMoreExpr{ - pos: position{line: 1599, col: 10, offset: 39258}, + pos: position{line: 1604, col: 10, offset: 39442}, expr: &ruleRefExpr{ - pos: position{line: 1599, col: 10, offset: 39258}, + pos: position{line: 1604, col: 10, offset: 39442}, name: "HexDigit", }, }, @@ -10621,29 +10674,29 @@ var g = &grammar{ }, { name: "TypeLiteral", - pos: position{line: 1603, col: 1, offset: 39332}, + pos: position{line: 1608, col: 1, offset: 39516}, expr: &actionExpr{ - pos: position{line: 1604, col: 5, offset: 39348}, + pos: position{line: 1609, col: 5, offset: 39532}, run: (*parser).callonTypeLiteral1, expr: &seqExpr{ - pos: position{line: 1604, col: 5, offset: 39348}, + pos: position{line: 1609, col: 5, offset: 39532}, exprs: []any{ &litMatcher{ - pos: position{line: 1604, col: 5, offset: 39348}, + pos: position{line: 1609, col: 5, offset: 39532}, val: "<", ignoreCase: false, want: "\"<\"", }, &labeledExpr{ - pos: position{line: 1604, col: 9, offset: 39352}, + pos: position{line: 1609, col: 9, offset: 39536}, label: "typ", expr: &ruleRefExpr{ - pos: position{line: 1604, col: 13, offset: 39356}, + pos: position{line: 1609, col: 13, offset: 39540}, name: "Type", }, }, &litMatcher{ - pos: position{line: 1604, col: 18, offset: 39361}, + pos: position{line: 1609, col: 18, offset: 39545}, val: ">", ignoreCase: false, want: "\">\"", @@ -10656,15 +10709,15 @@ var g = &grammar{ }, { name: "TypeAsValue", - pos: position{line: 1612, col: 1, offset: 39494}, + pos: position{line: 1617, col: 1, offset: 39678}, expr: &actionExpr{ - pos: position{line: 1613, col: 5, offset: 39510}, + pos: position{line: 1618, col: 5, offset: 39694}, run: (*parser).callonTypeAsValue1, expr: &labeledExpr{ - pos: position{line: 1613, col: 5, offset: 39510}, + pos: position{line: 1618, col: 5, offset: 39694}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 1613, col: 7, offset: 39512}, + pos: position{line: 1618, col: 7, offset: 39696}, name: "ComponentType", }, }, @@ -10674,16 +10727,16 @@ var g = &grammar{ }, { name: "Type", - pos: position{line: 1621, col: 1, offset: 39653}, + pos: position{line: 1626, col: 1, offset: 39837}, expr: &choiceExpr{ - pos: position{line: 1622, col: 5, offset: 39662}, + pos: position{line: 1627, col: 5, offset: 39846}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1622, col: 5, offset: 39662}, + pos: position{line: 1627, col: 5, offset: 39846}, name: "TypeUnion", }, &ruleRefExpr{ - pos: position{line: 1623, col: 5, offset: 39676}, + pos: position{line: 1628, col: 5, offset: 39860}, name: "ComponentType", }, }, @@ -10693,22 +10746,22 @@ var g = &grammar{ }, { name: "ComponentType", - pos: position{line: 1625, col: 1, offset: 39691}, + pos: position{line: 1630, col: 1, offset: 39875}, expr: &choiceExpr{ - pos: position{line: 1626, col: 5, offset: 39709}, + pos: position{line: 1631, col: 5, offset: 39893}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1626, col: 5, offset: 39709}, + pos: position{line: 1631, col: 5, offset: 39893}, name: "EasyType", }, &actionExpr{ - pos: position{line: 1627, col: 5, offset: 39722}, + pos: position{line: 1632, col: 5, offset: 39906}, run: (*parser).callonComponentType3, expr: &labeledExpr{ - pos: position{line: 1627, col: 5, offset: 39722}, + pos: position{line: 1632, col: 5, offset: 39906}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 1627, col: 10, offset: 39727}, + pos: position{line: 1632, col: 10, offset: 39911}, name: "Name", }, }, @@ -10720,40 +10773,40 @@ var g = &grammar{ }, { name: "EasyType", - pos: position{line: 1631, col: 1, offset: 39831}, + pos: position{line: 1636, col: 1, offset: 40015}, expr: &choiceExpr{ - pos: position{line: 1632, col: 5, offset: 39844}, + pos: position{line: 1637, col: 5, offset: 40028}, alternatives: []any{ &actionExpr{ - pos: position{line: 1632, col: 5, offset: 39844}, + pos: position{line: 1637, col: 5, offset: 40028}, run: (*parser).callonEasyType2, expr: &seqExpr{ - pos: position{line: 1632, col: 5, offset: 39844}, + pos: position{line: 1637, col: 5, offset: 40028}, exprs: []any{ &litMatcher{ - pos: position{line: 1632, col: 5, offset: 39844}, + pos: position{line: 1637, col: 5, offset: 40028}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1632, col: 9, offset: 39848}, + pos: position{line: 1637, col: 9, offset: 40032}, name: "__", }, &labeledExpr{ - pos: position{line: 1632, col: 12, offset: 39851}, + pos: position{line: 1637, col: 12, offset: 40035}, label: "typ", expr: &ruleRefExpr{ - pos: position{line: 1632, col: 16, offset: 39855}, + pos: position{line: 1637, col: 16, offset: 40039}, name: "Type", }, }, &ruleRefExpr{ - pos: position{line: 1632, col: 21, offset: 39860}, + pos: position{line: 1637, col: 21, offset: 40044}, name: "__", }, &litMatcher{ - pos: position{line: 1632, col: 24, offset: 39863}, + pos: position{line: 1637, col: 24, offset: 40047}, val: ")", ignoreCase: false, want: "\")\"", @@ -10762,31 +10815,31 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1633, col: 5, offset: 39890}, + pos: position{line: 1638, col: 5, offset: 40074}, name: "PrecisionType", }, &ruleRefExpr{ - pos: position{line: 1634, col: 5, offset: 39908}, + pos: position{line: 1639, col: 5, offset: 40092}, name: "DecimalType", }, &actionExpr{ - pos: position{line: 1635, col: 5, offset: 39924}, + pos: position{line: 1640, col: 5, offset: 40108}, run: (*parser).callonEasyType12, expr: &seqExpr{ - pos: position{line: 1635, col: 5, offset: 39924}, + pos: position{line: 1640, col: 5, offset: 40108}, exprs: []any{ &labeledExpr{ - pos: position{line: 1635, col: 5, offset: 39924}, + pos: position{line: 1640, col: 5, offset: 40108}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 1635, col: 10, offset: 39929}, + pos: position{line: 1640, col: 10, offset: 40113}, name: "PrimitiveType", }, }, ¬Expr{ - pos: position{line: 1635, col: 24, offset: 39943}, + pos: position{line: 1640, col: 24, offset: 40127}, expr: &ruleRefExpr{ - pos: position{line: 1635, col: 25, offset: 39944}, + pos: position{line: 1640, col: 25, offset: 40128}, name: "IdentifierRest", }, }, @@ -10794,43 +10847,43 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1636, col: 5, offset: 39984}, + pos: position{line: 1641, col: 5, offset: 40168}, run: (*parser).callonEasyType18, expr: &seqExpr{ - pos: position{line: 1636, col: 5, offset: 39984}, + pos: position{line: 1641, col: 5, offset: 40168}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1636, col: 5, offset: 39984}, + pos: position{line: 1641, col: 5, offset: 40168}, name: "ERROR", }, &ruleRefExpr{ - pos: position{line: 1636, col: 11, offset: 39990}, + pos: position{line: 1641, col: 11, offset: 40174}, name: "__", }, &litMatcher{ - pos: position{line: 1636, col: 14, offset: 39993}, + pos: position{line: 1641, col: 14, offset: 40177}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1636, col: 18, offset: 39997}, + pos: position{line: 1641, col: 18, offset: 40181}, name: "__", }, &labeledExpr{ - pos: position{line: 1636, col: 21, offset: 40000}, + pos: position{line: 1641, col: 21, offset: 40184}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 1636, col: 23, offset: 40002}, + pos: position{line: 1641, col: 23, offset: 40186}, name: "Type", }, }, &ruleRefExpr{ - pos: position{line: 1636, col: 28, offset: 40007}, + pos: position{line: 1641, col: 28, offset: 40191}, name: "__", }, &litMatcher{ - pos: position{line: 1636, col: 31, offset: 40010}, + pos: position{line: 1641, col: 31, offset: 40194}, val: ")", ignoreCase: false, want: "\")\"", @@ -10839,43 +10892,43 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1643, col: 5, offset: 40150}, + pos: position{line: 1648, col: 5, offset: 40334}, run: (*parser).callonEasyType28, expr: &seqExpr{ - pos: position{line: 1643, col: 5, offset: 40150}, + pos: position{line: 1648, col: 5, offset: 40334}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1643, col: 5, offset: 40150}, + pos: position{line: 1648, col: 5, offset: 40334}, name: "ENUM", }, &ruleRefExpr{ - pos: position{line: 1643, col: 10, offset: 40155}, + pos: position{line: 1648, col: 10, offset: 40339}, name: "__", }, &litMatcher{ - pos: position{line: 1643, col: 13, offset: 40158}, + pos: position{line: 1648, col: 13, offset: 40342}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1643, col: 17, offset: 40162}, + pos: position{line: 1648, col: 17, offset: 40346}, name: "__", }, &labeledExpr{ - pos: position{line: 1643, col: 20, offset: 40165}, + pos: position{line: 1648, col: 20, offset: 40349}, label: "names", expr: &ruleRefExpr{ - pos: position{line: 1643, col: 26, offset: 40171}, + pos: position{line: 1648, col: 26, offset: 40355}, name: "Names", }, }, &ruleRefExpr{ - pos: position{line: 1643, col: 32, offset: 40177}, + pos: position{line: 1648, col: 32, offset: 40361}, name: "__", }, &litMatcher{ - pos: position{line: 1643, col: 35, offset: 40180}, + pos: position{line: 1648, col: 35, offset: 40364}, val: ")", ignoreCase: false, want: "\")\"", @@ -10884,51 +10937,51 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1650, col: 5, offset: 40334}, + pos: position{line: 1655, col: 5, offset: 40518}, run: (*parser).callonEasyType38, expr: &ruleRefExpr{ - pos: position{line: 1650, col: 5, offset: 40334}, + pos: position{line: 1655, col: 5, offset: 40518}, name: "ANY", }, }, &actionExpr{ - pos: position{line: 1657, col: 5, offset: 40475}, + pos: position{line: 1662, col: 5, offset: 40659}, run: (*parser).callonEasyType40, expr: &seqExpr{ - pos: position{line: 1657, col: 5, offset: 40475}, + pos: position{line: 1662, col: 5, offset: 40659}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1657, col: 5, offset: 40475}, + pos: position{line: 1662, col: 5, offset: 40659}, name: "FUSION", }, &ruleRefExpr{ - pos: position{line: 1657, col: 12, offset: 40482}, + pos: position{line: 1662, col: 12, offset: 40666}, name: "__", }, &litMatcher{ - pos: position{line: 1657, col: 15, offset: 40485}, + pos: position{line: 1662, col: 15, offset: 40669}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1657, col: 19, offset: 40489}, + pos: position{line: 1662, col: 19, offset: 40673}, name: "__", }, &labeledExpr{ - pos: position{line: 1657, col: 22, offset: 40492}, + pos: position{line: 1662, col: 22, offset: 40676}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 1657, col: 24, offset: 40494}, + pos: position{line: 1662, col: 24, offset: 40678}, name: "Type", }, }, &ruleRefExpr{ - pos: position{line: 1657, col: 29, offset: 40499}, + pos: position{line: 1662, col: 29, offset: 40683}, name: "__", }, &litMatcher{ - pos: position{line: 1657, col: 32, offset: 40502}, + pos: position{line: 1662, col: 32, offset: 40686}, val: ")", ignoreCase: false, want: "\")\"", @@ -10937,43 +10990,43 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1664, col: 5, offset: 40644}, + pos: position{line: 1669, col: 5, offset: 40828}, run: (*parser).callonEasyType50, expr: &seqExpr{ - pos: position{line: 1664, col: 5, offset: 40644}, + pos: position{line: 1669, col: 5, offset: 40828}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1664, col: 5, offset: 40644}, + pos: position{line: 1669, col: 5, offset: 40828}, name: "OPTION", }, &ruleRefExpr{ - pos: position{line: 1664, col: 12, offset: 40651}, + pos: position{line: 1669, col: 12, offset: 40835}, name: "__", }, &litMatcher{ - pos: position{line: 1664, col: 15, offset: 40654}, + pos: position{line: 1669, col: 15, offset: 40838}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1664, col: 19, offset: 40658}, + pos: position{line: 1669, col: 19, offset: 40842}, name: "__", }, &labeledExpr{ - pos: position{line: 1664, col: 22, offset: 40661}, + pos: position{line: 1669, col: 22, offset: 40845}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 1664, col: 24, offset: 40663}, + pos: position{line: 1669, col: 24, offset: 40847}, name: "Type", }, }, &ruleRefExpr{ - pos: position{line: 1664, col: 29, offset: 40668}, + pos: position{line: 1669, col: 29, offset: 40852}, name: "__", }, &litMatcher{ - pos: position{line: 1664, col: 32, offset: 40671}, + pos: position{line: 1669, col: 32, offset: 40855}, val: ")", ignoreCase: false, want: "\")\"", @@ -10982,35 +11035,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1671, col: 5, offset: 40813}, + pos: position{line: 1676, col: 5, offset: 40997}, run: (*parser).callonEasyType60, expr: &seqExpr{ - pos: position{line: 1671, col: 5, offset: 40813}, + pos: position{line: 1676, col: 5, offset: 40997}, exprs: []any{ &litMatcher{ - pos: position{line: 1671, col: 5, offset: 40813}, + pos: position{line: 1676, col: 5, offset: 40997}, val: "{", ignoreCase: false, want: "\"{\"", }, &ruleRefExpr{ - pos: position{line: 1671, col: 9, offset: 40817}, + pos: position{line: 1676, col: 9, offset: 41001}, name: "__", }, &labeledExpr{ - pos: position{line: 1671, col: 12, offset: 40820}, + pos: position{line: 1676, col: 12, offset: 41004}, label: "fields", expr: &ruleRefExpr{ - pos: position{line: 1671, col: 19, offset: 40827}, + pos: position{line: 1676, col: 19, offset: 41011}, name: "TypeFieldList", }, }, &ruleRefExpr{ - pos: position{line: 1671, col: 33, offset: 40841}, + pos: position{line: 1676, col: 33, offset: 41025}, name: "__", }, &litMatcher{ - pos: position{line: 1671, col: 36, offset: 40844}, + pos: position{line: 1676, col: 36, offset: 41028}, val: "}", ignoreCase: false, want: "\"}\"", @@ -11019,35 +11072,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1678, col: 5, offset: 41006}, + pos: position{line: 1683, col: 5, offset: 41190}, run: (*parser).callonEasyType68, expr: &seqExpr{ - pos: position{line: 1678, col: 5, offset: 41006}, + pos: position{line: 1683, col: 5, offset: 41190}, exprs: []any{ &litMatcher{ - pos: position{line: 1678, col: 5, offset: 41006}, + pos: position{line: 1683, col: 5, offset: 41190}, val: "[", ignoreCase: false, want: "\"[\"", }, &ruleRefExpr{ - pos: position{line: 1678, col: 9, offset: 41010}, + pos: position{line: 1683, col: 9, offset: 41194}, name: "__", }, &labeledExpr{ - pos: position{line: 1678, col: 12, offset: 41013}, + pos: position{line: 1683, col: 12, offset: 41197}, label: "typ", expr: &ruleRefExpr{ - pos: position{line: 1678, col: 16, offset: 41017}, + pos: position{line: 1683, col: 16, offset: 41201}, name: "Type", }, }, &ruleRefExpr{ - pos: position{line: 1678, col: 21, offset: 41022}, + pos: position{line: 1683, col: 21, offset: 41206}, name: "__", }, &litMatcher{ - pos: position{line: 1678, col: 24, offset: 41025}, + pos: position{line: 1683, col: 24, offset: 41209}, val: "]", ignoreCase: false, want: "\"]\"", @@ -11056,35 +11109,35 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1685, col: 5, offset: 41167}, + pos: position{line: 1690, col: 5, offset: 41351}, run: (*parser).callonEasyType76, expr: &seqExpr{ - pos: position{line: 1685, col: 5, offset: 41167}, + pos: position{line: 1690, col: 5, offset: 41351}, exprs: []any{ &litMatcher{ - pos: position{line: 1685, col: 5, offset: 41167}, + pos: position{line: 1690, col: 5, offset: 41351}, val: "set[", ignoreCase: false, want: "\"set[\"", }, &ruleRefExpr{ - pos: position{line: 1685, col: 12, offset: 41174}, + pos: position{line: 1690, col: 12, offset: 41358}, name: "__", }, &labeledExpr{ - pos: position{line: 1685, col: 15, offset: 41177}, + pos: position{line: 1690, col: 15, offset: 41361}, label: "typ", expr: &ruleRefExpr{ - pos: position{line: 1685, col: 19, offset: 41181}, + pos: position{line: 1690, col: 19, offset: 41365}, name: "Type", }, }, &ruleRefExpr{ - pos: position{line: 1685, col: 24, offset: 41186}, + pos: position{line: 1690, col: 24, offset: 41370}, name: "__", }, &litMatcher{ - pos: position{line: 1685, col: 27, offset: 41189}, + pos: position{line: 1690, col: 27, offset: 41373}, val: "]", ignoreCase: false, want: "\"]\"", @@ -11093,57 +11146,57 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1692, col: 5, offset: 41327}, + pos: position{line: 1697, col: 5, offset: 41511}, run: (*parser).callonEasyType84, expr: &seqExpr{ - pos: position{line: 1692, col: 5, offset: 41327}, + pos: position{line: 1697, col: 5, offset: 41511}, exprs: []any{ &litMatcher{ - pos: position{line: 1692, col: 5, offset: 41327}, + pos: position{line: 1697, col: 5, offset: 41511}, val: "map{", ignoreCase: false, want: "\"map{\"", }, &ruleRefExpr{ - pos: position{line: 1692, col: 12, offset: 41334}, + pos: position{line: 1697, col: 12, offset: 41518}, name: "__", }, &labeledExpr{ - pos: position{line: 1692, col: 15, offset: 41337}, + pos: position{line: 1697, col: 15, offset: 41521}, label: "keyType", expr: &ruleRefExpr{ - pos: position{line: 1692, col: 23, offset: 41345}, + pos: position{line: 1697, col: 23, offset: 41529}, name: "Type", }, }, &ruleRefExpr{ - pos: position{line: 1692, col: 28, offset: 41350}, + pos: position{line: 1697, col: 28, offset: 41534}, name: "__", }, &litMatcher{ - pos: position{line: 1692, col: 31, offset: 41353}, + pos: position{line: 1697, col: 31, offset: 41537}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 1692, col: 35, offset: 41357}, + pos: position{line: 1697, col: 35, offset: 41541}, name: "__", }, &labeledExpr{ - pos: position{line: 1692, col: 38, offset: 41360}, + pos: position{line: 1697, col: 38, offset: 41544}, label: "valType", expr: &ruleRefExpr{ - pos: position{line: 1692, col: 46, offset: 41368}, + pos: position{line: 1697, col: 46, offset: 41552}, name: "Type", }, }, &ruleRefExpr{ - pos: position{line: 1692, col: 51, offset: 41373}, + pos: position{line: 1697, col: 51, offset: 41557}, name: "__", }, &litMatcher{ - pos: position{line: 1692, col: 54, offset: 41376}, + pos: position{line: 1697, col: 54, offset: 41560}, val: "}", ignoreCase: false, want: "\"}\"", @@ -11158,15 +11211,15 @@ var g = &grammar{ }, { name: "TypeUnion", - pos: position{line: 1701, col: 1, offset: 41549}, + pos: position{line: 1706, col: 1, offset: 41733}, expr: &actionExpr{ - pos: position{line: 1702, col: 5, offset: 41563}, + pos: position{line: 1707, col: 5, offset: 41747}, run: (*parser).callonTypeUnion1, expr: &labeledExpr{ - pos: position{line: 1702, col: 5, offset: 41563}, + pos: position{line: 1707, col: 5, offset: 41747}, label: "types", expr: &ruleRefExpr{ - pos: position{line: 1702, col: 11, offset: 41569}, + pos: position{line: 1707, col: 11, offset: 41753}, name: "TypeList", }, }, @@ -11176,28 +11229,28 @@ var g = &grammar{ }, { name: "TypeList", - pos: position{line: 1710, col: 1, offset: 41706}, + pos: position{line: 1715, col: 1, offset: 41890}, expr: &actionExpr{ - pos: position{line: 1711, col: 5, offset: 41719}, + pos: position{line: 1716, col: 5, offset: 41903}, run: (*parser).callonTypeList1, expr: &seqExpr{ - pos: position{line: 1711, col: 5, offset: 41719}, + pos: position{line: 1716, col: 5, offset: 41903}, exprs: []any{ &labeledExpr{ - pos: position{line: 1711, col: 5, offset: 41719}, + pos: position{line: 1716, col: 5, offset: 41903}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1711, col: 11, offset: 41725}, + pos: position{line: 1716, col: 11, offset: 41909}, name: "ComponentType", }, }, &labeledExpr{ - pos: position{line: 1711, col: 25, offset: 41739}, + pos: position{line: 1716, col: 25, offset: 41923}, label: "rest", expr: &oneOrMoreExpr{ - pos: position{line: 1711, col: 30, offset: 41744}, + pos: position{line: 1716, col: 30, offset: 41928}, expr: &ruleRefExpr{ - pos: position{line: 1711, col: 30, offset: 41744}, + pos: position{line: 1716, col: 30, offset: 41928}, name: "TypeListTail", }, }, @@ -11210,32 +11263,32 @@ var g = &grammar{ }, { name: "TypeListTail", - pos: position{line: 1715, col: 1, offset: 41802}, + pos: position{line: 1720, col: 1, offset: 41986}, expr: &actionExpr{ - pos: position{line: 1715, col: 16, offset: 41817}, + pos: position{line: 1720, col: 16, offset: 42001}, run: (*parser).callonTypeListTail1, expr: &seqExpr{ - pos: position{line: 1715, col: 16, offset: 41817}, + pos: position{line: 1720, col: 16, offset: 42001}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1715, col: 16, offset: 41817}, + pos: position{line: 1720, col: 16, offset: 42001}, name: "__", }, &litMatcher{ - pos: position{line: 1715, col: 19, offset: 41820}, + pos: position{line: 1720, col: 19, offset: 42004}, val: "|", ignoreCase: false, want: "\"|\"", }, &ruleRefExpr{ - pos: position{line: 1715, col: 23, offset: 41824}, + pos: position{line: 1720, col: 23, offset: 42008}, name: "__", }, &labeledExpr{ - pos: position{line: 1715, col: 26, offset: 41827}, + pos: position{line: 1720, col: 26, offset: 42011}, label: "typ", expr: &ruleRefExpr{ - pos: position{line: 1715, col: 30, offset: 41831}, + pos: position{line: 1720, col: 30, offset: 42015}, name: "ComponentType", }, }, @@ -11247,42 +11300,42 @@ var g = &grammar{ }, { name: "StringLiteral", - pos: position{line: 1717, col: 1, offset: 41866}, + pos: position{line: 1722, col: 1, offset: 42050}, expr: &choiceExpr{ - pos: position{line: 1718, col: 5, offset: 41884}, + pos: position{line: 1723, col: 5, offset: 42068}, alternatives: []any{ &actionExpr{ - pos: position{line: 1718, col: 5, offset: 41884}, + pos: position{line: 1723, col: 5, offset: 42068}, run: (*parser).callonStringLiteral2, expr: &labeledExpr{ - pos: position{line: 1718, col: 5, offset: 41884}, + pos: position{line: 1723, col: 5, offset: 42068}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 1718, col: 7, offset: 41886}, + pos: position{line: 1723, col: 7, offset: 42070}, name: "DoubleQuotedString", }, }, }, &actionExpr{ - pos: position{line: 1719, col: 5, offset: 42001}, + pos: position{line: 1724, col: 5, offset: 42185}, run: (*parser).callonStringLiteral5, expr: &labeledExpr{ - pos: position{line: 1719, col: 5, offset: 42001}, + pos: position{line: 1724, col: 5, offset: 42185}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 1719, col: 7, offset: 42003}, + pos: position{line: 1724, col: 7, offset: 42187}, name: "SingleQuotedString", }, }, }, &actionExpr{ - pos: position{line: 1720, col: 5, offset: 42080}, + pos: position{line: 1725, col: 5, offset: 42264}, run: (*parser).callonStringLiteral8, expr: &labeledExpr{ - pos: position{line: 1720, col: 5, offset: 42080}, + pos: position{line: 1725, col: 5, offset: 42264}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 1720, col: 7, offset: 42082}, + pos: position{line: 1725, col: 7, offset: 42266}, name: "RString", }, }, @@ -11294,35 +11347,35 @@ var g = &grammar{ }, { name: "FString", - pos: position{line: 1722, col: 1, offset: 42145}, + pos: position{line: 1727, col: 1, offset: 42329}, expr: &choiceExpr{ - pos: position{line: 1723, col: 5, offset: 42157}, + pos: position{line: 1728, col: 5, offset: 42341}, alternatives: []any{ &actionExpr{ - pos: position{line: 1723, col: 5, offset: 42157}, + pos: position{line: 1728, col: 5, offset: 42341}, run: (*parser).callonFString2, expr: &seqExpr{ - pos: position{line: 1723, col: 5, offset: 42157}, + pos: position{line: 1728, col: 5, offset: 42341}, exprs: []any{ &litMatcher{ - pos: position{line: 1723, col: 5, offset: 42157}, + pos: position{line: 1728, col: 5, offset: 42341}, val: "f\"", ignoreCase: false, want: "\"f\\\"\"", }, &labeledExpr{ - pos: position{line: 1723, col: 11, offset: 42163}, + pos: position{line: 1728, col: 11, offset: 42347}, label: "v", expr: &zeroOrMoreExpr{ - pos: position{line: 1723, col: 13, offset: 42165}, + pos: position{line: 1728, col: 13, offset: 42349}, expr: &ruleRefExpr{ - pos: position{line: 1723, col: 13, offset: 42165}, + pos: position{line: 1728, col: 13, offset: 42349}, name: "FStringDoubleQuotedElem", }, }, }, &litMatcher{ - pos: position{line: 1723, col: 38, offset: 42190}, + pos: position{line: 1728, col: 38, offset: 42374}, val: "\"", ignoreCase: false, want: "\"\\\"\"", @@ -11331,30 +11384,30 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1730, col: 5, offset: 42344}, + pos: position{line: 1735, col: 5, offset: 42528}, run: (*parser).callonFString9, expr: &seqExpr{ - pos: position{line: 1730, col: 5, offset: 42344}, + pos: position{line: 1735, col: 5, offset: 42528}, exprs: []any{ &litMatcher{ - pos: position{line: 1730, col: 5, offset: 42344}, + pos: position{line: 1735, col: 5, offset: 42528}, val: "f'", ignoreCase: false, want: "\"f'\"", }, &labeledExpr{ - pos: position{line: 1730, col: 10, offset: 42349}, + pos: position{line: 1735, col: 10, offset: 42533}, label: "v", expr: &zeroOrMoreExpr{ - pos: position{line: 1730, col: 12, offset: 42351}, + pos: position{line: 1735, col: 12, offset: 42535}, expr: &ruleRefExpr{ - pos: position{line: 1730, col: 12, offset: 42351}, + pos: position{line: 1735, col: 12, offset: 42535}, name: "FStringSingleQuotedElem", }, }, }, &litMatcher{ - pos: position{line: 1730, col: 37, offset: 42376}, + pos: position{line: 1735, col: 37, offset: 42560}, val: "'", ignoreCase: false, want: "\"'\"", @@ -11369,24 +11422,24 @@ var g = &grammar{ }, { name: "FStringDoubleQuotedElem", - pos: position{line: 1738, col: 1, offset: 42527}, + pos: position{line: 1743, col: 1, offset: 42711}, expr: &choiceExpr{ - pos: position{line: 1739, col: 5, offset: 42555}, + pos: position{line: 1744, col: 5, offset: 42739}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1739, col: 5, offset: 42555}, + pos: position{line: 1744, col: 5, offset: 42739}, name: "FStringExprElem", }, &actionExpr{ - pos: position{line: 1740, col: 5, offset: 42575}, + pos: position{line: 1745, col: 5, offset: 42759}, run: (*parser).callonFStringDoubleQuotedElem3, expr: &labeledExpr{ - pos: position{line: 1740, col: 5, offset: 42575}, + pos: position{line: 1745, col: 5, offset: 42759}, label: "v", expr: &oneOrMoreExpr{ - pos: position{line: 1740, col: 7, offset: 42577}, + pos: position{line: 1745, col: 7, offset: 42761}, expr: &ruleRefExpr{ - pos: position{line: 1740, col: 7, offset: 42577}, + pos: position{line: 1745, col: 7, offset: 42761}, name: "FStringDoubleQuotedChar", }, }, @@ -11399,27 +11452,27 @@ var g = &grammar{ }, { name: "FStringDoubleQuotedChar", - pos: position{line: 1744, col: 1, offset: 42708}, + pos: position{line: 1749, col: 1, offset: 42892}, expr: &choiceExpr{ - pos: position{line: 1745, col: 5, offset: 42736}, + pos: position{line: 1750, col: 5, offset: 42920}, alternatives: []any{ &actionExpr{ - pos: position{line: 1745, col: 5, offset: 42736}, + pos: position{line: 1750, col: 5, offset: 42920}, run: (*parser).callonFStringDoubleQuotedChar2, expr: &seqExpr{ - pos: position{line: 1745, col: 5, offset: 42736}, + pos: position{line: 1750, col: 5, offset: 42920}, exprs: []any{ &litMatcher{ - pos: position{line: 1745, col: 5, offset: 42736}, + pos: position{line: 1750, col: 5, offset: 42920}, val: "\\", ignoreCase: false, want: "\"\\\\\"", }, &labeledExpr{ - pos: position{line: 1745, col: 10, offset: 42741}, + pos: position{line: 1750, col: 10, offset: 42925}, label: "v", expr: &litMatcher{ - pos: position{line: 1745, col: 12, offset: 42743}, + pos: position{line: 1750, col: 12, offset: 42927}, val: "{", ignoreCase: false, want: "\"{\"", @@ -11429,25 +11482,25 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1746, col: 5, offset: 42769}, + pos: position{line: 1751, col: 5, offset: 42953}, run: (*parser).callonFStringDoubleQuotedChar7, expr: &seqExpr{ - pos: position{line: 1746, col: 5, offset: 42769}, + pos: position{line: 1751, col: 5, offset: 42953}, exprs: []any{ ¬Expr{ - pos: position{line: 1746, col: 5, offset: 42769}, + pos: position{line: 1751, col: 5, offset: 42953}, expr: &litMatcher{ - pos: position{line: 1746, col: 7, offset: 42771}, + pos: position{line: 1751, col: 7, offset: 42955}, val: "{", ignoreCase: false, want: "\"{\"", }, }, &labeledExpr{ - pos: position{line: 1746, col: 12, offset: 42776}, + pos: position{line: 1751, col: 12, offset: 42960}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 1746, col: 14, offset: 42778}, + pos: position{line: 1751, col: 14, offset: 42962}, name: "DoubleQuotedChar", }, }, @@ -11461,24 +11514,24 @@ var g = &grammar{ }, { name: "FStringSingleQuotedElem", - pos: position{line: 1748, col: 1, offset: 42814}, + pos: position{line: 1753, col: 1, offset: 42998}, expr: &choiceExpr{ - pos: position{line: 1749, col: 5, offset: 42842}, + pos: position{line: 1754, col: 5, offset: 43026}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1749, col: 5, offset: 42842}, + pos: position{line: 1754, col: 5, offset: 43026}, name: "FStringExprElem", }, &actionExpr{ - pos: position{line: 1750, col: 5, offset: 42862}, + pos: position{line: 1755, col: 5, offset: 43046}, run: (*parser).callonFStringSingleQuotedElem3, expr: &labeledExpr{ - pos: position{line: 1750, col: 5, offset: 42862}, + pos: position{line: 1755, col: 5, offset: 43046}, label: "v", expr: &oneOrMoreExpr{ - pos: position{line: 1750, col: 7, offset: 42864}, + pos: position{line: 1755, col: 7, offset: 43048}, expr: &ruleRefExpr{ - pos: position{line: 1750, col: 7, offset: 42864}, + pos: position{line: 1755, col: 7, offset: 43048}, name: "FStringSingleQuotedChar", }, }, @@ -11491,27 +11544,27 @@ var g = &grammar{ }, { name: "FStringSingleQuotedChar", - pos: position{line: 1754, col: 1, offset: 42995}, + pos: position{line: 1759, col: 1, offset: 43179}, expr: &choiceExpr{ - pos: position{line: 1755, col: 5, offset: 43023}, + pos: position{line: 1760, col: 5, offset: 43207}, alternatives: []any{ &actionExpr{ - pos: position{line: 1755, col: 5, offset: 43023}, + pos: position{line: 1760, col: 5, offset: 43207}, run: (*parser).callonFStringSingleQuotedChar2, expr: &seqExpr{ - pos: position{line: 1755, col: 5, offset: 43023}, + pos: position{line: 1760, col: 5, offset: 43207}, exprs: []any{ &litMatcher{ - pos: position{line: 1755, col: 5, offset: 43023}, + pos: position{line: 1760, col: 5, offset: 43207}, val: "\\", ignoreCase: false, want: "\"\\\\\"", }, &labeledExpr{ - pos: position{line: 1755, col: 10, offset: 43028}, + pos: position{line: 1760, col: 10, offset: 43212}, label: "v", expr: &litMatcher{ - pos: position{line: 1755, col: 12, offset: 43030}, + pos: position{line: 1760, col: 12, offset: 43214}, val: "{", ignoreCase: false, want: "\"{\"", @@ -11521,25 +11574,25 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1756, col: 5, offset: 43056}, + pos: position{line: 1761, col: 5, offset: 43240}, run: (*parser).callonFStringSingleQuotedChar7, expr: &seqExpr{ - pos: position{line: 1756, col: 5, offset: 43056}, + pos: position{line: 1761, col: 5, offset: 43240}, exprs: []any{ ¬Expr{ - pos: position{line: 1756, col: 5, offset: 43056}, + pos: position{line: 1761, col: 5, offset: 43240}, expr: &litMatcher{ - pos: position{line: 1756, col: 7, offset: 43058}, + pos: position{line: 1761, col: 7, offset: 43242}, val: "{", ignoreCase: false, want: "\"{\"", }, }, &labeledExpr{ - pos: position{line: 1756, col: 12, offset: 43063}, + pos: position{line: 1761, col: 12, offset: 43247}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 1756, col: 14, offset: 43065}, + pos: position{line: 1761, col: 14, offset: 43249}, name: "SingleQuotedChar", }, }, @@ -11553,37 +11606,37 @@ var g = &grammar{ }, { name: "FStringExprElem", - pos: position{line: 1758, col: 1, offset: 43101}, + pos: position{line: 1763, col: 1, offset: 43285}, expr: &actionExpr{ - pos: position{line: 1759, col: 5, offset: 43121}, + pos: position{line: 1764, col: 5, offset: 43305}, run: (*parser).callonFStringExprElem1, expr: &seqExpr{ - pos: position{line: 1759, col: 5, offset: 43121}, + pos: position{line: 1764, col: 5, offset: 43305}, exprs: []any{ &litMatcher{ - pos: position{line: 1759, col: 5, offset: 43121}, + pos: position{line: 1764, col: 5, offset: 43305}, val: "{", ignoreCase: false, want: "\"{\"", }, &ruleRefExpr{ - pos: position{line: 1759, col: 9, offset: 43125}, + pos: position{line: 1764, col: 9, offset: 43309}, name: "__", }, &labeledExpr{ - pos: position{line: 1759, col: 12, offset: 43128}, + pos: position{line: 1764, col: 12, offset: 43312}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1759, col: 14, offset: 43130}, + pos: position{line: 1764, col: 14, offset: 43314}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 1759, col: 19, offset: 43135}, + pos: position{line: 1764, col: 19, offset: 43319}, name: "__", }, &litMatcher{ - pos: position{line: 1759, col: 22, offset: 43138}, + pos: position{line: 1764, col: 22, offset: 43322}, val: "}", ignoreCase: false, want: "\"}\"", @@ -11596,33 +11649,33 @@ var g = &grammar{ }, { name: "PrecisionType", - pos: position{line: 1769, col: 1, offset: 43430}, + pos: position{line: 1774, col: 1, offset: 43614}, expr: &actionExpr{ - pos: position{line: 1770, col: 5, offset: 43448}, + pos: position{line: 1775, col: 5, offset: 43632}, run: (*parser).callonPrecisionType1, expr: &seqExpr{ - pos: position{line: 1770, col: 5, offset: 43448}, + pos: position{line: 1775, col: 5, offset: 43632}, exprs: []any{ &labeledExpr{ - pos: position{line: 1770, col: 5, offset: 43448}, + pos: position{line: 1775, col: 5, offset: 43632}, label: "name", expr: &choiceExpr{ - pos: position{line: 1770, col: 11, offset: 43454}, + pos: position{line: 1775, col: 11, offset: 43638}, alternatives: []any{ &litMatcher{ - pos: position{line: 1770, col: 11, offset: 43454}, + pos: position{line: 1775, col: 11, offset: 43638}, val: "timestamp_ntz", ignoreCase: false, want: "\"timestamp_ntz\"", }, &litMatcher{ - pos: position{line: 1770, col: 29, offset: 43472}, + pos: position{line: 1775, col: 29, offset: 43656}, val: "timestamp", ignoreCase: false, want: "\"timestamp\"", }, &litMatcher{ - pos: position{line: 1770, col: 43, offset: 43486}, + pos: position{line: 1775, col: 43, offset: 43670}, val: "time", ignoreCase: false, want: "\"time\"", @@ -11631,29 +11684,29 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1770, col: 51, offset: 43494}, + pos: position{line: 1775, col: 51, offset: 43678}, name: "__", }, &litMatcher{ - pos: position{line: 1770, col: 54, offset: 43497}, + pos: position{line: 1775, col: 54, offset: 43681}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1770, col: 58, offset: 43501}, + pos: position{line: 1775, col: 58, offset: 43685}, name: "__", }, &labeledExpr{ - pos: position{line: 1770, col: 61, offset: 43504}, + pos: position{line: 1775, col: 61, offset: 43688}, label: "p", expr: &actionExpr{ - pos: position{line: 1770, col: 64, offset: 43507}, + pos: position{line: 1775, col: 64, offset: 43691}, run: (*parser).callonPrecisionType12, expr: &oneOrMoreExpr{ - pos: position{line: 1770, col: 64, offset: 43507}, + pos: position{line: 1775, col: 64, offset: 43691}, expr: &charClassMatcher{ - pos: position{line: 1770, col: 64, offset: 43507}, + pos: position{line: 1775, col: 64, offset: 43691}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -11663,11 +11716,11 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1770, col: 103, offset: 43546}, + pos: position{line: 1775, col: 103, offset: 43730}, name: "__", }, &litMatcher{ - pos: position{line: 1770, col: 106, offset: 43549}, + pos: position{line: 1775, col: 106, offset: 43733}, val: ")", ignoreCase: false, want: "\")\"", @@ -11680,24 +11733,24 @@ var g = &grammar{ }, { name: "DecimalType", - pos: position{line: 1782, col: 1, offset: 43783}, + pos: position{line: 1787, col: 1, offset: 43967}, expr: &actionExpr{ - pos: position{line: 1783, col: 5, offset: 43799}, + pos: position{line: 1788, col: 5, offset: 43983}, run: (*parser).callonDecimalType1, expr: &seqExpr{ - pos: position{line: 1783, col: 5, offset: 43799}, + pos: position{line: 1788, col: 5, offset: 43983}, exprs: []any{ &choiceExpr{ - pos: position{line: 1783, col: 6, offset: 43800}, + pos: position{line: 1788, col: 6, offset: 43984}, alternatives: []any{ &litMatcher{ - pos: position{line: 1783, col: 6, offset: 43800}, + pos: position{line: 1788, col: 6, offset: 43984}, val: "decimal", ignoreCase: true, want: "\"decimal\"i", }, &litMatcher{ - pos: position{line: 1783, col: 19, offset: 43813}, + pos: position{line: 1788, col: 19, offset: 43997}, val: "numeric", ignoreCase: true, want: "\"numeric\"i", @@ -11705,57 +11758,57 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1783, col: 31, offset: 43825}, + pos: position{line: 1788, col: 31, offset: 44009}, name: "__", }, &litMatcher{ - pos: position{line: 1783, col: 34, offset: 43828}, + pos: position{line: 1788, col: 34, offset: 44012}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 1783, col: 38, offset: 43832}, + pos: position{line: 1788, col: 38, offset: 44016}, name: "__", }, &labeledExpr{ - pos: position{line: 1783, col: 41, offset: 43835}, + pos: position{line: 1788, col: 41, offset: 44019}, label: "p", expr: &ruleRefExpr{ - pos: position{line: 1783, col: 43, offset: 43837}, + pos: position{line: 1788, col: 43, offset: 44021}, name: "Digits", }, }, &ruleRefExpr{ - pos: position{line: 1783, col: 50, offset: 43844}, + pos: position{line: 1788, col: 50, offset: 44028}, name: "__", }, &labeledExpr{ - pos: position{line: 1783, col: 53, offset: 43847}, + pos: position{line: 1788, col: 53, offset: 44031}, label: "s", expr: &zeroOrOneExpr{ - pos: position{line: 1783, col: 55, offset: 43849}, + pos: position{line: 1788, col: 55, offset: 44033}, expr: &actionExpr{ - pos: position{line: 1783, col: 56, offset: 43850}, + pos: position{line: 1788, col: 56, offset: 44034}, run: (*parser).callonDecimalType14, expr: &seqExpr{ - pos: position{line: 1783, col: 56, offset: 43850}, + pos: position{line: 1788, col: 56, offset: 44034}, exprs: []any{ &litMatcher{ - pos: position{line: 1783, col: 56, offset: 43850}, + pos: position{line: 1788, col: 56, offset: 44034}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 1783, col: 60, offset: 43854}, + pos: position{line: 1788, col: 60, offset: 44038}, name: "__", }, &labeledExpr{ - pos: position{line: 1783, col: 63, offset: 43857}, + pos: position{line: 1788, col: 63, offset: 44041}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 1783, col: 65, offset: 43859}, + pos: position{line: 1788, col: 65, offset: 44043}, name: "Digits", }, }, @@ -11765,11 +11818,11 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1783, col: 92, offset: 43886}, + pos: position{line: 1788, col: 92, offset: 44070}, name: "__", }, &litMatcher{ - pos: position{line: 1783, col: 95, offset: 43889}, + pos: position{line: 1788, col: 95, offset: 44073}, val: ")", ignoreCase: false, want: "\")\"", @@ -11782,14 +11835,14 @@ var g = &grammar{ }, { name: "Digits", - pos: position{line: 1795, col: 1, offset: 44091}, + pos: position{line: 1800, col: 1, offset: 44275}, expr: &actionExpr{ - pos: position{line: 1795, col: 10, offset: 44100}, + pos: position{line: 1800, col: 10, offset: 44284}, run: (*parser).callonDigits1, expr: &oneOrMoreExpr{ - pos: position{line: 1795, col: 10, offset: 44100}, + pos: position{line: 1800, col: 10, offset: 44284}, expr: &charClassMatcher{ - pos: position{line: 1795, col: 10, offset: 44100}, + pos: position{line: 1800, col: 10, offset: 44284}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -11802,216 +11855,216 @@ var g = &grammar{ }, { name: "PrimitiveType", - pos: position{line: 1797, col: 1, offset: 44148}, + pos: position{line: 1802, col: 1, offset: 44332}, expr: &choiceExpr{ - pos: position{line: 1798, col: 5, offset: 44166}, + pos: position{line: 1803, col: 5, offset: 44350}, alternatives: []any{ &actionExpr{ - pos: position{line: 1798, col: 5, offset: 44166}, + pos: position{line: 1803, col: 5, offset: 44350}, run: (*parser).callonPrimitiveType2, expr: &labeledExpr{ - pos: position{line: 1798, col: 5, offset: 44166}, + pos: position{line: 1803, col: 5, offset: 44350}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 1798, col: 10, offset: 44171}, + pos: position{line: 1803, col: 10, offset: 44355}, name: "PostgreSQLPrimitiveType", }, }, }, &actionExpr{ - pos: position{line: 1805, col: 5, offset: 44346}, + pos: position{line: 1810, col: 5, offset: 44530}, run: (*parser).callonPrimitiveType5, expr: &choiceExpr{ - pos: position{line: 1805, col: 9, offset: 44350}, + pos: position{line: 1810, col: 9, offset: 44534}, alternatives: []any{ &litMatcher{ - pos: position{line: 1805, col: 9, offset: 44350}, + pos: position{line: 1810, col: 9, offset: 44534}, val: "uint8", ignoreCase: false, want: "\"uint8\"", }, &litMatcher{ - pos: position{line: 1805, col: 19, offset: 44360}, + pos: position{line: 1810, col: 19, offset: 44544}, val: "uint16", ignoreCase: false, want: "\"uint16\"", }, &litMatcher{ - pos: position{line: 1805, col: 30, offset: 44371}, + pos: position{line: 1810, col: 30, offset: 44555}, val: "uint32", ignoreCase: false, want: "\"uint32\"", }, &litMatcher{ - pos: position{line: 1805, col: 41, offset: 44382}, + pos: position{line: 1810, col: 41, offset: 44566}, val: "uint64", ignoreCase: false, want: "\"uint64\"", }, &litMatcher{ - pos: position{line: 1806, col: 9, offset: 44399}, + pos: position{line: 1811, col: 9, offset: 44583}, val: "int8", ignoreCase: false, want: "\"int8\"", }, &litMatcher{ - pos: position{line: 1806, col: 18, offset: 44408}, + pos: position{line: 1811, col: 18, offset: 44592}, val: "int16", ignoreCase: false, want: "\"int16\"", }, &litMatcher{ - pos: position{line: 1806, col: 28, offset: 44418}, + pos: position{line: 1811, col: 28, offset: 44602}, val: "int32", ignoreCase: false, want: "\"int32\"", }, &litMatcher{ - pos: position{line: 1806, col: 38, offset: 44428}, + pos: position{line: 1811, col: 38, offset: 44612}, val: "int64", ignoreCase: false, want: "\"int64\"", }, &litMatcher{ - pos: position{line: 1807, col: 9, offset: 44444}, + pos: position{line: 1812, col: 9, offset: 44628}, val: "float16", ignoreCase: false, want: "\"float16\"", }, &litMatcher{ - pos: position{line: 1807, col: 21, offset: 44456}, + pos: position{line: 1812, col: 21, offset: 44640}, val: "float32", ignoreCase: false, want: "\"float32\"", }, &litMatcher{ - pos: position{line: 1807, col: 33, offset: 44468}, + pos: position{line: 1812, col: 33, offset: 44652}, val: "float64", ignoreCase: false, want: "\"float64\"", }, &litMatcher{ - pos: position{line: 1808, col: 9, offset: 44486}, + pos: position{line: 1813, col: 9, offset: 44670}, val: "bool", ignoreCase: false, want: "\"bool\"", }, &litMatcher{ - pos: position{line: 1808, col: 18, offset: 44495}, + pos: position{line: 1813, col: 18, offset: 44679}, val: "string", ignoreCase: false, want: "\"string\"", }, &litMatcher{ - pos: position{line: 1809, col: 9, offset: 44512}, + pos: position{line: 1814, col: 9, offset: 44696}, val: "uint128", ignoreCase: false, want: "\"uint128\"", }, &litMatcher{ - pos: position{line: 1809, col: 21, offset: 44524}, + pos: position{line: 1814, col: 21, offset: 44708}, val: "int128", ignoreCase: false, want: "\"int128\"", }, &litMatcher{ - pos: position{line: 1810, col: 9, offset: 44541}, + pos: position{line: 1815, col: 9, offset: 44725}, val: "duration", ignoreCase: false, want: "\"duration\"", }, &litMatcher{ - pos: position{line: 1811, col: 9, offset: 44560}, + pos: position{line: 1816, col: 9, offset: 44744}, val: "timestamp_ntz", ignoreCase: false, want: "\"timestamp_ntz\"", }, &litMatcher{ - pos: position{line: 1811, col: 27, offset: 44578}, + pos: position{line: 1816, col: 27, offset: 44762}, val: "timestamp", ignoreCase: false, want: "\"timestamp\"", }, &litMatcher{ - pos: position{line: 1811, col: 41, offset: 44592}, + pos: position{line: 1816, col: 41, offset: 44776}, val: "time", ignoreCase: false, want: "\"time\"", }, &litMatcher{ - pos: position{line: 1811, col: 50, offset: 44601}, + pos: position{line: 1816, col: 50, offset: 44785}, val: "date", ignoreCase: false, want: "\"date\"", }, &litMatcher{ - pos: position{line: 1811, col: 59, offset: 44610}, + pos: position{line: 1816, col: 59, offset: 44794}, val: "interval", ignoreCase: false, want: "\"interval\"", }, &litMatcher{ - pos: position{line: 1812, col: 9, offset: 44629}, + pos: position{line: 1817, col: 9, offset: 44813}, val: "uuid", ignoreCase: false, want: "\"uuid\"", }, &litMatcher{ - pos: position{line: 1812, col: 18, offset: 44638}, + pos: position{line: 1817, col: 18, offset: 44822}, val: "geometry", ignoreCase: false, want: "\"geometry\"", }, &litMatcher{ - pos: position{line: 1812, col: 31, offset: 44651}, + pos: position{line: 1817, col: 31, offset: 44835}, val: "geography", ignoreCase: false, want: "\"geography\"", }, &litMatcher{ - pos: position{line: 1813, col: 9, offset: 44671}, + pos: position{line: 1818, col: 9, offset: 44855}, val: "bytes", ignoreCase: false, want: "\"bytes\"", }, &litMatcher{ - pos: position{line: 1814, col: 9, offset: 44687}, + pos: position{line: 1819, col: 9, offset: 44871}, val: "ip", ignoreCase: false, want: "\"ip\"", }, &litMatcher{ - pos: position{line: 1814, col: 16, offset: 44694}, + pos: position{line: 1819, col: 16, offset: 44878}, val: "net", ignoreCase: false, want: "\"net\"", }, &litMatcher{ - pos: position{line: 1815, col: 9, offset: 44708}, + pos: position{line: 1820, col: 9, offset: 44892}, val: "type", ignoreCase: false, want: "\"type\"", }, &litMatcher{ - pos: position{line: 1815, col: 18, offset: 44717}, + pos: position{line: 1820, col: 18, offset: 44901}, val: "null", ignoreCase: false, want: "\"null\"", }, &litMatcher{ - pos: position{line: 1815, col: 27, offset: 44726}, + pos: position{line: 1820, col: 27, offset: 44910}, val: "missing", ignoreCase: false, want: "\"missing\"", }, &litMatcher{ - pos: position{line: 1815, col: 39, offset: 44738}, + pos: position{line: 1820, col: 39, offset: 44922}, val: "none", ignoreCase: false, want: "\"none\"", }, &litMatcher{ - pos: position{line: 1815, col: 48, offset: 44747}, + pos: position{line: 1820, col: 48, offset: 44931}, val: "all", ignoreCase: false, want: "\"all\"", @@ -12026,56 +12079,56 @@ var g = &grammar{ }, { name: "PostgreSQLPrimitiveType", - pos: position{line: 1824, col: 1, offset: 45004}, + pos: position{line: 1829, col: 1, offset: 45188}, expr: &choiceExpr{ - pos: position{line: 1825, col: 5, offset: 45032}, + pos: position{line: 1830, col: 5, offset: 45216}, alternatives: []any{ &actionExpr{ - pos: position{line: 1825, col: 5, offset: 45032}, + pos: position{line: 1830, col: 5, offset: 45216}, run: (*parser).callonPostgreSQLPrimitiveType2, expr: &litMatcher{ - pos: position{line: 1825, col: 5, offset: 45032}, + pos: position{line: 1830, col: 5, offset: 45216}, val: "timestamp with time zone", ignoreCase: true, want: "\"timestamp with time zone\"i", }, }, &actionExpr{ - pos: position{line: 1826, col: 5, offset: 45095}, + pos: position{line: 1831, col: 5, offset: 45279}, run: (*parser).callonPostgreSQLPrimitiveType4, expr: &litMatcher{ - pos: position{line: 1826, col: 5, offset: 45095}, + pos: position{line: 1831, col: 5, offset: 45279}, val: "timestamp without time zone", ignoreCase: true, want: "\"timestamp without time zone\"i", }, }, &actionExpr{ - pos: position{line: 1827, col: 5, offset: 45162}, + pos: position{line: 1832, col: 5, offset: 45346}, run: (*parser).callonPostgreSQLPrimitiveType6, expr: &litMatcher{ - pos: position{line: 1827, col: 5, offset: 45162}, + pos: position{line: 1832, col: 5, offset: 45346}, val: "timestamptz", ignoreCase: true, want: "\"timestamptz\"i", }, }, &actionExpr{ - pos: position{line: 1828, col: 5, offset: 45225}, + pos: position{line: 1833, col: 5, offset: 45409}, run: (*parser).callonPostgreSQLPrimitiveType8, expr: &seqExpr{ - pos: position{line: 1828, col: 5, offset: 45225}, + pos: position{line: 1833, col: 5, offset: 45409}, exprs: []any{ &litMatcher{ - pos: position{line: 1828, col: 5, offset: 45225}, + pos: position{line: 1833, col: 5, offset: 45409}, val: "timestamp", ignoreCase: true, want: "\"timestamp\"i", }, ¬Expr{ - pos: position{line: 1828, col: 18, offset: 45238}, + pos: position{line: 1833, col: 18, offset: 45422}, expr: &ruleRefExpr{ - pos: position{line: 1828, col: 19, offset: 45239}, + pos: position{line: 1833, col: 19, offset: 45423}, name: "IdentifierRest", }, }, @@ -12083,51 +12136,51 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1829, col: 5, offset: 45288}, + pos: position{line: 1834, col: 5, offset: 45472}, run: (*parser).callonPostgreSQLPrimitiveType13, expr: &litMatcher{ - pos: position{line: 1829, col: 5, offset: 45288}, + pos: position{line: 1834, col: 5, offset: 45472}, val: "bigint", ignoreCase: true, want: "\"bigint\"i", }, }, &actionExpr{ - pos: position{line: 1830, col: 5, offset: 45337}, + pos: position{line: 1835, col: 5, offset: 45521}, run: (*parser).callonPostgreSQLPrimitiveType15, expr: &litMatcher{ - pos: position{line: 1830, col: 5, offset: 45337}, + pos: position{line: 1835, col: 5, offset: 45521}, val: "boolean", ignoreCase: true, want: "\"boolean\"i", }, }, &actionExpr{ - pos: position{line: 1831, col: 5, offset: 45385}, + pos: position{line: 1836, col: 5, offset: 45569}, run: (*parser).callonPostgreSQLPrimitiveType17, expr: &litMatcher{ - pos: position{line: 1831, col: 5, offset: 45385}, + pos: position{line: 1836, col: 5, offset: 45569}, val: "bytea", ignoreCase: true, want: "\"bytea\"i", }, }, &actionExpr{ - pos: position{line: 1832, col: 5, offset: 45434}, + pos: position{line: 1837, col: 5, offset: 45618}, run: (*parser).callonPostgreSQLPrimitiveType19, expr: &seqExpr{ - pos: position{line: 1832, col: 5, offset: 45434}, + pos: position{line: 1837, col: 5, offset: 45618}, exprs: []any{ &litMatcher{ - pos: position{line: 1832, col: 5, offset: 45434}, + pos: position{line: 1837, col: 5, offset: 45618}, val: "char", ignoreCase: true, want: "\"char\"i", }, ¬Expr{ - pos: position{line: 1832, col: 13, offset: 45442}, + pos: position{line: 1837, col: 13, offset: 45626}, expr: &litMatcher{ - pos: position{line: 1832, col: 14, offset: 45443}, + pos: position{line: 1837, col: 14, offset: 45627}, val: "a", ignoreCase: true, want: "\"a\"i", @@ -12137,61 +12190,61 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1833, col: 5, offset: 45484}, + pos: position{line: 1838, col: 5, offset: 45668}, run: (*parser).callonPostgreSQLPrimitiveType24, expr: &litMatcher{ - pos: position{line: 1833, col: 5, offset: 45484}, + pos: position{line: 1838, col: 5, offset: 45668}, val: "character varying", ignoreCase: true, want: "\"character varying\"i", }, }, &actionExpr{ - pos: position{line: 1834, col: 5, offset: 45534}, + pos: position{line: 1839, col: 5, offset: 45718}, run: (*parser).callonPostgreSQLPrimitiveType26, expr: &litMatcher{ - pos: position{line: 1834, col: 5, offset: 45534}, + pos: position{line: 1839, col: 5, offset: 45718}, val: "character", ignoreCase: true, want: "\"character\"i", }, }, &actionExpr{ - pos: position{line: 1835, col: 5, offset: 45584}, + pos: position{line: 1840, col: 5, offset: 45768}, run: (*parser).callonPostgreSQLPrimitiveType28, expr: &litMatcher{ - pos: position{line: 1835, col: 5, offset: 45584}, + pos: position{line: 1840, col: 5, offset: 45768}, val: "cidr", ignoreCase: true, want: "\"cidr\"i", }, }, &actionExpr{ - pos: position{line: 1836, col: 5, offset: 45631}, + pos: position{line: 1841, col: 5, offset: 45815}, run: (*parser).callonPostgreSQLPrimitiveType30, expr: &litMatcher{ - pos: position{line: 1836, col: 5, offset: 45631}, + pos: position{line: 1841, col: 5, offset: 45815}, val: "double precision", ignoreCase: true, want: "\"double precision\"i", }, }, &actionExpr{ - pos: position{line: 1837, col: 5, offset: 45682}, + pos: position{line: 1842, col: 5, offset: 45866}, run: (*parser).callonPostgreSQLPrimitiveType32, expr: &seqExpr{ - pos: position{line: 1837, col: 5, offset: 45682}, + pos: position{line: 1842, col: 5, offset: 45866}, exprs: []any{ &litMatcher{ - pos: position{line: 1837, col: 5, offset: 45682}, + pos: position{line: 1842, col: 5, offset: 45866}, val: "float", ignoreCase: true, want: "\"float\"i", }, ¬Expr{ - pos: position{line: 1837, col: 14, offset: 45691}, + pos: position{line: 1842, col: 14, offset: 45875}, expr: &charClassMatcher{ - pos: position{line: 1837, col: 15, offset: 45692}, + pos: position{line: 1842, col: 15, offset: 45876}, val: "[136]", chars: []rune{'1', '3', '6'}, ignoreCase: false, @@ -12202,31 +12255,31 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1838, col: 5, offset: 45733}, + pos: position{line: 1843, col: 5, offset: 45917}, run: (*parser).callonPostgreSQLPrimitiveType37, expr: &litMatcher{ - pos: position{line: 1838, col: 5, offset: 45733}, + pos: position{line: 1843, col: 5, offset: 45917}, val: "inet", ignoreCase: true, want: "\"inet\"i", }, }, &actionExpr{ - pos: position{line: 1839, col: 5, offset: 45779}, + pos: position{line: 1844, col: 5, offset: 45963}, run: (*parser).callonPostgreSQLPrimitiveType39, expr: &seqExpr{ - pos: position{line: 1839, col: 5, offset: 45779}, + pos: position{line: 1844, col: 5, offset: 45963}, exprs: []any{ &litMatcher{ - pos: position{line: 1839, col: 5, offset: 45779}, + pos: position{line: 1844, col: 5, offset: 45963}, val: "int", ignoreCase: true, want: "\"int\"i", }, ¬Expr{ - pos: position{line: 1839, col: 12, offset: 45786}, + pos: position{line: 1844, col: 12, offset: 45970}, expr: &charClassMatcher{ - pos: position{line: 1839, col: 13, offset: 45787}, + pos: position{line: 1844, col: 13, offset: 45971}, val: "[1368e]i", chars: []rune{'1', '3', '6', '8', 'e'}, ignoreCase: true, @@ -12237,50 +12290,50 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1840, col: 5, offset: 45828}, + pos: position{line: 1845, col: 5, offset: 46012}, run: (*parser).callonPostgreSQLPrimitiveType44, expr: &litMatcher{ - pos: position{line: 1840, col: 5, offset: 45828}, + pos: position{line: 1845, col: 5, offset: 46012}, val: "integer", ignoreCase: true, want: "\"integer\"i", }, }, &actionExpr{ - pos: position{line: 1841, col: 5, offset: 45877}, + pos: position{line: 1846, col: 5, offset: 46061}, run: (*parser).callonPostgreSQLPrimitiveType46, expr: &litMatcher{ - pos: position{line: 1841, col: 5, offset: 45877}, + pos: position{line: 1846, col: 5, offset: 46061}, val: "real", ignoreCase: true, want: "\"real\"i", }, }, &actionExpr{ - pos: position{line: 1842, col: 5, offset: 45928}, + pos: position{line: 1847, col: 5, offset: 46112}, run: (*parser).callonPostgreSQLPrimitiveType48, expr: &litMatcher{ - pos: position{line: 1842, col: 5, offset: 45928}, + pos: position{line: 1847, col: 5, offset: 46112}, val: "smallint", ignoreCase: true, want: "\"smallint\"i", }, }, &actionExpr{ - pos: position{line: 1843, col: 5, offset: 45977}, + pos: position{line: 1848, col: 5, offset: 46161}, run: (*parser).callonPostgreSQLPrimitiveType50, expr: &litMatcher{ - pos: position{line: 1843, col: 5, offset: 45977}, + pos: position{line: 1848, col: 5, offset: 46161}, val: "text", ignoreCase: true, want: "\"text\"i", }, }, &actionExpr{ - pos: position{line: 1844, col: 5, offset: 46027}, + pos: position{line: 1849, col: 5, offset: 46211}, run: (*parser).callonPostgreSQLPrimitiveType52, expr: &litMatcher{ - pos: position{line: 1844, col: 5, offset: 46027}, + pos: position{line: 1849, col: 5, offset: 46211}, val: "varchar", ignoreCase: true, want: "\"varchar\"i", @@ -12293,31 +12346,31 @@ var g = &grammar{ }, { name: "TypeFieldList", - pos: position{line: 1846, col: 1, offset: 46074}, + pos: position{line: 1851, col: 1, offset: 46258}, expr: &choiceExpr{ - pos: position{line: 1847, col: 5, offset: 46092}, + pos: position{line: 1852, col: 5, offset: 46276}, alternatives: []any{ &actionExpr{ - pos: position{line: 1847, col: 5, offset: 46092}, + pos: position{line: 1852, col: 5, offset: 46276}, run: (*parser).callonTypeFieldList2, expr: &seqExpr{ - pos: position{line: 1847, col: 5, offset: 46092}, + pos: position{line: 1852, col: 5, offset: 46276}, exprs: []any{ &labeledExpr{ - pos: position{line: 1847, col: 5, offset: 46092}, + pos: position{line: 1852, col: 5, offset: 46276}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1847, col: 11, offset: 46098}, + pos: position{line: 1852, col: 11, offset: 46282}, name: "TypeField", }, }, &labeledExpr{ - pos: position{line: 1847, col: 21, offset: 46108}, + pos: position{line: 1852, col: 21, offset: 46292}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1847, col: 26, offset: 46113}, + pos: position{line: 1852, col: 26, offset: 46297}, expr: &ruleRefExpr{ - pos: position{line: 1847, col: 26, offset: 46113}, + pos: position{line: 1852, col: 26, offset: 46297}, name: "TypeFieldListTail", }, }, @@ -12326,10 +12379,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1850, col: 5, offset: 46179}, + pos: position{line: 1855, col: 5, offset: 46363}, run: (*parser).callonTypeFieldList9, expr: &litMatcher{ - pos: position{line: 1850, col: 5, offset: 46179}, + pos: position{line: 1855, col: 5, offset: 46363}, val: "", ignoreCase: false, want: "\"\"", @@ -12342,32 +12395,32 @@ var g = &grammar{ }, { name: "TypeFieldListTail", - pos: position{line: 1852, col: 1, offset: 46203}, + pos: position{line: 1857, col: 1, offset: 46387}, expr: &actionExpr{ - pos: position{line: 1852, col: 21, offset: 46223}, + pos: position{line: 1857, col: 21, offset: 46407}, run: (*parser).callonTypeFieldListTail1, expr: &seqExpr{ - pos: position{line: 1852, col: 21, offset: 46223}, + pos: position{line: 1857, col: 21, offset: 46407}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1852, col: 21, offset: 46223}, + pos: position{line: 1857, col: 21, offset: 46407}, name: "__", }, &litMatcher{ - pos: position{line: 1852, col: 24, offset: 46226}, + pos: position{line: 1857, col: 24, offset: 46410}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 1852, col: 28, offset: 46230}, + pos: position{line: 1857, col: 28, offset: 46414}, name: "__", }, &labeledExpr{ - pos: position{line: 1852, col: 31, offset: 46233}, + pos: position{line: 1857, col: 31, offset: 46417}, label: "typ", expr: &ruleRefExpr{ - pos: position{line: 1852, col: 35, offset: 46237}, + pos: position{line: 1857, col: 35, offset: 46421}, name: "TypeField", }, }, @@ -12379,48 +12432,48 @@ var g = &grammar{ }, { name: "TypeField", - pos: position{line: 1854, col: 1, offset: 46268}, + pos: position{line: 1859, col: 1, offset: 46452}, expr: &actionExpr{ - pos: position{line: 1855, col: 5, offset: 46282}, + pos: position{line: 1860, col: 5, offset: 46466}, run: (*parser).callonTypeField1, expr: &seqExpr{ - pos: position{line: 1855, col: 5, offset: 46282}, + pos: position{line: 1860, col: 5, offset: 46466}, exprs: []any{ &labeledExpr{ - pos: position{line: 1855, col: 5, offset: 46282}, + pos: position{line: 1860, col: 5, offset: 46466}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 1855, col: 10, offset: 46287}, + pos: position{line: 1860, col: 10, offset: 46471}, name: "Name", }, }, &labeledExpr{ - pos: position{line: 1855, col: 15, offset: 46292}, + pos: position{line: 1860, col: 15, offset: 46476}, label: "opt", expr: &ruleRefExpr{ - pos: position{line: 1855, col: 19, offset: 46296}, + pos: position{line: 1860, col: 19, offset: 46480}, name: "OptToken", }, }, &ruleRefExpr{ - pos: position{line: 1855, col: 28, offset: 46305}, + pos: position{line: 1860, col: 28, offset: 46489}, name: "__", }, &litMatcher{ - pos: position{line: 1855, col: 31, offset: 46308}, + pos: position{line: 1860, col: 31, offset: 46492}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 1855, col: 35, offset: 46312}, + pos: position{line: 1860, col: 35, offset: 46496}, name: "__", }, &labeledExpr{ - pos: position{line: 1855, col: 38, offset: 46315}, + pos: position{line: 1860, col: 38, offset: 46499}, label: "typ", expr: &ruleRefExpr{ - pos: position{line: 1855, col: 42, offset: 46319}, + pos: position{line: 1860, col: 42, offset: 46503}, name: "Type", }, }, @@ -12432,25 +12485,25 @@ var g = &grammar{ }, { name: "OptToken", - pos: position{line: 1864, col: 1, offset: 46495}, + pos: position{line: 1869, col: 1, offset: 46679}, expr: &choiceExpr{ - pos: position{line: 1865, col: 5, offset: 46508}, + pos: position{line: 1870, col: 5, offset: 46692}, alternatives: []any{ &actionExpr{ - pos: position{line: 1865, col: 5, offset: 46508}, + pos: position{line: 1870, col: 5, offset: 46692}, run: (*parser).callonOptToken2, expr: &litMatcher{ - pos: position{line: 1865, col: 5, offset: 46508}, + pos: position{line: 1870, col: 5, offset: 46692}, val: "?", ignoreCase: false, want: "\"?\"", }, }, &actionExpr{ - pos: position{line: 1866, col: 5, offset: 46537}, + pos: position{line: 1871, col: 5, offset: 46721}, run: (*parser).callonOptToken4, expr: &litMatcher{ - pos: position{line: 1866, col: 5, offset: 46537}, + pos: position{line: 1871, col: 5, offset: 46721}, val: "", ignoreCase: false, want: "\"\"", @@ -12463,26 +12516,26 @@ var g = &grammar{ }, { name: "Name", - pos: position{line: 1868, col: 1, offset: 46563}, + pos: position{line: 1873, col: 1, offset: 46747}, expr: &actionExpr{ - pos: position{line: 1869, col: 4, offset: 46571}, + pos: position{line: 1874, col: 4, offset: 46755}, run: (*parser).callonName1, expr: &labeledExpr{ - pos: position{line: 1869, col: 4, offset: 46571}, + pos: position{line: 1874, col: 4, offset: 46755}, label: "s", expr: &choiceExpr{ - pos: position{line: 1869, col: 7, offset: 46574}, + pos: position{line: 1874, col: 7, offset: 46758}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1869, col: 7, offset: 46574}, + pos: position{line: 1874, col: 7, offset: 46758}, name: "IdentifierName", }, &ruleRefExpr{ - pos: position{line: 1869, col: 24, offset: 46591}, + pos: position{line: 1874, col: 24, offset: 46775}, name: "DoubleQuotedString", }, &ruleRefExpr{ - pos: position{line: 1869, col: 45, offset: 46612}, + pos: position{line: 1874, col: 45, offset: 46796}, name: "SingleQuotedString", }, }, @@ -12494,51 +12547,51 @@ var g = &grammar{ }, { name: "Names", - pos: position{line: 1873, col: 1, offset: 46712}, + pos: position{line: 1878, col: 1, offset: 46896}, expr: &actionExpr{ - pos: position{line: 1874, col: 5, offset: 46722}, + pos: position{line: 1879, col: 5, offset: 46906}, run: (*parser).callonNames1, expr: &seqExpr{ - pos: position{line: 1874, col: 5, offset: 46722}, + pos: position{line: 1879, col: 5, offset: 46906}, exprs: []any{ &labeledExpr{ - pos: position{line: 1874, col: 5, offset: 46722}, + pos: position{line: 1879, col: 5, offset: 46906}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1874, col: 11, offset: 46728}, + pos: position{line: 1879, col: 11, offset: 46912}, name: "Name", }, }, &labeledExpr{ - pos: position{line: 1874, col: 16, offset: 46733}, + pos: position{line: 1879, col: 16, offset: 46917}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1874, col: 21, offset: 46738}, + pos: position{line: 1879, col: 21, offset: 46922}, expr: &actionExpr{ - pos: position{line: 1874, col: 22, offset: 46739}, + pos: position{line: 1879, col: 22, offset: 46923}, run: (*parser).callonNames7, expr: &seqExpr{ - pos: position{line: 1874, col: 22, offset: 46739}, + pos: position{line: 1879, col: 22, offset: 46923}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1874, col: 22, offset: 46739}, + pos: position{line: 1879, col: 22, offset: 46923}, name: "__", }, &litMatcher{ - pos: position{line: 1874, col: 25, offset: 46742}, + pos: position{line: 1879, col: 25, offset: 46926}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 1874, col: 29, offset: 46746}, + pos: position{line: 1879, col: 29, offset: 46930}, name: "__", }, &labeledExpr{ - pos: position{line: 1874, col: 32, offset: 46749}, + pos: position{line: 1879, col: 32, offset: 46933}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 1874, col: 37, offset: 46754}, + pos: position{line: 1879, col: 37, offset: 46938}, name: "Name", }, }, @@ -12555,15 +12608,15 @@ var g = &grammar{ }, { name: "Identifier", - pos: position{line: 1878, col: 1, offset: 46826}, + pos: position{line: 1883, col: 1, offset: 47010}, expr: &actionExpr{ - pos: position{line: 1879, col: 5, offset: 46841}, + pos: position{line: 1884, col: 5, offset: 47025}, run: (*parser).callonIdentifier1, expr: &labeledExpr{ - pos: position{line: 1879, col: 5, offset: 46841}, + pos: position{line: 1884, col: 5, offset: 47025}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 1879, col: 8, offset: 46844}, + pos: position{line: 1884, col: 8, offset: 47028}, name: "IdentifierName", }, }, @@ -12573,51 +12626,51 @@ var g = &grammar{ }, { name: "Identifiers", - pos: position{line: 1886, col: 1, offset: 46955}, + pos: position{line: 1891, col: 1, offset: 47139}, expr: &actionExpr{ - pos: position{line: 1887, col: 5, offset: 46971}, + pos: position{line: 1892, col: 5, offset: 47155}, run: (*parser).callonIdentifiers1, expr: &seqExpr{ - pos: position{line: 1887, col: 5, offset: 46971}, + pos: position{line: 1892, col: 5, offset: 47155}, exprs: []any{ &labeledExpr{ - pos: position{line: 1887, col: 5, offset: 46971}, + pos: position{line: 1892, col: 5, offset: 47155}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 1887, col: 11, offset: 46977}, + pos: position{line: 1892, col: 11, offset: 47161}, name: "Identifier", }, }, &labeledExpr{ - pos: position{line: 1887, col: 22, offset: 46988}, + pos: position{line: 1892, col: 22, offset: 47172}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 1887, col: 27, offset: 46993}, + pos: position{line: 1892, col: 27, offset: 47177}, expr: &actionExpr{ - pos: position{line: 1887, col: 28, offset: 46994}, + pos: position{line: 1892, col: 28, offset: 47178}, run: (*parser).callonIdentifiers7, expr: &seqExpr{ - pos: position{line: 1887, col: 28, offset: 46994}, + pos: position{line: 1892, col: 28, offset: 47178}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1887, col: 28, offset: 46994}, + pos: position{line: 1892, col: 28, offset: 47178}, name: "__", }, &litMatcher{ - pos: position{line: 1887, col: 31, offset: 46997}, + pos: position{line: 1892, col: 31, offset: 47181}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 1887, col: 35, offset: 47001}, + pos: position{line: 1892, col: 35, offset: 47185}, name: "__", }, &labeledExpr{ - pos: position{line: 1887, col: 38, offset: 47004}, + pos: position{line: 1892, col: 38, offset: 47188}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 1887, col: 43, offset: 47009}, + pos: position{line: 1892, col: 43, offset: 47193}, name: "Identifier", }, }, @@ -12634,22 +12687,22 @@ var g = &grammar{ }, { name: "SQLIdentifier", - pos: position{line: 1891, col: 1, offset: 47087}, + pos: position{line: 1896, col: 1, offset: 47271}, expr: &choiceExpr{ - pos: position{line: 1892, col: 5, offset: 47105}, + pos: position{line: 1897, col: 5, offset: 47289}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1892, col: 5, offset: 47105}, + pos: position{line: 1897, col: 5, offset: 47289}, name: "Identifier", }, &actionExpr{ - pos: position{line: 1893, col: 5, offset: 47120}, + pos: position{line: 1898, col: 5, offset: 47304}, run: (*parser).callonSQLIdentifier3, expr: &labeledExpr{ - pos: position{line: 1893, col: 5, offset: 47120}, + pos: position{line: 1898, col: 5, offset: 47304}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 1893, col: 7, offset: 47122}, + pos: position{line: 1898, col: 7, offset: 47306}, name: "DoubleQuotedString", }, }, @@ -12661,29 +12714,29 @@ var g = &grammar{ }, { name: "IdentifierName", - pos: position{line: 1895, col: 1, offset: 47196}, + pos: position{line: 1900, col: 1, offset: 47380}, expr: &choiceExpr{ - pos: position{line: 1896, col: 5, offset: 47215}, + pos: position{line: 1901, col: 5, offset: 47399}, alternatives: []any{ &actionExpr{ - pos: position{line: 1896, col: 5, offset: 47215}, + pos: position{line: 1901, col: 5, offset: 47399}, run: (*parser).callonIdentifierName2, expr: &seqExpr{ - pos: position{line: 1896, col: 5, offset: 47215}, + pos: position{line: 1901, col: 5, offset: 47399}, exprs: []any{ ¬Expr{ - pos: position{line: 1896, col: 5, offset: 47215}, + pos: position{line: 1901, col: 5, offset: 47399}, expr: &seqExpr{ - pos: position{line: 1896, col: 7, offset: 47217}, + pos: position{line: 1901, col: 7, offset: 47401}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1896, col: 7, offset: 47217}, + pos: position{line: 1901, col: 7, offset: 47401}, name: "IDGuard", }, ¬Expr{ - pos: position{line: 1896, col: 15, offset: 47225}, + pos: position{line: 1901, col: 15, offset: 47409}, expr: &ruleRefExpr{ - pos: position{line: 1896, col: 16, offset: 47226}, + pos: position{line: 1901, col: 16, offset: 47410}, name: "IdentifierRest", }, }, @@ -12691,13 +12744,13 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1896, col: 32, offset: 47242}, + pos: position{line: 1901, col: 32, offset: 47426}, name: "IdentifierStart", }, &zeroOrMoreExpr{ - pos: position{line: 1896, col: 48, offset: 47258}, + pos: position{line: 1901, col: 48, offset: 47442}, expr: &ruleRefExpr{ - pos: position{line: 1896, col: 48, offset: 47258}, + pos: position{line: 1901, col: 48, offset: 47442}, name: "IdentifierRest", }, }, @@ -12705,7 +12758,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1897, col: 5, offset: 47309}, + pos: position{line: 1902, col: 5, offset: 47493}, name: "BacktickString", }, }, @@ -12715,22 +12768,22 @@ var g = &grammar{ }, { name: "IdentifierStart", - pos: position{line: 1899, col: 1, offset: 47325}, + pos: position{line: 1904, col: 1, offset: 47509}, expr: &choiceExpr{ - pos: position{line: 1900, col: 5, offset: 47345}, + pos: position{line: 1905, col: 5, offset: 47529}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1900, col: 5, offset: 47345}, + pos: position{line: 1905, col: 5, offset: 47529}, name: "UnicodeLetter", }, &litMatcher{ - pos: position{line: 1901, col: 5, offset: 47363}, + pos: position{line: 1906, col: 5, offset: 47547}, val: "$", ignoreCase: false, want: "\"$\"", }, &litMatcher{ - pos: position{line: 1902, col: 5, offset: 47371}, + pos: position{line: 1907, col: 5, offset: 47555}, val: "_", ignoreCase: false, want: "\"_\"", @@ -12742,24 +12795,24 @@ var g = &grammar{ }, { name: "IdentifierRest", - pos: position{line: 1904, col: 1, offset: 47376}, + pos: position{line: 1909, col: 1, offset: 47560}, expr: &choiceExpr{ - pos: position{line: 1905, col: 5, offset: 47395}, + pos: position{line: 1910, col: 5, offset: 47579}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1905, col: 5, offset: 47395}, + pos: position{line: 1910, col: 5, offset: 47579}, name: "IdentifierStart", }, &ruleRefExpr{ - pos: position{line: 1906, col: 5, offset: 47415}, + pos: position{line: 1911, col: 5, offset: 47599}, name: "UnicodeCombiningMark", }, &ruleRefExpr{ - pos: position{line: 1907, col: 5, offset: 47440}, + pos: position{line: 1912, col: 5, offset: 47624}, name: "UnicodeDigit", }, &ruleRefExpr{ - pos: position{line: 1908, col: 5, offset: 47457}, + pos: position{line: 1913, col: 5, offset: 47641}, name: "UnicodeConnectorPunctuation", }, }, @@ -12769,32 +12822,32 @@ var g = &grammar{ }, { name: "IDGuard", - pos: position{line: 1910, col: 1, offset: 47486}, + pos: position{line: 1915, col: 1, offset: 47670}, expr: &choiceExpr{ - pos: position{line: 1911, col: 5, offset: 47498}, + pos: position{line: 1916, col: 5, offset: 47682}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1911, col: 5, offset: 47498}, + pos: position{line: 1916, col: 5, offset: 47682}, name: "BooleanLiteral", }, &ruleRefExpr{ - pos: position{line: 1912, col: 5, offset: 47517}, + pos: position{line: 1917, col: 5, offset: 47701}, name: "NONE", }, &ruleRefExpr{ - pos: position{line: 1913, col: 5, offset: 47526}, + pos: position{line: 1918, col: 5, offset: 47710}, name: "MISSING", }, &ruleRefExpr{ - pos: position{line: 1914, col: 5, offset: 47538}, + pos: position{line: 1919, col: 5, offset: 47722}, name: "NullLiteral", }, &ruleRefExpr{ - pos: position{line: 1915, col: 5, offset: 47554}, + pos: position{line: 1920, col: 5, offset: 47738}, name: "NaN", }, &ruleRefExpr{ - pos: position{line: 1916, col: 5, offset: 47562}, + pos: position{line: 1921, col: 5, offset: 47746}, name: "Infinity", }, }, @@ -12804,25 +12857,25 @@ var g = &grammar{ }, { name: "Time", - pos: position{line: 1918, col: 1, offset: 47572}, + pos: position{line: 1923, col: 1, offset: 47756}, expr: &actionExpr{ - pos: position{line: 1919, col: 5, offset: 47581}, + pos: position{line: 1924, col: 5, offset: 47765}, run: (*parser).callonTime1, expr: &seqExpr{ - pos: position{line: 1919, col: 5, offset: 47581}, + pos: position{line: 1924, col: 5, offset: 47765}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1919, col: 5, offset: 47581}, + pos: position{line: 1924, col: 5, offset: 47765}, name: "FullDate", }, &litMatcher{ - pos: position{line: 1919, col: 14, offset: 47590}, + pos: position{line: 1924, col: 14, offset: 47774}, val: "T", ignoreCase: false, want: "\"T\"", }, &ruleRefExpr{ - pos: position{line: 1919, col: 18, offset: 47594}, + pos: position{line: 1924, col: 18, offset: 47778}, name: "FullTime", }, }, @@ -12833,32 +12886,32 @@ var g = &grammar{ }, { name: "FullDate", - pos: position{line: 1923, col: 1, offset: 47675}, + pos: position{line: 1928, col: 1, offset: 47859}, expr: &seqExpr{ - pos: position{line: 1923, col: 12, offset: 47686}, + pos: position{line: 1928, col: 12, offset: 47870}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1923, col: 12, offset: 47686}, + pos: position{line: 1928, col: 12, offset: 47870}, name: "D4", }, &litMatcher{ - pos: position{line: 1923, col: 15, offset: 47689}, + pos: position{line: 1928, col: 15, offset: 47873}, val: "-", ignoreCase: false, want: "\"-\"", }, &ruleRefExpr{ - pos: position{line: 1923, col: 19, offset: 47693}, + pos: position{line: 1928, col: 19, offset: 47877}, name: "D2", }, &litMatcher{ - pos: position{line: 1923, col: 22, offset: 47696}, + pos: position{line: 1928, col: 22, offset: 47880}, val: "-", ignoreCase: false, want: "\"-\"", }, &ruleRefExpr{ - pos: position{line: 1923, col: 26, offset: 47700}, + pos: position{line: 1928, col: 26, offset: 47884}, name: "D2", }, }, @@ -12868,33 +12921,33 @@ var g = &grammar{ }, { name: "D4", - pos: position{line: 1925, col: 1, offset: 47704}, + pos: position{line: 1930, col: 1, offset: 47888}, expr: &seqExpr{ - pos: position{line: 1925, col: 6, offset: 47709}, + pos: position{line: 1930, col: 6, offset: 47893}, exprs: []any{ &charClassMatcher{ - pos: position{line: 1925, col: 6, offset: 47709}, + pos: position{line: 1930, col: 6, offset: 47893}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, inverted: false, }, &charClassMatcher{ - pos: position{line: 1925, col: 11, offset: 47714}, + pos: position{line: 1930, col: 11, offset: 47898}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, inverted: false, }, &charClassMatcher{ - pos: position{line: 1925, col: 16, offset: 47719}, + pos: position{line: 1930, col: 16, offset: 47903}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, inverted: false, }, &charClassMatcher{ - pos: position{line: 1925, col: 21, offset: 47724}, + pos: position{line: 1930, col: 21, offset: 47908}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -12907,19 +12960,19 @@ var g = &grammar{ }, { name: "D2", - pos: position{line: 1926, col: 1, offset: 47730}, + pos: position{line: 1931, col: 1, offset: 47914}, expr: &seqExpr{ - pos: position{line: 1926, col: 6, offset: 47735}, + pos: position{line: 1931, col: 6, offset: 47919}, exprs: []any{ &charClassMatcher{ - pos: position{line: 1926, col: 6, offset: 47735}, + pos: position{line: 1931, col: 6, offset: 47919}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, inverted: false, }, &charClassMatcher{ - pos: position{line: 1926, col: 11, offset: 47740}, + pos: position{line: 1931, col: 11, offset: 47924}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -12932,16 +12985,16 @@ var g = &grammar{ }, { name: "FullTime", - pos: position{line: 1928, col: 1, offset: 47747}, + pos: position{line: 1933, col: 1, offset: 47931}, expr: &seqExpr{ - pos: position{line: 1928, col: 12, offset: 47758}, + pos: position{line: 1933, col: 12, offset: 47942}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1928, col: 12, offset: 47758}, + pos: position{line: 1933, col: 12, offset: 47942}, name: "PartialTime", }, &ruleRefExpr{ - pos: position{line: 1928, col: 24, offset: 47770}, + pos: position{line: 1933, col: 24, offset: 47954}, name: "TimeOffset", }, }, @@ -12951,49 +13004,49 @@ var g = &grammar{ }, { name: "PartialTime", - pos: position{line: 1930, col: 1, offset: 47782}, + pos: position{line: 1935, col: 1, offset: 47966}, expr: &seqExpr{ - pos: position{line: 1930, col: 15, offset: 47796}, + pos: position{line: 1935, col: 15, offset: 47980}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1930, col: 15, offset: 47796}, + pos: position{line: 1935, col: 15, offset: 47980}, name: "D2", }, &litMatcher{ - pos: position{line: 1930, col: 18, offset: 47799}, + pos: position{line: 1935, col: 18, offset: 47983}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 1930, col: 22, offset: 47803}, + pos: position{line: 1935, col: 22, offset: 47987}, name: "D2", }, &litMatcher{ - pos: position{line: 1930, col: 25, offset: 47806}, + pos: position{line: 1935, col: 25, offset: 47990}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 1930, col: 29, offset: 47810}, + pos: position{line: 1935, col: 29, offset: 47994}, name: "D2", }, &zeroOrOneExpr{ - pos: position{line: 1930, col: 32, offset: 47813}, + pos: position{line: 1935, col: 32, offset: 47997}, expr: &seqExpr{ - pos: position{line: 1930, col: 33, offset: 47814}, + pos: position{line: 1935, col: 33, offset: 47998}, exprs: []any{ &litMatcher{ - pos: position{line: 1930, col: 33, offset: 47814}, + pos: position{line: 1935, col: 33, offset: 47998}, val: ".", ignoreCase: false, want: "\".\"", }, &oneOrMoreExpr{ - pos: position{line: 1930, col: 37, offset: 47818}, + pos: position{line: 1935, col: 37, offset: 48002}, expr: &charClassMatcher{ - pos: position{line: 1930, col: 37, offset: 47818}, + pos: position{line: 1935, col: 37, offset: 48002}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -13010,30 +13063,30 @@ var g = &grammar{ }, { name: "TimeOffset", - pos: position{line: 1932, col: 1, offset: 47828}, + pos: position{line: 1937, col: 1, offset: 48012}, expr: &choiceExpr{ - pos: position{line: 1933, col: 5, offset: 47843}, + pos: position{line: 1938, col: 5, offset: 48027}, alternatives: []any{ &litMatcher{ - pos: position{line: 1933, col: 5, offset: 47843}, + pos: position{line: 1938, col: 5, offset: 48027}, val: "Z", ignoreCase: false, want: "\"Z\"", }, &seqExpr{ - pos: position{line: 1934, col: 5, offset: 47851}, + pos: position{line: 1939, col: 5, offset: 48035}, exprs: []any{ &choiceExpr{ - pos: position{line: 1934, col: 6, offset: 47852}, + pos: position{line: 1939, col: 6, offset: 48036}, alternatives: []any{ &litMatcher{ - pos: position{line: 1934, col: 6, offset: 47852}, + pos: position{line: 1939, col: 6, offset: 48036}, val: "+", ignoreCase: false, want: "\"+\"", }, &litMatcher{ - pos: position{line: 1934, col: 12, offset: 47858}, + pos: position{line: 1939, col: 12, offset: 48042}, val: "-", ignoreCase: false, want: "\"-\"", @@ -13041,34 +13094,34 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 1934, col: 17, offset: 47863}, + pos: position{line: 1939, col: 17, offset: 48047}, name: "D2", }, &litMatcher{ - pos: position{line: 1934, col: 20, offset: 47866}, + pos: position{line: 1939, col: 20, offset: 48050}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 1934, col: 24, offset: 47870}, + pos: position{line: 1939, col: 24, offset: 48054}, name: "D2", }, &zeroOrOneExpr{ - pos: position{line: 1934, col: 27, offset: 47873}, + pos: position{line: 1939, col: 27, offset: 48057}, expr: &seqExpr{ - pos: position{line: 1934, col: 28, offset: 47874}, + pos: position{line: 1939, col: 28, offset: 48058}, exprs: []any{ &litMatcher{ - pos: position{line: 1934, col: 28, offset: 47874}, + pos: position{line: 1939, col: 28, offset: 48058}, val: ".", ignoreCase: false, want: "\".\"", }, &oneOrMoreExpr{ - pos: position{line: 1934, col: 32, offset: 47878}, + pos: position{line: 1939, col: 32, offset: 48062}, expr: &charClassMatcher{ - pos: position{line: 1934, col: 32, offset: 47878}, + pos: position{line: 1939, col: 32, offset: 48062}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -13087,33 +13140,33 @@ var g = &grammar{ }, { name: "Duration", - pos: position{line: 1936, col: 1, offset: 47888}, + pos: position{line: 1941, col: 1, offset: 48072}, expr: &actionExpr{ - pos: position{line: 1937, col: 5, offset: 47901}, + pos: position{line: 1942, col: 5, offset: 48085}, run: (*parser).callonDuration1, expr: &seqExpr{ - pos: position{line: 1937, col: 5, offset: 47901}, + pos: position{line: 1942, col: 5, offset: 48085}, exprs: []any{ &zeroOrOneExpr{ - pos: position{line: 1937, col: 5, offset: 47901}, + pos: position{line: 1942, col: 5, offset: 48085}, expr: &litMatcher{ - pos: position{line: 1937, col: 5, offset: 47901}, + pos: position{line: 1942, col: 5, offset: 48085}, val: "-", ignoreCase: false, want: "\"-\"", }, }, &oneOrMoreExpr{ - pos: position{line: 1937, col: 10, offset: 47906}, + pos: position{line: 1942, col: 10, offset: 48090}, expr: &seqExpr{ - pos: position{line: 1937, col: 11, offset: 47907}, + pos: position{line: 1942, col: 11, offset: 48091}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1937, col: 11, offset: 47907}, + pos: position{line: 1942, col: 11, offset: 48091}, name: "Decimal", }, &ruleRefExpr{ - pos: position{line: 1937, col: 19, offset: 47915}, + pos: position{line: 1942, col: 19, offset: 48099}, name: "TimeUnit", }, }, @@ -13127,27 +13180,27 @@ var g = &grammar{ }, { name: "Decimal", - pos: position{line: 1941, col: 1, offset: 47997}, + pos: position{line: 1946, col: 1, offset: 48181}, expr: &seqExpr{ - pos: position{line: 1941, col: 11, offset: 48007}, + pos: position{line: 1946, col: 11, offset: 48191}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1941, col: 11, offset: 48007}, + pos: position{line: 1946, col: 11, offset: 48191}, name: "UInt", }, &zeroOrOneExpr{ - pos: position{line: 1941, col: 16, offset: 48012}, + pos: position{line: 1946, col: 16, offset: 48196}, expr: &seqExpr{ - pos: position{line: 1941, col: 17, offset: 48013}, + pos: position{line: 1946, col: 17, offset: 48197}, exprs: []any{ &litMatcher{ - pos: position{line: 1941, col: 17, offset: 48013}, + pos: position{line: 1946, col: 17, offset: 48197}, val: ".", ignoreCase: false, want: "\".\"", }, &ruleRefExpr{ - pos: position{line: 1941, col: 21, offset: 48017}, + pos: position{line: 1946, col: 21, offset: 48201}, name: "UInt", }, }, @@ -13160,60 +13213,60 @@ var g = &grammar{ }, { name: "TimeUnit", - pos: position{line: 1943, col: 1, offset: 48025}, + pos: position{line: 1948, col: 1, offset: 48209}, expr: &choiceExpr{ - pos: position{line: 1944, col: 5, offset: 48038}, + pos: position{line: 1949, col: 5, offset: 48222}, alternatives: []any{ &litMatcher{ - pos: position{line: 1944, col: 5, offset: 48038}, + pos: position{line: 1949, col: 5, offset: 48222}, val: "ns", ignoreCase: false, want: "\"ns\"", }, &litMatcher{ - pos: position{line: 1945, col: 5, offset: 48047}, + pos: position{line: 1950, col: 5, offset: 48231}, val: "us", ignoreCase: false, want: "\"us\"", }, &litMatcher{ - pos: position{line: 1946, col: 5, offset: 48056}, + pos: position{line: 1951, col: 5, offset: 48240}, val: "ms", ignoreCase: false, want: "\"ms\"", }, &litMatcher{ - pos: position{line: 1947, col: 5, offset: 48065}, + pos: position{line: 1952, col: 5, offset: 48249}, val: "s", ignoreCase: false, want: "\"s\"", }, &litMatcher{ - pos: position{line: 1948, col: 5, offset: 48073}, + pos: position{line: 1953, col: 5, offset: 48257}, val: "m", ignoreCase: false, want: "\"m\"", }, &litMatcher{ - pos: position{line: 1949, col: 5, offset: 48081}, + pos: position{line: 1954, col: 5, offset: 48265}, val: "h", ignoreCase: false, want: "\"h\"", }, &litMatcher{ - pos: position{line: 1950, col: 5, offset: 48089}, + pos: position{line: 1955, col: 5, offset: 48273}, val: "d", ignoreCase: false, want: "\"d\"", }, &litMatcher{ - pos: position{line: 1951, col: 5, offset: 48097}, + pos: position{line: 1956, col: 5, offset: 48281}, val: "w", ignoreCase: false, want: "\"w\"", }, &litMatcher{ - pos: position{line: 1952, col: 5, offset: 48105}, + pos: position{line: 1957, col: 5, offset: 48289}, val: "y", ignoreCase: false, want: "\"y\"", @@ -13225,45 +13278,45 @@ var g = &grammar{ }, { name: "IP", - pos: position{line: 1954, col: 1, offset: 48110}, + pos: position{line: 1959, col: 1, offset: 48294}, expr: &actionExpr{ - pos: position{line: 1955, col: 5, offset: 48117}, + pos: position{line: 1960, col: 5, offset: 48301}, run: (*parser).callonIP1, expr: &seqExpr{ - pos: position{line: 1955, col: 5, offset: 48117}, + pos: position{line: 1960, col: 5, offset: 48301}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1955, col: 5, offset: 48117}, + pos: position{line: 1960, col: 5, offset: 48301}, name: "UInt", }, &litMatcher{ - pos: position{line: 1955, col: 10, offset: 48122}, + pos: position{line: 1960, col: 10, offset: 48306}, val: ".", ignoreCase: false, want: "\".\"", }, &ruleRefExpr{ - pos: position{line: 1955, col: 14, offset: 48126}, + pos: position{line: 1960, col: 14, offset: 48310}, name: "UInt", }, &litMatcher{ - pos: position{line: 1955, col: 19, offset: 48131}, + pos: position{line: 1960, col: 19, offset: 48315}, val: ".", ignoreCase: false, want: "\".\"", }, &ruleRefExpr{ - pos: position{line: 1955, col: 23, offset: 48135}, + pos: position{line: 1960, col: 23, offset: 48319}, name: "UInt", }, &litMatcher{ - pos: position{line: 1955, col: 28, offset: 48140}, + pos: position{line: 1960, col: 28, offset: 48324}, val: ".", ignoreCase: false, want: "\".\"", }, &ruleRefExpr{ - pos: position{line: 1955, col: 32, offset: 48144}, + pos: position{line: 1960, col: 32, offset: 48328}, name: "UInt", }, }, @@ -13274,43 +13327,43 @@ var g = &grammar{ }, { name: "IP6", - pos: position{line: 1957, col: 1, offset: 48181}, + pos: position{line: 1962, col: 1, offset: 48365}, expr: &actionExpr{ - pos: position{line: 1958, col: 5, offset: 48189}, + pos: position{line: 1963, col: 5, offset: 48373}, run: (*parser).callonIP61, expr: &seqExpr{ - pos: position{line: 1958, col: 5, offset: 48189}, + pos: position{line: 1963, col: 5, offset: 48373}, exprs: []any{ ¬Expr{ - pos: position{line: 1958, col: 5, offset: 48189}, + pos: position{line: 1963, col: 5, offset: 48373}, expr: &seqExpr{ - pos: position{line: 1958, col: 7, offset: 48191}, + pos: position{line: 1963, col: 7, offset: 48375}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 1958, col: 7, offset: 48191}, + pos: position{line: 1963, col: 7, offset: 48375}, name: "Hex", }, &litMatcher{ - pos: position{line: 1958, col: 11, offset: 48195}, + pos: position{line: 1963, col: 11, offset: 48379}, val: ":", ignoreCase: false, want: "\":\"", }, &ruleRefExpr{ - pos: position{line: 1958, col: 15, offset: 48199}, + pos: position{line: 1963, col: 15, offset: 48383}, name: "Hex", }, ¬Expr{ - pos: position{line: 1958, col: 19, offset: 48203}, + pos: position{line: 1963, col: 19, offset: 48387}, expr: &choiceExpr{ - pos: position{line: 1958, col: 21, offset: 48205}, + pos: position{line: 1963, col: 21, offset: 48389}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1958, col: 21, offset: 48205}, + pos: position{line: 1963, col: 21, offset: 48389}, name: "HexDigit", }, &litMatcher{ - pos: position{line: 1958, col: 32, offset: 48216}, + pos: position{line: 1963, col: 32, offset: 48400}, val: ":", ignoreCase: false, want: "\":\"", @@ -13322,10 +13375,10 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 1958, col: 38, offset: 48222}, + pos: position{line: 1963, col: 38, offset: 48406}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 1958, col: 40, offset: 48224}, + pos: position{line: 1963, col: 40, offset: 48408}, name: "IP6Variations", }, }, @@ -13337,32 +13390,32 @@ var g = &grammar{ }, { name: "IP6Variations", - pos: position{line: 1962, col: 1, offset: 48388}, + pos: position{line: 1967, col: 1, offset: 48572}, expr: &choiceExpr{ - pos: position{line: 1963, col: 5, offset: 48406}, + pos: position{line: 1968, col: 5, offset: 48590}, alternatives: []any{ &actionExpr{ - pos: position{line: 1963, col: 5, offset: 48406}, + pos: position{line: 1968, col: 5, offset: 48590}, run: (*parser).callonIP6Variations2, expr: &seqExpr{ - pos: position{line: 1963, col: 5, offset: 48406}, + pos: position{line: 1968, col: 5, offset: 48590}, exprs: []any{ &labeledExpr{ - pos: position{line: 1963, col: 5, offset: 48406}, + pos: position{line: 1968, col: 5, offset: 48590}, label: "a", expr: &oneOrMoreExpr{ - pos: position{line: 1963, col: 7, offset: 48408}, + pos: position{line: 1968, col: 7, offset: 48592}, expr: &ruleRefExpr{ - pos: position{line: 1963, col: 7, offset: 48408}, + pos: position{line: 1968, col: 7, offset: 48592}, name: "HexColon", }, }, }, &labeledExpr{ - pos: position{line: 1963, col: 17, offset: 48418}, + pos: position{line: 1968, col: 17, offset: 48602}, label: "b", expr: &ruleRefExpr{ - pos: position{line: 1963, col: 19, offset: 48420}, + pos: position{line: 1968, col: 19, offset: 48604}, name: "IP6Tail", }, }, @@ -13370,52 +13423,52 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1966, col: 5, offset: 48484}, + pos: position{line: 1971, col: 5, offset: 48668}, run: (*parser).callonIP6Variations9, expr: &seqExpr{ - pos: position{line: 1966, col: 5, offset: 48484}, + pos: position{line: 1971, col: 5, offset: 48668}, exprs: []any{ &labeledExpr{ - pos: position{line: 1966, col: 5, offset: 48484}, + pos: position{line: 1971, col: 5, offset: 48668}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 1966, col: 7, offset: 48486}, + pos: position{line: 1971, col: 7, offset: 48670}, name: "Hex", }, }, &labeledExpr{ - pos: position{line: 1966, col: 11, offset: 48490}, + pos: position{line: 1971, col: 11, offset: 48674}, label: "b", expr: &zeroOrMoreExpr{ - pos: position{line: 1966, col: 13, offset: 48492}, + pos: position{line: 1971, col: 13, offset: 48676}, expr: &ruleRefExpr{ - pos: position{line: 1966, col: 13, offset: 48492}, + pos: position{line: 1971, col: 13, offset: 48676}, name: "ColonHex", }, }, }, &litMatcher{ - pos: position{line: 1966, col: 23, offset: 48502}, + pos: position{line: 1971, col: 23, offset: 48686}, val: "::", ignoreCase: false, want: "\"::\"", }, &labeledExpr{ - pos: position{line: 1966, col: 28, offset: 48507}, + pos: position{line: 1971, col: 28, offset: 48691}, label: "d", expr: &zeroOrMoreExpr{ - pos: position{line: 1966, col: 30, offset: 48509}, + pos: position{line: 1971, col: 30, offset: 48693}, expr: &ruleRefExpr{ - pos: position{line: 1966, col: 30, offset: 48509}, + pos: position{line: 1971, col: 30, offset: 48693}, name: "HexColon", }, }, }, &labeledExpr{ - pos: position{line: 1966, col: 40, offset: 48519}, + pos: position{line: 1971, col: 40, offset: 48703}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 1966, col: 42, offset: 48521}, + pos: position{line: 1971, col: 42, offset: 48705}, name: "IP6Tail", }, }, @@ -13423,33 +13476,33 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1969, col: 5, offset: 48620}, + pos: position{line: 1974, col: 5, offset: 48804}, run: (*parser).callonIP6Variations22, expr: &seqExpr{ - pos: position{line: 1969, col: 5, offset: 48620}, + pos: position{line: 1974, col: 5, offset: 48804}, exprs: []any{ &litMatcher{ - pos: position{line: 1969, col: 5, offset: 48620}, + pos: position{line: 1974, col: 5, offset: 48804}, val: "::", ignoreCase: false, want: "\"::\"", }, &labeledExpr{ - pos: position{line: 1969, col: 10, offset: 48625}, + pos: position{line: 1974, col: 10, offset: 48809}, label: "a", expr: &zeroOrMoreExpr{ - pos: position{line: 1969, col: 12, offset: 48627}, + pos: position{line: 1974, col: 12, offset: 48811}, expr: &ruleRefExpr{ - pos: position{line: 1969, col: 12, offset: 48627}, + pos: position{line: 1974, col: 12, offset: 48811}, name: "HexColon", }, }, }, &labeledExpr{ - pos: position{line: 1969, col: 22, offset: 48637}, + pos: position{line: 1974, col: 22, offset: 48821}, label: "b", expr: &ruleRefExpr{ - pos: position{line: 1969, col: 24, offset: 48639}, + pos: position{line: 1974, col: 24, offset: 48823}, name: "IP6Tail", }, }, @@ -13457,40 +13510,40 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1972, col: 5, offset: 48710}, + pos: position{line: 1977, col: 5, offset: 48894}, run: (*parser).callonIP6Variations30, expr: &seqExpr{ - pos: position{line: 1972, col: 5, offset: 48710}, + pos: position{line: 1977, col: 5, offset: 48894}, exprs: []any{ &labeledExpr{ - pos: position{line: 1972, col: 5, offset: 48710}, + pos: position{line: 1977, col: 5, offset: 48894}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 1972, col: 7, offset: 48712}, + pos: position{line: 1977, col: 7, offset: 48896}, name: "Hex", }, }, &labeledExpr{ - pos: position{line: 1972, col: 11, offset: 48716}, + pos: position{line: 1977, col: 11, offset: 48900}, label: "b", expr: &zeroOrMoreExpr{ - pos: position{line: 1972, col: 13, offset: 48718}, + pos: position{line: 1977, col: 13, offset: 48902}, expr: &ruleRefExpr{ - pos: position{line: 1972, col: 13, offset: 48718}, + pos: position{line: 1977, col: 13, offset: 48902}, name: "ColonHex", }, }, }, &litMatcher{ - pos: position{line: 1972, col: 23, offset: 48728}, + pos: position{line: 1977, col: 23, offset: 48912}, val: "::", ignoreCase: false, want: "\"::\"", }, ¬Expr{ - pos: position{line: 1972, col: 28, offset: 48733}, + pos: position{line: 1977, col: 28, offset: 48917}, expr: &ruleRefExpr{ - pos: position{line: 1972, col: 29, offset: 48734}, + pos: position{line: 1977, col: 29, offset: 48918}, name: "TypeAsValue", }, }, @@ -13498,10 +13551,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 1975, col: 5, offset: 48809}, + pos: position{line: 1980, col: 5, offset: 48993}, run: (*parser).callonIP6Variations40, expr: &litMatcher{ - pos: position{line: 1975, col: 5, offset: 48809}, + pos: position{line: 1980, col: 5, offset: 48993}, val: "::", ignoreCase: false, want: "\"::\"", @@ -13514,16 +13567,16 @@ var g = &grammar{ }, { name: "IP6Tail", - pos: position{line: 1979, col: 1, offset: 48846}, + pos: position{line: 1984, col: 1, offset: 49030}, expr: &choiceExpr{ - pos: position{line: 1980, col: 5, offset: 48858}, + pos: position{line: 1985, col: 5, offset: 49042}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 1980, col: 5, offset: 48858}, + pos: position{line: 1985, col: 5, offset: 49042}, name: "IP", }, &ruleRefExpr{ - pos: position{line: 1981, col: 5, offset: 48865}, + pos: position{line: 1986, col: 5, offset: 49049}, name: "Hex", }, }, @@ -13533,24 +13586,24 @@ var g = &grammar{ }, { name: "ColonHex", - pos: position{line: 1983, col: 1, offset: 48870}, + pos: position{line: 1988, col: 1, offset: 49054}, expr: &actionExpr{ - pos: position{line: 1983, col: 12, offset: 48881}, + pos: position{line: 1988, col: 12, offset: 49065}, run: (*parser).callonColonHex1, expr: &seqExpr{ - pos: position{line: 1983, col: 12, offset: 48881}, + pos: position{line: 1988, col: 12, offset: 49065}, exprs: []any{ &litMatcher{ - pos: position{line: 1983, col: 12, offset: 48881}, + pos: position{line: 1988, col: 12, offset: 49065}, val: ":", ignoreCase: false, want: "\":\"", }, &labeledExpr{ - pos: position{line: 1983, col: 16, offset: 48885}, + pos: position{line: 1988, col: 16, offset: 49069}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 1983, col: 18, offset: 48887}, + pos: position{line: 1988, col: 18, offset: 49071}, name: "Hex", }, }, @@ -13562,23 +13615,23 @@ var g = &grammar{ }, { name: "HexColon", - pos: position{line: 1985, col: 1, offset: 48925}, + pos: position{line: 1990, col: 1, offset: 49109}, expr: &actionExpr{ - pos: position{line: 1985, col: 12, offset: 48936}, + pos: position{line: 1990, col: 12, offset: 49120}, run: (*parser).callonHexColon1, expr: &seqExpr{ - pos: position{line: 1985, col: 12, offset: 48936}, + pos: position{line: 1990, col: 12, offset: 49120}, exprs: []any{ &labeledExpr{ - pos: position{line: 1985, col: 12, offset: 48936}, + pos: position{line: 1990, col: 12, offset: 49120}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 1985, col: 14, offset: 48938}, + pos: position{line: 1990, col: 14, offset: 49122}, name: "Hex", }, }, &litMatcher{ - pos: position{line: 1985, col: 18, offset: 48942}, + pos: position{line: 1990, col: 18, offset: 49126}, val: ":", ignoreCase: false, want: "\":\"", @@ -13591,32 +13644,32 @@ var g = &grammar{ }, { name: "IP4Net", - pos: position{line: 1987, col: 1, offset: 48980}, + pos: position{line: 1992, col: 1, offset: 49164}, expr: &actionExpr{ - pos: position{line: 1988, col: 5, offset: 48991}, + pos: position{line: 1993, col: 5, offset: 49175}, run: (*parser).callonIP4Net1, expr: &seqExpr{ - pos: position{line: 1988, col: 5, offset: 48991}, + pos: position{line: 1993, col: 5, offset: 49175}, exprs: []any{ &labeledExpr{ - pos: position{line: 1988, col: 5, offset: 48991}, + pos: position{line: 1993, col: 5, offset: 49175}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 1988, col: 7, offset: 48993}, + pos: position{line: 1993, col: 7, offset: 49177}, name: "IP", }, }, &litMatcher{ - pos: position{line: 1988, col: 10, offset: 48996}, + pos: position{line: 1993, col: 10, offset: 49180}, val: "/", ignoreCase: false, want: "\"/\"", }, &labeledExpr{ - pos: position{line: 1988, col: 14, offset: 49000}, + pos: position{line: 1993, col: 14, offset: 49184}, label: "m", expr: &ruleRefExpr{ - pos: position{line: 1988, col: 16, offset: 49002}, + pos: position{line: 1993, col: 16, offset: 49186}, name: "UIntString", }, }, @@ -13628,32 +13681,32 @@ var g = &grammar{ }, { name: "IP6Net", - pos: position{line: 1992, col: 1, offset: 49070}, + pos: position{line: 1997, col: 1, offset: 49254}, expr: &actionExpr{ - pos: position{line: 1993, col: 5, offset: 49081}, + pos: position{line: 1998, col: 5, offset: 49265}, run: (*parser).callonIP6Net1, expr: &seqExpr{ - pos: position{line: 1993, col: 5, offset: 49081}, + pos: position{line: 1998, col: 5, offset: 49265}, exprs: []any{ &labeledExpr{ - pos: position{line: 1993, col: 5, offset: 49081}, + pos: position{line: 1998, col: 5, offset: 49265}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 1993, col: 7, offset: 49083}, + pos: position{line: 1998, col: 7, offset: 49267}, name: "IP6", }, }, &litMatcher{ - pos: position{line: 1993, col: 11, offset: 49087}, + pos: position{line: 1998, col: 11, offset: 49271}, val: "/", ignoreCase: false, want: "\"/\"", }, &labeledExpr{ - pos: position{line: 1993, col: 15, offset: 49091}, + pos: position{line: 1998, col: 15, offset: 49275}, label: "m", expr: &ruleRefExpr{ - pos: position{line: 1993, col: 17, offset: 49093}, + pos: position{line: 1998, col: 17, offset: 49277}, name: "UIntString", }, }, @@ -13665,15 +13718,15 @@ var g = &grammar{ }, { name: "UInt", - pos: position{line: 1997, col: 1, offset: 49161}, + pos: position{line: 2002, col: 1, offset: 49345}, expr: &actionExpr{ - pos: position{line: 1998, col: 4, offset: 49169}, + pos: position{line: 2003, col: 4, offset: 49353}, run: (*parser).callonUInt1, expr: &labeledExpr{ - pos: position{line: 1998, col: 4, offset: 49169}, + pos: position{line: 2003, col: 4, offset: 49353}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 1998, col: 6, offset: 49171}, + pos: position{line: 2003, col: 6, offset: 49355}, name: "UIntString", }, }, @@ -13683,16 +13736,16 @@ var g = &grammar{ }, { name: "IntString", - pos: position{line: 2000, col: 1, offset: 49211}, + pos: position{line: 2005, col: 1, offset: 49395}, expr: &choiceExpr{ - pos: position{line: 2001, col: 5, offset: 49225}, + pos: position{line: 2006, col: 5, offset: 49409}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2001, col: 5, offset: 49225}, + pos: position{line: 2006, col: 5, offset: 49409}, name: "UIntString", }, &ruleRefExpr{ - pos: position{line: 2002, col: 5, offset: 49240}, + pos: position{line: 2007, col: 5, offset: 49424}, name: "MinusIntString", }, }, @@ -13702,14 +13755,14 @@ var g = &grammar{ }, { name: "UIntString", - pos: position{line: 2004, col: 1, offset: 49256}, + pos: position{line: 2009, col: 1, offset: 49440}, expr: &actionExpr{ - pos: position{line: 2004, col: 14, offset: 49269}, + pos: position{line: 2009, col: 14, offset: 49453}, run: (*parser).callonUIntString1, expr: &oneOrMoreExpr{ - pos: position{line: 2004, col: 14, offset: 49269}, + pos: position{line: 2009, col: 14, offset: 49453}, expr: &charClassMatcher{ - pos: position{line: 2004, col: 14, offset: 49269}, + pos: position{line: 2009, col: 14, offset: 49453}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -13722,21 +13775,21 @@ var g = &grammar{ }, { name: "MinusIntString", - pos: position{line: 2006, col: 1, offset: 49308}, + pos: position{line: 2011, col: 1, offset: 49492}, expr: &actionExpr{ - pos: position{line: 2007, col: 5, offset: 49327}, + pos: position{line: 2012, col: 5, offset: 49511}, run: (*parser).callonMinusIntString1, expr: &seqExpr{ - pos: position{line: 2007, col: 5, offset: 49327}, + pos: position{line: 2012, col: 5, offset: 49511}, exprs: []any{ &litMatcher{ - pos: position{line: 2007, col: 5, offset: 49327}, + pos: position{line: 2012, col: 5, offset: 49511}, val: "-", ignoreCase: false, want: "\"-\"", }, &ruleRefExpr{ - pos: position{line: 2007, col: 9, offset: 49331}, + pos: position{line: 2012, col: 9, offset: 49515}, name: "UIntString", }, }, @@ -13747,29 +13800,29 @@ var g = &grammar{ }, { name: "FloatString", - pos: position{line: 2009, col: 1, offset: 49374}, + pos: position{line: 2014, col: 1, offset: 49558}, expr: &choiceExpr{ - pos: position{line: 2010, col: 5, offset: 49390}, + pos: position{line: 2015, col: 5, offset: 49574}, alternatives: []any{ &actionExpr{ - pos: position{line: 2010, col: 5, offset: 49390}, + pos: position{line: 2015, col: 5, offset: 49574}, run: (*parser).callonFloatString2, expr: &seqExpr{ - pos: position{line: 2010, col: 5, offset: 49390}, + pos: position{line: 2015, col: 5, offset: 49574}, exprs: []any{ &zeroOrOneExpr{ - pos: position{line: 2010, col: 5, offset: 49390}, + pos: position{line: 2015, col: 5, offset: 49574}, expr: &litMatcher{ - pos: position{line: 2010, col: 5, offset: 49390}, + pos: position{line: 2015, col: 5, offset: 49574}, val: "-", ignoreCase: false, want: "\"-\"", }, }, &oneOrMoreExpr{ - pos: position{line: 2010, col: 10, offset: 49395}, + pos: position{line: 2015, col: 10, offset: 49579}, expr: &charClassMatcher{ - pos: position{line: 2010, col: 10, offset: 49395}, + pos: position{line: 2015, col: 10, offset: 49579}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -13777,15 +13830,15 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 2010, col: 17, offset: 49402}, + pos: position{line: 2015, col: 17, offset: 49586}, val: ".", ignoreCase: false, want: "\".\"", }, &zeroOrMoreExpr{ - pos: position{line: 2010, col: 21, offset: 49406}, + pos: position{line: 2015, col: 21, offset: 49590}, expr: &charClassMatcher{ - pos: position{line: 2010, col: 21, offset: 49406}, + pos: position{line: 2015, col: 21, offset: 49590}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -13793,9 +13846,9 @@ var g = &grammar{ }, }, &zeroOrOneExpr{ - pos: position{line: 2010, col: 28, offset: 49413}, + pos: position{line: 2015, col: 28, offset: 49597}, expr: &ruleRefExpr{ - pos: position{line: 2010, col: 28, offset: 49413}, + pos: position{line: 2015, col: 28, offset: 49597}, name: "ExponentPart", }, }, @@ -13803,30 +13856,30 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2011, col: 5, offset: 49462}, + pos: position{line: 2016, col: 5, offset: 49646}, run: (*parser).callonFloatString13, expr: &seqExpr{ - pos: position{line: 2011, col: 5, offset: 49462}, + pos: position{line: 2016, col: 5, offset: 49646}, exprs: []any{ &zeroOrOneExpr{ - pos: position{line: 2011, col: 5, offset: 49462}, + pos: position{line: 2016, col: 5, offset: 49646}, expr: &litMatcher{ - pos: position{line: 2011, col: 5, offset: 49462}, + pos: position{line: 2016, col: 5, offset: 49646}, val: "-", ignoreCase: false, want: "\"-\"", }, }, &litMatcher{ - pos: position{line: 2011, col: 10, offset: 49467}, + pos: position{line: 2016, col: 10, offset: 49651}, val: ".", ignoreCase: false, want: "\".\"", }, &oneOrMoreExpr{ - pos: position{line: 2011, col: 14, offset: 49471}, + pos: position{line: 2016, col: 14, offset: 49655}, expr: &charClassMatcher{ - pos: position{line: 2011, col: 14, offset: 49471}, + pos: position{line: 2016, col: 14, offset: 49655}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -13834,9 +13887,9 @@ var g = &grammar{ }, }, &zeroOrOneExpr{ - pos: position{line: 2011, col: 21, offset: 49478}, + pos: position{line: 2016, col: 21, offset: 49662}, expr: &ruleRefExpr{ - pos: position{line: 2011, col: 21, offset: 49478}, + pos: position{line: 2016, col: 21, offset: 49662}, name: "ExponentPart", }, }, @@ -13844,17 +13897,17 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2012, col: 5, offset: 49527}, + pos: position{line: 2017, col: 5, offset: 49711}, run: (*parser).callonFloatString22, expr: &choiceExpr{ - pos: position{line: 2012, col: 6, offset: 49528}, + pos: position{line: 2017, col: 6, offset: 49712}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2012, col: 6, offset: 49528}, + pos: position{line: 2017, col: 6, offset: 49712}, name: "NaN", }, &ruleRefExpr{ - pos: position{line: 2012, col: 12, offset: 49534}, + pos: position{line: 2017, col: 12, offset: 49718}, name: "Infinity", }, }, @@ -13867,20 +13920,20 @@ var g = &grammar{ }, { name: "ExponentPart", - pos: position{line: 2015, col: 1, offset: 49577}, + pos: position{line: 2020, col: 1, offset: 49761}, expr: &seqExpr{ - pos: position{line: 2015, col: 16, offset: 49592}, + pos: position{line: 2020, col: 16, offset: 49776}, exprs: []any{ &litMatcher{ - pos: position{line: 2015, col: 16, offset: 49592}, + pos: position{line: 2020, col: 16, offset: 49776}, val: "e", ignoreCase: true, want: "\"e\"i", }, &zeroOrOneExpr{ - pos: position{line: 2015, col: 21, offset: 49597}, + pos: position{line: 2020, col: 21, offset: 49781}, expr: &charClassMatcher{ - pos: position{line: 2015, col: 21, offset: 49597}, + pos: position{line: 2020, col: 21, offset: 49781}, val: "[+-]", chars: []rune{'+', '-'}, ignoreCase: false, @@ -13888,7 +13941,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 2015, col: 27, offset: 49603}, + pos: position{line: 2020, col: 27, offset: 49787}, name: "UIntString", }, }, @@ -13898,9 +13951,9 @@ var g = &grammar{ }, { name: "NaN", - pos: position{line: 2017, col: 1, offset: 49615}, + pos: position{line: 2022, col: 1, offset: 49799}, expr: &litMatcher{ - pos: position{line: 2017, col: 7, offset: 49621}, + pos: position{line: 2022, col: 7, offset: 49805}, val: "NaN", ignoreCase: false, want: "\"NaN\"", @@ -13910,23 +13963,23 @@ var g = &grammar{ }, { name: "Infinity", - pos: position{line: 2019, col: 1, offset: 49628}, + pos: position{line: 2024, col: 1, offset: 49812}, expr: &seqExpr{ - pos: position{line: 2019, col: 12, offset: 49639}, + pos: position{line: 2024, col: 12, offset: 49823}, exprs: []any{ &zeroOrOneExpr{ - pos: position{line: 2019, col: 12, offset: 49639}, + pos: position{line: 2024, col: 12, offset: 49823}, expr: &choiceExpr{ - pos: position{line: 2019, col: 13, offset: 49640}, + pos: position{line: 2024, col: 13, offset: 49824}, alternatives: []any{ &litMatcher{ - pos: position{line: 2019, col: 13, offset: 49640}, + pos: position{line: 2024, col: 13, offset: 49824}, val: "-", ignoreCase: false, want: "\"-\"", }, &litMatcher{ - pos: position{line: 2019, col: 19, offset: 49646}, + pos: position{line: 2024, col: 19, offset: 49830}, val: "+", ignoreCase: false, want: "\"+\"", @@ -13935,7 +13988,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 2019, col: 25, offset: 49652}, + pos: position{line: 2024, col: 25, offset: 49836}, val: "Inf", ignoreCase: false, want: "\"Inf\"", @@ -13947,14 +14000,14 @@ var g = &grammar{ }, { name: "Hex", - pos: position{line: 2021, col: 1, offset: 49659}, + pos: position{line: 2026, col: 1, offset: 49843}, expr: &actionExpr{ - pos: position{line: 2021, col: 7, offset: 49665}, + pos: position{line: 2026, col: 7, offset: 49849}, run: (*parser).callonHex1, expr: &oneOrMoreExpr{ - pos: position{line: 2021, col: 7, offset: 49665}, + pos: position{line: 2026, col: 7, offset: 49849}, expr: &ruleRefExpr{ - pos: position{line: 2021, col: 7, offset: 49665}, + pos: position{line: 2026, col: 7, offset: 49849}, name: "HexDigit", }, }, @@ -13964,9 +14017,9 @@ var g = &grammar{ }, { name: "HexDigit", - pos: position{line: 2023, col: 1, offset: 49707}, + pos: position{line: 2028, col: 1, offset: 49891}, expr: &charClassMatcher{ - pos: position{line: 2023, col: 12, offset: 49718}, + pos: position{line: 2028, col: 12, offset: 49902}, val: "[0-9a-fA-F]", ranges: []rune{'0', '9', 'a', 'f', 'A', 'F'}, ignoreCase: false, @@ -13977,32 +14030,32 @@ var g = &grammar{ }, { name: "SingleQuotedString", - pos: position{line: 2025, col: 1, offset: 49731}, + pos: position{line: 2030, col: 1, offset: 49915}, expr: &actionExpr{ - pos: position{line: 2026, col: 5, offset: 49754}, + pos: position{line: 2031, col: 5, offset: 49938}, run: (*parser).callonSingleQuotedString1, expr: &seqExpr{ - pos: position{line: 2026, col: 5, offset: 49754}, + pos: position{line: 2031, col: 5, offset: 49938}, exprs: []any{ &litMatcher{ - pos: position{line: 2026, col: 5, offset: 49754}, + pos: position{line: 2031, col: 5, offset: 49938}, val: "'", ignoreCase: false, want: "\"'\"", }, &labeledExpr{ - pos: position{line: 2026, col: 9, offset: 49758}, + pos: position{line: 2031, col: 9, offset: 49942}, label: "v", expr: &zeroOrMoreExpr{ - pos: position{line: 2026, col: 11, offset: 49760}, + pos: position{line: 2031, col: 11, offset: 49944}, expr: &ruleRefExpr{ - pos: position{line: 2026, col: 11, offset: 49760}, + pos: position{line: 2031, col: 11, offset: 49944}, name: "SingleQuotedChar", }, }, }, &litMatcher{ - pos: position{line: 2026, col: 29, offset: 49778}, + pos: position{line: 2031, col: 29, offset: 49962}, val: "'", ignoreCase: false, want: "\"'\"", @@ -14015,32 +14068,32 @@ var g = &grammar{ }, { name: "DoubleQuotedString", - pos: position{line: 2028, col: 1, offset: 49812}, + pos: position{line: 2033, col: 1, offset: 49996}, expr: &actionExpr{ - pos: position{line: 2029, col: 5, offset: 49835}, + pos: position{line: 2034, col: 5, offset: 50019}, run: (*parser).callonDoubleQuotedString1, expr: &seqExpr{ - pos: position{line: 2029, col: 5, offset: 49835}, + pos: position{line: 2034, col: 5, offset: 50019}, exprs: []any{ &litMatcher{ - pos: position{line: 2029, col: 5, offset: 49835}, + pos: position{line: 2034, col: 5, offset: 50019}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, &labeledExpr{ - pos: position{line: 2029, col: 9, offset: 49839}, + pos: position{line: 2034, col: 9, offset: 50023}, label: "v", expr: &zeroOrMoreExpr{ - pos: position{line: 2029, col: 11, offset: 49841}, + pos: position{line: 2034, col: 11, offset: 50025}, expr: &ruleRefExpr{ - pos: position{line: 2029, col: 11, offset: 49841}, + pos: position{line: 2034, col: 11, offset: 50025}, name: "DoubleQuotedChar", }, }, }, &litMatcher{ - pos: position{line: 2029, col: 29, offset: 49859}, + pos: position{line: 2034, col: 29, offset: 50043}, val: "\"", ignoreCase: false, want: "\"\\\"\"", @@ -14053,57 +14106,57 @@ var g = &grammar{ }, { name: "DoubleQuotedChar", - pos: position{line: 2031, col: 1, offset: 49893}, + pos: position{line: 2036, col: 1, offset: 50077}, expr: &choiceExpr{ - pos: position{line: 2032, col: 5, offset: 49914}, + pos: position{line: 2037, col: 5, offset: 50098}, alternatives: []any{ &actionExpr{ - pos: position{line: 2032, col: 5, offset: 49914}, + pos: position{line: 2037, col: 5, offset: 50098}, run: (*parser).callonDoubleQuotedChar2, expr: &seqExpr{ - pos: position{line: 2032, col: 5, offset: 49914}, + pos: position{line: 2037, col: 5, offset: 50098}, exprs: []any{ ¬Expr{ - pos: position{line: 2032, col: 5, offset: 49914}, + pos: position{line: 2037, col: 5, offset: 50098}, expr: &choiceExpr{ - pos: position{line: 2032, col: 7, offset: 49916}, + pos: position{line: 2037, col: 7, offset: 50100}, alternatives: []any{ &litMatcher{ - pos: position{line: 2032, col: 7, offset: 49916}, + pos: position{line: 2037, col: 7, offset: 50100}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, &ruleRefExpr{ - pos: position{line: 2032, col: 13, offset: 49922}, + pos: position{line: 2037, col: 13, offset: 50106}, name: "EscapedChar", }, }, }, }, &anyMatcher{ - line: 2032, col: 26, offset: 49935, + line: 2037, col: 26, offset: 50119, }, }, }, }, &actionExpr{ - pos: position{line: 2033, col: 5, offset: 49972}, + pos: position{line: 2038, col: 5, offset: 50156}, run: (*parser).callonDoubleQuotedChar9, expr: &seqExpr{ - pos: position{line: 2033, col: 5, offset: 49972}, + pos: position{line: 2038, col: 5, offset: 50156}, exprs: []any{ &litMatcher{ - pos: position{line: 2033, col: 5, offset: 49972}, + pos: position{line: 2038, col: 5, offset: 50156}, val: "\\", ignoreCase: false, want: "\"\\\\\"", }, &labeledExpr{ - pos: position{line: 2033, col: 10, offset: 49977}, + pos: position{line: 2038, col: 10, offset: 50161}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 2033, col: 12, offset: 49979}, + pos: position{line: 2038, col: 12, offset: 50163}, name: "EscapeSequence", }, }, @@ -14117,32 +14170,32 @@ var g = &grammar{ }, { name: "RString", - pos: position{line: 2035, col: 1, offset: 50013}, + pos: position{line: 2040, col: 1, offset: 50197}, expr: &choiceExpr{ - pos: position{line: 2036, col: 5, offset: 50025}, + pos: position{line: 2041, col: 5, offset: 50209}, alternatives: []any{ &actionExpr{ - pos: position{line: 2036, col: 5, offset: 50025}, + pos: position{line: 2041, col: 5, offset: 50209}, run: (*parser).callonRString2, expr: &seqExpr{ - pos: position{line: 2036, col: 5, offset: 50025}, + pos: position{line: 2041, col: 5, offset: 50209}, exprs: []any{ &litMatcher{ - pos: position{line: 2036, col: 5, offset: 50025}, + pos: position{line: 2041, col: 5, offset: 50209}, val: "r'", ignoreCase: false, want: "\"r'\"", }, &labeledExpr{ - pos: position{line: 2036, col: 10, offset: 50030}, + pos: position{line: 2041, col: 10, offset: 50214}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 2036, col: 12, offset: 50032}, + pos: position{line: 2041, col: 12, offset: 50216}, name: "NoSingleQuotes", }, }, &litMatcher{ - pos: position{line: 2036, col: 27, offset: 50047}, + pos: position{line: 2041, col: 27, offset: 50231}, val: "'", ignoreCase: false, want: "\"'\"", @@ -14151,33 +14204,33 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2037, col: 5, offset: 50082}, + pos: position{line: 2042, col: 5, offset: 50266}, run: (*parser).callonRString8, expr: &seqExpr{ - pos: position{line: 2037, col: 5, offset: 50082}, + pos: position{line: 2042, col: 5, offset: 50266}, exprs: []any{ &litMatcher{ - pos: position{line: 2037, col: 5, offset: 50082}, + pos: position{line: 2042, col: 5, offset: 50266}, val: "r", ignoreCase: false, want: "\"r\"", }, &litMatcher{ - pos: position{line: 2037, col: 9, offset: 50086}, + pos: position{line: 2042, col: 9, offset: 50270}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, &labeledExpr{ - pos: position{line: 2037, col: 13, offset: 50090}, + pos: position{line: 2042, col: 13, offset: 50274}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 2037, col: 15, offset: 50092}, + pos: position{line: 2042, col: 15, offset: 50276}, name: "NoDoubleQuotes", }, }, &litMatcher{ - pos: position{line: 2037, col: 30, offset: 50107}, + pos: position{line: 2042, col: 30, offset: 50291}, val: "\"", ignoreCase: false, want: "\"\\\"\"", @@ -14192,26 +14245,26 @@ var g = &grammar{ }, { name: "NoSingleQuotes", - pos: position{line: 2039, col: 1, offset: 50139}, + pos: position{line: 2044, col: 1, offset: 50323}, expr: &actionExpr{ - pos: position{line: 2040, col: 5, offset: 50158}, + pos: position{line: 2045, col: 5, offset: 50342}, run: (*parser).callonNoSingleQuotes1, expr: &zeroOrMoreExpr{ - pos: position{line: 2040, col: 5, offset: 50158}, + pos: position{line: 2045, col: 5, offset: 50342}, expr: &seqExpr{ - pos: position{line: 2040, col: 6, offset: 50159}, + pos: position{line: 2045, col: 6, offset: 50343}, exprs: []any{ ¬Expr{ - pos: position{line: 2040, col: 6, offset: 50159}, + pos: position{line: 2045, col: 6, offset: 50343}, expr: &litMatcher{ - pos: position{line: 2040, col: 7, offset: 50160}, + pos: position{line: 2045, col: 7, offset: 50344}, val: "'", ignoreCase: false, want: "\"'\"", }, }, &anyMatcher{ - line: 2040, col: 11, offset: 50164, + line: 2045, col: 11, offset: 50348, }, }, }, @@ -14222,26 +14275,26 @@ var g = &grammar{ }, { name: "NoDoubleQuotes", - pos: position{line: 2042, col: 1, offset: 50200}, + pos: position{line: 2047, col: 1, offset: 50384}, expr: &actionExpr{ - pos: position{line: 2043, col: 5, offset: 50219}, + pos: position{line: 2048, col: 5, offset: 50403}, run: (*parser).callonNoDoubleQuotes1, expr: &zeroOrMoreExpr{ - pos: position{line: 2043, col: 5, offset: 50219}, + pos: position{line: 2048, col: 5, offset: 50403}, expr: &seqExpr{ - pos: position{line: 2043, col: 6, offset: 50220}, + pos: position{line: 2048, col: 6, offset: 50404}, exprs: []any{ ¬Expr{ - pos: position{line: 2043, col: 6, offset: 50220}, + pos: position{line: 2048, col: 6, offset: 50404}, expr: &litMatcher{ - pos: position{line: 2043, col: 7, offset: 50221}, + pos: position{line: 2048, col: 7, offset: 50405}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, }, &anyMatcher{ - line: 2043, col: 11, offset: 50225, + line: 2048, col: 11, offset: 50409, }, }, }, @@ -14252,32 +14305,32 @@ var g = &grammar{ }, { name: "BacktickString", - pos: position{line: 2045, col: 1, offset: 50261}, + pos: position{line: 2050, col: 1, offset: 50445}, expr: &actionExpr{ - pos: position{line: 2046, col: 5, offset: 50280}, + pos: position{line: 2051, col: 5, offset: 50464}, run: (*parser).callonBacktickString1, expr: &seqExpr{ - pos: position{line: 2046, col: 5, offset: 50280}, + pos: position{line: 2051, col: 5, offset: 50464}, exprs: []any{ &litMatcher{ - pos: position{line: 2046, col: 5, offset: 50280}, + pos: position{line: 2051, col: 5, offset: 50464}, val: "`", ignoreCase: false, want: "\"`\"", }, &labeledExpr{ - pos: position{line: 2046, col: 9, offset: 50284}, + pos: position{line: 2051, col: 9, offset: 50468}, label: "v", expr: &zeroOrMoreExpr{ - pos: position{line: 2046, col: 11, offset: 50286}, + pos: position{line: 2051, col: 11, offset: 50470}, expr: &ruleRefExpr{ - pos: position{line: 2046, col: 11, offset: 50286}, + pos: position{line: 2051, col: 11, offset: 50470}, name: "BacktickChar", }, }, }, &litMatcher{ - pos: position{line: 2046, col: 25, offset: 50300}, + pos: position{line: 2051, col: 25, offset: 50484}, val: "`", ignoreCase: false, want: "\"`\"", @@ -14290,57 +14343,57 @@ var g = &grammar{ }, { name: "BacktickChar", - pos: position{line: 2048, col: 1, offset: 50334}, + pos: position{line: 2053, col: 1, offset: 50518}, expr: &choiceExpr{ - pos: position{line: 2049, col: 5, offset: 50351}, + pos: position{line: 2054, col: 5, offset: 50535}, alternatives: []any{ &actionExpr{ - pos: position{line: 2049, col: 5, offset: 50351}, + pos: position{line: 2054, col: 5, offset: 50535}, run: (*parser).callonBacktickChar2, expr: &seqExpr{ - pos: position{line: 2049, col: 5, offset: 50351}, + pos: position{line: 2054, col: 5, offset: 50535}, exprs: []any{ ¬Expr{ - pos: position{line: 2049, col: 5, offset: 50351}, + pos: position{line: 2054, col: 5, offset: 50535}, expr: &choiceExpr{ - pos: position{line: 2049, col: 7, offset: 50353}, + pos: position{line: 2054, col: 7, offset: 50537}, alternatives: []any{ &litMatcher{ - pos: position{line: 2049, col: 7, offset: 50353}, + pos: position{line: 2054, col: 7, offset: 50537}, val: "`", ignoreCase: false, want: "\"`\"", }, &ruleRefExpr{ - pos: position{line: 2049, col: 13, offset: 50359}, + pos: position{line: 2054, col: 13, offset: 50543}, name: "EscapedChar", }, }, }, }, &anyMatcher{ - line: 2049, col: 26, offset: 50372, + line: 2054, col: 26, offset: 50556, }, }, }, }, &actionExpr{ - pos: position{line: 2050, col: 5, offset: 50409}, + pos: position{line: 2055, col: 5, offset: 50593}, run: (*parser).callonBacktickChar9, expr: &seqExpr{ - pos: position{line: 2050, col: 5, offset: 50409}, + pos: position{line: 2055, col: 5, offset: 50593}, exprs: []any{ &litMatcher{ - pos: position{line: 2050, col: 5, offset: 50409}, + pos: position{line: 2055, col: 5, offset: 50593}, val: "\\", ignoreCase: false, want: "\"\\\\\"", }, &labeledExpr{ - pos: position{line: 2050, col: 10, offset: 50414}, + pos: position{line: 2055, col: 10, offset: 50598}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 2050, col: 12, offset: 50416}, + pos: position{line: 2055, col: 12, offset: 50600}, name: "EscapeSequence", }, }, @@ -14354,28 +14407,28 @@ var g = &grammar{ }, { name: "KeyWord", - pos: position{line: 2052, col: 1, offset: 50450}, + pos: position{line: 2057, col: 1, offset: 50634}, expr: &actionExpr{ - pos: position{line: 2053, col: 5, offset: 50462}, + pos: position{line: 2058, col: 5, offset: 50646}, run: (*parser).callonKeyWord1, expr: &seqExpr{ - pos: position{line: 2053, col: 5, offset: 50462}, + pos: position{line: 2058, col: 5, offset: 50646}, exprs: []any{ &labeledExpr{ - pos: position{line: 2053, col: 5, offset: 50462}, + pos: position{line: 2058, col: 5, offset: 50646}, label: "head", expr: &ruleRefExpr{ - pos: position{line: 2053, col: 10, offset: 50467}, + pos: position{line: 2058, col: 10, offset: 50651}, name: "KeyWordStart", }, }, &labeledExpr{ - pos: position{line: 2053, col: 23, offset: 50480}, + pos: position{line: 2058, col: 23, offset: 50664}, label: "tail", expr: &zeroOrMoreExpr{ - pos: position{line: 2053, col: 28, offset: 50485}, + pos: position{line: 2058, col: 28, offset: 50669}, expr: &ruleRefExpr{ - pos: position{line: 2053, col: 28, offset: 50485}, + pos: position{line: 2058, col: 28, offset: 50669}, name: "KeyWordRest", }, }, @@ -14388,16 +14441,16 @@ var g = &grammar{ }, { name: "KeyWordStart", - pos: position{line: 2055, col: 1, offset: 50547}, + pos: position{line: 2060, col: 1, offset: 50731}, expr: &choiceExpr{ - pos: position{line: 2056, col: 5, offset: 50564}, + pos: position{line: 2061, col: 5, offset: 50748}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2056, col: 5, offset: 50564}, + pos: position{line: 2061, col: 5, offset: 50748}, name: "KeyWordChars", }, &ruleRefExpr{ - pos: position{line: 2057, col: 5, offset: 50581}, + pos: position{line: 2062, col: 5, offset: 50765}, name: "KeyWordEsc", }, }, @@ -14407,16 +14460,16 @@ var g = &grammar{ }, { name: "KeyWordRest", - pos: position{line: 2059, col: 1, offset: 50593}, + pos: position{line: 2064, col: 1, offset: 50777}, expr: &choiceExpr{ - pos: position{line: 2060, col: 5, offset: 50609}, + pos: position{line: 2065, col: 5, offset: 50793}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2060, col: 5, offset: 50609}, + pos: position{line: 2065, col: 5, offset: 50793}, name: "KeyWordStart", }, &charClassMatcher{ - pos: position{line: 2061, col: 5, offset: 50626}, + pos: position{line: 2066, col: 5, offset: 50810}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -14429,19 +14482,19 @@ var g = &grammar{ }, { name: "KeyWordChars", - pos: position{line: 2063, col: 1, offset: 50633}, + pos: position{line: 2068, col: 1, offset: 50817}, expr: &actionExpr{ - pos: position{line: 2063, col: 16, offset: 50648}, + pos: position{line: 2068, col: 16, offset: 50832}, run: (*parser).callonKeyWordChars1, expr: &choiceExpr{ - pos: position{line: 2063, col: 17, offset: 50649}, + pos: position{line: 2068, col: 17, offset: 50833}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2063, col: 17, offset: 50649}, + pos: position{line: 2068, col: 17, offset: 50833}, name: "UnicodeLetter", }, &charClassMatcher{ - pos: position{line: 2063, col: 33, offset: 50665}, + pos: position{line: 2068, col: 33, offset: 50849}, val: "[_.:/%#@~]", chars: []rune{'_', '.', ':', '/', '%', '#', '@', '~'}, ignoreCase: false, @@ -14455,31 +14508,31 @@ var g = &grammar{ }, { name: "KeyWordEsc", - pos: position{line: 2065, col: 1, offset: 50709}, + pos: position{line: 2070, col: 1, offset: 50893}, expr: &actionExpr{ - pos: position{line: 2065, col: 14, offset: 50722}, + pos: position{line: 2070, col: 14, offset: 50906}, run: (*parser).callonKeyWordEsc1, expr: &seqExpr{ - pos: position{line: 2065, col: 14, offset: 50722}, + pos: position{line: 2070, col: 14, offset: 50906}, exprs: []any{ &litMatcher{ - pos: position{line: 2065, col: 14, offset: 50722}, + pos: position{line: 2070, col: 14, offset: 50906}, val: "\\", ignoreCase: false, want: "\"\\\\\"", }, &labeledExpr{ - pos: position{line: 2065, col: 19, offset: 50727}, + pos: position{line: 2070, col: 19, offset: 50911}, label: "s", expr: &choiceExpr{ - pos: position{line: 2065, col: 22, offset: 50730}, + pos: position{line: 2070, col: 22, offset: 50914}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2065, col: 22, offset: 50730}, + pos: position{line: 2070, col: 22, offset: 50914}, name: "KeywordEscape", }, &ruleRefExpr{ - pos: position{line: 2065, col: 38, offset: 50746}, + pos: position{line: 2070, col: 38, offset: 50930}, name: "EscapeSequence", }, }, @@ -14493,42 +14546,42 @@ var g = &grammar{ }, { name: "GlobPattern", - pos: position{line: 2067, col: 1, offset: 50781}, + pos: position{line: 2072, col: 1, offset: 50965}, expr: &actionExpr{ - pos: position{line: 2068, col: 5, offset: 50797}, + pos: position{line: 2073, col: 5, offset: 50981}, run: (*parser).callonGlobPattern1, expr: &seqExpr{ - pos: position{line: 2068, col: 5, offset: 50797}, + pos: position{line: 2073, col: 5, offset: 50981}, exprs: []any{ &andExpr{ - pos: position{line: 2068, col: 5, offset: 50797}, + pos: position{line: 2073, col: 5, offset: 50981}, expr: &ruleRefExpr{ - pos: position{line: 2068, col: 6, offset: 50798}, + pos: position{line: 2073, col: 6, offset: 50982}, name: "GlobProperStart", }, }, &andExpr{ - pos: position{line: 2068, col: 22, offset: 50814}, + pos: position{line: 2073, col: 22, offset: 50998}, expr: &ruleRefExpr{ - pos: position{line: 2068, col: 23, offset: 50815}, + pos: position{line: 2073, col: 23, offset: 50999}, name: "GlobHasStar", }, }, &labeledExpr{ - pos: position{line: 2068, col: 35, offset: 50827}, + pos: position{line: 2073, col: 35, offset: 51011}, label: "head", expr: &ruleRefExpr{ - pos: position{line: 2068, col: 40, offset: 50832}, + pos: position{line: 2073, col: 40, offset: 51016}, name: "GlobStart", }, }, &labeledExpr{ - pos: position{line: 2068, col: 50, offset: 50842}, + pos: position{line: 2073, col: 50, offset: 51026}, label: "tail", expr: &zeroOrMoreExpr{ - pos: position{line: 2068, col: 55, offset: 50847}, + pos: position{line: 2073, col: 55, offset: 51031}, expr: &ruleRefExpr{ - pos: position{line: 2068, col: 55, offset: 50847}, + pos: position{line: 2073, col: 55, offset: 51031}, name: "GlobRest", }, }, @@ -14541,28 +14594,28 @@ var g = &grammar{ }, { name: "GlobProperStart", - pos: position{line: 2072, col: 1, offset: 50916}, + pos: position{line: 2077, col: 1, offset: 51100}, expr: &choiceExpr{ - pos: position{line: 2072, col: 19, offset: 50934}, + pos: position{line: 2077, col: 19, offset: 51118}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2072, col: 19, offset: 50934}, + pos: position{line: 2077, col: 19, offset: 51118}, name: "KeyWordStart", }, &seqExpr{ - pos: position{line: 2072, col: 34, offset: 50949}, + pos: position{line: 2077, col: 34, offset: 51133}, exprs: []any{ &oneOrMoreExpr{ - pos: position{line: 2072, col: 34, offset: 50949}, + pos: position{line: 2077, col: 34, offset: 51133}, expr: &litMatcher{ - pos: position{line: 2072, col: 34, offset: 50949}, + pos: position{line: 2077, col: 34, offset: 51133}, val: "*", ignoreCase: false, want: "\"*\"", }, }, &ruleRefExpr{ - pos: position{line: 2072, col: 39, offset: 50954}, + pos: position{line: 2077, col: 39, offset: 51138}, name: "KeyWordRest", }, }, @@ -14574,19 +14627,19 @@ var g = &grammar{ }, { name: "GlobHasStar", - pos: position{line: 2073, col: 1, offset: 50966}, + pos: position{line: 2078, col: 1, offset: 51150}, expr: &seqExpr{ - pos: position{line: 2073, col: 15, offset: 50980}, + pos: position{line: 2078, col: 15, offset: 51164}, exprs: []any{ &zeroOrMoreExpr{ - pos: position{line: 2073, col: 15, offset: 50980}, + pos: position{line: 2078, col: 15, offset: 51164}, expr: &ruleRefExpr{ - pos: position{line: 2073, col: 15, offset: 50980}, + pos: position{line: 2078, col: 15, offset: 51164}, name: "KeyWordRest", }, }, &litMatcher{ - pos: position{line: 2073, col: 28, offset: 50993}, + pos: position{line: 2078, col: 28, offset: 51177}, val: "*", ignoreCase: false, want: "\"*\"", @@ -14598,23 +14651,23 @@ var g = &grammar{ }, { name: "GlobStart", - pos: position{line: 2075, col: 1, offset: 50998}, + pos: position{line: 2080, col: 1, offset: 51182}, expr: &choiceExpr{ - pos: position{line: 2076, col: 5, offset: 51012}, + pos: position{line: 2081, col: 5, offset: 51196}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2076, col: 5, offset: 51012}, + pos: position{line: 2081, col: 5, offset: 51196}, name: "KeyWordChars", }, &ruleRefExpr{ - pos: position{line: 2077, col: 5, offset: 51029}, + pos: position{line: 2082, col: 5, offset: 51213}, name: "GlobEsc", }, &actionExpr{ - pos: position{line: 2078, col: 5, offset: 51041}, + pos: position{line: 2083, col: 5, offset: 51225}, run: (*parser).callonGlobStart4, expr: &litMatcher{ - pos: position{line: 2078, col: 5, offset: 51041}, + pos: position{line: 2083, col: 5, offset: 51225}, val: "*", ignoreCase: false, want: "\"*\"", @@ -14627,16 +14680,16 @@ var g = &grammar{ }, { name: "GlobRest", - pos: position{line: 2080, col: 1, offset: 51066}, + pos: position{line: 2085, col: 1, offset: 51250}, expr: &choiceExpr{ - pos: position{line: 2081, col: 5, offset: 51079}, + pos: position{line: 2086, col: 5, offset: 51263}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2081, col: 5, offset: 51079}, + pos: position{line: 2086, col: 5, offset: 51263}, name: "GlobStart", }, &charClassMatcher{ - pos: position{line: 2082, col: 5, offset: 51093}, + pos: position{line: 2087, col: 5, offset: 51277}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -14649,31 +14702,31 @@ var g = &grammar{ }, { name: "GlobEsc", - pos: position{line: 2084, col: 1, offset: 51100}, + pos: position{line: 2089, col: 1, offset: 51284}, expr: &actionExpr{ - pos: position{line: 2084, col: 11, offset: 51110}, + pos: position{line: 2089, col: 11, offset: 51294}, run: (*parser).callonGlobEsc1, expr: &seqExpr{ - pos: position{line: 2084, col: 11, offset: 51110}, + pos: position{line: 2089, col: 11, offset: 51294}, exprs: []any{ &litMatcher{ - pos: position{line: 2084, col: 11, offset: 51110}, + pos: position{line: 2089, col: 11, offset: 51294}, val: "\\", ignoreCase: false, want: "\"\\\\\"", }, &labeledExpr{ - pos: position{line: 2084, col: 16, offset: 51115}, + pos: position{line: 2089, col: 16, offset: 51299}, label: "s", expr: &choiceExpr{ - pos: position{line: 2084, col: 19, offset: 51118}, + pos: position{line: 2089, col: 19, offset: 51302}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2084, col: 19, offset: 51118}, + pos: position{line: 2089, col: 19, offset: 51302}, name: "GlobEscape", }, &ruleRefExpr{ - pos: position{line: 2084, col: 32, offset: 51131}, + pos: position{line: 2089, col: 32, offset: 51315}, name: "EscapeSequence", }, }, @@ -14687,32 +14740,32 @@ var g = &grammar{ }, { name: "GlobEscape", - pos: position{line: 2086, col: 1, offset: 51166}, + pos: position{line: 2091, col: 1, offset: 51350}, expr: &choiceExpr{ - pos: position{line: 2087, col: 5, offset: 51181}, + pos: position{line: 2092, col: 5, offset: 51365}, alternatives: []any{ &actionExpr{ - pos: position{line: 2087, col: 5, offset: 51181}, + pos: position{line: 2092, col: 5, offset: 51365}, run: (*parser).callonGlobEscape2, expr: &litMatcher{ - pos: position{line: 2087, col: 5, offset: 51181}, + pos: position{line: 2092, col: 5, offset: 51365}, val: "=", ignoreCase: false, want: "\"=\"", }, }, &actionExpr{ - pos: position{line: 2088, col: 5, offset: 51209}, + pos: position{line: 2093, col: 5, offset: 51393}, run: (*parser).callonGlobEscape4, expr: &litMatcher{ - pos: position{line: 2088, col: 5, offset: 51209}, + pos: position{line: 2093, col: 5, offset: 51393}, val: "*", ignoreCase: false, want: "\"*\"", }, }, &charClassMatcher{ - pos: position{line: 2089, col: 5, offset: 51239}, + pos: position{line: 2094, col: 5, offset: 51423}, val: "[+-]", chars: []rune{'+', '-'}, ignoreCase: false, @@ -14725,57 +14778,57 @@ var g = &grammar{ }, { name: "SingleQuotedChar", - pos: position{line: 2091, col: 1, offset: 51245}, + pos: position{line: 2096, col: 1, offset: 51429}, expr: &choiceExpr{ - pos: position{line: 2092, col: 5, offset: 51266}, + pos: position{line: 2097, col: 5, offset: 51450}, alternatives: []any{ &actionExpr{ - pos: position{line: 2092, col: 5, offset: 51266}, + pos: position{line: 2097, col: 5, offset: 51450}, run: (*parser).callonSingleQuotedChar2, expr: &seqExpr{ - pos: position{line: 2092, col: 5, offset: 51266}, + pos: position{line: 2097, col: 5, offset: 51450}, exprs: []any{ ¬Expr{ - pos: position{line: 2092, col: 5, offset: 51266}, + pos: position{line: 2097, col: 5, offset: 51450}, expr: &choiceExpr{ - pos: position{line: 2092, col: 7, offset: 51268}, + pos: position{line: 2097, col: 7, offset: 51452}, alternatives: []any{ &litMatcher{ - pos: position{line: 2092, col: 7, offset: 51268}, + pos: position{line: 2097, col: 7, offset: 51452}, val: "'", ignoreCase: false, want: "\"'\"", }, &ruleRefExpr{ - pos: position{line: 2092, col: 13, offset: 51274}, + pos: position{line: 2097, col: 13, offset: 51458}, name: "EscapedChar", }, }, }, }, &anyMatcher{ - line: 2092, col: 26, offset: 51287, + line: 2097, col: 26, offset: 51471, }, }, }, }, &actionExpr{ - pos: position{line: 2093, col: 5, offset: 51324}, + pos: position{line: 2098, col: 5, offset: 51508}, run: (*parser).callonSingleQuotedChar9, expr: &seqExpr{ - pos: position{line: 2093, col: 5, offset: 51324}, + pos: position{line: 2098, col: 5, offset: 51508}, exprs: []any{ &litMatcher{ - pos: position{line: 2093, col: 5, offset: 51324}, + pos: position{line: 2098, col: 5, offset: 51508}, val: "\\", ignoreCase: false, want: "\"\\\\\"", }, &labeledExpr{ - pos: position{line: 2093, col: 10, offset: 51329}, + pos: position{line: 2098, col: 10, offset: 51513}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 2093, col: 12, offset: 51331}, + pos: position{line: 2098, col: 12, offset: 51515}, name: "EscapeSequence", }, }, @@ -14789,16 +14842,16 @@ var g = &grammar{ }, { name: "EscapeSequence", - pos: position{line: 2095, col: 1, offset: 51365}, + pos: position{line: 2100, col: 1, offset: 51549}, expr: &choiceExpr{ - pos: position{line: 2096, col: 5, offset: 51384}, + pos: position{line: 2101, col: 5, offset: 51568}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2096, col: 5, offset: 51384}, + pos: position{line: 2101, col: 5, offset: 51568}, name: "SingleCharEscape", }, &ruleRefExpr{ - pos: position{line: 2097, col: 5, offset: 51405}, + pos: position{line: 2102, col: 5, offset: 51589}, name: "UnicodeEscape", }, }, @@ -14808,87 +14861,87 @@ var g = &grammar{ }, { name: "SingleCharEscape", - pos: position{line: 2099, col: 1, offset: 51420}, + pos: position{line: 2104, col: 1, offset: 51604}, expr: &choiceExpr{ - pos: position{line: 2100, col: 5, offset: 51441}, + pos: position{line: 2105, col: 5, offset: 51625}, alternatives: []any{ &litMatcher{ - pos: position{line: 2100, col: 5, offset: 51441}, + pos: position{line: 2105, col: 5, offset: 51625}, val: "'", ignoreCase: false, want: "\"'\"", }, &actionExpr{ - pos: position{line: 2101, col: 5, offset: 51449}, + pos: position{line: 2106, col: 5, offset: 51633}, run: (*parser).callonSingleCharEscape3, expr: &litMatcher{ - pos: position{line: 2101, col: 5, offset: 51449}, + pos: position{line: 2106, col: 5, offset: 51633}, val: "\"", ignoreCase: false, want: "\"\\\"\"", }, }, &litMatcher{ - pos: position{line: 2102, col: 5, offset: 51489}, + pos: position{line: 2107, col: 5, offset: 51673}, val: "\\", ignoreCase: false, want: "\"\\\\\"", }, &actionExpr{ - pos: position{line: 2103, col: 5, offset: 51498}, + pos: position{line: 2108, col: 5, offset: 51682}, run: (*parser).callonSingleCharEscape6, expr: &litMatcher{ - pos: position{line: 2103, col: 5, offset: 51498}, + pos: position{line: 2108, col: 5, offset: 51682}, val: "b", ignoreCase: false, want: "\"b\"", }, }, &actionExpr{ - pos: position{line: 2104, col: 5, offset: 51527}, + pos: position{line: 2109, col: 5, offset: 51711}, run: (*parser).callonSingleCharEscape8, expr: &litMatcher{ - pos: position{line: 2104, col: 5, offset: 51527}, + pos: position{line: 2109, col: 5, offset: 51711}, val: "f", ignoreCase: false, want: "\"f\"", }, }, &actionExpr{ - pos: position{line: 2105, col: 5, offset: 51556}, + pos: position{line: 2110, col: 5, offset: 51740}, run: (*parser).callonSingleCharEscape10, expr: &litMatcher{ - pos: position{line: 2105, col: 5, offset: 51556}, + pos: position{line: 2110, col: 5, offset: 51740}, val: "n", ignoreCase: false, want: "\"n\"", }, }, &actionExpr{ - pos: position{line: 2106, col: 5, offset: 51585}, + pos: position{line: 2111, col: 5, offset: 51769}, run: (*parser).callonSingleCharEscape12, expr: &litMatcher{ - pos: position{line: 2106, col: 5, offset: 51585}, + pos: position{line: 2111, col: 5, offset: 51769}, val: "r", ignoreCase: false, want: "\"r\"", }, }, &actionExpr{ - pos: position{line: 2107, col: 5, offset: 51614}, + pos: position{line: 2112, col: 5, offset: 51798}, run: (*parser).callonSingleCharEscape14, expr: &litMatcher{ - pos: position{line: 2107, col: 5, offset: 51614}, + pos: position{line: 2112, col: 5, offset: 51798}, val: "t", ignoreCase: false, want: "\"t\"", }, }, &actionExpr{ - pos: position{line: 2108, col: 5, offset: 51643}, + pos: position{line: 2113, col: 5, offset: 51827}, run: (*parser).callonSingleCharEscape16, expr: &litMatcher{ - pos: position{line: 2108, col: 5, offset: 51643}, + pos: position{line: 2113, col: 5, offset: 51827}, val: "v", ignoreCase: false, want: "\"v\"", @@ -14901,32 +14954,32 @@ var g = &grammar{ }, { name: "KeywordEscape", - pos: position{line: 2110, col: 1, offset: 51669}, + pos: position{line: 2115, col: 1, offset: 51853}, expr: &choiceExpr{ - pos: position{line: 2111, col: 5, offset: 51687}, + pos: position{line: 2116, col: 5, offset: 51871}, alternatives: []any{ &actionExpr{ - pos: position{line: 2111, col: 5, offset: 51687}, + pos: position{line: 2116, col: 5, offset: 51871}, run: (*parser).callonKeywordEscape2, expr: &litMatcher{ - pos: position{line: 2111, col: 5, offset: 51687}, + pos: position{line: 2116, col: 5, offset: 51871}, val: "=", ignoreCase: false, want: "\"=\"", }, }, &actionExpr{ - pos: position{line: 2112, col: 5, offset: 51715}, + pos: position{line: 2117, col: 5, offset: 51899}, run: (*parser).callonKeywordEscape4, expr: &litMatcher{ - pos: position{line: 2112, col: 5, offset: 51715}, + pos: position{line: 2117, col: 5, offset: 51899}, val: "*", ignoreCase: false, want: "\"*\"", }, }, &charClassMatcher{ - pos: position{line: 2113, col: 5, offset: 51743}, + pos: position{line: 2118, col: 5, offset: 51927}, val: "[+-]", chars: []rune{'+', '-'}, ignoreCase: false, @@ -14939,42 +14992,42 @@ var g = &grammar{ }, { name: "UnicodeEscape", - pos: position{line: 2115, col: 1, offset: 51749}, + pos: position{line: 2120, col: 1, offset: 51933}, expr: &choiceExpr{ - pos: position{line: 2116, col: 5, offset: 51767}, + pos: position{line: 2121, col: 5, offset: 51951}, alternatives: []any{ &actionExpr{ - pos: position{line: 2116, col: 5, offset: 51767}, + pos: position{line: 2121, col: 5, offset: 51951}, run: (*parser).callonUnicodeEscape2, expr: &seqExpr{ - pos: position{line: 2116, col: 5, offset: 51767}, + pos: position{line: 2121, col: 5, offset: 51951}, exprs: []any{ &litMatcher{ - pos: position{line: 2116, col: 5, offset: 51767}, + pos: position{line: 2121, col: 5, offset: 51951}, val: "u", ignoreCase: false, want: "\"u\"", }, &labeledExpr{ - pos: position{line: 2116, col: 9, offset: 51771}, + pos: position{line: 2121, col: 9, offset: 51955}, label: "chars", expr: &seqExpr{ - pos: position{line: 2116, col: 16, offset: 51778}, + pos: position{line: 2121, col: 16, offset: 51962}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2116, col: 16, offset: 51778}, + pos: position{line: 2121, col: 16, offset: 51962}, name: "HexDigit", }, &ruleRefExpr{ - pos: position{line: 2116, col: 25, offset: 51787}, + pos: position{line: 2121, col: 25, offset: 51971}, name: "HexDigit", }, &ruleRefExpr{ - pos: position{line: 2116, col: 34, offset: 51796}, + pos: position{line: 2121, col: 34, offset: 51980}, name: "HexDigit", }, &ruleRefExpr{ - pos: position{line: 2116, col: 43, offset: 51805}, + pos: position{line: 2121, col: 43, offset: 51989}, name: "HexDigit", }, }, @@ -14984,65 +15037,65 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2119, col: 5, offset: 51868}, + pos: position{line: 2124, col: 5, offset: 52052}, run: (*parser).callonUnicodeEscape11, expr: &seqExpr{ - pos: position{line: 2119, col: 5, offset: 51868}, + pos: position{line: 2124, col: 5, offset: 52052}, exprs: []any{ &litMatcher{ - pos: position{line: 2119, col: 5, offset: 51868}, + pos: position{line: 2124, col: 5, offset: 52052}, val: "u", ignoreCase: false, want: "\"u\"", }, &litMatcher{ - pos: position{line: 2119, col: 9, offset: 51872}, + pos: position{line: 2124, col: 9, offset: 52056}, val: "{", ignoreCase: false, want: "\"{\"", }, &labeledExpr{ - pos: position{line: 2119, col: 13, offset: 51876}, + pos: position{line: 2124, col: 13, offset: 52060}, label: "chars", expr: &seqExpr{ - pos: position{line: 2119, col: 20, offset: 51883}, + pos: position{line: 2124, col: 20, offset: 52067}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2119, col: 20, offset: 51883}, + pos: position{line: 2124, col: 20, offset: 52067}, name: "HexDigit", }, &zeroOrOneExpr{ - pos: position{line: 2119, col: 29, offset: 51892}, + pos: position{line: 2124, col: 29, offset: 52076}, expr: &ruleRefExpr{ - pos: position{line: 2119, col: 29, offset: 51892}, + pos: position{line: 2124, col: 29, offset: 52076}, name: "HexDigit", }, }, &zeroOrOneExpr{ - pos: position{line: 2119, col: 39, offset: 51902}, + pos: position{line: 2124, col: 39, offset: 52086}, expr: &ruleRefExpr{ - pos: position{line: 2119, col: 39, offset: 51902}, + pos: position{line: 2124, col: 39, offset: 52086}, name: "HexDigit", }, }, &zeroOrOneExpr{ - pos: position{line: 2119, col: 49, offset: 51912}, + pos: position{line: 2124, col: 49, offset: 52096}, expr: &ruleRefExpr{ - pos: position{line: 2119, col: 49, offset: 51912}, + pos: position{line: 2124, col: 49, offset: 52096}, name: "HexDigit", }, }, &zeroOrOneExpr{ - pos: position{line: 2119, col: 59, offset: 51922}, + pos: position{line: 2124, col: 59, offset: 52106}, expr: &ruleRefExpr{ - pos: position{line: 2119, col: 59, offset: 51922}, + pos: position{line: 2124, col: 59, offset: 52106}, name: "HexDigit", }, }, &zeroOrOneExpr{ - pos: position{line: 2119, col: 69, offset: 51932}, + pos: position{line: 2124, col: 69, offset: 52116}, expr: &ruleRefExpr{ - pos: position{line: 2119, col: 69, offset: 51932}, + pos: position{line: 2124, col: 69, offset: 52116}, name: "HexDigit", }, }, @@ -15050,7 +15103,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 2119, col: 80, offset: 51943}, + pos: position{line: 2124, col: 80, offset: 52127}, val: "}", ignoreCase: false, want: "\"}\"", @@ -15065,9 +15118,9 @@ var g = &grammar{ }, { name: "EscapedChar", - pos: position{line: 2124, col: 1, offset: 51998}, + pos: position{line: 2129, col: 1, offset: 52182}, expr: &charClassMatcher{ - pos: position{line: 2125, col: 5, offset: 52014}, + pos: position{line: 2130, col: 5, offset: 52198}, val: "[\\x00-\\x1f\\\\]", chars: []rune{'\\'}, ranges: []rune{'\x00', '\x1f'}, @@ -15079,11 +15132,11 @@ var g = &grammar{ }, { name: "_", - pos: position{line: 2127, col: 1, offset: 52029}, + pos: position{line: 2132, col: 1, offset: 52213}, expr: &oneOrMoreExpr{ - pos: position{line: 2127, col: 5, offset: 52033}, + pos: position{line: 2132, col: 5, offset: 52217}, expr: &ruleRefExpr{ - pos: position{line: 2127, col: 5, offset: 52033}, + pos: position{line: 2132, col: 5, offset: 52217}, name: "AnySpace", }, }, @@ -15092,11 +15145,11 @@ var g = &grammar{ }, { name: "__", - pos: position{line: 2129, col: 1, offset: 52044}, + pos: position{line: 2134, col: 1, offset: 52228}, expr: &zeroOrMoreExpr{ - pos: position{line: 2129, col: 6, offset: 52049}, + pos: position{line: 2134, col: 6, offset: 52233}, expr: &ruleRefExpr{ - pos: position{line: 2129, col: 6, offset: 52049}, + pos: position{line: 2134, col: 6, offset: 52233}, name: "AnySpace", }, }, @@ -15105,20 +15158,20 @@ var g = &grammar{ }, { name: "AnySpace", - pos: position{line: 2131, col: 1, offset: 52060}, + pos: position{line: 2136, col: 1, offset: 52244}, expr: &choiceExpr{ - pos: position{line: 2132, col: 5, offset: 52073}, + pos: position{line: 2137, col: 5, offset: 52257}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2132, col: 5, offset: 52073}, + pos: position{line: 2137, col: 5, offset: 52257}, name: "WhiteSpace", }, &ruleRefExpr{ - pos: position{line: 2133, col: 5, offset: 52088}, + pos: position{line: 2138, col: 5, offset: 52272}, name: "LineTerminator", }, &ruleRefExpr{ - pos: position{line: 2134, col: 5, offset: 52107}, + pos: position{line: 2139, col: 5, offset: 52291}, name: "Comment", }, }, @@ -15128,32 +15181,32 @@ var g = &grammar{ }, { name: "UnicodeLetter", - pos: position{line: 2136, col: 1, offset: 52116}, + pos: position{line: 2141, col: 1, offset: 52300}, expr: &choiceExpr{ - pos: position{line: 2137, col: 5, offset: 52134}, + pos: position{line: 2142, col: 5, offset: 52318}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2137, col: 5, offset: 52134}, + pos: position{line: 2142, col: 5, offset: 52318}, name: "Lu", }, &ruleRefExpr{ - pos: position{line: 2138, col: 5, offset: 52141}, + pos: position{line: 2143, col: 5, offset: 52325}, name: "Ll", }, &ruleRefExpr{ - pos: position{line: 2139, col: 5, offset: 52148}, + pos: position{line: 2144, col: 5, offset: 52332}, name: "Lt", }, &ruleRefExpr{ - pos: position{line: 2140, col: 5, offset: 52155}, + pos: position{line: 2145, col: 5, offset: 52339}, name: "Lm", }, &ruleRefExpr{ - pos: position{line: 2141, col: 5, offset: 52162}, + pos: position{line: 2146, col: 5, offset: 52346}, name: "Lo", }, &ruleRefExpr{ - pos: position{line: 2142, col: 5, offset: 52169}, + pos: position{line: 2147, col: 5, offset: 52353}, name: "Nl", }, }, @@ -15163,16 +15216,16 @@ var g = &grammar{ }, { name: "UnicodeCombiningMark", - pos: position{line: 2144, col: 1, offset: 52173}, + pos: position{line: 2149, col: 1, offset: 52357}, expr: &choiceExpr{ - pos: position{line: 2145, col: 5, offset: 52198}, + pos: position{line: 2150, col: 5, offset: 52382}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2145, col: 5, offset: 52198}, + pos: position{line: 2150, col: 5, offset: 52382}, name: "Mn", }, &ruleRefExpr{ - pos: position{line: 2146, col: 5, offset: 52205}, + pos: position{line: 2151, col: 5, offset: 52389}, name: "Mc", }, }, @@ -15182,9 +15235,9 @@ var g = &grammar{ }, { name: "UnicodeDigit", - pos: position{line: 2148, col: 1, offset: 52209}, + pos: position{line: 2153, col: 1, offset: 52393}, expr: &ruleRefExpr{ - pos: position{line: 2149, col: 5, offset: 52226}, + pos: position{line: 2154, col: 5, offset: 52410}, name: "Nd", }, leader: false, @@ -15192,9 +15245,9 @@ var g = &grammar{ }, { name: "UnicodeConnectorPunctuation", - pos: position{line: 2151, col: 1, offset: 52230}, + pos: position{line: 2156, col: 1, offset: 52414}, expr: &ruleRefExpr{ - pos: position{line: 2152, col: 5, offset: 52262}, + pos: position{line: 2157, col: 5, offset: 52446}, name: "Pc", }, leader: false, @@ -15202,9 +15255,9 @@ var g = &grammar{ }, { name: "Ll", - pos: position{line: 2158, col: 1, offset: 52443}, + pos: position{line: 2163, col: 1, offset: 52627}, expr: &charClassMatcher{ - pos: position{line: 2158, col: 6, offset: 52448}, + pos: position{line: 2163, col: 6, offset: 52632}, val: "[\\u0061-\\u007A\\u00B5\\u00DF-\\u00F6\\u00F8-\\u00FF\\u0101\\u0103\\u0105\\u0107\\u0109\\u010B\\u010D\\u010F\\u0111\\u0113\\u0115\\u0117\\u0119\\u011B\\u011D\\u011F\\u0121\\u0123\\u0125\\u0127\\u0129\\u012B\\u012D\\u012F\\u0131\\u0133\\u0135\\u0137-\\u0138\\u013A\\u013C\\u013E\\u0140\\u0142\\u0144\\u0146\\u0148-\\u0149\\u014B\\u014D\\u014F\\u0151\\u0153\\u0155\\u0157\\u0159\\u015B\\u015D\\u015F\\u0161\\u0163\\u0165\\u0167\\u0169\\u016B\\u016D\\u016F\\u0171\\u0173\\u0175\\u0177\\u017A\\u017C\\u017E-\\u0180\\u0183\\u0185\\u0188\\u018C-\\u018D\\u0192\\u0195\\u0199-\\u019B\\u019E\\u01A1\\u01A3\\u01A5\\u01A8\\u01AA-\\u01AB\\u01AD\\u01B0\\u01B4\\u01B6\\u01B9-\\u01BA\\u01BD-\\u01BF\\u01C6\\u01C9\\u01CC\\u01CE\\u01D0\\u01D2\\u01D4\\u01D6\\u01D8\\u01DA\\u01DC-\\u01DD\\u01DF\\u01E1\\u01E3\\u01E5\\u01E7\\u01E9\\u01EB\\u01ED\\u01EF-\\u01F0\\u01F3\\u01F5\\u01F9\\u01FB\\u01FD\\u01FF\\u0201\\u0203\\u0205\\u0207\\u0209\\u020B\\u020D\\u020F\\u0211\\u0213\\u0215\\u0217\\u0219\\u021B\\u021D\\u021F\\u0221\\u0223\\u0225\\u0227\\u0229\\u022B\\u022D\\u022F\\u0231\\u0233-\\u0239\\u023C\\u023F-\\u0240\\u0242\\u0247\\u0249\\u024B\\u024D\\u024F-\\u0293\\u0295-\\u02AF\\u0371\\u0373\\u0377\\u037B-\\u037D\\u0390\\u03AC-\\u03CE\\u03D0-\\u03D1\\u03D5-\\u03D7\\u03D9\\u03DB\\u03DD\\u03DF\\u03E1\\u03E3\\u03E5\\u03E7\\u03E9\\u03EB\\u03ED\\u03EF-\\u03F3\\u03F5\\u03F8\\u03FB-\\u03FC\\u0430-\\u045F\\u0461\\u0463\\u0465\\u0467\\u0469\\u046B\\u046D\\u046F\\u0471\\u0473\\u0475\\u0477\\u0479\\u047B\\u047D\\u047F\\u0481\\u048B\\u048D\\u048F\\u0491\\u0493\\u0495\\u0497\\u0499\\u049B\\u049D\\u049F\\u04A1\\u04A3\\u04A5\\u04A7\\u04A9\\u04AB\\u04AD\\u04AF\\u04B1\\u04B3\\u04B5\\u04B7\\u04B9\\u04BB\\u04BD\\u04BF\\u04C2\\u04C4\\u04C6\\u04C8\\u04CA\\u04CC\\u04CE-\\u04CF\\u04D1\\u04D3\\u04D5\\u04D7\\u04D9\\u04DB\\u04DD\\u04DF\\u04E1\\u04E3\\u04E5\\u04E7\\u04E9\\u04EB\\u04ED\\u04EF\\u04F1\\u04F3\\u04F5\\u04F7\\u04F9\\u04FB\\u04FD\\u04FF\\u0501\\u0503\\u0505\\u0507\\u0509\\u050B\\u050D\\u050F\\u0511\\u0513\\u0515\\u0517\\u0519\\u051B\\u051D\\u051F\\u0521\\u0523\\u0525\\u0527\\u0529\\u052B\\u052D\\u052F\\u0560-\\u0588\\u10D0-\\u10FA\\u10FD-\\u10FF\\u13F8-\\u13FD\\u1C80-\\u1C88\\u1D00-\\u1D2B\\u1D6B-\\u1D77\\u1D79-\\u1D9A\\u1E01\\u1E03\\u1E05\\u1E07\\u1E09\\u1E0B\\u1E0D\\u1E0F\\u1E11\\u1E13\\u1E15\\u1E17\\u1E19\\u1E1B\\u1E1D\\u1E1F\\u1E21\\u1E23\\u1E25\\u1E27\\u1E29\\u1E2B\\u1E2D\\u1E2F\\u1E31\\u1E33\\u1E35\\u1E37\\u1E39\\u1E3B\\u1E3D\\u1E3F\\u1E41\\u1E43\\u1E45\\u1E47\\u1E49\\u1E4B\\u1E4D\\u1E4F\\u1E51\\u1E53\\u1E55\\u1E57\\u1E59\\u1E5B\\u1E5D\\u1E5F\\u1E61\\u1E63\\u1E65\\u1E67\\u1E69\\u1E6B\\u1E6D\\u1E6F\\u1E71\\u1E73\\u1E75\\u1E77\\u1E79\\u1E7B\\u1E7D\\u1E7F\\u1E81\\u1E83\\u1E85\\u1E87\\u1E89\\u1E8B\\u1E8D\\u1E8F\\u1E91\\u1E93\\u1E95-\\u1E9D\\u1E9F\\u1EA1\\u1EA3\\u1EA5\\u1EA7\\u1EA9\\u1EAB\\u1EAD\\u1EAF\\u1EB1\\u1EB3\\u1EB5\\u1EB7\\u1EB9\\u1EBB\\u1EBD\\u1EBF\\u1EC1\\u1EC3\\u1EC5\\u1EC7\\u1EC9\\u1ECB\\u1ECD\\u1ECF\\u1ED1\\u1ED3\\u1ED5\\u1ED7\\u1ED9\\u1EDB\\u1EDD\\u1EDF\\u1EE1\\u1EE3\\u1EE5\\u1EE7\\u1EE9\\u1EEB\\u1EED\\u1EEF\\u1EF1\\u1EF3\\u1EF5\\u1EF7\\u1EF9\\u1EFB\\u1EFD\\u1EFF-\\u1F07\\u1F10-\\u1F15\\u1F20-\\u1F27\\u1F30-\\u1F37\\u1F40-\\u1F45\\u1F50-\\u1F57\\u1F60-\\u1F67\\u1F70-\\u1F7D\\u1F80-\\u1F87\\u1F90-\\u1F97\\u1FA0-\\u1FA7\\u1FB0-\\u1FB4\\u1FB6-\\u1FB7\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FC7\\u1FD0-\\u1FD3\\u1FD6-\\u1FD7\\u1FE0-\\u1FE7\\u1FF2-\\u1FF4\\u1FF6-\\u1FF7\\u210A\\u210E-\\u210F\\u2113\\u212F\\u2134\\u2139\\u213C-\\u213D\\u2146-\\u2149\\u214E\\u2184\\u2C30-\\u2C5E\\u2C61\\u2C65-\\u2C66\\u2C68\\u2C6A\\u2C6C\\u2C71\\u2C73-\\u2C74\\u2C76-\\u2C7B\\u2C81\\u2C83\\u2C85\\u2C87\\u2C89\\u2C8B\\u2C8D\\u2C8F\\u2C91\\u2C93\\u2C95\\u2C97\\u2C99\\u2C9B\\u2C9D\\u2C9F\\u2CA1\\u2CA3\\u2CA5\\u2CA7\\u2CA9\\u2CAB\\u2CAD\\u2CAF\\u2CB1\\u2CB3\\u2CB5\\u2CB7\\u2CB9\\u2CBB\\u2CBD\\u2CBF\\u2CC1\\u2CC3\\u2CC5\\u2CC7\\u2CC9\\u2CCB\\u2CCD\\u2CCF\\u2CD1\\u2CD3\\u2CD5\\u2CD7\\u2CD9\\u2CDB\\u2CDD\\u2CDF\\u2CE1\\u2CE3-\\u2CE4\\u2CEC\\u2CEE\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\uA641\\uA643\\uA645\\uA647\\uA649\\uA64B\\uA64D\\uA64F\\uA651\\uA653\\uA655\\uA657\\uA659\\uA65B\\uA65D\\uA65F\\uA661\\uA663\\uA665\\uA667\\uA669\\uA66B\\uA66D\\uA681\\uA683\\uA685\\uA687\\uA689\\uA68B\\uA68D\\uA68F\\uA691\\uA693\\uA695\\uA697\\uA699\\uA69B\\uA723\\uA725\\uA727\\uA729\\uA72B\\uA72D\\uA72F-\\uA731\\uA733\\uA735\\uA737\\uA739\\uA73B\\uA73D\\uA73F\\uA741\\uA743\\uA745\\uA747\\uA749\\uA74B\\uA74D\\uA74F\\uA751\\uA753\\uA755\\uA757\\uA759\\uA75B\\uA75D\\uA75F\\uA761\\uA763\\uA765\\uA767\\uA769\\uA76B\\uA76D\\uA76F\\uA771-\\uA778\\uA77A\\uA77C\\uA77F\\uA781\\uA783\\uA785\\uA787\\uA78C\\uA78E\\uA791\\uA793-\\uA795\\uA797\\uA799\\uA79B\\uA79D\\uA79F\\uA7A1\\uA7A3\\uA7A5\\uA7A7\\uA7A9\\uA7AF\\uA7B5\\uA7B7\\uA7B9\\uA7FA\\uAB30-\\uAB5A\\uAB60-\\uAB65\\uAB70-\\uABBF\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFF41-\\uFF5A]", chars: []rune{'µ', 'ā', 'ă', 'ą', 'ć', 'ĉ', 'ċ', 'č', 'ď', 'đ', 'ē', 'ĕ', 'ė', 'ę', 'ě', 'ĝ', 'ğ', 'ġ', 'ģ', 'ĥ', 'ħ', 'ĩ', 'ī', 'ĭ', 'į', 'ı', 'ij', 'ĵ', 'ĺ', 'ļ', 'ľ', 'ŀ', 'ł', 'ń', 'ņ', 'ŋ', 'ō', 'ŏ', 'ő', 'œ', 'ŕ', 'ŗ', 'ř', 'ś', 'ŝ', 'ş', 'š', 'ţ', 'ť', 'ŧ', 'ũ', 'ū', 'ŭ', 'ů', 'ű', 'ų', 'ŵ', 'ŷ', 'ź', 'ż', 'ƃ', 'ƅ', 'ƈ', 'ƒ', 'ƕ', 'ƞ', 'ơ', 'ƣ', 'ƥ', 'ƨ', 'ƭ', 'ư', 'ƴ', 'ƶ', 'dž', 'lj', 'nj', 'ǎ', 'ǐ', 'ǒ', 'ǔ', 'ǖ', 'ǘ', 'ǚ', 'ǟ', 'ǡ', 'ǣ', 'ǥ', 'ǧ', 'ǩ', 'ǫ', 'ǭ', 'dz', 'ǵ', 'ǹ', 'ǻ', 'ǽ', 'ǿ', 'ȁ', 'ȃ', 'ȅ', 'ȇ', 'ȉ', 'ȋ', 'ȍ', 'ȏ', 'ȑ', 'ȓ', 'ȕ', 'ȗ', 'ș', 'ț', 'ȝ', 'ȟ', 'ȡ', 'ȣ', 'ȥ', 'ȧ', 'ȩ', 'ȫ', 'ȭ', 'ȯ', 'ȱ', 'ȼ', 'ɂ', 'ɇ', 'ɉ', 'ɋ', 'ɍ', 'ͱ', 'ͳ', 'ͷ', 'ΐ', 'ϙ', 'ϛ', 'ϝ', 'ϟ', 'ϡ', 'ϣ', 'ϥ', 'ϧ', 'ϩ', 'ϫ', 'ϭ', 'ϵ', 'ϸ', 'ѡ', 'ѣ', 'ѥ', 'ѧ', 'ѩ', 'ѫ', 'ѭ', 'ѯ', 'ѱ', 'ѳ', 'ѵ', 'ѷ', 'ѹ', 'ѻ', 'ѽ', 'ѿ', 'ҁ', 'ҋ', 'ҍ', 'ҏ', 'ґ', 'ғ', 'ҕ', 'җ', 'ҙ', 'қ', 'ҝ', 'ҟ', 'ҡ', 'ң', 'ҥ', 'ҧ', 'ҩ', 'ҫ', 'ҭ', 'ү', 'ұ', 'ҳ', 'ҵ', 'ҷ', 'ҹ', 'һ', 'ҽ', 'ҿ', 'ӂ', 'ӄ', 'ӆ', 'ӈ', 'ӊ', 'ӌ', 'ӑ', 'ӓ', 'ӕ', 'ӗ', 'ә', 'ӛ', 'ӝ', 'ӟ', 'ӡ', 'ӣ', 'ӥ', 'ӧ', 'ө', 'ӫ', 'ӭ', 'ӯ', 'ӱ', 'ӳ', 'ӵ', 'ӷ', 'ӹ', 'ӻ', 'ӽ', 'ӿ', 'ԁ', 'ԃ', 'ԅ', 'ԇ', 'ԉ', 'ԋ', 'ԍ', 'ԏ', 'ԑ', 'ԓ', 'ԕ', 'ԗ', 'ԙ', 'ԛ', 'ԝ', 'ԟ', 'ԡ', 'ԣ', 'ԥ', 'ԧ', 'ԩ', 'ԫ', 'ԭ', 'ԯ', 'ḁ', 'ḃ', 'ḅ', 'ḇ', 'ḉ', 'ḋ', 'ḍ', 'ḏ', 'ḑ', 'ḓ', 'ḕ', 'ḗ', 'ḙ', 'ḛ', 'ḝ', 'ḟ', 'ḡ', 'ḣ', 'ḥ', 'ḧ', 'ḩ', 'ḫ', 'ḭ', 'ḯ', 'ḱ', 'ḳ', 'ḵ', 'ḷ', 'ḹ', 'ḻ', 'ḽ', 'ḿ', 'ṁ', 'ṃ', 'ṅ', 'ṇ', 'ṉ', 'ṋ', 'ṍ', 'ṏ', 'ṑ', 'ṓ', 'ṕ', 'ṗ', 'ṙ', 'ṛ', 'ṝ', 'ṟ', 'ṡ', 'ṣ', 'ṥ', 'ṧ', 'ṩ', 'ṫ', 'ṭ', 'ṯ', 'ṱ', 'ṳ', 'ṵ', 'ṷ', 'ṹ', 'ṻ', 'ṽ', 'ṿ', 'ẁ', 'ẃ', 'ẅ', 'ẇ', 'ẉ', 'ẋ', 'ẍ', 'ẏ', 'ẑ', 'ẓ', 'ẟ', 'ạ', 'ả', 'ấ', 'ầ', 'ẩ', 'ẫ', 'ậ', 'ắ', 'ằ', 'ẳ', 'ẵ', 'ặ', 'ẹ', 'ẻ', 'ẽ', 'ế', 'ề', 'ể', 'ễ', 'ệ', 'ỉ', 'ị', 'ọ', 'ỏ', 'ố', 'ồ', 'ổ', 'ỗ', 'ộ', 'ớ', 'ờ', 'ở', 'ỡ', 'ợ', 'ụ', 'ủ', 'ứ', 'ừ', 'ử', 'ữ', 'ự', 'ỳ', 'ỵ', 'ỷ', 'ỹ', 'ỻ', 'ỽ', 'ι', 'ℊ', 'ℓ', 'ℯ', 'ℴ', 'ℹ', 'ⅎ', 'ↄ', 'ⱡ', 'ⱨ', 'ⱪ', 'ⱬ', 'ⱱ', 'ⲁ', 'ⲃ', 'ⲅ', 'ⲇ', 'ⲉ', 'ⲋ', 'ⲍ', 'ⲏ', 'ⲑ', 'ⲓ', 'ⲕ', 'ⲗ', 'ⲙ', 'ⲛ', 'ⲝ', 'ⲟ', 'ⲡ', 'ⲣ', 'ⲥ', 'ⲧ', 'ⲩ', 'ⲫ', 'ⲭ', 'ⲯ', 'ⲱ', 'ⲳ', 'ⲵ', 'ⲷ', 'ⲹ', 'ⲻ', 'ⲽ', 'ⲿ', 'ⳁ', 'ⳃ', 'ⳅ', 'ⳇ', 'ⳉ', 'ⳋ', 'ⳍ', 'ⳏ', 'ⳑ', 'ⳓ', 'ⳕ', 'ⳗ', 'ⳙ', 'ⳛ', 'ⳝ', 'ⳟ', 'ⳡ', 'ⳬ', 'ⳮ', 'ⳳ', 'ⴧ', 'ⴭ', 'ꙁ', 'ꙃ', 'ꙅ', 'ꙇ', 'ꙉ', 'ꙋ', 'ꙍ', 'ꙏ', 'ꙑ', 'ꙓ', 'ꙕ', 'ꙗ', 'ꙙ', 'ꙛ', 'ꙝ', 'ꙟ', 'ꙡ', 'ꙣ', 'ꙥ', 'ꙧ', 'ꙩ', 'ꙫ', 'ꙭ', 'ꚁ', 'ꚃ', 'ꚅ', 'ꚇ', 'ꚉ', 'ꚋ', 'ꚍ', 'ꚏ', 'ꚑ', 'ꚓ', 'ꚕ', 'ꚗ', 'ꚙ', 'ꚛ', 'ꜣ', 'ꜥ', 'ꜧ', 'ꜩ', 'ꜫ', 'ꜭ', 'ꜳ', 'ꜵ', 'ꜷ', 'ꜹ', 'ꜻ', 'ꜽ', 'ꜿ', 'ꝁ', 'ꝃ', 'ꝅ', 'ꝇ', 'ꝉ', 'ꝋ', 'ꝍ', 'ꝏ', 'ꝑ', 'ꝓ', 'ꝕ', 'ꝗ', 'ꝙ', 'ꝛ', 'ꝝ', 'ꝟ', 'ꝡ', 'ꝣ', 'ꝥ', 'ꝧ', 'ꝩ', 'ꝫ', 'ꝭ', 'ꝯ', 'ꝺ', 'ꝼ', 'ꝿ', 'ꞁ', 'ꞃ', 'ꞅ', 'ꞇ', 'ꞌ', 'ꞎ', 'ꞑ', 'ꞗ', 'ꞙ', 'ꞛ', 'ꞝ', 'ꞟ', 'ꞡ', 'ꞣ', 'ꞥ', 'ꞧ', 'ꞩ', 'ꞯ', 'ꞵ', 'ꞷ', 'ꞹ', 'ꟺ'}, ranges: []rune{'a', 'z', 'ß', 'ö', 'ø', 'ÿ', 'ķ', 'ĸ', 'ň', 'ʼn', 'ž', 'ƀ', 'ƌ', 'ƍ', 'ƙ', 'ƛ', 'ƪ', 'ƫ', 'ƹ', 'ƺ', 'ƽ', 'ƿ', 'ǜ', 'ǝ', 'ǯ', 'ǰ', 'ȳ', 'ȹ', 'ȿ', 'ɀ', 'ɏ', 'ʓ', 'ʕ', 'ʯ', 'ͻ', 'ͽ', 'ά', 'ώ', 'ϐ', 'ϑ', 'ϕ', 'ϗ', 'ϯ', 'ϳ', 'ϻ', 'ϼ', 'а', 'џ', 'ӎ', 'ӏ', 'ՠ', 'ֈ', 'ა', 'ჺ', 'ჽ', 'ჿ', 'ᏸ', 'ᏽ', 'ᲀ', 'ᲈ', 'ᴀ', 'ᴫ', 'ᵫ', 'ᵷ', 'ᵹ', 'ᶚ', 'ẕ', 'ẝ', 'ỿ', 'ἇ', 'ἐ', 'ἕ', 'ἠ', 'ἧ', 'ἰ', 'ἷ', 'ὀ', 'ὅ', 'ὐ', 'ὗ', 'ὠ', 'ὧ', 'ὰ', 'ώ', 'ᾀ', 'ᾇ', 'ᾐ', 'ᾗ', 'ᾠ', 'ᾧ', 'ᾰ', 'ᾴ', 'ᾶ', 'ᾷ', 'ῂ', 'ῄ', 'ῆ', 'ῇ', 'ῐ', 'ΐ', 'ῖ', 'ῗ', 'ῠ', 'ῧ', 'ῲ', 'ῴ', 'ῶ', 'ῷ', 'ℎ', 'ℏ', 'ℼ', 'ℽ', 'ⅆ', 'ⅉ', 'ⰰ', 'ⱞ', 'ⱥ', 'ⱦ', 'ⱳ', 'ⱴ', 'ⱶ', 'ⱻ', 'ⳣ', 'ⳤ', 'ⴀ', 'ⴥ', 'ꜯ', 'ꜱ', 'ꝱ', 'ꝸ', 'ꞓ', 'ꞕ', 'ꬰ', 'ꭚ', 'ꭠ', 'ꭥ', 'ꭰ', 'ꮿ', 'ff', 'st', 'ﬓ', 'ﬗ', 'a', 'z'}, @@ -15216,9 +15269,9 @@ var g = &grammar{ }, { name: "Lm", - pos: position{line: 2161, col: 1, offset: 56600}, + pos: position{line: 2166, col: 1, offset: 56784}, expr: &charClassMatcher{ - pos: position{line: 2161, col: 6, offset: 56605}, + pos: position{line: 2166, col: 6, offset: 56789}, val: "[\\u02B0-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0374\\u037A\\u0559\\u0640\\u06E5-\\u06E6\\u07F4-\\u07F5\\u07FA\\u081A\\u0824\\u0828\\u0971\\u0E46\\u0EC6\\u10FC\\u17D7\\u1843\\u1AA7\\u1C78-\\u1C7D\\u1D2C-\\u1D6A\\u1D78\\u1D9B-\\u1DBF\\u2071\\u207F\\u2090-\\u209C\\u2C7C-\\u2C7D\\u2D6F\\u2E2F\\u3005\\u3031-\\u3035\\u303B\\u309D-\\u309E\\u30FC-\\u30FE\\uA015\\uA4F8-\\uA4FD\\uA60C\\uA67F\\uA69C-\\uA69D\\uA717-\\uA71F\\uA770\\uA788\\uA7F8-\\uA7F9\\uA9CF\\uA9E6\\uAA70\\uAADD\\uAAF3-\\uAAF4\\uAB5C-\\uAB5F\\uFF70\\uFF9E-\\uFF9F]", chars: []rune{'ˬ', 'ˮ', 'ʹ', 'ͺ', 'ՙ', 'ـ', 'ߺ', 'ࠚ', 'ࠤ', 'ࠨ', 'ॱ', 'ๆ', 'ໆ', 'ჼ', 'ៗ', 'ᡃ', 'ᪧ', 'ᵸ', 'ⁱ', 'ⁿ', 'ⵯ', 'ⸯ', '々', '〻', 'ꀕ', 'ꘌ', 'ꙿ', 'ꝰ', 'ꞈ', 'ꧏ', 'ꧦ', 'ꩰ', 'ꫝ', 'ー'}, ranges: []rune{'ʰ', 'ˁ', 'ˆ', 'ˑ', 'ˠ', 'ˤ', 'ۥ', 'ۦ', 'ߴ', 'ߵ', 'ᱸ', 'ᱽ', 'ᴬ', 'ᵪ', 'ᶛ', 'ᶿ', 'ₐ', 'ₜ', 'ⱼ', 'ⱽ', '〱', '〵', 'ゝ', 'ゞ', 'ー', 'ヾ', 'ꓸ', 'ꓽ', 'ꚜ', 'ꚝ', 'ꜗ', 'ꜟ', 'ꟸ', 'ꟹ', 'ꫳ', 'ꫴ', 'ꭜ', 'ꭟ', '゙', '゚'}, @@ -15230,9 +15283,9 @@ var g = &grammar{ }, { name: "Lo", - pos: position{line: 2164, col: 1, offset: 57090}, + pos: position{line: 2169, col: 1, offset: 57274}, expr: &charClassMatcher{ - pos: position{line: 2164, col: 6, offset: 57095}, + pos: position{line: 2169, col: 6, offset: 57279}, val: "[\\u00AA\\u00BA\\u01BB\\u01C0-\\u01C3\\u0294\\u05D0-\\u05EA\\u05EF-\\u05F2\\u0620-\\u063F\\u0641-\\u064A\\u066E-\\u066F\\u0671-\\u06D3\\u06D5\\u06EE-\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u0800-\\u0815\\u0840-\\u0858\\u0860-\\u086A\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0972-\\u0980\\u0985-\\u098C\\u098F-\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC-\\u09DD\\u09DF-\\u09E1\\u09F0-\\u09F1\\u09FC\\u0A05-\\u0A0A\\u0A0F-\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32-\\u0A33\\u0A35-\\u0A36\\u0A38-\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2-\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0-\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F-\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32-\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C-\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99-\\u0B9A\\u0B9C\\u0B9E-\\u0B9F\\u0BA3-\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60-\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0-\\u0CE1\\u0CF1-\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32-\\u0E33\\u0E40-\\u0E45\\u0E81-\\u0E82\\u0E84\\u0E87-\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA-\\u0EAB\\u0EAD-\\u0EB0\\u0EB2-\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065-\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u1100-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17DC\\u1820-\\u1842\\u1844-\\u1878\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE-\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C77\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5-\\u1CF6\\u2135-\\u2138\\u2D30-\\u2D67\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u3006\\u303C\\u3041-\\u3096\\u309F\\u30A1-\\u30FA\\u30FF\\u3105-\\u312F\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FEF\\uA000-\\uA014\\uA016-\\uA48C\\uA4D0-\\uA4F7\\uA500-\\uA60B\\uA610-\\uA61F\\uA62A-\\uA62B\\uA66E\\uA6A0-\\uA6E5\\uA78F\\uA7F7\\uA7FB-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD-\\uA8FE\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9E0-\\uA9E4\\uA9E7-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA6F\\uAA71-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5-\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADC\\uAAE0-\\uAAEA\\uAAF2\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40-\\uFB41\\uFB43-\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF66-\\uFF6F\\uFF71-\\uFF9D\\uFFA0-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]", chars: []rune{'ª', 'º', 'ƻ', 'ʔ', 'ە', 'ۿ', 'ܐ', 'ޱ', 'ऽ', 'ॐ', 'ল', 'ঽ', 'ৎ', 'ৼ', 'ਫ਼', 'ઽ', 'ૐ', 'ૹ', 'ଽ', 'ୱ', 'ஃ', 'ஜ', 'ௐ', 'ఽ', 'ಀ', 'ಽ', 'ೞ', 'ഽ', 'ൎ', 'ල', 'ຄ', 'ຊ', 'ຍ', 'ລ', 'ວ', 'ຽ', 'ༀ', 'ဿ', 'ၡ', 'ႎ', 'ቘ', 'ዀ', 'ៜ', 'ᢪ', '〆', '〼', 'ゟ', 'ヿ', 'ꙮ', 'ꞏ', 'ꟷ', 'ꣻ', 'ꩺ', 'ꪱ', 'ꫀ', 'ꫂ', 'ꫲ', 'יִ', 'מּ'}, ranges: []rune{'ǀ', 'ǃ', 'א', 'ת', 'ׯ', 'ײ', 'ؠ', 'ؿ', 'ف', 'ي', 'ٮ', 'ٯ', 'ٱ', 'ۓ', 'ۮ', 'ۯ', 'ۺ', 'ۼ', 'ܒ', 'ܯ', 'ݍ', 'ޥ', 'ߊ', 'ߪ', 'ࠀ', 'ࠕ', 'ࡀ', 'ࡘ', 'ࡠ', 'ࡪ', 'ࢠ', 'ࢴ', 'ࢶ', 'ࢽ', 'ऄ', 'ह', 'क़', 'ॡ', 'ॲ', 'ঀ', 'অ', 'ঌ', 'এ', 'ঐ', 'ও', 'ন', 'প', 'র', 'শ', 'হ', 'ড়', 'ঢ়', 'য়', 'ৡ', 'ৰ', 'ৱ', 'ਅ', 'ਊ', 'ਏ', 'ਐ', 'ਓ', 'ਨ', 'ਪ', 'ਰ', 'ਲ', 'ਲ਼', 'ਵ', 'ਸ਼', 'ਸ', 'ਹ', 'ਖ਼', 'ੜ', 'ੲ', 'ੴ', 'અ', 'ઍ', 'એ', 'ઑ', 'ઓ', 'ન', 'પ', 'ર', 'લ', 'ળ', 'વ', 'હ', 'ૠ', 'ૡ', 'ଅ', 'ଌ', 'ଏ', 'ଐ', 'ଓ', 'ନ', 'ପ', 'ର', 'ଲ', 'ଳ', 'ଵ', 'ହ', 'ଡ଼', 'ଢ଼', 'ୟ', 'ୡ', 'அ', 'ஊ', 'எ', 'ஐ', 'ஒ', 'க', 'ங', 'ச', 'ஞ', 'ட', 'ண', 'த', 'ந', 'ப', 'ம', 'ஹ', 'అ', 'ఌ', 'ఎ', 'ఐ', 'ఒ', 'న', 'ప', 'హ', 'ౘ', 'ౚ', 'ౠ', 'ౡ', 'ಅ', 'ಌ', 'ಎ', 'ಐ', 'ಒ', 'ನ', 'ಪ', 'ಳ', 'ವ', 'ಹ', 'ೠ', 'ೡ', 'ೱ', 'ೲ', 'അ', 'ഌ', 'എ', 'ഐ', 'ഒ', 'ഺ', 'ൔ', 'ൖ', 'ൟ', 'ൡ', 'ൺ', 'ൿ', 'අ', 'ඖ', 'ක', 'න', 'ඳ', 'ර', 'ව', 'ෆ', 'ก', 'ะ', 'า', 'ำ', 'เ', 'ๅ', 'ກ', 'ຂ', 'ງ', 'ຈ', 'ດ', 'ທ', 'ນ', 'ຟ', 'ມ', 'ຣ', 'ສ', 'ຫ', 'ອ', 'ະ', 'າ', 'ຳ', 'ເ', 'ໄ', 'ໜ', 'ໟ', 'ཀ', 'ཇ', 'ཉ', 'ཬ', 'ྈ', 'ྌ', 'က', 'ဪ', 'ၐ', 'ၕ', 'ၚ', 'ၝ', 'ၥ', 'ၦ', 'ၮ', 'ၰ', 'ၵ', 'ႁ', 'ᄀ', 'ቈ', 'ቊ', 'ቍ', 'ቐ', 'ቖ', 'ቚ', 'ቝ', 'በ', 'ኈ', 'ኊ', 'ኍ', 'ነ', 'ኰ', 'ኲ', 'ኵ', 'ኸ', 'ኾ', 'ዂ', 'ዅ', 'ወ', 'ዖ', 'ዘ', 'ጐ', 'ጒ', 'ጕ', 'ጘ', 'ፚ', 'ᎀ', 'ᎏ', 'ᐁ', 'ᙬ', 'ᙯ', 'ᙿ', 'ᚁ', 'ᚚ', 'ᚠ', 'ᛪ', 'ᛱ', 'ᛸ', 'ᜀ', 'ᜌ', 'ᜎ', 'ᜑ', 'ᜠ', 'ᜱ', 'ᝀ', 'ᝑ', 'ᝠ', 'ᝬ', 'ᝮ', 'ᝰ', 'ក', 'ឳ', 'ᠠ', 'ᡂ', 'ᡄ', 'ᡸ', 'ᢀ', 'ᢄ', 'ᢇ', 'ᢨ', 'ᢰ', 'ᣵ', 'ᤀ', 'ᤞ', 'ᥐ', 'ᥭ', 'ᥰ', 'ᥴ', 'ᦀ', 'ᦫ', 'ᦰ', 'ᧉ', 'ᨀ', 'ᨖ', 'ᨠ', 'ᩔ', 'ᬅ', 'ᬳ', 'ᭅ', 'ᭋ', 'ᮃ', 'ᮠ', 'ᮮ', 'ᮯ', 'ᮺ', 'ᯥ', 'ᰀ', 'ᰣ', 'ᱍ', 'ᱏ', 'ᱚ', 'ᱷ', 'ᳩ', 'ᳬ', 'ᳮ', 'ᳱ', 'ᳵ', 'ᳶ', 'ℵ', 'ℸ', 'ⴰ', 'ⵧ', 'ⶀ', 'ⶖ', 'ⶠ', 'ⶦ', 'ⶨ', 'ⶮ', 'ⶰ', 'ⶶ', 'ⶸ', 'ⶾ', 'ⷀ', 'ⷆ', 'ⷈ', 'ⷎ', 'ⷐ', 'ⷖ', 'ⷘ', 'ⷞ', 'ぁ', 'ゖ', 'ァ', 'ヺ', 'ㄅ', 'ㄯ', 'ㄱ', 'ㆎ', 'ㆠ', 'ㆺ', 'ㇰ', 'ㇿ', '㐀', '䶵', '一', '鿯', 'ꀀ', 'ꀔ', 'ꀖ', 'ꒌ', 'ꓐ', 'ꓷ', 'ꔀ', 'ꘋ', 'ꘐ', 'ꘟ', 'ꘪ', 'ꘫ', 'ꚠ', 'ꛥ', 'ꟻ', 'ꠁ', 'ꠃ', 'ꠅ', 'ꠇ', 'ꠊ', 'ꠌ', 'ꠢ', 'ꡀ', 'ꡳ', 'ꢂ', 'ꢳ', 'ꣲ', 'ꣷ', 'ꣽ', 'ꣾ', 'ꤊ', 'ꤥ', 'ꤰ', 'ꥆ', 'ꥠ', 'ꥼ', 'ꦄ', 'ꦲ', 'ꧠ', 'ꧤ', 'ꧧ', 'ꧯ', 'ꧺ', 'ꧾ', 'ꨀ', 'ꨨ', 'ꩀ', 'ꩂ', 'ꩄ', 'ꩋ', 'ꩠ', 'ꩯ', 'ꩱ', 'ꩶ', 'ꩾ', 'ꪯ', 'ꪵ', 'ꪶ', 'ꪹ', 'ꪽ', 'ꫛ', 'ꫜ', 'ꫠ', 'ꫪ', 'ꬁ', 'ꬆ', 'ꬉ', 'ꬎ', 'ꬑ', 'ꬖ', 'ꬠ', 'ꬦ', 'ꬨ', 'ꬮ', 'ꯀ', 'ꯢ', '가', '힣', 'ힰ', 'ퟆ', 'ퟋ', 'ퟻ', '豈', '舘', '並', '龎', 'ײַ', 'ﬨ', 'שׁ', 'זּ', 'טּ', 'לּ', 'נּ', 'סּ', 'ףּ', 'פּ', 'צּ', 'ﮱ', 'ﯓ', 'ﴽ', 'ﵐ', 'ﶏ', 'ﶒ', 'ﷇ', 'ﷰ', 'ﷻ', 'ﹰ', 'ﹴ', 'ﹶ', 'ﻼ', 'ヲ', 'ッ', 'ア', 'ン', 'ᅠ', 'ᄒ', 'ᅡ', 'ᅦ', 'ᅧ', 'ᅬ', 'ᅭ', 'ᅲ', 'ᅳ', 'ᅵ'}, @@ -15244,9 +15297,9 @@ var g = &grammar{ }, { name: "Lt", - pos: position{line: 2167, col: 1, offset: 60542}, + pos: position{line: 2172, col: 1, offset: 60726}, expr: &charClassMatcher{ - pos: position{line: 2167, col: 6, offset: 60547}, + pos: position{line: 2172, col: 6, offset: 60731}, val: "[\\u01C5\\u01C8\\u01CB\\u01F2\\u1F88-\\u1F8F\\u1F98-\\u1F9F\\u1FA8-\\u1FAF\\u1FBC\\u1FCC\\u1FFC]", chars: []rune{'Dž', 'Lj', 'Nj', 'Dz', 'ᾼ', 'ῌ', 'ῼ'}, ranges: []rune{'ᾈ', 'ᾏ', 'ᾘ', 'ᾟ', 'ᾨ', 'ᾯ'}, @@ -15258,9 +15311,9 @@ var g = &grammar{ }, { name: "Lu", - pos: position{line: 2170, col: 1, offset: 60653}, + pos: position{line: 2175, col: 1, offset: 60837}, expr: &charClassMatcher{ - pos: position{line: 2170, col: 6, offset: 60658}, + pos: position{line: 2175, col: 6, offset: 60842}, val: "[\\u0041-\\u005A\\u00C0-\\u00D6\\u00D8-\\u00DE\\u0100\\u0102\\u0104\\u0106\\u0108\\u010A\\u010C\\u010E\\u0110\\u0112\\u0114\\u0116\\u0118\\u011A\\u011C\\u011E\\u0120\\u0122\\u0124\\u0126\\u0128\\u012A\\u012C\\u012E\\u0130\\u0132\\u0134\\u0136\\u0139\\u013B\\u013D\\u013F\\u0141\\u0143\\u0145\\u0147\\u014A\\u014C\\u014E\\u0150\\u0152\\u0154\\u0156\\u0158\\u015A\\u015C\\u015E\\u0160\\u0162\\u0164\\u0166\\u0168\\u016A\\u016C\\u016E\\u0170\\u0172\\u0174\\u0176\\u0178-\\u0179\\u017B\\u017D\\u0181-\\u0182\\u0184\\u0186-\\u0187\\u0189-\\u018B\\u018E-\\u0191\\u0193-\\u0194\\u0196-\\u0198\\u019C-\\u019D\\u019F-\\u01A0\\u01A2\\u01A4\\u01A6-\\u01A7\\u01A9\\u01AC\\u01AE-\\u01AF\\u01B1-\\u01B3\\u01B5\\u01B7-\\u01B8\\u01BC\\u01C4\\u01C7\\u01CA\\u01CD\\u01CF\\u01D1\\u01D3\\u01D5\\u01D7\\u01D9\\u01DB\\u01DE\\u01E0\\u01E2\\u01E4\\u01E6\\u01E8\\u01EA\\u01EC\\u01EE\\u01F1\\u01F4\\u01F6-\\u01F8\\u01FA\\u01FC\\u01FE\\u0200\\u0202\\u0204\\u0206\\u0208\\u020A\\u020C\\u020E\\u0210\\u0212\\u0214\\u0216\\u0218\\u021A\\u021C\\u021E\\u0220\\u0222\\u0224\\u0226\\u0228\\u022A\\u022C\\u022E\\u0230\\u0232\\u023A-\\u023B\\u023D-\\u023E\\u0241\\u0243-\\u0246\\u0248\\u024A\\u024C\\u024E\\u0370\\u0372\\u0376\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u038F\\u0391-\\u03A1\\u03A3-\\u03AB\\u03CF\\u03D2-\\u03D4\\u03D8\\u03DA\\u03DC\\u03DE\\u03E0\\u03E2\\u03E4\\u03E6\\u03E8\\u03EA\\u03EC\\u03EE\\u03F4\\u03F7\\u03F9-\\u03FA\\u03FD-\\u042F\\u0460\\u0462\\u0464\\u0466\\u0468\\u046A\\u046C\\u046E\\u0470\\u0472\\u0474\\u0476\\u0478\\u047A\\u047C\\u047E\\u0480\\u048A\\u048C\\u048E\\u0490\\u0492\\u0494\\u0496\\u0498\\u049A\\u049C\\u049E\\u04A0\\u04A2\\u04A4\\u04A6\\u04A8\\u04AA\\u04AC\\u04AE\\u04B0\\u04B2\\u04B4\\u04B6\\u04B8\\u04BA\\u04BC\\u04BE\\u04C0-\\u04C1\\u04C3\\u04C5\\u04C7\\u04C9\\u04CB\\u04CD\\u04D0\\u04D2\\u04D4\\u04D6\\u04D8\\u04DA\\u04DC\\u04DE\\u04E0\\u04E2\\u04E4\\u04E6\\u04E8\\u04EA\\u04EC\\u04EE\\u04F0\\u04F2\\u04F4\\u04F6\\u04F8\\u04FA\\u04FC\\u04FE\\u0500\\u0502\\u0504\\u0506\\u0508\\u050A\\u050C\\u050E\\u0510\\u0512\\u0514\\u0516\\u0518\\u051A\\u051C\\u051E\\u0520\\u0522\\u0524\\u0526\\u0528\\u052A\\u052C\\u052E\\u0531-\\u0556\\u10A0-\\u10C5\\u10C7\\u10CD\\u13A0-\\u13F5\\u1C90-\\u1CBA\\u1CBD-\\u1CBF\\u1E00\\u1E02\\u1E04\\u1E06\\u1E08\\u1E0A\\u1E0C\\u1E0E\\u1E10\\u1E12\\u1E14\\u1E16\\u1E18\\u1E1A\\u1E1C\\u1E1E\\u1E20\\u1E22\\u1E24\\u1E26\\u1E28\\u1E2A\\u1E2C\\u1E2E\\u1E30\\u1E32\\u1E34\\u1E36\\u1E38\\u1E3A\\u1E3C\\u1E3E\\u1E40\\u1E42\\u1E44\\u1E46\\u1E48\\u1E4A\\u1E4C\\u1E4E\\u1E50\\u1E52\\u1E54\\u1E56\\u1E58\\u1E5A\\u1E5C\\u1E5E\\u1E60\\u1E62\\u1E64\\u1E66\\u1E68\\u1E6A\\u1E6C\\u1E6E\\u1E70\\u1E72\\u1E74\\u1E76\\u1E78\\u1E7A\\u1E7C\\u1E7E\\u1E80\\u1E82\\u1E84\\u1E86\\u1E88\\u1E8A\\u1E8C\\u1E8E\\u1E90\\u1E92\\u1E94\\u1E9E\\u1EA0\\u1EA2\\u1EA4\\u1EA6\\u1EA8\\u1EAA\\u1EAC\\u1EAE\\u1EB0\\u1EB2\\u1EB4\\u1EB6\\u1EB8\\u1EBA\\u1EBC\\u1EBE\\u1EC0\\u1EC2\\u1EC4\\u1EC6\\u1EC8\\u1ECA\\u1ECC\\u1ECE\\u1ED0\\u1ED2\\u1ED4\\u1ED6\\u1ED8\\u1EDA\\u1EDC\\u1EDE\\u1EE0\\u1EE2\\u1EE4\\u1EE6\\u1EE8\\u1EEA\\u1EEC\\u1EEE\\u1EF0\\u1EF2\\u1EF4\\u1EF6\\u1EF8\\u1EFA\\u1EFC\\u1EFE\\u1F08-\\u1F0F\\u1F18-\\u1F1D\\u1F28-\\u1F2F\\u1F38-\\u1F3F\\u1F48-\\u1F4D\\u1F59\\u1F5B\\u1F5D\\u1F5F\\u1F68-\\u1F6F\\u1FB8-\\u1FBB\\u1FC8-\\u1FCB\\u1FD8-\\u1FDB\\u1FE8-\\u1FEC\\u1FF8-\\u1FFB\\u2102\\u2107\\u210B-\\u210D\\u2110-\\u2112\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u2130-\\u2133\\u213E-\\u213F\\u2145\\u2183\\u2C00-\\u2C2E\\u2C60\\u2C62-\\u2C64\\u2C67\\u2C69\\u2C6B\\u2C6D-\\u2C70\\u2C72\\u2C75\\u2C7E-\\u2C80\\u2C82\\u2C84\\u2C86\\u2C88\\u2C8A\\u2C8C\\u2C8E\\u2C90\\u2C92\\u2C94\\u2C96\\u2C98\\u2C9A\\u2C9C\\u2C9E\\u2CA0\\u2CA2\\u2CA4\\u2CA6\\u2CA8\\u2CAA\\u2CAC\\u2CAE\\u2CB0\\u2CB2\\u2CB4\\u2CB6\\u2CB8\\u2CBA\\u2CBC\\u2CBE\\u2CC0\\u2CC2\\u2CC4\\u2CC6\\u2CC8\\u2CCA\\u2CCC\\u2CCE\\u2CD0\\u2CD2\\u2CD4\\u2CD6\\u2CD8\\u2CDA\\u2CDC\\u2CDE\\u2CE0\\u2CE2\\u2CEB\\u2CED\\u2CF2\\uA640\\uA642\\uA644\\uA646\\uA648\\uA64A\\uA64C\\uA64E\\uA650\\uA652\\uA654\\uA656\\uA658\\uA65A\\uA65C\\uA65E\\uA660\\uA662\\uA664\\uA666\\uA668\\uA66A\\uA66C\\uA680\\uA682\\uA684\\uA686\\uA688\\uA68A\\uA68C\\uA68E\\uA690\\uA692\\uA694\\uA696\\uA698\\uA69A\\uA722\\uA724\\uA726\\uA728\\uA72A\\uA72C\\uA72E\\uA732\\uA734\\uA736\\uA738\\uA73A\\uA73C\\uA73E\\uA740\\uA742\\uA744\\uA746\\uA748\\uA74A\\uA74C\\uA74E\\uA750\\uA752\\uA754\\uA756\\uA758\\uA75A\\uA75C\\uA75E\\uA760\\uA762\\uA764\\uA766\\uA768\\uA76A\\uA76C\\uA76E\\uA779\\uA77B\\uA77D-\\uA77E\\uA780\\uA782\\uA784\\uA786\\uA78B\\uA78D\\uA790\\uA792\\uA796\\uA798\\uA79A\\uA79C\\uA79E\\uA7A0\\uA7A2\\uA7A4\\uA7A6\\uA7A8\\uA7AA-\\uA7AE\\uA7B0-\\uA7B4\\uA7B6\\uA7B8\\uFF21-\\uFF3A]", chars: []rune{'Ā', 'Ă', 'Ą', 'Ć', 'Ĉ', 'Ċ', 'Č', 'Ď', 'Đ', 'Ē', 'Ĕ', 'Ė', 'Ę', 'Ě', 'Ĝ', 'Ğ', 'Ġ', 'Ģ', 'Ĥ', 'Ħ', 'Ĩ', 'Ī', 'Ĭ', 'Į', 'İ', 'IJ', 'Ĵ', 'Ķ', 'Ĺ', 'Ļ', 'Ľ', 'Ŀ', 'Ł', 'Ń', 'Ņ', 'Ň', 'Ŋ', 'Ō', 'Ŏ', 'Ő', 'Œ', 'Ŕ', 'Ŗ', 'Ř', 'Ś', 'Ŝ', 'Ş', 'Š', 'Ţ', 'Ť', 'Ŧ', 'Ũ', 'Ū', 'Ŭ', 'Ů', 'Ű', 'Ų', 'Ŵ', 'Ŷ', 'Ż', 'Ž', 'Ƅ', 'Ƣ', 'Ƥ', 'Ʃ', 'Ƭ', 'Ƶ', 'Ƽ', 'DŽ', 'LJ', 'NJ', 'Ǎ', 'Ǐ', 'Ǒ', 'Ǔ', 'Ǖ', 'Ǘ', 'Ǚ', 'Ǜ', 'Ǟ', 'Ǡ', 'Ǣ', 'Ǥ', 'Ǧ', 'Ǩ', 'Ǫ', 'Ǭ', 'Ǯ', 'DZ', 'Ǵ', 'Ǻ', 'Ǽ', 'Ǿ', 'Ȁ', 'Ȃ', 'Ȅ', 'Ȇ', 'Ȉ', 'Ȋ', 'Ȍ', 'Ȏ', 'Ȑ', 'Ȓ', 'Ȕ', 'Ȗ', 'Ș', 'Ț', 'Ȝ', 'Ȟ', 'Ƞ', 'Ȣ', 'Ȥ', 'Ȧ', 'Ȩ', 'Ȫ', 'Ȭ', 'Ȯ', 'Ȱ', 'Ȳ', 'Ɂ', 'Ɉ', 'Ɋ', 'Ɍ', 'Ɏ', 'Ͱ', 'Ͳ', 'Ͷ', 'Ϳ', 'Ά', 'Ό', 'Ϗ', 'Ϙ', 'Ϛ', 'Ϝ', 'Ϟ', 'Ϡ', 'Ϣ', 'Ϥ', 'Ϧ', 'Ϩ', 'Ϫ', 'Ϭ', 'Ϯ', 'ϴ', 'Ϸ', 'Ѡ', 'Ѣ', 'Ѥ', 'Ѧ', 'Ѩ', 'Ѫ', 'Ѭ', 'Ѯ', 'Ѱ', 'Ѳ', 'Ѵ', 'Ѷ', 'Ѹ', 'Ѻ', 'Ѽ', 'Ѿ', 'Ҁ', 'Ҋ', 'Ҍ', 'Ҏ', 'Ґ', 'Ғ', 'Ҕ', 'Җ', 'Ҙ', 'Қ', 'Ҝ', 'Ҟ', 'Ҡ', 'Ң', 'Ҥ', 'Ҧ', 'Ҩ', 'Ҫ', 'Ҭ', 'Ү', 'Ұ', 'Ҳ', 'Ҵ', 'Ҷ', 'Ҹ', 'Һ', 'Ҽ', 'Ҿ', 'Ӄ', 'Ӆ', 'Ӈ', 'Ӊ', 'Ӌ', 'Ӎ', 'Ӑ', 'Ӓ', 'Ӕ', 'Ӗ', 'Ә', 'Ӛ', 'Ӝ', 'Ӟ', 'Ӡ', 'Ӣ', 'Ӥ', 'Ӧ', 'Ө', 'Ӫ', 'Ӭ', 'Ӯ', 'Ӱ', 'Ӳ', 'Ӵ', 'Ӷ', 'Ӹ', 'Ӻ', 'Ӽ', 'Ӿ', 'Ԁ', 'Ԃ', 'Ԅ', 'Ԇ', 'Ԉ', 'Ԋ', 'Ԍ', 'Ԏ', 'Ԑ', 'Ԓ', 'Ԕ', 'Ԗ', 'Ԙ', 'Ԛ', 'Ԝ', 'Ԟ', 'Ԡ', 'Ԣ', 'Ԥ', 'Ԧ', 'Ԩ', 'Ԫ', 'Ԭ', 'Ԯ', 'Ⴧ', 'Ⴭ', 'Ḁ', 'Ḃ', 'Ḅ', 'Ḇ', 'Ḉ', 'Ḋ', 'Ḍ', 'Ḏ', 'Ḑ', 'Ḓ', 'Ḕ', 'Ḗ', 'Ḙ', 'Ḛ', 'Ḝ', 'Ḟ', 'Ḡ', 'Ḣ', 'Ḥ', 'Ḧ', 'Ḩ', 'Ḫ', 'Ḭ', 'Ḯ', 'Ḱ', 'Ḳ', 'Ḵ', 'Ḷ', 'Ḹ', 'Ḻ', 'Ḽ', 'Ḿ', 'Ṁ', 'Ṃ', 'Ṅ', 'Ṇ', 'Ṉ', 'Ṋ', 'Ṍ', 'Ṏ', 'Ṑ', 'Ṓ', 'Ṕ', 'Ṗ', 'Ṙ', 'Ṛ', 'Ṝ', 'Ṟ', 'Ṡ', 'Ṣ', 'Ṥ', 'Ṧ', 'Ṩ', 'Ṫ', 'Ṭ', 'Ṯ', 'Ṱ', 'Ṳ', 'Ṵ', 'Ṷ', 'Ṹ', 'Ṻ', 'Ṽ', 'Ṿ', 'Ẁ', 'Ẃ', 'Ẅ', 'Ẇ', 'Ẉ', 'Ẋ', 'Ẍ', 'Ẏ', 'Ẑ', 'Ẓ', 'Ẕ', 'ẞ', 'Ạ', 'Ả', 'Ấ', 'Ầ', 'Ẩ', 'Ẫ', 'Ậ', 'Ắ', 'Ằ', 'Ẳ', 'Ẵ', 'Ặ', 'Ẹ', 'Ẻ', 'Ẽ', 'Ế', 'Ề', 'Ể', 'Ễ', 'Ệ', 'Ỉ', 'Ị', 'Ọ', 'Ỏ', 'Ố', 'Ồ', 'Ổ', 'Ỗ', 'Ộ', 'Ớ', 'Ờ', 'Ở', 'Ỡ', 'Ợ', 'Ụ', 'Ủ', 'Ứ', 'Ừ', 'Ử', 'Ữ', 'Ự', 'Ỳ', 'Ỵ', 'Ỷ', 'Ỹ', 'Ỻ', 'Ỽ', 'Ỿ', 'Ὑ', 'Ὓ', 'Ὕ', 'Ὗ', 'ℂ', 'ℇ', 'ℕ', 'ℤ', 'Ω', 'ℨ', 'ⅅ', 'Ↄ', 'Ⱡ', 'Ⱨ', 'Ⱪ', 'Ⱬ', 'Ⱳ', 'Ⱶ', 'Ⲃ', 'Ⲅ', 'Ⲇ', 'Ⲉ', 'Ⲋ', 'Ⲍ', 'Ⲏ', 'Ⲑ', 'Ⲓ', 'Ⲕ', 'Ⲗ', 'Ⲙ', 'Ⲛ', 'Ⲝ', 'Ⲟ', 'Ⲡ', 'Ⲣ', 'Ⲥ', 'Ⲧ', 'Ⲩ', 'Ⲫ', 'Ⲭ', 'Ⲯ', 'Ⲱ', 'Ⲳ', 'Ⲵ', 'Ⲷ', 'Ⲹ', 'Ⲻ', 'Ⲽ', 'Ⲿ', 'Ⳁ', 'Ⳃ', 'Ⳅ', 'Ⳇ', 'Ⳉ', 'Ⳋ', 'Ⳍ', 'Ⳏ', 'Ⳑ', 'Ⳓ', 'Ⳕ', 'Ⳗ', 'Ⳙ', 'Ⳛ', 'Ⳝ', 'Ⳟ', 'Ⳡ', 'Ⳣ', 'Ⳬ', 'Ⳮ', 'Ⳳ', 'Ꙁ', 'Ꙃ', 'Ꙅ', 'Ꙇ', 'Ꙉ', 'Ꙋ', 'Ꙍ', 'Ꙏ', 'Ꙑ', 'Ꙓ', 'Ꙕ', 'Ꙗ', 'Ꙙ', 'Ꙛ', 'Ꙝ', 'Ꙟ', 'Ꙡ', 'Ꙣ', 'Ꙥ', 'Ꙧ', 'Ꙩ', 'Ꙫ', 'Ꙭ', 'Ꚁ', 'Ꚃ', 'Ꚅ', 'Ꚇ', 'Ꚉ', 'Ꚋ', 'Ꚍ', 'Ꚏ', 'Ꚑ', 'Ꚓ', 'Ꚕ', 'Ꚗ', 'Ꚙ', 'Ꚛ', 'Ꜣ', 'Ꜥ', 'Ꜧ', 'Ꜩ', 'Ꜫ', 'Ꜭ', 'Ꜯ', 'Ꜳ', 'Ꜵ', 'Ꜷ', 'Ꜹ', 'Ꜻ', 'Ꜽ', 'Ꜿ', 'Ꝁ', 'Ꝃ', 'Ꝅ', 'Ꝇ', 'Ꝉ', 'Ꝋ', 'Ꝍ', 'Ꝏ', 'Ꝑ', 'Ꝓ', 'Ꝕ', 'Ꝗ', 'Ꝙ', 'Ꝛ', 'Ꝝ', 'Ꝟ', 'Ꝡ', 'Ꝣ', 'Ꝥ', 'Ꝧ', 'Ꝩ', 'Ꝫ', 'Ꝭ', 'Ꝯ', 'Ꝺ', 'Ꝼ', 'Ꞁ', 'Ꞃ', 'Ꞅ', 'Ꞇ', 'Ꞌ', 'Ɥ', 'Ꞑ', 'Ꞓ', 'Ꞗ', 'Ꞙ', 'Ꞛ', 'Ꞝ', 'Ꞟ', 'Ꞡ', 'Ꞣ', 'Ꞥ', 'Ꞧ', 'Ꞩ', 'Ꞷ', 'Ꞹ'}, ranges: []rune{'A', 'Z', 'À', 'Ö', 'Ø', 'Þ', 'Ÿ', 'Ź', 'Ɓ', 'Ƃ', 'Ɔ', 'Ƈ', 'Ɖ', 'Ƌ', 'Ǝ', 'Ƒ', 'Ɠ', 'Ɣ', 'Ɩ', 'Ƙ', 'Ɯ', 'Ɲ', 'Ɵ', 'Ơ', 'Ʀ', 'Ƨ', 'Ʈ', 'Ư', 'Ʊ', 'Ƴ', 'Ʒ', 'Ƹ', 'Ƕ', 'Ǹ', 'Ⱥ', 'Ȼ', 'Ƚ', 'Ⱦ', 'Ƀ', 'Ɇ', 'Έ', 'Ί', 'Ύ', 'Ώ', 'Α', 'Ρ', 'Σ', 'Ϋ', 'ϒ', 'ϔ', 'Ϲ', 'Ϻ', 'Ͻ', 'Я', 'Ӏ', 'Ӂ', 'Ա', 'Ֆ', 'Ⴀ', 'Ⴥ', 'Ꭰ', 'Ᏽ', 'Ა', 'Ჺ', 'Ჽ', 'Ჿ', 'Ἀ', 'Ἇ', 'Ἐ', 'Ἕ', 'Ἠ', 'Ἧ', 'Ἰ', 'Ἷ', 'Ὀ', 'Ὅ', 'Ὠ', 'Ὧ', 'Ᾰ', 'Ά', 'Ὲ', 'Ή', 'Ῐ', 'Ί', 'Ῠ', 'Ῥ', 'Ὸ', 'Ώ', 'ℋ', 'ℍ', 'ℐ', 'ℒ', 'ℙ', 'ℝ', 'K', 'ℭ', 'ℰ', 'ℳ', 'ℾ', 'ℿ', 'Ⰰ', 'Ⱞ', 'Ɫ', 'Ɽ', 'Ɑ', 'Ɒ', 'Ȿ', 'Ⲁ', 'Ᵹ', 'Ꝿ', 'Ɦ', 'Ɪ', 'Ʞ', 'Ꞵ', 'A', 'Z'}, @@ -15272,9 +15325,9 @@ var g = &grammar{ }, { name: "Mc", - pos: position{line: 2173, col: 1, offset: 64659}, + pos: position{line: 2178, col: 1, offset: 64843}, expr: &charClassMatcher{ - pos: position{line: 2173, col: 6, offset: 64664}, + pos: position{line: 2178, col: 6, offset: 64848}, val: "[\\u0903\\u093B\\u093E-\\u0940\\u0949-\\u094C\\u094E-\\u094F\\u0982-\\u0983\\u09BE-\\u09C0\\u09C7-\\u09C8\\u09CB-\\u09CC\\u09D7\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB-\\u0ACC\\u0B02-\\u0B03\\u0B3E\\u0B40\\u0B47-\\u0B48\\u0B4B-\\u0B4C\\u0B57\\u0BBE-\\u0BBF\\u0BC1-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0BD7\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82-\\u0C83\\u0CBE\\u0CC0-\\u0CC4\\u0CC7-\\u0CC8\\u0CCA-\\u0CCB\\u0CD5-\\u0CD6\\u0D02-\\u0D03\\u0D3E-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D57\\u0D82-\\u0D83\\u0DCF-\\u0DD1\\u0DD8-\\u0DDF\\u0DF2-\\u0DF3\\u0F3E-\\u0F3F\\u0F7F\\u102B-\\u102C\\u1031\\u1038\\u103B-\\u103C\\u1056-\\u1057\\u1062-\\u1064\\u1067-\\u106D\\u1083-\\u1084\\u1087-\\u108C\\u108F\\u109A-\\u109C\\u17B6\\u17BE-\\u17C5\\u17C7-\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930-\\u1931\\u1933-\\u1938\\u1A19-\\u1A1A\\u1A55\\u1A57\\u1A61\\u1A63-\\u1A64\\u1A6D-\\u1A72\\u1B04\\u1B35\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B44\\u1B82\\u1BA1\\u1BA6-\\u1BA7\\u1BAA\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2-\\u1BF3\\u1C24-\\u1C2B\\u1C34-\\u1C35\\u1CE1\\u1CF2-\\u1CF3\\u1CF7\\u302E-\\u302F\\uA823-\\uA824\\uA827\\uA880-\\uA881\\uA8B4-\\uA8C3\\uA952-\\uA953\\uA983\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BD-\\uA9C0\\uAA2F-\\uAA30\\uAA33-\\uAA34\\uAA4D\\uAA7B\\uAA7D\\uAAEB\\uAAEE-\\uAAEF\\uAAF5\\uABE3-\\uABE4\\uABE6-\\uABE7\\uABE9-\\uABEA\\uABEC]", chars: []rune{'ः', 'ऻ', 'ৗ', 'ਃ', 'ઃ', 'ૉ', 'ା', 'ୀ', 'ୗ', 'ௗ', 'ಾ', 'ൗ', 'ཿ', 'ေ', 'း', 'ႏ', 'ា', 'ᩕ', 'ᩗ', 'ᩡ', 'ᬄ', 'ᬵ', 'ᬻ', 'ᮂ', 'ᮡ', '᮪', 'ᯧ', 'ᯮ', '᳡', '᳷', 'ꠧ', 'ꦃ', 'ꩍ', 'ꩻ', 'ꩽ', 'ꫫ', 'ꫵ', '꯬'}, ranges: []rune{'ा', 'ी', 'ॉ', 'ौ', 'ॎ', 'ॏ', 'ং', 'ঃ', 'া', 'ী', 'ে', 'ৈ', 'ো', 'ৌ', 'ਾ', 'ੀ', 'ા', 'ી', 'ો', 'ૌ', 'ଂ', 'ଃ', 'େ', 'ୈ', 'ୋ', 'ୌ', 'ா', 'ி', 'ு', 'ூ', 'ெ', 'ை', 'ொ', 'ௌ', 'ఁ', 'ః', 'ు', 'ౄ', 'ಂ', 'ಃ', 'ೀ', 'ೄ', 'ೇ', 'ೈ', 'ೊ', 'ೋ', 'ೕ', 'ೖ', 'ം', 'ഃ', 'ാ', 'ീ', 'െ', 'ൈ', 'ൊ', 'ൌ', 'ං', 'ඃ', 'ා', 'ෑ', 'ෘ', 'ෟ', 'ෲ', 'ෳ', '༾', '༿', 'ါ', 'ာ', 'ျ', 'ြ', 'ၖ', 'ၗ', 'ၢ', 'ၤ', 'ၧ', 'ၭ', 'ႃ', 'ႄ', 'ႇ', 'ႌ', 'ႚ', 'ႜ', 'ើ', 'ៅ', 'ះ', 'ៈ', 'ᤣ', 'ᤦ', 'ᤩ', 'ᤫ', 'ᤰ', 'ᤱ', 'ᤳ', 'ᤸ', 'ᨙ', 'ᨚ', 'ᩣ', 'ᩤ', 'ᩭ', 'ᩲ', 'ᬽ', 'ᭁ', 'ᭃ', '᭄', 'ᮦ', 'ᮧ', 'ᯪ', 'ᯬ', '᯲', '᯳', 'ᰤ', 'ᰫ', 'ᰴ', 'ᰵ', 'ᳲ', 'ᳳ', '〮', '〯', 'ꠣ', 'ꠤ', 'ꢀ', 'ꢁ', 'ꢴ', 'ꣃ', 'ꥒ', '꥓', 'ꦴ', 'ꦵ', 'ꦺ', 'ꦻ', 'ꦽ', '꧀', 'ꨯ', 'ꨰ', 'ꨳ', 'ꨴ', 'ꫮ', 'ꫯ', 'ꯣ', 'ꯤ', 'ꯦ', 'ꯧ', 'ꯩ', 'ꯪ'}, @@ -15286,9 +15339,9 @@ var g = &grammar{ }, { name: "Mn", - pos: position{line: 2176, col: 1, offset: 65852}, + pos: position{line: 2181, col: 1, offset: 66036}, expr: &charClassMatcher{ - pos: position{line: 2176, col: 6, offset: 65857}, + pos: position{line: 2181, col: 6, offset: 66041}, val: "[\\u0300-\\u036F\\u0483-\\u0487\\u0591-\\u05BD\\u05BF\\u05C1-\\u05C2\\u05C4-\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7-\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D3-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962-\\u0963\\u0981\\u09BC\\u09C1-\\u09C4\\u09CD\\u09E2-\\u09E3\\u09FE\\u0A01-\\u0A02\\u0A3C\\u0A41-\\u0A42\\u0A47-\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70-\\u0A71\\u0A75\\u0A81-\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7-\\u0AC8\\u0ACD\\u0AE2-\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B56\\u0B62-\\u0B63\\u0B82\\u0BC0\\u0BCD\\u0C00\\u0C04\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55-\\u0C56\\u0C62-\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC6\\u0CCC-\\u0CCD\\u0CE2-\\u0CE3\\u0D00-\\u0D01\\u0D3B-\\u0D3C\\u0D41-\\u0D44\\u0D4D\\u0D62-\\u0D63\\u0DCA\\u0DD2-\\u0DD4\\u0DD6\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB-\\u0EBC\\u0EC8-\\u0ECD\\u0F18-\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86-\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039-\\u103A\\u103D-\\u103E\\u1058-\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085-\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752-\\u1753\\u1772-\\u1773\\u17B4-\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u1885-\\u1886\\u18A9\\u1920-\\u1922\\u1927-\\u1928\\u1932\\u1939-\\u193B\\u1A17-\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ABD\\u1B00-\\u1B03\\u1B34\\u1B36-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80-\\u1B81\\u1BA2-\\u1BA5\\u1BA8-\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8-\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8-\\u1CF9\\u1DC0-\\u1DF9\\u1DFB-\\u1DFF\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302D\\u3099-\\u309A\\uA66F\\uA674-\\uA67D\\uA69E-\\uA69F\\uA6F0-\\uA6F1\\uA802\\uA806\\uA80B\\uA825-\\uA826\\uA8C4-\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9E5\\uAA29-\\uAA2E\\uAA31-\\uAA32\\uAA35-\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7-\\uAAB8\\uAABE-\\uAABF\\uAAC1\\uAAEC-\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F]", chars: []rune{'ֿ', 'ׇ', 'ٰ', 'ܑ', '߽', 'ऺ', '़', '्', 'ঁ', '়', '্', '৾', '਼', 'ੑ', 'ੵ', '઼', '્', 'ଁ', '଼', 'ି', '୍', 'ୖ', 'ஂ', 'ீ', '்', 'ఀ', 'ఄ', 'ಁ', '಼', 'ಿ', 'ೆ', '്', '්', 'ූ', 'ั', 'ັ', '༵', '༷', '༹', '࿆', 'ႂ', 'ႍ', 'ႝ', 'ំ', '៝', 'ᢩ', 'ᤲ', 'ᨛ', 'ᩖ', '᩠', 'ᩢ', '᩿', '᬴', 'ᬼ', 'ᭂ', '᯦', 'ᯭ', '᳭', '᳴', '⃡', '⵿', '꙯', 'ꠂ', '꠆', 'ꠋ', 'ꣿ', '꦳', 'ꦼ', 'ꧥ', 'ꩃ', 'ꩌ', 'ꩼ', 'ꪰ', '꫁', '꫶', 'ꯥ', 'ꯨ', '꯭', 'ﬞ'}, ranges: []rune{'̀', 'ͯ', '҃', '҇', '֑', 'ֽ', 'ׁ', 'ׂ', 'ׄ', 'ׅ', 'ؐ', 'ؚ', 'ً', 'ٟ', 'ۖ', 'ۜ', '۟', 'ۤ', 'ۧ', 'ۨ', '۪', 'ۭ', 'ܰ', '݊', 'ަ', 'ް', '߫', '߳', 'ࠖ', '࠙', 'ࠛ', 'ࠣ', 'ࠥ', 'ࠧ', 'ࠩ', '࠭', '࡙', '࡛', '࣓', '࣡', 'ࣣ', 'ं', 'ु', 'ै', '॑', 'ॗ', 'ॢ', 'ॣ', 'ু', 'ৄ', 'ৢ', 'ৣ', 'ਁ', 'ਂ', 'ੁ', 'ੂ', 'ੇ', 'ੈ', 'ੋ', '੍', 'ੰ', 'ੱ', 'ઁ', 'ં', 'ુ', 'ૅ', 'ે', 'ૈ', 'ૢ', 'ૣ', 'ૺ', '૿', 'ୁ', 'ୄ', 'ୢ', 'ୣ', 'ా', 'ీ', 'ె', 'ై', 'ొ', '్', 'ౕ', 'ౖ', 'ౢ', 'ౣ', 'ೌ', '್', 'ೢ', 'ೣ', 'ഀ', 'ഁ', '഻', '഼', 'ു', 'ൄ', 'ൢ', 'ൣ', 'ි', 'ු', 'ิ', 'ฺ', '็', '๎', 'ິ', 'ູ', 'ົ', 'ຼ', '່', 'ໍ', '༘', '༙', 'ཱ', 'ཾ', 'ྀ', '྄', '྆', '྇', 'ྍ', 'ྗ', 'ྙ', 'ྼ', 'ိ', 'ူ', 'ဲ', '့', '္', '်', 'ွ', 'ှ', 'ၘ', 'ၙ', 'ၞ', 'ၠ', 'ၱ', 'ၴ', 'ႅ', 'ႆ', '፝', '፟', 'ᜒ', '᜔', 'ᜲ', '᜴', 'ᝒ', 'ᝓ', 'ᝲ', 'ᝳ', '឴', '឵', 'ិ', 'ួ', '៉', '៓', '᠋', '᠍', 'ᢅ', 'ᢆ', 'ᤠ', 'ᤢ', 'ᤧ', 'ᤨ', '᤹', '᤻', 'ᨗ', 'ᨘ', 'ᩘ', 'ᩞ', 'ᩥ', 'ᩬ', 'ᩳ', '᩼', '᪰', '᪽', 'ᬀ', 'ᬃ', 'ᬶ', 'ᬺ', '᭫', '᭳', 'ᮀ', 'ᮁ', 'ᮢ', 'ᮥ', 'ᮨ', 'ᮩ', '᮫', 'ᮭ', 'ᯨ', 'ᯩ', 'ᯯ', 'ᯱ', 'ᰬ', 'ᰳ', 'ᰶ', '᰷', '᳐', '᳒', '᳔', '᳠', '᳢', '᳨', '᳸', '᳹', '᷀', '᷹', '᷻', '᷿', '⃐', '⃜', '⃥', '⃰', '⳯', '⳱', 'ⷠ', 'ⷿ', '〪', '〭', '゙', '゚', 'ꙴ', '꙽', 'ꚞ', 'ꚟ', '꛰', '꛱', 'ꠥ', 'ꠦ', '꣄', 'ꣅ', '꣠', '꣱', 'ꤦ', '꤭', 'ꥇ', 'ꥑ', 'ꦀ', 'ꦂ', 'ꦶ', 'ꦹ', 'ꨩ', 'ꨮ', 'ꨱ', 'ꨲ', 'ꨵ', 'ꨶ', 'ꪲ', 'ꪴ', 'ꪷ', 'ꪸ', 'ꪾ', '꪿', 'ꫬ', 'ꫭ', '︀', '️', '︠', '︯'}, @@ -15300,9 +15353,9 @@ var g = &grammar{ }, { name: "Nd", - pos: position{line: 2179, col: 1, offset: 68037}, + pos: position{line: 2184, col: 1, offset: 68221}, expr: &charClassMatcher{ - pos: position{line: 2179, col: 6, offset: 68042}, + pos: position{line: 2184, col: 6, offset: 68226}, val: "[\\u0030-\\u0039\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19]", ranges: []rune{'0', '9', '٠', '٩', '۰', '۹', '߀', '߉', '०', '९', '০', '৯', '੦', '੯', '૦', '૯', '୦', '୯', '௦', '௯', '౦', '౯', '೦', '೯', '൦', '൯', '෦', '෯', '๐', '๙', '໐', '໙', '༠', '༩', '၀', '၉', '႐', '႙', '០', '៩', '᠐', '᠙', '᥆', '᥏', '᧐', '᧙', '᪀', '᪉', '᪐', '᪙', '᭐', '᭙', '᮰', '᮹', '᱀', '᱉', '᱐', '᱙', '꘠', '꘩', '꣐', '꣙', '꤀', '꤉', '꧐', '꧙', '꧰', '꧹', '꩐', '꩙', '꯰', '꯹', '0', '9'}, ignoreCase: false, @@ -15313,9 +15366,9 @@ var g = &grammar{ }, { name: "Nl", - pos: position{line: 2182, col: 1, offset: 68545}, + pos: position{line: 2187, col: 1, offset: 68729}, expr: &charClassMatcher{ - pos: position{line: 2182, col: 6, offset: 68550}, + pos: position{line: 2187, col: 6, offset: 68734}, val: "[\\u16EE-\\u16F0\\u2160-\\u2182\\u2185-\\u2188\\u3007\\u3021-\\u3029\\u3038-\\u303A\\uA6E6-\\uA6EF]", chars: []rune{'〇'}, ranges: []rune{'ᛮ', 'ᛰ', 'Ⅰ', 'ↂ', 'ↅ', 'ↈ', '〡', '〩', '〸', '〺', 'ꛦ', 'ꛯ'}, @@ -15327,9 +15380,9 @@ var g = &grammar{ }, { name: "Pc", - pos: position{line: 2185, col: 1, offset: 68664}, + pos: position{line: 2190, col: 1, offset: 68848}, expr: &charClassMatcher{ - pos: position{line: 2185, col: 6, offset: 68669}, + pos: position{line: 2190, col: 6, offset: 68853}, val: "[\\u005F\\u203F-\\u2040\\u2054\\uFE33-\\uFE34\\uFE4D-\\uFE4F\\uFF3F]", chars: []rune{'_', '⁔', '_'}, ranges: []rune{'‿', '⁀', '︳', '︴', '﹍', '﹏'}, @@ -15341,9 +15394,9 @@ var g = &grammar{ }, { name: "Zs", - pos: position{line: 2188, col: 1, offset: 68750}, + pos: position{line: 2193, col: 1, offset: 68934}, expr: &charClassMatcher{ - pos: position{line: 2188, col: 6, offset: 68755}, + pos: position{line: 2193, col: 6, offset: 68939}, val: "[\\u0020\\u00A0\\u1680\\u2000-\\u200A\\u202F\\u205F\\u3000]", chars: []rune{' ', '\u00a0', '\u1680', '\u202f', '\u205f', '\u3000'}, ranges: []rune{'\u2000', '\u200a'}, @@ -15355,9 +15408,9 @@ var g = &grammar{ }, { name: "SourceCharacter", - pos: position{line: 2190, col: 1, offset: 68808}, + pos: position{line: 2195, col: 1, offset: 68992}, expr: &anyMatcher{ - line: 2191, col: 5, offset: 68828, + line: 2196, col: 5, offset: 69012, }, leader: false, leftRecursive: false, @@ -15365,48 +15418,48 @@ var g = &grammar{ { name: "WhiteSpace", displayName: "\"whitespace\"", - pos: position{line: 2193, col: 1, offset: 68831}, + pos: position{line: 2198, col: 1, offset: 69015}, expr: &choiceExpr{ - pos: position{line: 2194, col: 5, offset: 68859}, + pos: position{line: 2199, col: 5, offset: 69043}, alternatives: []any{ &litMatcher{ - pos: position{line: 2194, col: 5, offset: 68859}, + pos: position{line: 2199, col: 5, offset: 69043}, val: "\t", ignoreCase: false, want: "\"\\t\"", }, &litMatcher{ - pos: position{line: 2195, col: 5, offset: 68868}, + pos: position{line: 2200, col: 5, offset: 69052}, val: "\v", ignoreCase: false, want: "\"\\v\"", }, &litMatcher{ - pos: position{line: 2196, col: 5, offset: 68877}, + pos: position{line: 2201, col: 5, offset: 69061}, val: "\f", ignoreCase: false, want: "\"\\f\"", }, &litMatcher{ - pos: position{line: 2197, col: 5, offset: 68886}, + pos: position{line: 2202, col: 5, offset: 69070}, val: " ", ignoreCase: false, want: "\" \"", }, &litMatcher{ - pos: position{line: 2198, col: 5, offset: 68894}, + pos: position{line: 2203, col: 5, offset: 69078}, val: "\u00a0", ignoreCase: false, want: "\"\\u00a0\"", }, &litMatcher{ - pos: position{line: 2199, col: 5, offset: 68907}, + pos: position{line: 2204, col: 5, offset: 69091}, val: "\ufeff", ignoreCase: false, want: "\"\\ufeff\"", }, &ruleRefExpr{ - pos: position{line: 2200, col: 5, offset: 68920}, + pos: position{line: 2205, col: 5, offset: 69104}, name: "Zs", }, }, @@ -15416,9 +15469,9 @@ var g = &grammar{ }, { name: "LineTerminator", - pos: position{line: 2202, col: 1, offset: 68924}, + pos: position{line: 2207, col: 1, offset: 69108}, expr: &charClassMatcher{ - pos: position{line: 2203, col: 5, offset: 68943}, + pos: position{line: 2208, col: 5, offset: 69127}, val: "[\\n\\r\\u2028\\u2029]", chars: []rune{'\n', '\r', '\u2028', '\u2029'}, ignoreCase: false, @@ -15430,16 +15483,16 @@ var g = &grammar{ { name: "Comment", displayName: "\"comment\"", - pos: position{line: 2205, col: 1, offset: 68963}, + pos: position{line: 2210, col: 1, offset: 69147}, expr: &choiceExpr{ - pos: position{line: 2206, col: 5, offset: 68985}, + pos: position{line: 2211, col: 5, offset: 69169}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2206, col: 5, offset: 68985}, + pos: position{line: 2211, col: 5, offset: 69169}, name: "MultiLineComment", }, &ruleRefExpr{ - pos: position{line: 2207, col: 5, offset: 69006}, + pos: position{line: 2212, col: 5, offset: 69190}, name: "SingleLineComment", }, }, @@ -15449,39 +15502,39 @@ var g = &grammar{ }, { name: "MultiLineComment", - pos: position{line: 2209, col: 1, offset: 69025}, + pos: position{line: 2214, col: 1, offset: 69209}, expr: &seqExpr{ - pos: position{line: 2210, col: 5, offset: 69046}, + pos: position{line: 2215, col: 5, offset: 69230}, exprs: []any{ &litMatcher{ - pos: position{line: 2210, col: 5, offset: 69046}, + pos: position{line: 2215, col: 5, offset: 69230}, val: "/*", ignoreCase: false, want: "\"/*\"", }, &zeroOrMoreExpr{ - pos: position{line: 2210, col: 10, offset: 69051}, + pos: position{line: 2215, col: 10, offset: 69235}, expr: &seqExpr{ - pos: position{line: 2210, col: 11, offset: 69052}, + pos: position{line: 2215, col: 11, offset: 69236}, exprs: []any{ ¬Expr{ - pos: position{line: 2210, col: 11, offset: 69052}, + pos: position{line: 2215, col: 11, offset: 69236}, expr: &litMatcher{ - pos: position{line: 2210, col: 12, offset: 69053}, + pos: position{line: 2215, col: 12, offset: 69237}, val: "*/", ignoreCase: false, want: "\"*/\"", }, }, &ruleRefExpr{ - pos: position{line: 2210, col: 17, offset: 69058}, + pos: position{line: 2215, col: 17, offset: 69242}, name: "SourceCharacter", }, }, }, }, &litMatcher{ - pos: position{line: 2210, col: 35, offset: 69076}, + pos: position{line: 2215, col: 35, offset: 69260}, val: "*/", ignoreCase: false, want: "\"*/\"", @@ -15493,30 +15546,30 @@ var g = &grammar{ }, { name: "SingleLineComment", - pos: position{line: 2212, col: 1, offset: 69082}, + pos: position{line: 2217, col: 1, offset: 69266}, expr: &seqExpr{ - pos: position{line: 2213, col: 5, offset: 69104}, + pos: position{line: 2218, col: 5, offset: 69288}, exprs: []any{ &litMatcher{ - pos: position{line: 2213, col: 5, offset: 69104}, + pos: position{line: 2218, col: 5, offset: 69288}, val: "--", ignoreCase: false, want: "\"--\"", }, &zeroOrMoreExpr{ - pos: position{line: 2213, col: 10, offset: 69109}, + pos: position{line: 2218, col: 10, offset: 69293}, expr: &seqExpr{ - pos: position{line: 2213, col: 11, offset: 69110}, + pos: position{line: 2218, col: 11, offset: 69294}, exprs: []any{ ¬Expr{ - pos: position{line: 2213, col: 11, offset: 69110}, + pos: position{line: 2218, col: 11, offset: 69294}, expr: &ruleRefExpr{ - pos: position{line: 2213, col: 12, offset: 69111}, + pos: position{line: 2218, col: 12, offset: 69295}, name: "LineTerminator", }, }, &ruleRefExpr{ - pos: position{line: 2213, col: 27, offset: 69126}, + pos: position{line: 2218, col: 27, offset: 69310}, name: "SourceCharacter", }, }, @@ -15529,19 +15582,19 @@ var g = &grammar{ }, { name: "EOL", - pos: position{line: 2215, col: 1, offset: 69145}, + pos: position{line: 2220, col: 1, offset: 69329}, expr: &seqExpr{ - pos: position{line: 2215, col: 7, offset: 69151}, + pos: position{line: 2220, col: 7, offset: 69335}, exprs: []any{ &zeroOrMoreExpr{ - pos: position{line: 2215, col: 7, offset: 69151}, + pos: position{line: 2220, col: 7, offset: 69335}, expr: &ruleRefExpr{ - pos: position{line: 2215, col: 7, offset: 69151}, + pos: position{line: 2220, col: 7, offset: 69335}, name: "WhiteSpace", }, }, &ruleRefExpr{ - pos: position{line: 2215, col: 19, offset: 69163}, + pos: position{line: 2220, col: 19, offset: 69347}, name: "LineTerminator", }, }, @@ -15551,16 +15604,16 @@ var g = &grammar{ }, { name: "EOT", - pos: position{line: 2217, col: 1, offset: 69179}, + pos: position{line: 2222, col: 1, offset: 69363}, expr: &choiceExpr{ - pos: position{line: 2217, col: 7, offset: 69185}, + pos: position{line: 2222, col: 7, offset: 69369}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2217, col: 7, offset: 69185}, + pos: position{line: 2222, col: 7, offset: 69369}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2217, col: 11, offset: 69189}, + pos: position{line: 2222, col: 11, offset: 69373}, name: "EOF", }, }, @@ -15570,11 +15623,11 @@ var g = &grammar{ }, { name: "EOF", - pos: position{line: 2219, col: 1, offset: 69194}, + pos: position{line: 2224, col: 1, offset: 69378}, expr: ¬Expr{ - pos: position{line: 2219, col: 7, offset: 69200}, + pos: position{line: 2224, col: 7, offset: 69384}, expr: &anyMatcher{ - line: 2219, col: 8, offset: 69201, + line: 2224, col: 8, offset: 69385, }, }, leader: false, @@ -15582,15 +15635,15 @@ var g = &grammar{ }, { name: "SQLPipe", - pos: position{line: 2223, col: 1, offset: 69226}, + pos: position{line: 2228, col: 1, offset: 69410}, expr: &actionExpr{ - pos: position{line: 2224, col: 5, offset: 69238}, + pos: position{line: 2229, col: 5, offset: 69422}, run: (*parser).callonSQLPipe1, expr: &labeledExpr{ - pos: position{line: 2224, col: 5, offset: 69238}, + pos: position{line: 2229, col: 5, offset: 69422}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 2224, col: 7, offset: 69240}, + pos: position{line: 2229, col: 7, offset: 69424}, name: "Seq", }, }, @@ -15600,15 +15653,15 @@ var g = &grammar{ }, { name: "SQLOp", - pos: position{line: 2232, col: 1, offset: 69387}, + pos: position{line: 2237, col: 1, offset: 69571}, expr: &actionExpr{ - pos: position{line: 2233, col: 5, offset: 69397}, + pos: position{line: 2238, col: 5, offset: 69581}, run: (*parser).callonSQLOp1, expr: &labeledExpr{ - pos: position{line: 2233, col: 5, offset: 69397}, + pos: position{line: 2238, col: 5, offset: 69581}, label: "query", expr: &ruleRefExpr{ - pos: position{line: 2233, col: 11, offset: 69403}, + pos: position{line: 2238, col: 11, offset: 69587}, name: "SQLQuery", }, }, @@ -15618,42 +15671,42 @@ var g = &grammar{ }, { name: "SQLQuery", - pos: position{line: 2241, col: 1, offset: 69540}, + pos: position{line: 2246, col: 1, offset: 69724}, expr: &actionExpr{ - pos: position{line: 2242, col: 5, offset: 69553}, + pos: position{line: 2247, col: 5, offset: 69737}, run: (*parser).callonSQLQuery1, expr: &seqExpr{ - pos: position{line: 2242, col: 5, offset: 69553}, + pos: position{line: 2247, col: 5, offset: 69737}, exprs: []any{ &labeledExpr{ - pos: position{line: 2242, col: 5, offset: 69553}, + pos: position{line: 2247, col: 5, offset: 69737}, label: "with", expr: &ruleRefExpr{ - pos: position{line: 2242, col: 10, offset: 69558}, + pos: position{line: 2247, col: 10, offset: 69742}, name: "OptWithClause", }, }, &labeledExpr{ - pos: position{line: 2243, col: 5, offset: 69576}, + pos: position{line: 2248, col: 5, offset: 69760}, label: "body", expr: &ruleRefExpr{ - pos: position{line: 2243, col: 10, offset: 69581}, + pos: position{line: 2248, col: 10, offset: 69765}, name: "SQLBodySetOp", }, }, &labeledExpr{ - pos: position{line: 2244, col: 5, offset: 69598}, + pos: position{line: 2249, col: 5, offset: 69782}, label: "orderby", expr: &ruleRefExpr{ - pos: position{line: 2244, col: 13, offset: 69606}, + pos: position{line: 2249, col: 13, offset: 69790}, name: "OptOrderByClause", }, }, &labeledExpr{ - pos: position{line: 2245, col: 5, offset: 69627}, + pos: position{line: 2250, col: 5, offset: 69811}, label: "loff", expr: &ruleRefExpr{ - pos: position{line: 2245, col: 10, offset: 69632}, + pos: position{line: 2250, col: 10, offset: 69816}, name: "OptSQLLimitOffset", }, }, @@ -15665,39 +15718,39 @@ var g = &grammar{ }, { name: "SQLBodySetOp", - pos: position{line: 2263, col: 1, offset: 70049}, + pos: position{line: 2268, col: 1, offset: 70233}, expr: &actionExpr{ - pos: position{line: 2264, col: 5, offset: 70066}, + pos: position{line: 2269, col: 5, offset: 70250}, run: (*parser).callonSQLBodySetOp1, expr: &seqExpr{ - pos: position{line: 2264, col: 5, offset: 70066}, + pos: position{line: 2269, col: 5, offset: 70250}, exprs: []any{ &labeledExpr{ - pos: position{line: 2264, col: 5, offset: 70066}, + pos: position{line: 2269, col: 5, offset: 70250}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 2264, col: 11, offset: 70072}, + pos: position{line: 2269, col: 11, offset: 70256}, name: "SQLQueryBody", }, }, &labeledExpr{ - pos: position{line: 2264, col: 24, offset: 70085}, + pos: position{line: 2269, col: 24, offset: 70269}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 2264, col: 29, offset: 70090}, + pos: position{line: 2269, col: 29, offset: 70274}, expr: &seqExpr{ - pos: position{line: 2264, col: 30, offset: 70091}, + pos: position{line: 2269, col: 30, offset: 70275}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2264, col: 30, offset: 70091}, + pos: position{line: 2269, col: 30, offset: 70275}, name: "SetOp", }, &ruleRefExpr{ - pos: position{line: 2264, col: 36, offset: 70097}, + pos: position{line: 2269, col: 36, offset: 70281}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2264, col: 38, offset: 70099}, + pos: position{line: 2269, col: 38, offset: 70283}, name: "SQLQueryBody", }, }, @@ -15712,52 +15765,52 @@ var g = &grammar{ }, { name: "SQLQueryBody", - pos: position{line: 2280, col: 1, offset: 70497}, + pos: position{line: 2285, col: 1, offset: 70681}, expr: &choiceExpr{ - pos: position{line: 2281, col: 5, offset: 70514}, + pos: position{line: 2286, col: 5, offset: 70698}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2281, col: 5, offset: 70514}, + pos: position{line: 2286, col: 5, offset: 70698}, name: "Select", }, &ruleRefExpr{ - pos: position{line: 2282, col: 5, offset: 70525}, + pos: position{line: 2287, col: 5, offset: 70709}, name: "FromSelect", }, &ruleRefExpr{ - pos: position{line: 2283, col: 5, offset: 70540}, + pos: position{line: 2288, col: 5, offset: 70724}, name: "SQLValues", }, &actionExpr{ - pos: position{line: 2284, col: 5, offset: 70554}, + pos: position{line: 2289, col: 5, offset: 70738}, run: (*parser).callonSQLQueryBody5, expr: &seqExpr{ - pos: position{line: 2284, col: 5, offset: 70554}, + pos: position{line: 2289, col: 5, offset: 70738}, exprs: []any{ &litMatcher{ - pos: position{line: 2284, col: 5, offset: 70554}, + pos: position{line: 2289, col: 5, offset: 70738}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 2284, col: 9, offset: 70558}, + pos: position{line: 2289, col: 9, offset: 70742}, name: "__", }, &labeledExpr{ - pos: position{line: 2284, col: 12, offset: 70561}, + pos: position{line: 2289, col: 12, offset: 70745}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 2284, col: 14, offset: 70563}, + pos: position{line: 2289, col: 14, offset: 70747}, name: "SQLQueryOrSetExpr", }, }, &ruleRefExpr{ - pos: position{line: 2284, col: 32, offset: 70581}, + pos: position{line: 2289, col: 32, offset: 70765}, name: "__", }, &litMatcher{ - pos: position{line: 2284, col: 34, offset: 70583}, + pos: position{line: 2289, col: 34, offset: 70767}, val: ")", ignoreCase: false, want: "\")\"", @@ -15772,16 +15825,16 @@ var g = &grammar{ }, { name: "SQLQueryOrSetExpr", - pos: position{line: 2286, col: 1, offset: 70606}, + pos: position{line: 2291, col: 1, offset: 70790}, expr: &choiceExpr{ - pos: position{line: 2286, col: 21, offset: 70626}, + pos: position{line: 2291, col: 21, offset: 70810}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2286, col: 21, offset: 70626}, + pos: position{line: 2291, col: 21, offset: 70810}, name: "SQLQuery", }, &ruleRefExpr{ - pos: position{line: 2286, col: 32, offset: 70637}, + pos: position{line: 2291, col: 32, offset: 70821}, name: "SQLBodySetOp", }, }, @@ -15791,69 +15844,69 @@ var g = &grammar{ }, { name: "Select", - pos: position{line: 2288, col: 1, offset: 70651}, + pos: position{line: 2293, col: 1, offset: 70835}, expr: &actionExpr{ - pos: position{line: 2289, col: 5, offset: 70662}, + pos: position{line: 2294, col: 5, offset: 70846}, run: (*parser).callonSelect1, expr: &seqExpr{ - pos: position{line: 2289, col: 5, offset: 70662}, + pos: position{line: 2294, col: 5, offset: 70846}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2289, col: 5, offset: 70662}, + pos: position{line: 2294, col: 5, offset: 70846}, name: "SELECT", }, &labeledExpr{ - pos: position{line: 2290, col: 5, offset: 70673}, + pos: position{line: 2295, col: 5, offset: 70857}, label: "distinct", expr: &ruleRefExpr{ - pos: position{line: 2290, col: 14, offset: 70682}, + pos: position{line: 2295, col: 14, offset: 70866}, name: "OptDistinct", }, }, &ruleRefExpr{ - pos: position{line: 2293, col: 5, offset: 70818}, + pos: position{line: 2298, col: 5, offset: 71002}, name: "_", }, &labeledExpr{ - pos: position{line: 2293, col: 7, offset: 70820}, + pos: position{line: 2298, col: 7, offset: 71004}, label: "selection", expr: &ruleRefExpr{ - pos: position{line: 2293, col: 17, offset: 70830}, + pos: position{line: 2298, col: 17, offset: 71014}, name: "Selection", }, }, &labeledExpr{ - pos: position{line: 2294, col: 5, offset: 70844}, + pos: position{line: 2299, col: 5, offset: 71028}, label: "from", expr: &ruleRefExpr{ - pos: position{line: 2294, col: 10, offset: 70849}, + pos: position{line: 2299, col: 10, offset: 71033}, name: "OptFromClause", }, }, &labeledExpr{ - pos: position{line: 2295, col: 5, offset: 70867}, + pos: position{line: 2300, col: 5, offset: 71051}, label: "where", expr: &zeroOrOneExpr{ - pos: position{line: 2295, col: 11, offset: 70873}, + pos: position{line: 2300, col: 11, offset: 71057}, expr: &ruleRefExpr{ - pos: position{line: 2295, col: 11, offset: 70873}, + pos: position{line: 2300, col: 11, offset: 71057}, name: "WhereClause", }, }, }, &labeledExpr{ - pos: position{line: 2296, col: 5, offset: 70890}, + pos: position{line: 2301, col: 5, offset: 71074}, label: "group", expr: &ruleRefExpr{ - pos: position{line: 2296, col: 11, offset: 70896}, + pos: position{line: 2301, col: 11, offset: 71080}, name: "OptGroupClause", }, }, &labeledExpr{ - pos: position{line: 2297, col: 5, offset: 70915}, + pos: position{line: 2302, col: 5, offset: 71099}, label: "having", expr: &ruleRefExpr{ - pos: position{line: 2297, col: 12, offset: 70922}, + pos: position{line: 2302, col: 12, offset: 71106}, name: "OptHavingClause", }, }, @@ -15865,81 +15918,81 @@ var g = &grammar{ }, { name: "FromSelect", - pos: position{line: 2322, col: 1, offset: 71513}, + pos: position{line: 2327, col: 1, offset: 71697}, expr: &actionExpr{ - pos: position{line: 2323, col: 5, offset: 71528}, + pos: position{line: 2328, col: 5, offset: 71712}, run: (*parser).callonFromSelect1, expr: &seqExpr{ - pos: position{line: 2323, col: 5, offset: 71528}, + pos: position{line: 2328, col: 5, offset: 71712}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2323, col: 5, offset: 71528}, + pos: position{line: 2328, col: 5, offset: 71712}, name: "FROM", }, &ruleRefExpr{ - pos: position{line: 2323, col: 10, offset: 71533}, + pos: position{line: 2328, col: 10, offset: 71717}, name: "_", }, &labeledExpr{ - pos: position{line: 2323, col: 12, offset: 71535}, + pos: position{line: 2328, col: 12, offset: 71719}, label: "from", expr: &ruleRefExpr{ - pos: position{line: 2323, col: 17, offset: 71540}, + pos: position{line: 2328, col: 17, offset: 71724}, name: "JoinedTable", }, }, &ruleRefExpr{ - pos: position{line: 2323, col: 29, offset: 71552}, + pos: position{line: 2328, col: 29, offset: 71736}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2323, col: 31, offset: 71554}, + pos: position{line: 2328, col: 31, offset: 71738}, name: "SELECT", }, &labeledExpr{ - pos: position{line: 2324, col: 5, offset: 71565}, + pos: position{line: 2329, col: 5, offset: 71749}, label: "distinct", expr: &ruleRefExpr{ - pos: position{line: 2324, col: 14, offset: 71574}, + pos: position{line: 2329, col: 14, offset: 71758}, name: "OptDistinct", }, }, &ruleRefExpr{ - pos: position{line: 2327, col: 5, offset: 71710}, + pos: position{line: 2332, col: 5, offset: 71894}, name: "_", }, &labeledExpr{ - pos: position{line: 2327, col: 7, offset: 71712}, + pos: position{line: 2332, col: 7, offset: 71896}, label: "selection", expr: &ruleRefExpr{ - pos: position{line: 2327, col: 17, offset: 71722}, + pos: position{line: 2332, col: 17, offset: 71906}, name: "Selection", }, }, &labeledExpr{ - pos: position{line: 2328, col: 5, offset: 71736}, + pos: position{line: 2333, col: 5, offset: 71920}, label: "where", expr: &zeroOrOneExpr{ - pos: position{line: 2328, col: 11, offset: 71742}, + pos: position{line: 2333, col: 11, offset: 71926}, expr: &ruleRefExpr{ - pos: position{line: 2328, col: 11, offset: 71742}, + pos: position{line: 2333, col: 11, offset: 71926}, name: "WhereClause", }, }, }, &labeledExpr{ - pos: position{line: 2329, col: 5, offset: 71759}, + pos: position{line: 2334, col: 5, offset: 71943}, label: "group", expr: &ruleRefExpr{ - pos: position{line: 2329, col: 11, offset: 71765}, + pos: position{line: 2334, col: 11, offset: 71949}, name: "OptGroupClause", }, }, &labeledExpr{ - pos: position{line: 2330, col: 5, offset: 71784}, + pos: position{line: 2335, col: 5, offset: 71968}, label: "having", expr: &ruleRefExpr{ - pos: position{line: 2330, col: 12, offset: 71791}, + pos: position{line: 2335, col: 12, offset: 71975}, name: "OptHavingClause", }, }, @@ -15951,30 +16004,30 @@ var g = &grammar{ }, { name: "WhereClause", - pos: position{line: 2355, col: 1, offset: 72382}, + pos: position{line: 2360, col: 1, offset: 72566}, expr: &actionExpr{ - pos: position{line: 2355, col: 15, offset: 72396}, + pos: position{line: 2360, col: 15, offset: 72580}, run: (*parser).callonWhereClause1, expr: &seqExpr{ - pos: position{line: 2355, col: 15, offset: 72396}, + pos: position{line: 2360, col: 15, offset: 72580}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2355, col: 15, offset: 72396}, + pos: position{line: 2360, col: 15, offset: 72580}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2355, col: 17, offset: 72398}, + pos: position{line: 2360, col: 17, offset: 72582}, name: "WHERE", }, &ruleRefExpr{ - pos: position{line: 2355, col: 23, offset: 72404}, + pos: position{line: 2360, col: 23, offset: 72588}, name: "_", }, &labeledExpr{ - pos: position{line: 2355, col: 25, offset: 72406}, + pos: position{line: 2360, col: 25, offset: 72590}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 2355, col: 30, offset: 72411}, + pos: position{line: 2360, col: 30, offset: 72595}, name: "LogicalOrExpr", }, }, @@ -15986,26 +16039,26 @@ var g = &grammar{ }, { name: "SQLValues", - pos: position{line: 2357, col: 1, offset: 72447}, + pos: position{line: 2362, col: 1, offset: 72631}, expr: &actionExpr{ - pos: position{line: 2358, col: 5, offset: 72461}, + pos: position{line: 2363, col: 5, offset: 72645}, run: (*parser).callonSQLValues1, expr: &seqExpr{ - pos: position{line: 2358, col: 5, offset: 72461}, + pos: position{line: 2363, col: 5, offset: 72645}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2358, col: 5, offset: 72461}, + pos: position{line: 2363, col: 5, offset: 72645}, name: "VALUES", }, &ruleRefExpr{ - pos: position{line: 2358, col: 12, offset: 72468}, + pos: position{line: 2363, col: 12, offset: 72652}, name: "__", }, &labeledExpr{ - pos: position{line: 2358, col: 15, offset: 72471}, + pos: position{line: 2363, col: 15, offset: 72655}, label: "tuples", expr: &ruleRefExpr{ - pos: position{line: 2358, col: 22, offset: 72478}, + pos: position{line: 2363, col: 22, offset: 72662}, name: "SQLTuples", }, }, @@ -16017,26 +16070,26 @@ var g = &grammar{ }, { name: "ValuesOp", - pos: position{line: 2366, col: 1, offset: 72635}, + pos: position{line: 2371, col: 1, offset: 72819}, expr: &actionExpr{ - pos: position{line: 2367, col: 5, offset: 72648}, + pos: position{line: 2372, col: 5, offset: 72832}, run: (*parser).callonValuesOp1, expr: &seqExpr{ - pos: position{line: 2367, col: 5, offset: 72648}, + pos: position{line: 2372, col: 5, offset: 72832}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2367, col: 5, offset: 72648}, + pos: position{line: 2372, col: 5, offset: 72832}, name: "VALUES", }, &ruleRefExpr{ - pos: position{line: 2367, col: 12, offset: 72655}, + pos: position{line: 2372, col: 12, offset: 72839}, name: "_", }, &labeledExpr{ - pos: position{line: 2367, col: 14, offset: 72657}, + pos: position{line: 2372, col: 14, offset: 72841}, label: "exprs", expr: &ruleRefExpr{ - pos: position{line: 2367, col: 20, offset: 72663}, + pos: position{line: 2372, col: 20, offset: 72847}, name: "Exprs", }, }, @@ -16048,51 +16101,51 @@ var g = &grammar{ }, { name: "SQLTuples", - pos: position{line: 2376, col: 1, offset: 72814}, + pos: position{line: 2381, col: 1, offset: 72998}, expr: &actionExpr{ - pos: position{line: 2377, col: 5, offset: 72828}, + pos: position{line: 2382, col: 5, offset: 73012}, run: (*parser).callonSQLTuples1, expr: &seqExpr{ - pos: position{line: 2377, col: 5, offset: 72828}, + pos: position{line: 2382, col: 5, offset: 73012}, exprs: []any{ &labeledExpr{ - pos: position{line: 2377, col: 5, offset: 72828}, + pos: position{line: 2382, col: 5, offset: 73012}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 2377, col: 11, offset: 72834}, + pos: position{line: 2382, col: 11, offset: 73018}, name: "SQLTuple", }, }, &labeledExpr{ - pos: position{line: 2377, col: 20, offset: 72843}, + pos: position{line: 2382, col: 20, offset: 73027}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 2377, col: 25, offset: 72848}, + pos: position{line: 2382, col: 25, offset: 73032}, expr: &actionExpr{ - pos: position{line: 2377, col: 26, offset: 72849}, + pos: position{line: 2382, col: 26, offset: 73033}, run: (*parser).callonSQLTuples7, expr: &seqExpr{ - pos: position{line: 2377, col: 26, offset: 72849}, + pos: position{line: 2382, col: 26, offset: 73033}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2377, col: 26, offset: 72849}, + pos: position{line: 2382, col: 26, offset: 73033}, name: "__", }, &litMatcher{ - pos: position{line: 2377, col: 29, offset: 72852}, + pos: position{line: 2382, col: 29, offset: 73036}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 2377, col: 33, offset: 72856}, + pos: position{line: 2382, col: 33, offset: 73040}, name: "__", }, &labeledExpr{ - pos: position{line: 2377, col: 36, offset: 72859}, + pos: position{line: 2382, col: 36, offset: 73043}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 2377, col: 38, offset: 72861}, + pos: position{line: 2382, col: 38, offset: 73045}, name: "SQLTuple", }, }, @@ -16109,37 +16162,37 @@ var g = &grammar{ }, { name: "SQLTuple", - pos: position{line: 2381, col: 1, offset: 72938}, + pos: position{line: 2386, col: 1, offset: 73122}, expr: &actionExpr{ - pos: position{line: 2382, col: 5, offset: 72951}, + pos: position{line: 2387, col: 5, offset: 73135}, run: (*parser).callonSQLTuple1, expr: &seqExpr{ - pos: position{line: 2382, col: 5, offset: 72951}, + pos: position{line: 2387, col: 5, offset: 73135}, exprs: []any{ &litMatcher{ - pos: position{line: 2382, col: 5, offset: 72951}, + pos: position{line: 2387, col: 5, offset: 73135}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 2382, col: 9, offset: 72955}, + pos: position{line: 2387, col: 9, offset: 73139}, name: "__", }, &labeledExpr{ - pos: position{line: 2382, col: 12, offset: 72958}, + pos: position{line: 2387, col: 12, offset: 73142}, label: "exprs", expr: &ruleRefExpr{ - pos: position{line: 2382, col: 18, offset: 72964}, + pos: position{line: 2387, col: 18, offset: 73148}, name: "Exprs", }, }, &ruleRefExpr{ - pos: position{line: 2382, col: 24, offset: 72970}, + pos: position{line: 2387, col: 24, offset: 73154}, name: "__", }, &litMatcher{ - pos: position{line: 2382, col: 27, offset: 72973}, + pos: position{line: 2387, col: 27, offset: 73157}, val: ")", ignoreCase: false, want: "\")\"", @@ -16152,49 +16205,49 @@ var g = &grammar{ }, { name: "OptDistinct", - pos: position{line: 2390, col: 1, offset: 73117}, + pos: position{line: 2395, col: 1, offset: 73301}, expr: &choiceExpr{ - pos: position{line: 2391, col: 5, offset: 73133}, + pos: position{line: 2396, col: 5, offset: 73317}, alternatives: []any{ &actionExpr{ - pos: position{line: 2391, col: 5, offset: 73133}, + pos: position{line: 2396, col: 5, offset: 73317}, run: (*parser).callonOptDistinct2, expr: &seqExpr{ - pos: position{line: 2391, col: 5, offset: 73133}, + pos: position{line: 2396, col: 5, offset: 73317}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2391, col: 5, offset: 73133}, + pos: position{line: 2396, col: 5, offset: 73317}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2391, col: 7, offset: 73135}, + pos: position{line: 2396, col: 7, offset: 73319}, name: "ALL", }, }, }, }, &actionExpr{ - pos: position{line: 2392, col: 5, offset: 73172}, + pos: position{line: 2397, col: 5, offset: 73356}, run: (*parser).callonOptDistinct6, expr: &seqExpr{ - pos: position{line: 2392, col: 5, offset: 73172}, + pos: position{line: 2397, col: 5, offset: 73356}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2392, col: 5, offset: 73172}, + pos: position{line: 2397, col: 5, offset: 73356}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2392, col: 7, offset: 73174}, + pos: position{line: 2397, col: 7, offset: 73358}, name: "DISTINCT", }, }, }, }, &actionExpr{ - pos: position{line: 2393, col: 5, offset: 73210}, + pos: position{line: 2398, col: 5, offset: 73394}, run: (*parser).callonOptDistinct10, expr: &litMatcher{ - pos: position{line: 2393, col: 5, offset: 73210}, + pos: position{line: 2398, col: 5, offset: 73394}, val: "", ignoreCase: false, want: "\"\"", @@ -16207,19 +16260,19 @@ var g = &grammar{ }, { name: "OptWithClause", - pos: position{line: 2395, col: 1, offset: 73249}, + pos: position{line: 2400, col: 1, offset: 73433}, expr: &choiceExpr{ - pos: position{line: 2396, col: 5, offset: 73267}, + pos: position{line: 2401, col: 5, offset: 73451}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2396, col: 5, offset: 73267}, + pos: position{line: 2401, col: 5, offset: 73451}, name: "WithClause", }, &actionExpr{ - pos: position{line: 2397, col: 5, offset: 73282}, + pos: position{line: 2402, col: 5, offset: 73466}, run: (*parser).callonOptWithClause3, expr: &litMatcher{ - pos: position{line: 2397, col: 5, offset: 73282}, + pos: position{line: 2402, col: 5, offset: 73466}, val: "", ignoreCase: false, want: "\"\"", @@ -16232,39 +16285,39 @@ var g = &grammar{ }, { name: "WithClause", - pos: position{line: 2399, col: 1, offset: 73315}, + pos: position{line: 2404, col: 1, offset: 73499}, expr: &actionExpr{ - pos: position{line: 2400, col: 5, offset: 73330}, + pos: position{line: 2405, col: 5, offset: 73514}, run: (*parser).callonWithClause1, expr: &seqExpr{ - pos: position{line: 2400, col: 5, offset: 73330}, + pos: position{line: 2405, col: 5, offset: 73514}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2400, col: 5, offset: 73330}, + pos: position{line: 2405, col: 5, offset: 73514}, name: "WITH", }, &labeledExpr{ - pos: position{line: 2400, col: 10, offset: 73335}, + pos: position{line: 2405, col: 10, offset: 73519}, label: "r", expr: &ruleRefExpr{ - pos: position{line: 2400, col: 12, offset: 73337}, + pos: position{line: 2405, col: 12, offset: 73521}, name: "OptRecursive", }, }, &ruleRefExpr{ - pos: position{line: 2400, col: 25, offset: 73350}, + pos: position{line: 2405, col: 25, offset: 73534}, name: "_", }, &labeledExpr{ - pos: position{line: 2400, col: 27, offset: 73352}, + pos: position{line: 2405, col: 27, offset: 73536}, label: "ctes", expr: &ruleRefExpr{ - pos: position{line: 2400, col: 32, offset: 73357}, + pos: position{line: 2405, col: 32, offset: 73541}, name: "CteList", }, }, &ruleRefExpr{ - pos: position{line: 2400, col: 40, offset: 73365}, + pos: position{line: 2405, col: 40, offset: 73549}, name: "__", }, }, @@ -16275,32 +16328,32 @@ var g = &grammar{ }, { name: "OptRecursive", - pos: position{line: 2408, col: 1, offset: 73524}, + pos: position{line: 2413, col: 1, offset: 73708}, expr: &choiceExpr{ - pos: position{line: 2409, col: 5, offset: 73541}, + pos: position{line: 2414, col: 5, offset: 73725}, alternatives: []any{ &actionExpr{ - pos: position{line: 2409, col: 5, offset: 73541}, + pos: position{line: 2414, col: 5, offset: 73725}, run: (*parser).callonOptRecursive2, expr: &seqExpr{ - pos: position{line: 2409, col: 5, offset: 73541}, + pos: position{line: 2414, col: 5, offset: 73725}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2409, col: 5, offset: 73541}, + pos: position{line: 2414, col: 5, offset: 73725}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2409, col: 7, offset: 73543}, + pos: position{line: 2414, col: 7, offset: 73727}, name: "RECURSIVE", }, }, }, }, &actionExpr{ - pos: position{line: 2410, col: 5, offset: 73579}, + pos: position{line: 2415, col: 5, offset: 73763}, run: (*parser).callonOptRecursive6, expr: &litMatcher{ - pos: position{line: 2410, col: 5, offset: 73579}, + pos: position{line: 2415, col: 5, offset: 73763}, val: "", ignoreCase: false, want: "\"\"", @@ -16313,51 +16366,51 @@ var g = &grammar{ }, { name: "CteList", - pos: position{line: 2412, col: 1, offset: 73618}, + pos: position{line: 2417, col: 1, offset: 73802}, expr: &actionExpr{ - pos: position{line: 2412, col: 11, offset: 73628}, + pos: position{line: 2417, col: 11, offset: 73812}, run: (*parser).callonCteList1, expr: &seqExpr{ - pos: position{line: 2412, col: 11, offset: 73628}, + pos: position{line: 2417, col: 11, offset: 73812}, exprs: []any{ &labeledExpr{ - pos: position{line: 2412, col: 11, offset: 73628}, + pos: position{line: 2417, col: 11, offset: 73812}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 2412, col: 17, offset: 73634}, + pos: position{line: 2417, col: 17, offset: 73818}, name: "Cte", }, }, &labeledExpr{ - pos: position{line: 2412, col: 21, offset: 73638}, + pos: position{line: 2417, col: 21, offset: 73822}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 2412, col: 26, offset: 73643}, + pos: position{line: 2417, col: 26, offset: 73827}, expr: &actionExpr{ - pos: position{line: 2412, col: 28, offset: 73645}, + pos: position{line: 2417, col: 28, offset: 73829}, run: (*parser).callonCteList7, expr: &seqExpr{ - pos: position{line: 2412, col: 28, offset: 73645}, + pos: position{line: 2417, col: 28, offset: 73829}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2412, col: 28, offset: 73645}, + pos: position{line: 2417, col: 28, offset: 73829}, name: "__", }, &litMatcher{ - pos: position{line: 2412, col: 31, offset: 73648}, + pos: position{line: 2417, col: 31, offset: 73832}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 2412, col: 35, offset: 73652}, + pos: position{line: 2417, col: 35, offset: 73836}, name: "__", }, &labeledExpr{ - pos: position{line: 2412, col: 38, offset: 73655}, + pos: position{line: 2417, col: 38, offset: 73839}, label: "cte", expr: &ruleRefExpr{ - pos: position{line: 2412, col: 42, offset: 73659}, + pos: position{line: 2417, col: 42, offset: 73843}, name: "Cte", }, }, @@ -16374,65 +16427,65 @@ var g = &grammar{ }, { name: "Cte", - pos: position{line: 2416, col: 1, offset: 73727}, + pos: position{line: 2421, col: 1, offset: 73911}, expr: &actionExpr{ - pos: position{line: 2417, col: 5, offset: 73735}, + pos: position{line: 2422, col: 5, offset: 73919}, run: (*parser).callonCte1, expr: &seqExpr{ - pos: position{line: 2417, col: 5, offset: 73735}, + pos: position{line: 2422, col: 5, offset: 73919}, exprs: []any{ &labeledExpr{ - pos: position{line: 2417, col: 5, offset: 73735}, + pos: position{line: 2422, col: 5, offset: 73919}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 2417, col: 10, offset: 73740}, + pos: position{line: 2422, col: 10, offset: 73924}, name: "TableAlias", }, }, &ruleRefExpr{ - pos: position{line: 2417, col: 21, offset: 73751}, + pos: position{line: 2422, col: 21, offset: 73935}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2417, col: 23, offset: 73753}, + pos: position{line: 2422, col: 23, offset: 73937}, name: "AS", }, &labeledExpr{ - pos: position{line: 2417, col: 26, offset: 73756}, + pos: position{line: 2422, col: 26, offset: 73940}, label: "m", expr: &ruleRefExpr{ - pos: position{line: 2417, col: 28, offset: 73758}, + pos: position{line: 2422, col: 28, offset: 73942}, name: "OptMaterialized", }, }, &ruleRefExpr{ - pos: position{line: 2417, col: 44, offset: 73774}, + pos: position{line: 2422, col: 44, offset: 73958}, name: "__", }, &litMatcher{ - pos: position{line: 2417, col: 47, offset: 73777}, + pos: position{line: 2422, col: 47, offset: 73961}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 2417, col: 51, offset: 73781}, + pos: position{line: 2422, col: 51, offset: 73965}, name: "__", }, &labeledExpr{ - pos: position{line: 2417, col: 54, offset: 73784}, + pos: position{line: 2422, col: 54, offset: 73968}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 2417, col: 56, offset: 73786}, + pos: position{line: 2422, col: 56, offset: 73970}, name: "SQLQueryOrSetExpr", }, }, &ruleRefExpr{ - pos: position{line: 2417, col: 74, offset: 73804}, + pos: position{line: 2422, col: 74, offset: 73988}, name: "__", }, &litMatcher{ - pos: position{line: 2417, col: 77, offset: 73807}, + pos: position{line: 2422, col: 77, offset: 73991}, val: ")", ignoreCase: false, want: "\")\"", @@ -16445,65 +16498,65 @@ var g = &grammar{ }, { name: "OptMaterialized", - pos: position{line: 2426, col: 1, offset: 74005}, + pos: position{line: 2431, col: 1, offset: 74189}, expr: &choiceExpr{ - pos: position{line: 2427, col: 5, offset: 74025}, + pos: position{line: 2432, col: 5, offset: 74209}, alternatives: []any{ &actionExpr{ - pos: position{line: 2427, col: 5, offset: 74025}, + pos: position{line: 2432, col: 5, offset: 74209}, run: (*parser).callonOptMaterialized2, expr: &seqExpr{ - pos: position{line: 2427, col: 5, offset: 74025}, + pos: position{line: 2432, col: 5, offset: 74209}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2427, col: 5, offset: 74025}, + pos: position{line: 2432, col: 5, offset: 74209}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2427, col: 7, offset: 74027}, + pos: position{line: 2432, col: 7, offset: 74211}, name: "MATERIALIZED", }, &ruleRefExpr{ - pos: position{line: 2427, col: 20, offset: 74040}, + pos: position{line: 2432, col: 20, offset: 74224}, name: "_", }, }, }, }, &actionExpr{ - pos: position{line: 2428, col: 5, offset: 74079}, + pos: position{line: 2433, col: 5, offset: 74263}, run: (*parser).callonOptMaterialized7, expr: &seqExpr{ - pos: position{line: 2428, col: 5, offset: 74079}, + pos: position{line: 2433, col: 5, offset: 74263}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2428, col: 5, offset: 74079}, + pos: position{line: 2433, col: 5, offset: 74263}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2428, col: 7, offset: 74081}, + pos: position{line: 2433, col: 7, offset: 74265}, name: "NOT", }, &ruleRefExpr{ - pos: position{line: 2428, col: 11, offset: 74085}, + pos: position{line: 2433, col: 11, offset: 74269}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2428, col: 13, offset: 74087}, + pos: position{line: 2433, col: 13, offset: 74271}, name: "MATERIALIZED", }, &ruleRefExpr{ - pos: position{line: 2428, col: 26, offset: 74100}, + pos: position{line: 2433, col: 26, offset: 74284}, name: "_", }, }, }, }, &actionExpr{ - pos: position{line: 2429, col: 5, offset: 74131}, + pos: position{line: 2434, col: 5, offset: 74315}, run: (*parser).callonOptMaterialized14, expr: &litMatcher{ - pos: position{line: 2429, col: 5, offset: 74131}, + pos: position{line: 2434, col: 5, offset: 74315}, val: "", ignoreCase: false, want: "\"\"", @@ -16516,25 +16569,25 @@ var g = &grammar{ }, { name: "OptAllClause", - pos: position{line: 2431, col: 1, offset: 74186}, + pos: position{line: 2436, col: 1, offset: 74370}, expr: &choiceExpr{ - pos: position{line: 2432, col: 5, offset: 74203}, + pos: position{line: 2437, col: 5, offset: 74387}, alternatives: []any{ &seqExpr{ - pos: position{line: 2432, col: 5, offset: 74203}, + pos: position{line: 2437, col: 5, offset: 74387}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2432, col: 5, offset: 74203}, + pos: position{line: 2437, col: 5, offset: 74387}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2432, col: 7, offset: 74205}, + pos: position{line: 2437, col: 7, offset: 74389}, name: "ALL", }, }, }, &litMatcher{ - pos: position{line: 2433, col: 5, offset: 74213}, + pos: position{line: 2438, col: 5, offset: 74397}, val: "", ignoreCase: false, want: "\"\"", @@ -16546,33 +16599,33 @@ var g = &grammar{ }, { name: "OptFromClause", - pos: position{line: 2435, col: 1, offset: 74217}, + pos: position{line: 2440, col: 1, offset: 74401}, expr: &choiceExpr{ - pos: position{line: 2436, col: 5, offset: 74235}, + pos: position{line: 2441, col: 5, offset: 74419}, alternatives: []any{ &actionExpr{ - pos: position{line: 2436, col: 5, offset: 74235}, + pos: position{line: 2441, col: 5, offset: 74419}, run: (*parser).callonOptFromClause2, expr: &seqExpr{ - pos: position{line: 2436, col: 5, offset: 74235}, + pos: position{line: 2441, col: 5, offset: 74419}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2436, col: 5, offset: 74235}, + pos: position{line: 2441, col: 5, offset: 74419}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2436, col: 7, offset: 74237}, + pos: position{line: 2441, col: 7, offset: 74421}, name: "FROM", }, &ruleRefExpr{ - pos: position{line: 2436, col: 12, offset: 74242}, + pos: position{line: 2441, col: 12, offset: 74426}, name: "_", }, &labeledExpr{ - pos: position{line: 2436, col: 14, offset: 74244}, + pos: position{line: 2441, col: 14, offset: 74428}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 2436, col: 19, offset: 74249}, + pos: position{line: 2441, col: 19, offset: 74433}, name: "JoinedTable", }, }, @@ -16580,10 +16633,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2439, col: 5, offset: 74296}, + pos: position{line: 2444, col: 5, offset: 74480}, run: (*parser).callonOptFromClause9, expr: &litMatcher{ - pos: position{line: 2439, col: 5, offset: 74296}, + pos: position{line: 2444, col: 5, offset: 74480}, val: "", ignoreCase: false, want: "\"\"", @@ -16596,25 +16649,25 @@ var g = &grammar{ }, { name: "OptGroupClause", - pos: position{line: 2441, col: 1, offset: 74337}, + pos: position{line: 2446, col: 1, offset: 74521}, expr: &choiceExpr{ - pos: position{line: 2442, col: 5, offset: 74356}, + pos: position{line: 2447, col: 5, offset: 74540}, alternatives: []any{ &actionExpr{ - pos: position{line: 2442, col: 5, offset: 74356}, + pos: position{line: 2447, col: 5, offset: 74540}, run: (*parser).callonOptGroupClause2, expr: &seqExpr{ - pos: position{line: 2442, col: 5, offset: 74356}, + pos: position{line: 2447, col: 5, offset: 74540}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2442, col: 5, offset: 74356}, + pos: position{line: 2447, col: 5, offset: 74540}, name: "_", }, &labeledExpr{ - pos: position{line: 2442, col: 7, offset: 74358}, + pos: position{line: 2447, col: 7, offset: 74542}, label: "group", expr: &ruleRefExpr{ - pos: position{line: 2442, col: 13, offset: 74364}, + pos: position{line: 2447, col: 13, offset: 74548}, name: "GroupClause", }, }, @@ -16622,10 +16675,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2443, col: 5, offset: 74402}, + pos: position{line: 2448, col: 5, offset: 74586}, run: (*parser).callonOptGroupClause7, expr: &litMatcher{ - pos: position{line: 2443, col: 5, offset: 74402}, + pos: position{line: 2448, col: 5, offset: 74586}, val: "", ignoreCase: false, want: "\"\"", @@ -16638,34 +16691,34 @@ var g = &grammar{ }, { name: "GroupClause", - pos: position{line: 2445, col: 1, offset: 74443}, + pos: position{line: 2450, col: 1, offset: 74627}, expr: &actionExpr{ - pos: position{line: 2446, col: 5, offset: 74459}, + pos: position{line: 2451, col: 5, offset: 74643}, run: (*parser).callonGroupClause1, expr: &seqExpr{ - pos: position{line: 2446, col: 5, offset: 74459}, + pos: position{line: 2451, col: 5, offset: 74643}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2446, col: 5, offset: 74459}, + pos: position{line: 2451, col: 5, offset: 74643}, name: "GROUP", }, &ruleRefExpr{ - pos: position{line: 2446, col: 11, offset: 74465}, + pos: position{line: 2451, col: 11, offset: 74649}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2446, col: 13, offset: 74467}, + pos: position{line: 2451, col: 13, offset: 74651}, name: "BY", }, &ruleRefExpr{ - pos: position{line: 2446, col: 16, offset: 74470}, + pos: position{line: 2451, col: 16, offset: 74654}, name: "_", }, &labeledExpr{ - pos: position{line: 2446, col: 18, offset: 74472}, + pos: position{line: 2451, col: 18, offset: 74656}, label: "list", expr: &ruleRefExpr{ - pos: position{line: 2446, col: 23, offset: 74477}, + pos: position{line: 2451, col: 23, offset: 74661}, name: "GroupByList", }, }, @@ -16677,51 +16730,51 @@ var g = &grammar{ }, { name: "GroupByList", - pos: position{line: 2448, col: 1, offset: 74511}, + pos: position{line: 2453, col: 1, offset: 74695}, expr: &actionExpr{ - pos: position{line: 2449, col: 5, offset: 74527}, + pos: position{line: 2454, col: 5, offset: 74711}, run: (*parser).callonGroupByList1, expr: &seqExpr{ - pos: position{line: 2449, col: 5, offset: 74527}, + pos: position{line: 2454, col: 5, offset: 74711}, exprs: []any{ &labeledExpr{ - pos: position{line: 2449, col: 5, offset: 74527}, + pos: position{line: 2454, col: 5, offset: 74711}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 2449, col: 11, offset: 74533}, + pos: position{line: 2454, col: 11, offset: 74717}, name: "GroupByItem", }, }, &labeledExpr{ - pos: position{line: 2449, col: 23, offset: 74545}, + pos: position{line: 2454, col: 23, offset: 74729}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 2449, col: 28, offset: 74550}, + pos: position{line: 2454, col: 28, offset: 74734}, expr: &actionExpr{ - pos: position{line: 2449, col: 30, offset: 74552}, + pos: position{line: 2454, col: 30, offset: 74736}, run: (*parser).callonGroupByList7, expr: &seqExpr{ - pos: position{line: 2449, col: 30, offset: 74552}, + pos: position{line: 2454, col: 30, offset: 74736}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2449, col: 30, offset: 74552}, + pos: position{line: 2454, col: 30, offset: 74736}, name: "__", }, &litMatcher{ - pos: position{line: 2449, col: 33, offset: 74555}, + pos: position{line: 2454, col: 33, offset: 74739}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 2449, col: 37, offset: 74559}, + pos: position{line: 2454, col: 37, offset: 74743}, name: "__", }, &labeledExpr{ - pos: position{line: 2449, col: 40, offset: 74562}, + pos: position{line: 2454, col: 40, offset: 74746}, label: "g", expr: &ruleRefExpr{ - pos: position{line: 2449, col: 42, offset: 74564}, + pos: position{line: 2454, col: 42, offset: 74748}, name: "GroupByItem", }, }, @@ -16738,9 +16791,9 @@ var g = &grammar{ }, { name: "GroupByItem", - pos: position{line: 2453, col: 1, offset: 74645}, + pos: position{line: 2458, col: 1, offset: 74829}, expr: &ruleRefExpr{ - pos: position{line: 2453, col: 15, offset: 74659}, + pos: position{line: 2458, col: 15, offset: 74843}, name: "Expr", }, leader: false, @@ -16748,25 +16801,25 @@ var g = &grammar{ }, { name: "OptHavingClause", - pos: position{line: 2455, col: 1, offset: 74665}, + pos: position{line: 2460, col: 1, offset: 74849}, expr: &choiceExpr{ - pos: position{line: 2456, col: 5, offset: 74685}, + pos: position{line: 2461, col: 5, offset: 74869}, alternatives: []any{ &actionExpr{ - pos: position{line: 2456, col: 5, offset: 74685}, + pos: position{line: 2461, col: 5, offset: 74869}, run: (*parser).callonOptHavingClause2, expr: &seqExpr{ - pos: position{line: 2456, col: 5, offset: 74685}, + pos: position{line: 2461, col: 5, offset: 74869}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2456, col: 5, offset: 74685}, + pos: position{line: 2461, col: 5, offset: 74869}, name: "_", }, &labeledExpr{ - pos: position{line: 2456, col: 7, offset: 74687}, + pos: position{line: 2461, col: 7, offset: 74871}, label: "h", expr: &ruleRefExpr{ - pos: position{line: 2456, col: 9, offset: 74689}, + pos: position{line: 2461, col: 9, offset: 74873}, name: "HavingClause", }, }, @@ -16774,10 +16827,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2457, col: 5, offset: 74724}, + pos: position{line: 2462, col: 5, offset: 74908}, run: (*parser).callonOptHavingClause7, expr: &litMatcher{ - pos: position{line: 2457, col: 5, offset: 74724}, + pos: position{line: 2462, col: 5, offset: 74908}, val: "", ignoreCase: false, want: "\"\"", @@ -16790,26 +16843,26 @@ var g = &grammar{ }, { name: "HavingClause", - pos: position{line: 2459, col: 1, offset: 74748}, + pos: position{line: 2464, col: 1, offset: 74932}, expr: &actionExpr{ - pos: position{line: 2460, col: 5, offset: 74765}, + pos: position{line: 2465, col: 5, offset: 74949}, run: (*parser).callonHavingClause1, expr: &seqExpr{ - pos: position{line: 2460, col: 5, offset: 74765}, + pos: position{line: 2465, col: 5, offset: 74949}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2460, col: 5, offset: 74765}, + pos: position{line: 2465, col: 5, offset: 74949}, name: "HAVING", }, &ruleRefExpr{ - pos: position{line: 2460, col: 12, offset: 74772}, + pos: position{line: 2465, col: 12, offset: 74956}, name: "_", }, &labeledExpr{ - pos: position{line: 2460, col: 14, offset: 74774}, + pos: position{line: 2465, col: 14, offset: 74958}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 2460, col: 16, offset: 74776}, + pos: position{line: 2465, col: 16, offset: 74960}, name: "Expr", }, }, @@ -16821,16 +16874,16 @@ var g = &grammar{ }, { name: "JoinOperation", - pos: position{line: 2462, col: 1, offset: 74800}, + pos: position{line: 2467, col: 1, offset: 74984}, expr: &choiceExpr{ - pos: position{line: 2463, col: 5, offset: 74818}, + pos: position{line: 2468, col: 5, offset: 75002}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2463, col: 5, offset: 74818}, + pos: position{line: 2468, col: 5, offset: 75002}, name: "CrossJoin", }, &ruleRefExpr{ - pos: position{line: 2464, col: 5, offset: 74832}, + pos: position{line: 2469, col: 5, offset: 75016}, name: "ConditionJoin", }, }, @@ -16840,56 +16893,56 @@ var g = &grammar{ }, { name: "CrossJoin", - pos: position{line: 2466, col: 1, offset: 74847}, + pos: position{line: 2471, col: 1, offset: 75031}, expr: &actionExpr{ - pos: position{line: 2467, col: 5, offset: 74861}, + pos: position{line: 2472, col: 5, offset: 75045}, run: (*parser).callonCrossJoin1, expr: &seqExpr{ - pos: position{line: 2467, col: 5, offset: 74861}, + pos: position{line: 2472, col: 5, offset: 75045}, exprs: []any{ &choiceExpr{ - pos: position{line: 2467, col: 6, offset: 74862}, + pos: position{line: 2472, col: 6, offset: 75046}, alternatives: []any{ &seqExpr{ - pos: position{line: 2467, col: 6, offset: 74862}, + pos: position{line: 2472, col: 6, offset: 75046}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2467, col: 6, offset: 74862}, + pos: position{line: 2472, col: 6, offset: 75046}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2467, col: 8, offset: 74864}, + pos: position{line: 2472, col: 8, offset: 75048}, name: "CROSS", }, &ruleRefExpr{ - pos: position{line: 2467, col: 14, offset: 74870}, + pos: position{line: 2472, col: 14, offset: 75054}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2467, col: 16, offset: 74872}, + pos: position{line: 2472, col: 16, offset: 75056}, name: "JOIN", }, &ruleRefExpr{ - pos: position{line: 2467, col: 21, offset: 74877}, + pos: position{line: 2472, col: 21, offset: 75061}, name: "_", }, }, }, &seqExpr{ - pos: position{line: 2467, col: 25, offset: 74881}, + pos: position{line: 2472, col: 25, offset: 75065}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2467, col: 25, offset: 74881}, + pos: position{line: 2472, col: 25, offset: 75065}, name: "__", }, &litMatcher{ - pos: position{line: 2467, col: 28, offset: 74884}, + pos: position{line: 2472, col: 28, offset: 75068}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 2467, col: 32, offset: 74888}, + pos: position{line: 2472, col: 32, offset: 75072}, name: "__", }, }, @@ -16897,10 +16950,10 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 2467, col: 36, offset: 74892}, + pos: position{line: 2472, col: 36, offset: 75076}, label: "right", expr: &ruleRefExpr{ - pos: position{line: 2467, col: 42, offset: 74898}, + pos: position{line: 2472, col: 42, offset: 75082}, name: "SQLTableExpr", }, }, @@ -16912,42 +16965,42 @@ var g = &grammar{ }, { name: "ConditionJoin", - pos: position{line: 2475, col: 1, offset: 75073}, + pos: position{line: 2480, col: 1, offset: 75257}, expr: &actionExpr{ - pos: position{line: 2476, col: 5, offset: 75091}, + pos: position{line: 2481, col: 5, offset: 75275}, run: (*parser).callonConditionJoin1, expr: &seqExpr{ - pos: position{line: 2476, col: 5, offset: 75091}, + pos: position{line: 2481, col: 5, offset: 75275}, exprs: []any{ &labeledExpr{ - pos: position{line: 2476, col: 5, offset: 75091}, + pos: position{line: 2481, col: 5, offset: 75275}, label: "style", expr: &ruleRefExpr{ - pos: position{line: 2476, col: 11, offset: 75097}, + pos: position{line: 2481, col: 11, offset: 75281}, name: "SQLJoinStyle", }, }, &ruleRefExpr{ - pos: position{line: 2476, col: 24, offset: 75110}, + pos: position{line: 2481, col: 24, offset: 75294}, name: "_", }, &labeledExpr{ - pos: position{line: 2476, col: 26, offset: 75112}, + pos: position{line: 2481, col: 26, offset: 75296}, label: "right", expr: &ruleRefExpr{ - pos: position{line: 2476, col: 32, offset: 75118}, + pos: position{line: 2481, col: 32, offset: 75302}, name: "SQLTableExpr", }, }, &ruleRefExpr{ - pos: position{line: 2476, col: 45, offset: 75131}, + pos: position{line: 2481, col: 45, offset: 75315}, name: "_", }, &labeledExpr{ - pos: position{line: 2476, col: 47, offset: 75133}, + pos: position{line: 2481, col: 47, offset: 75317}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 2476, col: 49, offset: 75135}, + pos: position{line: 2481, col: 49, offset: 75319}, name: "JoinCond", }, }, @@ -16959,186 +17012,186 @@ var g = &grammar{ }, { name: "SQLJoinStyle", - pos: position{line: 2486, col: 1, offset: 75367}, + pos: position{line: 2491, col: 1, offset: 75551}, expr: &choiceExpr{ - pos: position{line: 2487, col: 5, offset: 75384}, + pos: position{line: 2492, col: 5, offset: 75568}, alternatives: []any{ &actionExpr{ - pos: position{line: 2487, col: 5, offset: 75384}, + pos: position{line: 2492, col: 5, offset: 75568}, run: (*parser).callonSQLJoinStyle2, expr: &seqExpr{ - pos: position{line: 2487, col: 5, offset: 75384}, + pos: position{line: 2492, col: 5, offset: 75568}, exprs: []any{ &zeroOrOneExpr{ - pos: position{line: 2487, col: 5, offset: 75384}, + pos: position{line: 2492, col: 5, offset: 75568}, expr: &seqExpr{ - pos: position{line: 2487, col: 6, offset: 75385}, + pos: position{line: 2492, col: 6, offset: 75569}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2487, col: 6, offset: 75385}, + pos: position{line: 2492, col: 6, offset: 75569}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2487, col: 8, offset: 75387}, + pos: position{line: 2492, col: 8, offset: 75571}, name: "INNER", }, }, }, }, &ruleRefExpr{ - pos: position{line: 2487, col: 16, offset: 75395}, + pos: position{line: 2492, col: 16, offset: 75579}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2487, col: 18, offset: 75397}, + pos: position{line: 2492, col: 18, offset: 75581}, name: "JOIN", }, }, }, }, &actionExpr{ - pos: position{line: 2488, col: 5, offset: 75442}, + pos: position{line: 2493, col: 5, offset: 75626}, run: (*parser).callonSQLJoinStyle10, expr: &seqExpr{ - pos: position{line: 2488, col: 5, offset: 75442}, + pos: position{line: 2493, col: 5, offset: 75626}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2488, col: 5, offset: 75442}, + pos: position{line: 2493, col: 5, offset: 75626}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2488, col: 7, offset: 75444}, + pos: position{line: 2493, col: 7, offset: 75628}, name: "ANTI", }, &ruleRefExpr{ - pos: position{line: 2488, col: 12, offset: 75449}, + pos: position{line: 2493, col: 12, offset: 75633}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2488, col: 14, offset: 75451}, + pos: position{line: 2493, col: 14, offset: 75635}, name: "JOIN", }, }, }, }, &actionExpr{ - pos: position{line: 2489, col: 5, offset: 75483}, + pos: position{line: 2494, col: 5, offset: 75667}, run: (*parser).callonSQLJoinStyle16, expr: &seqExpr{ - pos: position{line: 2489, col: 5, offset: 75483}, + pos: position{line: 2494, col: 5, offset: 75667}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2489, col: 5, offset: 75483}, + pos: position{line: 2494, col: 5, offset: 75667}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2489, col: 7, offset: 75485}, + pos: position{line: 2494, col: 7, offset: 75669}, name: "FULL", }, &zeroOrOneExpr{ - pos: position{line: 2489, col: 12, offset: 75490}, + pos: position{line: 2494, col: 12, offset: 75674}, expr: &seqExpr{ - pos: position{line: 2489, col: 13, offset: 75491}, + pos: position{line: 2494, col: 13, offset: 75675}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2489, col: 13, offset: 75491}, + pos: position{line: 2494, col: 13, offset: 75675}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2489, col: 15, offset: 75493}, + pos: position{line: 2494, col: 15, offset: 75677}, name: "OUTER", }, }, }, }, &ruleRefExpr{ - pos: position{line: 2489, col: 23, offset: 75501}, + pos: position{line: 2494, col: 23, offset: 75685}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2489, col: 25, offset: 75503}, + pos: position{line: 2494, col: 25, offset: 75687}, name: "JOIN", }, }, }, }, &actionExpr{ - pos: position{line: 2490, col: 5, offset: 75537}, + pos: position{line: 2495, col: 5, offset: 75721}, run: (*parser).callonSQLJoinStyle26, expr: &seqExpr{ - pos: position{line: 2490, col: 5, offset: 75537}, + pos: position{line: 2495, col: 5, offset: 75721}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2490, col: 5, offset: 75537}, + pos: position{line: 2495, col: 5, offset: 75721}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2490, col: 7, offset: 75539}, + pos: position{line: 2495, col: 7, offset: 75723}, name: "LEFT", }, &zeroOrOneExpr{ - pos: position{line: 2490, col: 12, offset: 75544}, + pos: position{line: 2495, col: 12, offset: 75728}, expr: &seqExpr{ - pos: position{line: 2490, col: 13, offset: 75545}, + pos: position{line: 2495, col: 13, offset: 75729}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2490, col: 13, offset: 75545}, + pos: position{line: 2495, col: 13, offset: 75729}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2490, col: 15, offset: 75547}, + pos: position{line: 2495, col: 15, offset: 75731}, name: "OUTER", }, }, }, }, &ruleRefExpr{ - pos: position{line: 2490, col: 23, offset: 75555}, + pos: position{line: 2495, col: 23, offset: 75739}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2490, col: 25, offset: 75557}, + pos: position{line: 2495, col: 25, offset: 75741}, name: "JOIN", }, }, }, }, &actionExpr{ - pos: position{line: 2491, col: 5, offset: 75591}, + pos: position{line: 2496, col: 5, offset: 75775}, run: (*parser).callonSQLJoinStyle36, expr: &seqExpr{ - pos: position{line: 2491, col: 5, offset: 75591}, + pos: position{line: 2496, col: 5, offset: 75775}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2491, col: 5, offset: 75591}, + pos: position{line: 2496, col: 5, offset: 75775}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2491, col: 7, offset: 75593}, + pos: position{line: 2496, col: 7, offset: 75777}, name: "RIGHT", }, &zeroOrOneExpr{ - pos: position{line: 2491, col: 13, offset: 75599}, + pos: position{line: 2496, col: 13, offset: 75783}, expr: &seqExpr{ - pos: position{line: 2491, col: 14, offset: 75600}, + pos: position{line: 2496, col: 14, offset: 75784}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2491, col: 14, offset: 75600}, + pos: position{line: 2496, col: 14, offset: 75784}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2491, col: 16, offset: 75602}, + pos: position{line: 2496, col: 16, offset: 75786}, name: "OUTER", }, }, }, }, &ruleRefExpr{ - pos: position{line: 2491, col: 24, offset: 75610}, + pos: position{line: 2496, col: 24, offset: 75794}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2491, col: 26, offset: 75612}, + pos: position{line: 2496, col: 26, offset: 75796}, name: "JOIN", }, }, @@ -17151,29 +17204,29 @@ var g = &grammar{ }, { name: "JoinCond", - pos: position{line: 2493, col: 1, offset: 75644}, + pos: position{line: 2498, col: 1, offset: 75828}, expr: &choiceExpr{ - pos: position{line: 2494, col: 5, offset: 75657}, + pos: position{line: 2499, col: 5, offset: 75841}, alternatives: []any{ &actionExpr{ - pos: position{line: 2494, col: 5, offset: 75657}, + pos: position{line: 2499, col: 5, offset: 75841}, run: (*parser).callonJoinCond2, expr: &seqExpr{ - pos: position{line: 2494, col: 5, offset: 75657}, + pos: position{line: 2499, col: 5, offset: 75841}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2494, col: 5, offset: 75657}, + pos: position{line: 2499, col: 5, offset: 75841}, name: "ON", }, &ruleRefExpr{ - pos: position{line: 2494, col: 8, offset: 75660}, + pos: position{line: 2499, col: 8, offset: 75844}, name: "_", }, &labeledExpr{ - pos: position{line: 2494, col: 10, offset: 75662}, + pos: position{line: 2499, col: 10, offset: 75846}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 2494, col: 12, offset: 75664}, + pos: position{line: 2499, col: 12, offset: 75848}, name: "Expr", }, }, @@ -17181,43 +17234,43 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2501, col: 5, offset: 75817}, + pos: position{line: 2506, col: 5, offset: 76001}, run: (*parser).callonJoinCond8, expr: &seqExpr{ - pos: position{line: 2501, col: 5, offset: 75817}, + pos: position{line: 2506, col: 5, offset: 76001}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2501, col: 5, offset: 75817}, + pos: position{line: 2506, col: 5, offset: 76001}, name: "USING", }, &ruleRefExpr{ - pos: position{line: 2501, col: 11, offset: 75823}, + pos: position{line: 2506, col: 11, offset: 76007}, name: "__", }, &litMatcher{ - pos: position{line: 2501, col: 14, offset: 75826}, + pos: position{line: 2506, col: 14, offset: 76010}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 2501, col: 18, offset: 75830}, + pos: position{line: 2506, col: 18, offset: 76014}, name: "__", }, &labeledExpr{ - pos: position{line: 2501, col: 21, offset: 75833}, + pos: position{line: 2506, col: 21, offset: 76017}, label: "fields", expr: &ruleRefExpr{ - pos: position{line: 2501, col: 28, offset: 75840}, + pos: position{line: 2506, col: 28, offset: 76024}, name: "Identifiers", }, }, &ruleRefExpr{ - pos: position{line: 2501, col: 40, offset: 75852}, + pos: position{line: 2506, col: 40, offset: 76036}, name: "__", }, &litMatcher{ - pos: position{line: 2501, col: 43, offset: 75855}, + pos: position{line: 2506, col: 43, offset: 76039}, val: ")", ignoreCase: false, want: "\")\"", @@ -17232,40 +17285,40 @@ var g = &grammar{ }, { name: "OptOrdinality", - pos: position{line: 2509, col: 1, offset: 76024}, + pos: position{line: 2514, col: 1, offset: 76208}, expr: &choiceExpr{ - pos: position{line: 2510, col: 5, offset: 76042}, + pos: position{line: 2515, col: 5, offset: 76226}, alternatives: []any{ &actionExpr{ - pos: position{line: 2510, col: 5, offset: 76042}, + pos: position{line: 2515, col: 5, offset: 76226}, run: (*parser).callonOptOrdinality2, expr: &seqExpr{ - pos: position{line: 2510, col: 5, offset: 76042}, + pos: position{line: 2515, col: 5, offset: 76226}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2510, col: 5, offset: 76042}, + pos: position{line: 2515, col: 5, offset: 76226}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2510, col: 7, offset: 76044}, + pos: position{line: 2515, col: 7, offset: 76228}, name: "WITH", }, &ruleRefExpr{ - pos: position{line: 2510, col: 12, offset: 76049}, + pos: position{line: 2515, col: 12, offset: 76233}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2510, col: 14, offset: 76051}, + pos: position{line: 2515, col: 14, offset: 76235}, name: "ORDINALITY", }, }, }, }, &actionExpr{ - pos: position{line: 2515, col: 5, offset: 76148}, + pos: position{line: 2520, col: 5, offset: 76332}, run: (*parser).callonOptOrdinality8, expr: &litMatcher{ - pos: position{line: 2515, col: 5, offset: 76148}, + pos: position{line: 2520, col: 5, offset: 76332}, val: "", ignoreCase: false, want: "\"\"", @@ -17278,25 +17331,25 @@ var g = &grammar{ }, { name: "OptAlias", - pos: position{line: 2517, col: 1, offset: 76197}, + pos: position{line: 2522, col: 1, offset: 76381}, expr: &choiceExpr{ - pos: position{line: 2518, col: 5, offset: 76210}, + pos: position{line: 2523, col: 5, offset: 76394}, alternatives: []any{ &actionExpr{ - pos: position{line: 2518, col: 5, offset: 76210}, + pos: position{line: 2523, col: 5, offset: 76394}, run: (*parser).callonOptAlias2, expr: &seqExpr{ - pos: position{line: 2518, col: 5, offset: 76210}, + pos: position{line: 2523, col: 5, offset: 76394}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2518, col: 5, offset: 76210}, + pos: position{line: 2523, col: 5, offset: 76394}, name: "_", }, &labeledExpr{ - pos: position{line: 2518, col: 7, offset: 76212}, + pos: position{line: 2523, col: 7, offset: 76396}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 2518, col: 9, offset: 76214}, + pos: position{line: 2523, col: 9, offset: 76398}, name: "AliasClause", }, }, @@ -17304,10 +17357,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2519, col: 5, offset: 76248}, + pos: position{line: 2524, col: 5, offset: 76432}, run: (*parser).callonOptAlias7, expr: &litMatcher{ - pos: position{line: 2519, col: 5, offset: 76248}, + pos: position{line: 2524, col: 5, offset: 76432}, val: "", ignoreCase: false, want: "\"\"", @@ -17320,41 +17373,41 @@ var g = &grammar{ }, { name: "AliasClause", - pos: position{line: 2521, col: 1, offset: 76285}, + pos: position{line: 2526, col: 1, offset: 76469}, expr: &actionExpr{ - pos: position{line: 2522, col: 4, offset: 76300}, + pos: position{line: 2527, col: 4, offset: 76484}, run: (*parser).callonAliasClause1, expr: &seqExpr{ - pos: position{line: 2522, col: 4, offset: 76300}, + pos: position{line: 2527, col: 4, offset: 76484}, exprs: []any{ &zeroOrOneExpr{ - pos: position{line: 2522, col: 4, offset: 76300}, + pos: position{line: 2527, col: 4, offset: 76484}, expr: &seqExpr{ - pos: position{line: 2522, col: 5, offset: 76301}, + pos: position{line: 2527, col: 5, offset: 76485}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2522, col: 5, offset: 76301}, + pos: position{line: 2527, col: 5, offset: 76485}, name: "AS", }, &ruleRefExpr{ - pos: position{line: 2522, col: 8, offset: 76304}, + pos: position{line: 2527, col: 8, offset: 76488}, name: "_", }, }, }, }, ¬Expr{ - pos: position{line: 2522, col: 12, offset: 76308}, + pos: position{line: 2527, col: 12, offset: 76492}, expr: &ruleRefExpr{ - pos: position{line: 2522, col: 13, offset: 76309}, + pos: position{line: 2527, col: 13, offset: 76493}, name: "SQLGuard", }, }, &labeledExpr{ - pos: position{line: 2522, col: 22, offset: 76318}, + pos: position{line: 2527, col: 22, offset: 76502}, label: "alias", expr: &ruleRefExpr{ - pos: position{line: 2522, col: 28, offset: 76324}, + pos: position{line: 2527, col: 28, offset: 76508}, name: "TableAlias", }, }, @@ -17366,28 +17419,28 @@ var g = &grammar{ }, { name: "TableAlias", - pos: position{line: 2524, col: 1, offset: 76358}, + pos: position{line: 2529, col: 1, offset: 76542}, expr: &actionExpr{ - pos: position{line: 2525, col: 4, offset: 76372}, + pos: position{line: 2530, col: 4, offset: 76556}, run: (*parser).callonTableAlias1, expr: &seqExpr{ - pos: position{line: 2525, col: 4, offset: 76372}, + pos: position{line: 2530, col: 4, offset: 76556}, exprs: []any{ &labeledExpr{ - pos: position{line: 2525, col: 4, offset: 76372}, + pos: position{line: 2530, col: 4, offset: 76556}, label: "name", expr: &ruleRefExpr{ - pos: position{line: 2525, col: 9, offset: 76377}, + pos: position{line: 2530, col: 9, offset: 76561}, name: "SQLIdentifier", }, }, &labeledExpr{ - pos: position{line: 2525, col: 23, offset: 76391}, + pos: position{line: 2530, col: 23, offset: 76575}, label: "cols", expr: &zeroOrOneExpr{ - pos: position{line: 2525, col: 28, offset: 76396}, + pos: position{line: 2530, col: 28, offset: 76580}, expr: &ruleRefExpr{ - pos: position{line: 2525, col: 28, offset: 76396}, + pos: position{line: 2530, col: 28, offset: 76580}, name: "Columns", }, }, @@ -17400,65 +17453,65 @@ var g = &grammar{ }, { name: "Columns", - pos: position{line: 2533, col: 1, offset: 76581}, + pos: position{line: 2538, col: 1, offset: 76765}, expr: &actionExpr{ - pos: position{line: 2534, col: 5, offset: 76593}, + pos: position{line: 2539, col: 5, offset: 76777}, run: (*parser).callonColumns1, expr: &seqExpr{ - pos: position{line: 2534, col: 5, offset: 76593}, + pos: position{line: 2539, col: 5, offset: 76777}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2534, col: 5, offset: 76593}, + pos: position{line: 2539, col: 5, offset: 76777}, name: "__", }, &litMatcher{ - pos: position{line: 2534, col: 8, offset: 76596}, + pos: position{line: 2539, col: 8, offset: 76780}, val: "(", ignoreCase: false, want: "\"(\"", }, &ruleRefExpr{ - pos: position{line: 2534, col: 12, offset: 76600}, + pos: position{line: 2539, col: 12, offset: 76784}, name: "__", }, &labeledExpr{ - pos: position{line: 2534, col: 15, offset: 76603}, + pos: position{line: 2539, col: 15, offset: 76787}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 2534, col: 21, offset: 76609}, + pos: position{line: 2539, col: 21, offset: 76793}, name: "SQLIdentifier", }, }, &labeledExpr{ - pos: position{line: 2534, col: 35, offset: 76623}, + pos: position{line: 2539, col: 35, offset: 76807}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 2534, col: 40, offset: 76628}, + pos: position{line: 2539, col: 40, offset: 76812}, expr: &actionExpr{ - pos: position{line: 2534, col: 42, offset: 76630}, + pos: position{line: 2539, col: 42, offset: 76814}, run: (*parser).callonColumns10, expr: &seqExpr{ - pos: position{line: 2534, col: 42, offset: 76630}, + pos: position{line: 2539, col: 42, offset: 76814}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2534, col: 42, offset: 76630}, + pos: position{line: 2539, col: 42, offset: 76814}, name: "__", }, &litMatcher{ - pos: position{line: 2534, col: 45, offset: 76633}, + pos: position{line: 2539, col: 45, offset: 76817}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 2534, col: 49, offset: 76637}, + pos: position{line: 2539, col: 49, offset: 76821}, name: "__", }, &labeledExpr{ - pos: position{line: 2534, col: 52, offset: 76640}, + pos: position{line: 2539, col: 52, offset: 76824}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 2534, col: 54, offset: 76642}, + pos: position{line: 2539, col: 54, offset: 76826}, name: "SQLIdentifier", }, }, @@ -17468,11 +17521,11 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 2534, col: 87, offset: 76675}, + pos: position{line: 2539, col: 87, offset: 76859}, name: "__", }, &litMatcher{ - pos: position{line: 2534, col: 90, offset: 76678}, + pos: position{line: 2539, col: 90, offset: 76862}, val: ")", ignoreCase: false, want: "\")\"", @@ -17485,51 +17538,51 @@ var g = &grammar{ }, { name: "Selection", - pos: position{line: 2538, col: 1, offset: 76749}, + pos: position{line: 2543, col: 1, offset: 76933}, expr: &actionExpr{ - pos: position{line: 2539, col: 5, offset: 76763}, + pos: position{line: 2544, col: 5, offset: 76947}, run: (*parser).callonSelection1, expr: &seqExpr{ - pos: position{line: 2539, col: 5, offset: 76763}, + pos: position{line: 2544, col: 5, offset: 76947}, exprs: []any{ &labeledExpr{ - pos: position{line: 2539, col: 5, offset: 76763}, + pos: position{line: 2544, col: 5, offset: 76947}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 2539, col: 11, offset: 76769}, + pos: position{line: 2544, col: 11, offset: 76953}, name: "SelectElem", }, }, &labeledExpr{ - pos: position{line: 2539, col: 22, offset: 76780}, + pos: position{line: 2544, col: 22, offset: 76964}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 2539, col: 27, offset: 76785}, + pos: position{line: 2544, col: 27, offset: 76969}, expr: &actionExpr{ - pos: position{line: 2539, col: 29, offset: 76787}, + pos: position{line: 2544, col: 29, offset: 76971}, run: (*parser).callonSelection7, expr: &seqExpr{ - pos: position{line: 2539, col: 29, offset: 76787}, + pos: position{line: 2544, col: 29, offset: 76971}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2539, col: 29, offset: 76787}, + pos: position{line: 2544, col: 29, offset: 76971}, name: "__", }, &litMatcher{ - pos: position{line: 2539, col: 32, offset: 76790}, + pos: position{line: 2544, col: 32, offset: 76974}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 2539, col: 36, offset: 76794}, + pos: position{line: 2544, col: 36, offset: 76978}, name: "__", }, &labeledExpr{ - pos: position{line: 2539, col: 39, offset: 76797}, + pos: position{line: 2544, col: 39, offset: 76981}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 2539, col: 41, offset: 76799}, + pos: position{line: 2544, col: 41, offset: 76983}, name: "SelectElem", }, }, @@ -17546,26 +17599,26 @@ var g = &grammar{ }, { name: "SelectElem", - pos: position{line: 2546, col: 1, offset: 76961}, + pos: position{line: 2551, col: 1, offset: 77145}, expr: &actionExpr{ - pos: position{line: 2547, col: 5, offset: 76976}, + pos: position{line: 2552, col: 5, offset: 77160}, run: (*parser).callonSelectElem1, expr: &seqExpr{ - pos: position{line: 2547, col: 5, offset: 76976}, + pos: position{line: 2552, col: 5, offset: 77160}, exprs: []any{ &labeledExpr{ - pos: position{line: 2547, col: 5, offset: 76976}, + pos: position{line: 2552, col: 5, offset: 77160}, label: "expr", expr: &ruleRefExpr{ - pos: position{line: 2547, col: 10, offset: 76981}, + pos: position{line: 2552, col: 10, offset: 77165}, name: "ColumnExpr", }, }, &labeledExpr{ - pos: position{line: 2547, col: 21, offset: 76992}, + pos: position{line: 2552, col: 21, offset: 77176}, label: "as", expr: &ruleRefExpr{ - pos: position{line: 2547, col: 24, offset: 76995}, + pos: position{line: 2552, col: 24, offset: 77179}, name: "OptAsClause", }, }, @@ -17577,40 +17630,40 @@ var g = &grammar{ }, { name: "ColumnExpr", - pos: position{line: 2560, col: 1, offset: 77269}, + pos: position{line: 2565, col: 1, offset: 77453}, expr: &choiceExpr{ - pos: position{line: 2561, col: 5, offset: 77284}, + pos: position{line: 2566, col: 5, offset: 77468}, alternatives: []any{ &actionExpr{ - pos: position{line: 2561, col: 5, offset: 77284}, + pos: position{line: 2566, col: 5, offset: 77468}, run: (*parser).callonColumnExpr2, expr: &seqExpr{ - pos: position{line: 2561, col: 5, offset: 77284}, + pos: position{line: 2566, col: 5, offset: 77468}, exprs: []any{ &labeledExpr{ - pos: position{line: 2561, col: 5, offset: 77284}, + pos: position{line: 2566, col: 5, offset: 77468}, label: "table", expr: &ruleRefExpr{ - pos: position{line: 2561, col: 11, offset: 77290}, + pos: position{line: 2566, col: 11, offset: 77474}, name: "SQLIdentifier", }, }, &ruleRefExpr{ - pos: position{line: 2561, col: 25, offset: 77304}, + pos: position{line: 2566, col: 25, offset: 77488}, name: "__", }, &litMatcher{ - pos: position{line: 2561, col: 28, offset: 77307}, + pos: position{line: 2566, col: 28, offset: 77491}, val: ".", ignoreCase: false, want: "\".\"", }, &ruleRefExpr{ - pos: position{line: 2561, col: 32, offset: 77311}, + pos: position{line: 2566, col: 32, offset: 77495}, name: "__", }, &litMatcher{ - pos: position{line: 2561, col: 35, offset: 77314}, + pos: position{line: 2566, col: 35, offset: 77498}, val: "*", ignoreCase: false, want: "\"*\"", @@ -17619,17 +17672,17 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2568, col: 5, offset: 77455}, + pos: position{line: 2573, col: 5, offset: 77639}, run: (*parser).callonColumnExpr10, expr: &litMatcher{ - pos: position{line: 2568, col: 5, offset: 77455}, + pos: position{line: 2573, col: 5, offset: 77639}, val: "*", ignoreCase: false, want: "\"*\"", }, }, &ruleRefExpr{ - pos: position{line: 2571, col: 5, offset: 77534}, + pos: position{line: 2576, col: 5, offset: 77718}, name: "Expr", }, }, @@ -17639,33 +17692,33 @@ var g = &grammar{ }, { name: "OptAsClause", - pos: position{line: 2573, col: 1, offset: 77540}, + pos: position{line: 2578, col: 1, offset: 77724}, expr: &choiceExpr{ - pos: position{line: 2574, col: 5, offset: 77556}, + pos: position{line: 2579, col: 5, offset: 77740}, alternatives: []any{ &actionExpr{ - pos: position{line: 2574, col: 5, offset: 77556}, + pos: position{line: 2579, col: 5, offset: 77740}, run: (*parser).callonOptAsClause2, expr: &seqExpr{ - pos: position{line: 2574, col: 5, offset: 77556}, + pos: position{line: 2579, col: 5, offset: 77740}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2574, col: 5, offset: 77556}, + pos: position{line: 2579, col: 5, offset: 77740}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2574, col: 7, offset: 77558}, + pos: position{line: 2579, col: 7, offset: 77742}, name: "AS", }, &ruleRefExpr{ - pos: position{line: 2574, col: 10, offset: 77561}, + pos: position{line: 2579, col: 10, offset: 77745}, name: "_", }, &labeledExpr{ - pos: position{line: 2574, col: 12, offset: 77563}, + pos: position{line: 2579, col: 12, offset: 77747}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 2574, col: 15, offset: 77566}, + pos: position{line: 2579, col: 15, offset: 77750}, name: "SQLIdentifier", }, }, @@ -17673,27 +17726,27 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2575, col: 5, offset: 77603}, + pos: position{line: 2580, col: 5, offset: 77787}, run: (*parser).callonOptAsClause9, expr: &seqExpr{ - pos: position{line: 2575, col: 5, offset: 77603}, + pos: position{line: 2580, col: 5, offset: 77787}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2575, col: 5, offset: 77603}, + pos: position{line: 2580, col: 5, offset: 77787}, name: "_", }, ¬Expr{ - pos: position{line: 2575, col: 7, offset: 77605}, + pos: position{line: 2580, col: 7, offset: 77789}, expr: &ruleRefExpr{ - pos: position{line: 2575, col: 8, offset: 77606}, + pos: position{line: 2580, col: 8, offset: 77790}, name: "SQLGuard", }, }, &labeledExpr{ - pos: position{line: 2575, col: 17, offset: 77615}, + pos: position{line: 2580, col: 17, offset: 77799}, label: "id", expr: &ruleRefExpr{ - pos: position{line: 2575, col: 20, offset: 77618}, + pos: position{line: 2580, col: 20, offset: 77802}, name: "SQLIdentifier", }, }, @@ -17701,10 +17754,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2576, col: 5, offset: 77655}, + pos: position{line: 2581, col: 5, offset: 77839}, run: (*parser).callonOptAsClause16, expr: &litMatcher{ - pos: position{line: 2576, col: 5, offset: 77655}, + pos: position{line: 2581, col: 5, offset: 77839}, val: "", ignoreCase: false, want: "\"\"", @@ -17717,41 +17770,41 @@ var g = &grammar{ }, { name: "OptOrderByClause", - pos: position{line: 2578, col: 1, offset: 77680}, + pos: position{line: 2583, col: 1, offset: 77864}, expr: &choiceExpr{ - pos: position{line: 2579, col: 5, offset: 77701}, + pos: position{line: 2584, col: 5, offset: 77885}, alternatives: []any{ &actionExpr{ - pos: position{line: 2579, col: 5, offset: 77701}, + pos: position{line: 2584, col: 5, offset: 77885}, run: (*parser).callonOptOrderByClause2, expr: &seqExpr{ - pos: position{line: 2579, col: 5, offset: 77701}, + pos: position{line: 2584, col: 5, offset: 77885}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2579, col: 5, offset: 77701}, + pos: position{line: 2584, col: 5, offset: 77885}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2579, col: 7, offset: 77703}, + pos: position{line: 2584, col: 7, offset: 77887}, name: "ORDER", }, &ruleRefExpr{ - pos: position{line: 2579, col: 13, offset: 77709}, + pos: position{line: 2584, col: 13, offset: 77893}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2579, col: 15, offset: 77711}, + pos: position{line: 2584, col: 15, offset: 77895}, name: "BY", }, &ruleRefExpr{ - pos: position{line: 2579, col: 18, offset: 77714}, + pos: position{line: 2584, col: 18, offset: 77898}, name: "_", }, &labeledExpr{ - pos: position{line: 2579, col: 20, offset: 77716}, + pos: position{line: 2584, col: 20, offset: 77900}, label: "list", expr: &ruleRefExpr{ - pos: position{line: 2579, col: 25, offset: 77721}, + pos: position{line: 2584, col: 25, offset: 77905}, name: "OrderByList", }, }, @@ -17759,10 +17812,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2585, col: 5, offset: 77855}, + pos: position{line: 2590, col: 5, offset: 78039}, run: (*parser).callonOptOrderByClause11, expr: &litMatcher{ - pos: position{line: 2585, col: 5, offset: 77855}, + pos: position{line: 2590, col: 5, offset: 78039}, val: "", ignoreCase: false, want: "\"\"", @@ -17775,51 +17828,51 @@ var g = &grammar{ }, { name: "OrderByList", - pos: position{line: 2587, col: 1, offset: 77888}, + pos: position{line: 2592, col: 1, offset: 78072}, expr: &actionExpr{ - pos: position{line: 2588, col: 5, offset: 77904}, + pos: position{line: 2593, col: 5, offset: 78088}, run: (*parser).callonOrderByList1, expr: &seqExpr{ - pos: position{line: 2588, col: 5, offset: 77904}, + pos: position{line: 2593, col: 5, offset: 78088}, exprs: []any{ &labeledExpr{ - pos: position{line: 2588, col: 5, offset: 77904}, + pos: position{line: 2593, col: 5, offset: 78088}, label: "first", expr: &ruleRefExpr{ - pos: position{line: 2588, col: 11, offset: 77910}, + pos: position{line: 2593, col: 11, offset: 78094}, name: "OrderByItem", }, }, &labeledExpr{ - pos: position{line: 2588, col: 23, offset: 77922}, + pos: position{line: 2593, col: 23, offset: 78106}, label: "rest", expr: &zeroOrMoreExpr{ - pos: position{line: 2588, col: 28, offset: 77927}, + pos: position{line: 2593, col: 28, offset: 78111}, expr: &actionExpr{ - pos: position{line: 2588, col: 30, offset: 77929}, + pos: position{line: 2593, col: 30, offset: 78113}, run: (*parser).callonOrderByList7, expr: &seqExpr{ - pos: position{line: 2588, col: 30, offset: 77929}, + pos: position{line: 2593, col: 30, offset: 78113}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2588, col: 30, offset: 77929}, + pos: position{line: 2593, col: 30, offset: 78113}, name: "__", }, &litMatcher{ - pos: position{line: 2588, col: 33, offset: 77932}, + pos: position{line: 2593, col: 33, offset: 78116}, val: ",", ignoreCase: false, want: "\",\"", }, &ruleRefExpr{ - pos: position{line: 2588, col: 37, offset: 77936}, + pos: position{line: 2593, col: 37, offset: 78120}, name: "__", }, &labeledExpr{ - pos: position{line: 2588, col: 40, offset: 77939}, + pos: position{line: 2593, col: 40, offset: 78123}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 2588, col: 42, offset: 77941}, + pos: position{line: 2593, col: 42, offset: 78125}, name: "OrderByItem", }, }, @@ -17836,34 +17889,34 @@ var g = &grammar{ }, { name: "OrderByItem", - pos: position{line: 2592, col: 1, offset: 78042}, + pos: position{line: 2597, col: 1, offset: 78226}, expr: &actionExpr{ - pos: position{line: 2593, col: 5, offset: 78058}, + pos: position{line: 2598, col: 5, offset: 78242}, run: (*parser).callonOrderByItem1, expr: &seqExpr{ - pos: position{line: 2593, col: 5, offset: 78058}, + pos: position{line: 2598, col: 5, offset: 78242}, exprs: []any{ &labeledExpr{ - pos: position{line: 2593, col: 5, offset: 78058}, + pos: position{line: 2598, col: 5, offset: 78242}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 2593, col: 7, offset: 78060}, + pos: position{line: 2598, col: 7, offset: 78244}, name: "Expr", }, }, &labeledExpr{ - pos: position{line: 2593, col: 12, offset: 78065}, + pos: position{line: 2598, col: 12, offset: 78249}, label: "order", expr: &ruleRefExpr{ - pos: position{line: 2593, col: 18, offset: 78071}, + pos: position{line: 2598, col: 18, offset: 78255}, name: "OptAscDesc", }, }, &labeledExpr{ - pos: position{line: 2593, col: 29, offset: 78082}, + pos: position{line: 2598, col: 29, offset: 78266}, label: "nulls", expr: &ruleRefExpr{ - pos: position{line: 2593, col: 35, offset: 78088}, + pos: position{line: 2598, col: 35, offset: 78272}, name: "OptNullsOrder", }, }, @@ -17875,49 +17928,49 @@ var g = &grammar{ }, { name: "OptAscDesc", - pos: position{line: 2604, col: 1, offset: 78320}, + pos: position{line: 2609, col: 1, offset: 78504}, expr: &choiceExpr{ - pos: position{line: 2605, col: 5, offset: 78335}, + pos: position{line: 2610, col: 5, offset: 78519}, alternatives: []any{ &actionExpr{ - pos: position{line: 2605, col: 5, offset: 78335}, + pos: position{line: 2610, col: 5, offset: 78519}, run: (*parser).callonOptAscDesc2, expr: &seqExpr{ - pos: position{line: 2605, col: 5, offset: 78335}, + pos: position{line: 2610, col: 5, offset: 78519}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2605, col: 5, offset: 78335}, + pos: position{line: 2610, col: 5, offset: 78519}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2605, col: 7, offset: 78337}, + pos: position{line: 2610, col: 7, offset: 78521}, name: "ASC", }, }, }, }, &actionExpr{ - pos: position{line: 2606, col: 5, offset: 78397}, + pos: position{line: 2611, col: 5, offset: 78581}, run: (*parser).callonOptAscDesc6, expr: &seqExpr{ - pos: position{line: 2606, col: 5, offset: 78397}, + pos: position{line: 2611, col: 5, offset: 78581}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2606, col: 5, offset: 78397}, + pos: position{line: 2611, col: 5, offset: 78581}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2606, col: 7, offset: 78399}, + pos: position{line: 2611, col: 7, offset: 78583}, name: "DESC", }, }, }, }, &actionExpr{ - pos: position{line: 2607, col: 5, offset: 78459}, + pos: position{line: 2612, col: 5, offset: 78643}, run: (*parser).callonOptAscDesc10, expr: &litMatcher{ - pos: position{line: 2607, col: 5, offset: 78459}, + pos: position{line: 2612, col: 5, offset: 78643}, val: "", ignoreCase: false, want: "\"\"", @@ -17930,65 +17983,65 @@ var g = &grammar{ }, { name: "OptNullsOrder", - pos: position{line: 2609, col: 1, offset: 78491}, + pos: position{line: 2614, col: 1, offset: 78675}, expr: &choiceExpr{ - pos: position{line: 2610, col: 5, offset: 78509}, + pos: position{line: 2615, col: 5, offset: 78693}, alternatives: []any{ &actionExpr{ - pos: position{line: 2610, col: 5, offset: 78509}, + pos: position{line: 2615, col: 5, offset: 78693}, run: (*parser).callonOptNullsOrder2, expr: &seqExpr{ - pos: position{line: 2610, col: 5, offset: 78509}, + pos: position{line: 2615, col: 5, offset: 78693}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2610, col: 5, offset: 78509}, + pos: position{line: 2615, col: 5, offset: 78693}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2610, col: 7, offset: 78511}, + pos: position{line: 2615, col: 7, offset: 78695}, name: "NULLS", }, &ruleRefExpr{ - pos: position{line: 2610, col: 13, offset: 78517}, + pos: position{line: 2615, col: 13, offset: 78701}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2610, col: 15, offset: 78519}, + pos: position{line: 2615, col: 15, offset: 78703}, name: "FIRST", }, }, }, }, &actionExpr{ - pos: position{line: 2611, col: 5, offset: 78583}, + pos: position{line: 2616, col: 5, offset: 78767}, run: (*parser).callonOptNullsOrder8, expr: &seqExpr{ - pos: position{line: 2611, col: 5, offset: 78583}, + pos: position{line: 2616, col: 5, offset: 78767}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2611, col: 5, offset: 78583}, + pos: position{line: 2616, col: 5, offset: 78767}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2611, col: 7, offset: 78585}, + pos: position{line: 2616, col: 7, offset: 78769}, name: "NULLS", }, &ruleRefExpr{ - pos: position{line: 2611, col: 13, offset: 78591}, + pos: position{line: 2616, col: 13, offset: 78775}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2611, col: 15, offset: 78593}, + pos: position{line: 2616, col: 15, offset: 78777}, name: "LAST", }, }, }, }, &actionExpr{ - pos: position{line: 2612, col: 5, offset: 78656}, + pos: position{line: 2617, col: 5, offset: 78840}, run: (*parser).callonOptNullsOrder14, expr: &litMatcher{ - pos: position{line: 2612, col: 5, offset: 78656}, + pos: position{line: 2617, col: 5, offset: 78840}, val: "", ignoreCase: false, want: "\"\"", @@ -18001,25 +18054,25 @@ var g = &grammar{ }, { name: "OptSQLLimitOffset", - pos: position{line: 2614, col: 1, offset: 78701}, + pos: position{line: 2619, col: 1, offset: 78885}, expr: &choiceExpr{ - pos: position{line: 2615, col: 5, offset: 78723}, + pos: position{line: 2620, col: 5, offset: 78907}, alternatives: []any{ &actionExpr{ - pos: position{line: 2615, col: 5, offset: 78723}, + pos: position{line: 2620, col: 5, offset: 78907}, run: (*parser).callonOptSQLLimitOffset2, expr: &seqExpr{ - pos: position{line: 2615, col: 5, offset: 78723}, + pos: position{line: 2620, col: 5, offset: 78907}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2615, col: 5, offset: 78723}, + pos: position{line: 2620, col: 5, offset: 78907}, name: "_", }, &labeledExpr{ - pos: position{line: 2615, col: 7, offset: 78725}, + pos: position{line: 2620, col: 7, offset: 78909}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 2615, col: 10, offset: 78728}, + pos: position{line: 2620, col: 10, offset: 78912}, name: "SQLLimitOffset", }, }, @@ -18027,10 +18080,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2616, col: 5, offset: 78766}, + pos: position{line: 2621, col: 5, offset: 78950}, run: (*parser).callonOptSQLLimitOffset7, expr: &litMatcher{ - pos: position{line: 2616, col: 5, offset: 78766}, + pos: position{line: 2621, col: 5, offset: 78950}, val: "", ignoreCase: false, want: "\"\"", @@ -18043,29 +18096,29 @@ var g = &grammar{ }, { name: "SQLLimitOffset", - pos: position{line: 2618, col: 1, offset: 78807}, + pos: position{line: 2623, col: 1, offset: 78991}, expr: &choiceExpr{ - pos: position{line: 2619, col: 5, offset: 78826}, + pos: position{line: 2624, col: 5, offset: 79010}, alternatives: []any{ &actionExpr{ - pos: position{line: 2619, col: 5, offset: 78826}, + pos: position{line: 2624, col: 5, offset: 79010}, run: (*parser).callonSQLLimitOffset2, expr: &seqExpr{ - pos: position{line: 2619, col: 5, offset: 78826}, + pos: position{line: 2624, col: 5, offset: 79010}, exprs: []any{ &labeledExpr{ - pos: position{line: 2619, col: 5, offset: 78826}, + pos: position{line: 2624, col: 5, offset: 79010}, label: "l", expr: &ruleRefExpr{ - pos: position{line: 2619, col: 7, offset: 78828}, + pos: position{line: 2624, col: 7, offset: 79012}, name: "LimitClause", }, }, &labeledExpr{ - pos: position{line: 2619, col: 19, offset: 78840}, + pos: position{line: 2624, col: 19, offset: 79024}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 2619, col: 21, offset: 78842}, + pos: position{line: 2624, col: 21, offset: 79026}, name: "OptOffsetClause", }, }, @@ -18073,24 +18126,24 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2631, col: 5, offset: 79074}, + pos: position{line: 2636, col: 5, offset: 79258}, run: (*parser).callonSQLLimitOffset8, expr: &seqExpr{ - pos: position{line: 2631, col: 5, offset: 79074}, + pos: position{line: 2636, col: 5, offset: 79258}, exprs: []any{ &labeledExpr{ - pos: position{line: 2631, col: 5, offset: 79074}, + pos: position{line: 2636, col: 5, offset: 79258}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 2631, col: 7, offset: 79076}, + pos: position{line: 2636, col: 7, offset: 79260}, name: "OffsetClause", }, }, &labeledExpr{ - pos: position{line: 2631, col: 20, offset: 79089}, + pos: position{line: 2636, col: 20, offset: 79273}, label: "l", expr: &ruleRefExpr{ - pos: position{line: 2631, col: 22, offset: 79091}, + pos: position{line: 2636, col: 22, offset: 79275}, name: "OptLimitClause", }, }, @@ -18104,25 +18157,25 @@ var g = &grammar{ }, { name: "OptLimitClause", - pos: position{line: 2642, col: 1, offset: 79288}, + pos: position{line: 2647, col: 1, offset: 79472}, expr: &choiceExpr{ - pos: position{line: 2643, col: 5, offset: 79307}, + pos: position{line: 2648, col: 5, offset: 79491}, alternatives: []any{ &actionExpr{ - pos: position{line: 2643, col: 5, offset: 79307}, + pos: position{line: 2648, col: 5, offset: 79491}, run: (*parser).callonOptLimitClause2, expr: &seqExpr{ - pos: position{line: 2643, col: 5, offset: 79307}, + pos: position{line: 2648, col: 5, offset: 79491}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2643, col: 5, offset: 79307}, + pos: position{line: 2648, col: 5, offset: 79491}, name: "_", }, &labeledExpr{ - pos: position{line: 2643, col: 7, offset: 79309}, + pos: position{line: 2648, col: 7, offset: 79493}, label: "l", expr: &ruleRefExpr{ - pos: position{line: 2643, col: 9, offset: 79311}, + pos: position{line: 2648, col: 9, offset: 79495}, name: "LimitClause", }, }, @@ -18130,10 +18183,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2644, col: 5, offset: 79345}, + pos: position{line: 2649, col: 5, offset: 79529}, run: (*parser).callonOptLimitClause7, expr: &litMatcher{ - pos: position{line: 2644, col: 5, offset: 79345}, + pos: position{line: 2649, col: 5, offset: 79529}, val: "", ignoreCase: false, want: "\"\"", @@ -18146,50 +18199,50 @@ var g = &grammar{ }, { name: "LimitClause", - pos: position{line: 2646, col: 1, offset: 79382}, + pos: position{line: 2651, col: 1, offset: 79566}, expr: &choiceExpr{ - pos: position{line: 2647, col: 5, offset: 79398}, + pos: position{line: 2652, col: 5, offset: 79582}, alternatives: []any{ &actionExpr{ - pos: position{line: 2647, col: 5, offset: 79398}, + pos: position{line: 2652, col: 5, offset: 79582}, run: (*parser).callonLimitClause2, expr: &seqExpr{ - pos: position{line: 2647, col: 5, offset: 79398}, + pos: position{line: 2652, col: 5, offset: 79582}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2647, col: 5, offset: 79398}, + pos: position{line: 2652, col: 5, offset: 79582}, name: "LIMIT", }, &ruleRefExpr{ - pos: position{line: 2647, col: 11, offset: 79404}, + pos: position{line: 2652, col: 11, offset: 79588}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2647, col: 13, offset: 79406}, + pos: position{line: 2652, col: 13, offset: 79590}, name: "ALL", }, }, }, }, &actionExpr{ - pos: position{line: 2648, col: 5, offset: 79434}, + pos: position{line: 2653, col: 5, offset: 79618}, run: (*parser).callonLimitClause7, expr: &seqExpr{ - pos: position{line: 2648, col: 5, offset: 79434}, + pos: position{line: 2653, col: 5, offset: 79618}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2648, col: 5, offset: 79434}, + pos: position{line: 2653, col: 5, offset: 79618}, name: "LIMIT", }, &ruleRefExpr{ - pos: position{line: 2648, col: 11, offset: 79440}, + pos: position{line: 2653, col: 11, offset: 79624}, name: "_", }, &labeledExpr{ - pos: position{line: 2648, col: 13, offset: 79442}, + pos: position{line: 2653, col: 13, offset: 79626}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 2648, col: 15, offset: 79444}, + pos: position{line: 2653, col: 15, offset: 79628}, name: "Expr", }, }, @@ -18203,25 +18256,25 @@ var g = &grammar{ }, { name: "OptOffsetClause", - pos: position{line: 2650, col: 1, offset: 79468}, + pos: position{line: 2655, col: 1, offset: 79652}, expr: &choiceExpr{ - pos: position{line: 2651, col: 5, offset: 79488}, + pos: position{line: 2656, col: 5, offset: 79672}, alternatives: []any{ &actionExpr{ - pos: position{line: 2651, col: 5, offset: 79488}, + pos: position{line: 2656, col: 5, offset: 79672}, run: (*parser).callonOptOffsetClause2, expr: &seqExpr{ - pos: position{line: 2651, col: 5, offset: 79488}, + pos: position{line: 2656, col: 5, offset: 79672}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2651, col: 5, offset: 79488}, + pos: position{line: 2656, col: 5, offset: 79672}, name: "_", }, &labeledExpr{ - pos: position{line: 2651, col: 7, offset: 79490}, + pos: position{line: 2656, col: 7, offset: 79674}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 2651, col: 9, offset: 79492}, + pos: position{line: 2656, col: 9, offset: 79676}, name: "OffsetClause", }, }, @@ -18229,10 +18282,10 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 2652, col: 5, offset: 79528}, + pos: position{line: 2657, col: 5, offset: 79712}, run: (*parser).callonOptOffsetClause7, expr: &litMatcher{ - pos: position{line: 2652, col: 5, offset: 79528}, + pos: position{line: 2657, col: 5, offset: 79712}, val: "", ignoreCase: false, want: "\"\"", @@ -18245,26 +18298,26 @@ var g = &grammar{ }, { name: "OffsetClause", - pos: position{line: 2654, col: 1, offset: 79553}, + pos: position{line: 2659, col: 1, offset: 79737}, expr: &actionExpr{ - pos: position{line: 2655, col: 5, offset: 79570}, + pos: position{line: 2660, col: 5, offset: 79754}, run: (*parser).callonOffsetClause1, expr: &seqExpr{ - pos: position{line: 2655, col: 5, offset: 79570}, + pos: position{line: 2660, col: 5, offset: 79754}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2655, col: 5, offset: 79570}, + pos: position{line: 2660, col: 5, offset: 79754}, name: "OFFSET", }, &ruleRefExpr{ - pos: position{line: 2655, col: 12, offset: 79577}, + pos: position{line: 2660, col: 12, offset: 79761}, name: "_", }, &labeledExpr{ - pos: position{line: 2655, col: 14, offset: 79579}, + pos: position{line: 2660, col: 14, offset: 79763}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 2655, col: 16, offset: 79581}, + pos: position{line: 2660, col: 16, offset: 79765}, name: "Expr", }, }, @@ -18276,60 +18329,60 @@ var g = &grammar{ }, { name: "SetOp", - pos: position{line: 2657, col: 1, offset: 79606}, + pos: position{line: 2662, col: 1, offset: 79790}, expr: &choiceExpr{ - pos: position{line: 2658, col: 5, offset: 79616}, + pos: position{line: 2663, col: 5, offset: 79800}, alternatives: []any{ &actionExpr{ - pos: position{line: 2658, col: 5, offset: 79616}, + pos: position{line: 2663, col: 5, offset: 79800}, run: (*parser).callonSetOp2, expr: &seqExpr{ - pos: position{line: 2658, col: 5, offset: 79616}, + pos: position{line: 2663, col: 5, offset: 79800}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2658, col: 5, offset: 79616}, + pos: position{line: 2663, col: 5, offset: 79800}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2658, col: 7, offset: 79618}, + pos: position{line: 2663, col: 7, offset: 79802}, name: "UNION", }, &ruleRefExpr{ - pos: position{line: 2658, col: 13, offset: 79624}, + pos: position{line: 2663, col: 13, offset: 79808}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2658, col: 15, offset: 79626}, + pos: position{line: 2663, col: 15, offset: 79810}, name: "ALL", }, }, }, }, &actionExpr{ - pos: position{line: 2659, col: 5, offset: 79662}, + pos: position{line: 2664, col: 5, offset: 79846}, run: (*parser).callonSetOp8, expr: &seqExpr{ - pos: position{line: 2659, col: 5, offset: 79662}, + pos: position{line: 2664, col: 5, offset: 79846}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2659, col: 5, offset: 79662}, + pos: position{line: 2664, col: 5, offset: 79846}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2659, col: 7, offset: 79664}, + pos: position{line: 2664, col: 7, offset: 79848}, name: "UNION", }, &zeroOrOneExpr{ - pos: position{line: 2659, col: 13, offset: 79670}, + pos: position{line: 2664, col: 13, offset: 79854}, expr: &seqExpr{ - pos: position{line: 2659, col: 14, offset: 79671}, + pos: position{line: 2664, col: 14, offset: 79855}, exprs: []any{ &ruleRefExpr{ - pos: position{line: 2659, col: 14, offset: 79671}, + pos: position{line: 2664, col: 14, offset: 79855}, name: "_", }, &ruleRefExpr{ - pos: position{line: 2659, col: 16, offset: 79673}, + pos: position{line: 2664, col: 16, offset: 79857}, name: "DISTINCT", }, }, @@ -18345,88 +18398,88 @@ var g = &grammar{ }, { name: "SQLGuard", - pos: position{line: 2662, col: 1, offset: 79725}, + pos: position{line: 2667, col: 1, offset: 79909}, expr: &choiceExpr{ - pos: position{line: 2663, col: 5, offset: 79740}, + pos: position{line: 2668, col: 5, offset: 79924}, alternatives: []any{ &ruleRefExpr{ - pos: position{line: 2663, col: 5, offset: 79740}, + pos: position{line: 2668, col: 5, offset: 79924}, name: "FROM", }, &ruleRefExpr{ - pos: position{line: 2663, col: 12, offset: 79747}, + pos: position{line: 2668, col: 12, offset: 79931}, name: "GROUP", }, &ruleRefExpr{ - pos: position{line: 2663, col: 20, offset: 79755}, + pos: position{line: 2668, col: 20, offset: 79939}, name: "HAVING", }, &ruleRefExpr{ - pos: position{line: 2663, col: 29, offset: 79764}, + pos: position{line: 2668, col: 29, offset: 79948}, name: "SELECT", }, &ruleRefExpr{ - pos: position{line: 2663, col: 38, offset: 79773}, + pos: position{line: 2668, col: 38, offset: 79957}, name: "RECURSIVE", }, &ruleRefExpr{ - pos: position{line: 2664, col: 5, offset: 79787}, + pos: position{line: 2669, col: 5, offset: 79971}, name: "ANTI", }, &ruleRefExpr{ - pos: position{line: 2664, col: 12, offset: 79794}, + pos: position{line: 2669, col: 12, offset: 79978}, name: "INNER", }, &ruleRefExpr{ - pos: position{line: 2664, col: 20, offset: 79802}, + pos: position{line: 2669, col: 20, offset: 79986}, name: "LEFT", }, &ruleRefExpr{ - pos: position{line: 2664, col: 27, offset: 79809}, + pos: position{line: 2669, col: 27, offset: 79993}, name: "RIGHT", }, &ruleRefExpr{ - pos: position{line: 2664, col: 35, offset: 79817}, + pos: position{line: 2669, col: 35, offset: 80001}, name: "OUTER", }, &ruleRefExpr{ - pos: position{line: 2664, col: 43, offset: 79825}, + pos: position{line: 2669, col: 43, offset: 80009}, name: "CROSS", }, &ruleRefExpr{ - pos: position{line: 2664, col: 51, offset: 79833}, + pos: position{line: 2669, col: 51, offset: 80017}, name: "JOIN", }, &ruleRefExpr{ - pos: position{line: 2665, col: 5, offset: 79842}, + pos: position{line: 2670, col: 5, offset: 80026}, name: "UNION", }, &ruleRefExpr{ - pos: position{line: 2666, col: 5, offset: 79852}, + pos: position{line: 2671, col: 5, offset: 80036}, name: "ORDER", }, &ruleRefExpr{ - pos: position{line: 2667, col: 5, offset: 79862}, + pos: position{line: 2672, col: 5, offset: 80046}, name: "OFFSET", }, &ruleRefExpr{ - pos: position{line: 2668, col: 5, offset: 79873}, + pos: position{line: 2673, col: 5, offset: 80057}, name: "LIMIT", }, &ruleRefExpr{ - pos: position{line: 2669, col: 5, offset: 79883}, + pos: position{line: 2674, col: 5, offset: 80067}, name: "WHERE", }, &ruleRefExpr{ - pos: position{line: 2670, col: 5, offset: 79893}, + pos: position{line: 2675, col: 5, offset: 80077}, name: "WITH", }, &ruleRefExpr{ - pos: position{line: 2671, col: 5, offset: 79902}, + pos: position{line: 2676, col: 5, offset: 80086}, name: "USING", }, &ruleRefExpr{ - pos: position{line: 2672, col: 5, offset: 79912}, + pos: position{line: 2677, col: 5, offset: 80096}, name: "ON", }, }, @@ -18436,20 +18489,20 @@ var g = &grammar{ }, { name: "AGGREGATE", - pos: position{line: 2674, col: 1, offset: 79916}, + pos: position{line: 2679, col: 1, offset: 80100}, expr: &seqExpr{ - pos: position{line: 2674, col: 14, offset: 79929}, + pos: position{line: 2679, col: 14, offset: 80113}, exprs: []any{ &litMatcher{ - pos: position{line: 2674, col: 14, offset: 79929}, + pos: position{line: 2679, col: 14, offset: 80113}, val: "aggregate", ignoreCase: true, want: "\"AGGREGATE\"i", }, ¬Expr{ - pos: position{line: 2674, col: 33, offset: 79948}, + pos: position{line: 2679, col: 33, offset: 80132}, expr: &ruleRefExpr{ - pos: position{line: 2674, col: 34, offset: 79949}, + pos: position{line: 2679, col: 34, offset: 80133}, name: "IdentifierRest", }, }, @@ -18460,20 +18513,20 @@ var g = &grammar{ }, { name: "ALL", - pos: position{line: 2675, col: 1, offset: 79964}, + pos: position{line: 2680, col: 1, offset: 80148}, expr: &seqExpr{ - pos: position{line: 2675, col: 14, offset: 79977}, + pos: position{line: 2680, col: 14, offset: 80161}, exprs: []any{ &litMatcher{ - pos: position{line: 2675, col: 14, offset: 79977}, + pos: position{line: 2680, col: 14, offset: 80161}, val: "all", ignoreCase: true, want: "\"ALL\"i", }, ¬Expr{ - pos: position{line: 2675, col: 33, offset: 79996}, + pos: position{line: 2680, col: 33, offset: 80180}, expr: &ruleRefExpr{ - pos: position{line: 2675, col: 34, offset: 79997}, + pos: position{line: 2680, col: 34, offset: 80181}, name: "IdentifierRest", }, }, @@ -18484,23 +18537,23 @@ var g = &grammar{ }, { name: "AND", - pos: position{line: 2676, col: 1, offset: 80012}, + pos: position{line: 2681, col: 1, offset: 80196}, expr: &actionExpr{ - pos: position{line: 2676, col: 14, offset: 80025}, + pos: position{line: 2681, col: 14, offset: 80209}, run: (*parser).callonAND1, expr: &seqExpr{ - pos: position{line: 2676, col: 14, offset: 80025}, + pos: position{line: 2681, col: 14, offset: 80209}, exprs: []any{ &litMatcher{ - pos: position{line: 2676, col: 14, offset: 80025}, + pos: position{line: 2681, col: 14, offset: 80209}, val: "and", ignoreCase: true, want: "\"AND\"i", }, ¬Expr{ - pos: position{line: 2676, col: 33, offset: 80044}, + pos: position{line: 2681, col: 33, offset: 80228}, expr: &ruleRefExpr{ - pos: position{line: 2676, col: 34, offset: 80045}, + pos: position{line: 2681, col: 34, offset: 80229}, name: "IdentifierRest", }, }, @@ -18512,20 +18565,20 @@ var g = &grammar{ }, { name: "ANTI", - pos: position{line: 2677, col: 1, offset: 80082}, + pos: position{line: 2682, col: 1, offset: 80266}, expr: &seqExpr{ - pos: position{line: 2677, col: 14, offset: 80095}, + pos: position{line: 2682, col: 14, offset: 80279}, exprs: []any{ &litMatcher{ - pos: position{line: 2677, col: 14, offset: 80095}, + pos: position{line: 2682, col: 14, offset: 80279}, val: "anti", ignoreCase: true, want: "\"ANTI\"i", }, ¬Expr{ - pos: position{line: 2677, col: 33, offset: 80114}, + pos: position{line: 2682, col: 33, offset: 80298}, expr: &ruleRefExpr{ - pos: position{line: 2677, col: 34, offset: 80115}, + pos: position{line: 2682, col: 34, offset: 80299}, name: "IdentifierRest", }, }, @@ -18536,20 +18589,20 @@ var g = &grammar{ }, { name: "ANY", - pos: position{line: 2678, col: 1, offset: 80130}, + pos: position{line: 2683, col: 1, offset: 80314}, expr: &seqExpr{ - pos: position{line: 2678, col: 14, offset: 80143}, + pos: position{line: 2683, col: 14, offset: 80327}, exprs: []any{ &litMatcher{ - pos: position{line: 2678, col: 14, offset: 80143}, + pos: position{line: 2683, col: 14, offset: 80327}, val: "any", ignoreCase: true, want: "\"ANY\"i", }, ¬Expr{ - pos: position{line: 2678, col: 33, offset: 80162}, + pos: position{line: 2683, col: 33, offset: 80346}, expr: &ruleRefExpr{ - pos: position{line: 2678, col: 34, offset: 80163}, + pos: position{line: 2683, col: 34, offset: 80347}, name: "IdentifierRest", }, }, @@ -18560,20 +18613,20 @@ var g = &grammar{ }, { name: "AS", - pos: position{line: 2679, col: 1, offset: 80178}, + pos: position{line: 2684, col: 1, offset: 80362}, expr: &seqExpr{ - pos: position{line: 2679, col: 14, offset: 80191}, + pos: position{line: 2684, col: 14, offset: 80375}, exprs: []any{ &litMatcher{ - pos: position{line: 2679, col: 14, offset: 80191}, + pos: position{line: 2684, col: 14, offset: 80375}, val: "as", ignoreCase: true, want: "\"AS\"i", }, ¬Expr{ - pos: position{line: 2679, col: 33, offset: 80210}, + pos: position{line: 2684, col: 33, offset: 80394}, expr: &ruleRefExpr{ - pos: position{line: 2679, col: 34, offset: 80211}, + pos: position{line: 2684, col: 34, offset: 80395}, name: "IdentifierRest", }, }, @@ -18584,23 +18637,23 @@ var g = &grammar{ }, { name: "ASC", - pos: position{line: 2680, col: 1, offset: 80226}, + pos: position{line: 2685, col: 1, offset: 80410}, expr: &actionExpr{ - pos: position{line: 2680, col: 14, offset: 80239}, + pos: position{line: 2685, col: 14, offset: 80423}, run: (*parser).callonASC1, expr: &seqExpr{ - pos: position{line: 2680, col: 14, offset: 80239}, + pos: position{line: 2685, col: 14, offset: 80423}, exprs: []any{ &litMatcher{ - pos: position{line: 2680, col: 14, offset: 80239}, + pos: position{line: 2685, col: 14, offset: 80423}, val: "asc", ignoreCase: true, want: "\"ASC\"i", }, ¬Expr{ - pos: position{line: 2680, col: 33, offset: 80258}, + pos: position{line: 2685, col: 33, offset: 80442}, expr: &ruleRefExpr{ - pos: position{line: 2680, col: 34, offset: 80259}, + pos: position{line: 2685, col: 34, offset: 80443}, name: "IdentifierRest", }, }, @@ -18612,20 +18665,20 @@ var g = &grammar{ }, { name: "ASSERT", - pos: position{line: 2681, col: 1, offset: 80296}, + pos: position{line: 2686, col: 1, offset: 80480}, expr: &seqExpr{ - pos: position{line: 2681, col: 14, offset: 80309}, + pos: position{line: 2686, col: 14, offset: 80493}, exprs: []any{ &litMatcher{ - pos: position{line: 2681, col: 14, offset: 80309}, + pos: position{line: 2686, col: 14, offset: 80493}, val: "assert", ignoreCase: true, want: "\"ASSERT\"i", }, ¬Expr{ - pos: position{line: 2681, col: 33, offset: 80328}, + pos: position{line: 2686, col: 33, offset: 80512}, expr: &ruleRefExpr{ - pos: position{line: 2681, col: 34, offset: 80329}, + pos: position{line: 2686, col: 34, offset: 80513}, name: "IdentifierRest", }, }, @@ -18636,20 +18689,20 @@ var g = &grammar{ }, { name: "AT", - pos: position{line: 2682, col: 1, offset: 80344}, + pos: position{line: 2687, col: 1, offset: 80528}, expr: &seqExpr{ - pos: position{line: 2682, col: 14, offset: 80357}, + pos: position{line: 2687, col: 14, offset: 80541}, exprs: []any{ &litMatcher{ - pos: position{line: 2682, col: 14, offset: 80357}, + pos: position{line: 2687, col: 14, offset: 80541}, val: "at", ignoreCase: true, want: "\"AT\"i", }, ¬Expr{ - pos: position{line: 2682, col: 33, offset: 80376}, + pos: position{line: 2687, col: 33, offset: 80560}, expr: &ruleRefExpr{ - pos: position{line: 2682, col: 34, offset: 80377}, + pos: position{line: 2687, col: 34, offset: 80561}, name: "IdentifierRest", }, }, @@ -18660,20 +18713,20 @@ var g = &grammar{ }, { name: "BETWEEN", - pos: position{line: 2683, col: 1, offset: 80392}, + pos: position{line: 2688, col: 1, offset: 80576}, expr: &seqExpr{ - pos: position{line: 2683, col: 14, offset: 80405}, + pos: position{line: 2688, col: 14, offset: 80589}, exprs: []any{ &litMatcher{ - pos: position{line: 2683, col: 14, offset: 80405}, + pos: position{line: 2688, col: 14, offset: 80589}, val: "between", ignoreCase: true, want: "\"BETWEEN\"i", }, ¬Expr{ - pos: position{line: 2683, col: 33, offset: 80424}, + pos: position{line: 2688, col: 33, offset: 80608}, expr: &ruleRefExpr{ - pos: position{line: 2683, col: 34, offset: 80425}, + pos: position{line: 2688, col: 34, offset: 80609}, name: "IdentifierRest", }, }, @@ -18684,20 +18737,20 @@ var g = &grammar{ }, { name: "BY", - pos: position{line: 2684, col: 1, offset: 80440}, + pos: position{line: 2689, col: 1, offset: 80624}, expr: &seqExpr{ - pos: position{line: 2684, col: 14, offset: 80453}, + pos: position{line: 2689, col: 14, offset: 80637}, exprs: []any{ &litMatcher{ - pos: position{line: 2684, col: 14, offset: 80453}, + pos: position{line: 2689, col: 14, offset: 80637}, val: "by", ignoreCase: true, want: "\"BY\"i", }, ¬Expr{ - pos: position{line: 2684, col: 33, offset: 80472}, + pos: position{line: 2689, col: 33, offset: 80656}, expr: &ruleRefExpr{ - pos: position{line: 2684, col: 34, offset: 80473}, + pos: position{line: 2689, col: 34, offset: 80657}, name: "IdentifierRest", }, }, @@ -18708,20 +18761,20 @@ var g = &grammar{ }, { name: "CALL", - pos: position{line: 2685, col: 1, offset: 80488}, + pos: position{line: 2690, col: 1, offset: 80672}, expr: &seqExpr{ - pos: position{line: 2685, col: 14, offset: 80501}, + pos: position{line: 2690, col: 14, offset: 80685}, exprs: []any{ &litMatcher{ - pos: position{line: 2685, col: 14, offset: 80501}, + pos: position{line: 2690, col: 14, offset: 80685}, val: "call", ignoreCase: true, want: "\"CALL\"i", }, ¬Expr{ - pos: position{line: 2685, col: 33, offset: 80520}, + pos: position{line: 2690, col: 33, offset: 80704}, expr: &ruleRefExpr{ - pos: position{line: 2685, col: 34, offset: 80521}, + pos: position{line: 2690, col: 34, offset: 80705}, name: "IdentifierRest", }, }, @@ -18732,20 +18785,20 @@ var g = &grammar{ }, { name: "CASE", - pos: position{line: 2686, col: 1, offset: 80536}, + pos: position{line: 2691, col: 1, offset: 80720}, expr: &seqExpr{ - pos: position{line: 2686, col: 14, offset: 80549}, + pos: position{line: 2691, col: 14, offset: 80733}, exprs: []any{ &litMatcher{ - pos: position{line: 2686, col: 14, offset: 80549}, + pos: position{line: 2691, col: 14, offset: 80733}, val: "case", ignoreCase: true, want: "\"CASE\"i", }, ¬Expr{ - pos: position{line: 2686, col: 33, offset: 80568}, + pos: position{line: 2691, col: 33, offset: 80752}, expr: &ruleRefExpr{ - pos: position{line: 2686, col: 34, offset: 80569}, + pos: position{line: 2691, col: 34, offset: 80753}, name: "IdentifierRest", }, }, @@ -18756,20 +18809,20 @@ var g = &grammar{ }, { name: "MATCH", - pos: position{line: 2687, col: 1, offset: 80584}, + pos: position{line: 2692, col: 1, offset: 80768}, expr: &seqExpr{ - pos: position{line: 2687, col: 14, offset: 80597}, + pos: position{line: 2692, col: 14, offset: 80781}, exprs: []any{ &litMatcher{ - pos: position{line: 2687, col: 14, offset: 80597}, + pos: position{line: 2692, col: 14, offset: 80781}, val: "match", ignoreCase: true, want: "\"MATCH\"i", }, ¬Expr{ - pos: position{line: 2687, col: 33, offset: 80616}, + pos: position{line: 2692, col: 33, offset: 80800}, expr: &ruleRefExpr{ - pos: position{line: 2687, col: 34, offset: 80617}, + pos: position{line: 2692, col: 34, offset: 80801}, name: "IdentifierRest", }, }, @@ -18780,20 +18833,20 @@ var g = &grammar{ }, { name: "CAST", - pos: position{line: 2688, col: 1, offset: 80632}, + pos: position{line: 2693, col: 1, offset: 80816}, expr: &seqExpr{ - pos: position{line: 2688, col: 14, offset: 80645}, + pos: position{line: 2693, col: 14, offset: 80829}, exprs: []any{ &litMatcher{ - pos: position{line: 2688, col: 14, offset: 80645}, + pos: position{line: 2693, col: 14, offset: 80829}, val: "cast", ignoreCase: true, want: "\"CAST\"i", }, ¬Expr{ - pos: position{line: 2688, col: 33, offset: 80664}, + pos: position{line: 2693, col: 33, offset: 80848}, expr: &ruleRefExpr{ - pos: position{line: 2688, col: 34, offset: 80665}, + pos: position{line: 2693, col: 34, offset: 80849}, name: "IdentifierRest", }, }, @@ -18804,20 +18857,20 @@ var g = &grammar{ }, { name: "CONST", - pos: position{line: 2689, col: 1, offset: 80680}, + pos: position{line: 2694, col: 1, offset: 80864}, expr: &seqExpr{ - pos: position{line: 2689, col: 14, offset: 80693}, + pos: position{line: 2694, col: 14, offset: 80877}, exprs: []any{ &litMatcher{ - pos: position{line: 2689, col: 14, offset: 80693}, + pos: position{line: 2694, col: 14, offset: 80877}, val: "const", ignoreCase: true, want: "\"CONST\"i", }, ¬Expr{ - pos: position{line: 2689, col: 33, offset: 80712}, + pos: position{line: 2694, col: 33, offset: 80896}, expr: &ruleRefExpr{ - pos: position{line: 2689, col: 34, offset: 80713}, + pos: position{line: 2694, col: 34, offset: 80897}, name: "IdentifierRest", }, }, @@ -18828,20 +18881,20 @@ var g = &grammar{ }, { name: "COUNT", - pos: position{line: 2690, col: 1, offset: 80728}, + pos: position{line: 2695, col: 1, offset: 80912}, expr: &seqExpr{ - pos: position{line: 2690, col: 14, offset: 80741}, + pos: position{line: 2695, col: 14, offset: 80925}, exprs: []any{ &litMatcher{ - pos: position{line: 2690, col: 14, offset: 80741}, + pos: position{line: 2695, col: 14, offset: 80925}, val: "count", ignoreCase: true, want: "\"COUNT\"i", }, ¬Expr{ - pos: position{line: 2690, col: 33, offset: 80760}, + pos: position{line: 2695, col: 33, offset: 80944}, expr: &ruleRefExpr{ - pos: position{line: 2690, col: 34, offset: 80761}, + pos: position{line: 2695, col: 34, offset: 80945}, name: "IdentifierRest", }, }, @@ -18852,20 +18905,20 @@ var g = &grammar{ }, { name: "CREATE", - pos: position{line: 2691, col: 1, offset: 80776}, + pos: position{line: 2696, col: 1, offset: 80960}, expr: &seqExpr{ - pos: position{line: 2691, col: 14, offset: 80789}, + pos: position{line: 2696, col: 14, offset: 80973}, exprs: []any{ &litMatcher{ - pos: position{line: 2691, col: 14, offset: 80789}, + pos: position{line: 2696, col: 14, offset: 80973}, val: "create", ignoreCase: true, want: "\"CREATE\"i", }, ¬Expr{ - pos: position{line: 2691, col: 33, offset: 80808}, + pos: position{line: 2696, col: 33, offset: 80992}, expr: &ruleRefExpr{ - pos: position{line: 2691, col: 34, offset: 80809}, + pos: position{line: 2696, col: 34, offset: 80993}, name: "IdentifierRest", }, }, @@ -18876,20 +18929,20 @@ var g = &grammar{ }, { name: "CROSS", - pos: position{line: 2692, col: 1, offset: 80824}, + pos: position{line: 2697, col: 1, offset: 81008}, expr: &seqExpr{ - pos: position{line: 2692, col: 14, offset: 80837}, + pos: position{line: 2697, col: 14, offset: 81021}, exprs: []any{ &litMatcher{ - pos: position{line: 2692, col: 14, offset: 80837}, + pos: position{line: 2697, col: 14, offset: 81021}, val: "cross", ignoreCase: true, want: "\"CROSS\"i", }, ¬Expr{ - pos: position{line: 2692, col: 33, offset: 80856}, + pos: position{line: 2697, col: 33, offset: 81040}, expr: &ruleRefExpr{ - pos: position{line: 2692, col: 34, offset: 80857}, + pos: position{line: 2697, col: 34, offset: 81041}, name: "IdentifierRest", }, }, @@ -18900,20 +18953,20 @@ var g = &grammar{ }, { name: "CUT", - pos: position{line: 2693, col: 1, offset: 80872}, + pos: position{line: 2698, col: 1, offset: 81056}, expr: &seqExpr{ - pos: position{line: 2693, col: 14, offset: 80885}, + pos: position{line: 2698, col: 14, offset: 81069}, exprs: []any{ &litMatcher{ - pos: position{line: 2693, col: 14, offset: 80885}, + pos: position{line: 2698, col: 14, offset: 81069}, val: "cut", ignoreCase: true, want: "\"CUT\"i", }, ¬Expr{ - pos: position{line: 2693, col: 33, offset: 80904}, + pos: position{line: 2698, col: 33, offset: 81088}, expr: &ruleRefExpr{ - pos: position{line: 2693, col: 34, offset: 80905}, + pos: position{line: 2698, col: 34, offset: 81089}, name: "IdentifierRest", }, }, @@ -18924,23 +18977,23 @@ var g = &grammar{ }, { name: "DATE", - pos: position{line: 2694, col: 1, offset: 80920}, + pos: position{line: 2699, col: 1, offset: 81104}, expr: &actionExpr{ - pos: position{line: 2694, col: 14, offset: 80933}, + pos: position{line: 2699, col: 14, offset: 81117}, run: (*parser).callonDATE1, expr: &seqExpr{ - pos: position{line: 2694, col: 14, offset: 80933}, + pos: position{line: 2699, col: 14, offset: 81117}, exprs: []any{ &litMatcher{ - pos: position{line: 2694, col: 14, offset: 80933}, + pos: position{line: 2699, col: 14, offset: 81117}, val: "date", ignoreCase: true, want: "\"DATE\"i", }, ¬Expr{ - pos: position{line: 2694, col: 33, offset: 80952}, + pos: position{line: 2699, col: 33, offset: 81136}, expr: &ruleRefExpr{ - pos: position{line: 2694, col: 34, offset: 80953}, + pos: position{line: 2699, col: 34, offset: 81137}, name: "IdentifierRest", }, }, @@ -18952,20 +19005,20 @@ var g = &grammar{ }, { name: "DEBUG", - pos: position{line: 2695, col: 1, offset: 80991}, + pos: position{line: 2700, col: 1, offset: 81175}, expr: &seqExpr{ - pos: position{line: 2695, col: 14, offset: 81004}, + pos: position{line: 2700, col: 14, offset: 81188}, exprs: []any{ &litMatcher{ - pos: position{line: 2695, col: 14, offset: 81004}, + pos: position{line: 2700, col: 14, offset: 81188}, val: "debug", ignoreCase: true, want: "\"DEBUG\"i", }, ¬Expr{ - pos: position{line: 2695, col: 33, offset: 81023}, + pos: position{line: 2700, col: 33, offset: 81207}, expr: &ruleRefExpr{ - pos: position{line: 2695, col: 34, offset: 81024}, + pos: position{line: 2700, col: 34, offset: 81208}, name: "IdentifierRest", }, }, @@ -18976,20 +19029,20 @@ var g = &grammar{ }, { name: "DEFAULT", - pos: position{line: 2696, col: 1, offset: 81039}, + pos: position{line: 2701, col: 1, offset: 81223}, expr: &seqExpr{ - pos: position{line: 2696, col: 14, offset: 81052}, + pos: position{line: 2701, col: 14, offset: 81236}, exprs: []any{ &litMatcher{ - pos: position{line: 2696, col: 14, offset: 81052}, + pos: position{line: 2701, col: 14, offset: 81236}, val: "default", ignoreCase: true, want: "\"DEFAULT\"i", }, ¬Expr{ - pos: position{line: 2696, col: 33, offset: 81071}, + pos: position{line: 2701, col: 33, offset: 81255}, expr: &ruleRefExpr{ - pos: position{line: 2696, col: 34, offset: 81072}, + pos: position{line: 2701, col: 34, offset: 81256}, name: "IdentifierRest", }, }, @@ -19000,23 +19053,23 @@ var g = &grammar{ }, { name: "DESC", - pos: position{line: 2697, col: 1, offset: 81087}, + pos: position{line: 2702, col: 1, offset: 81271}, expr: &actionExpr{ - pos: position{line: 2697, col: 14, offset: 81100}, + pos: position{line: 2702, col: 14, offset: 81284}, run: (*parser).callonDESC1, expr: &seqExpr{ - pos: position{line: 2697, col: 14, offset: 81100}, + pos: position{line: 2702, col: 14, offset: 81284}, exprs: []any{ &litMatcher{ - pos: position{line: 2697, col: 14, offset: 81100}, + pos: position{line: 2702, col: 14, offset: 81284}, val: "desc", ignoreCase: true, want: "\"DESC\"i", }, ¬Expr{ - pos: position{line: 2697, col: 33, offset: 81119}, + pos: position{line: 2702, col: 33, offset: 81303}, expr: &ruleRefExpr{ - pos: position{line: 2697, col: 34, offset: 81120}, + pos: position{line: 2702, col: 34, offset: 81304}, name: "IdentifierRest", }, }, @@ -19028,20 +19081,20 @@ var g = &grammar{ }, { name: "DISTINCT", - pos: position{line: 2698, col: 1, offset: 81158}, + pos: position{line: 2703, col: 1, offset: 81342}, expr: &seqExpr{ - pos: position{line: 2698, col: 14, offset: 81171}, + pos: position{line: 2703, col: 14, offset: 81355}, exprs: []any{ &litMatcher{ - pos: position{line: 2698, col: 14, offset: 81171}, + pos: position{line: 2703, col: 14, offset: 81355}, val: "distinct", ignoreCase: true, want: "\"DISTINCT\"i", }, ¬Expr{ - pos: position{line: 2698, col: 33, offset: 81190}, + pos: position{line: 2703, col: 33, offset: 81374}, expr: &ruleRefExpr{ - pos: position{line: 2698, col: 34, offset: 81191}, + pos: position{line: 2703, col: 34, offset: 81375}, name: "IdentifierRest", }, }, @@ -19052,20 +19105,20 @@ var g = &grammar{ }, { name: "DROP", - pos: position{line: 2699, col: 1, offset: 81206}, + pos: position{line: 2704, col: 1, offset: 81390}, expr: &seqExpr{ - pos: position{line: 2699, col: 14, offset: 81219}, + pos: position{line: 2704, col: 14, offset: 81403}, exprs: []any{ &litMatcher{ - pos: position{line: 2699, col: 14, offset: 81219}, + pos: position{line: 2704, col: 14, offset: 81403}, val: "drop", ignoreCase: true, want: "\"DROP\"i", }, ¬Expr{ - pos: position{line: 2699, col: 33, offset: 81238}, + pos: position{line: 2704, col: 33, offset: 81422}, expr: &ruleRefExpr{ - pos: position{line: 2699, col: 34, offset: 81239}, + pos: position{line: 2704, col: 34, offset: 81423}, name: "IdentifierRest", }, }, @@ -19076,20 +19129,20 @@ var g = &grammar{ }, { name: "ELSE", - pos: position{line: 2700, col: 1, offset: 81254}, + pos: position{line: 2705, col: 1, offset: 81438}, expr: &seqExpr{ - pos: position{line: 2700, col: 14, offset: 81267}, + pos: position{line: 2705, col: 14, offset: 81451}, exprs: []any{ &litMatcher{ - pos: position{line: 2700, col: 14, offset: 81267}, + pos: position{line: 2705, col: 14, offset: 81451}, val: "else", ignoreCase: true, want: "\"ELSE\"i", }, ¬Expr{ - pos: position{line: 2700, col: 33, offset: 81286}, + pos: position{line: 2705, col: 33, offset: 81470}, expr: &ruleRefExpr{ - pos: position{line: 2700, col: 34, offset: 81287}, + pos: position{line: 2705, col: 34, offset: 81471}, name: "IdentifierRest", }, }, @@ -19100,20 +19153,20 @@ var g = &grammar{ }, { name: "END", - pos: position{line: 2701, col: 1, offset: 81302}, + pos: position{line: 2706, col: 1, offset: 81486}, expr: &seqExpr{ - pos: position{line: 2701, col: 14, offset: 81315}, + pos: position{line: 2706, col: 14, offset: 81499}, exprs: []any{ &litMatcher{ - pos: position{line: 2701, col: 14, offset: 81315}, + pos: position{line: 2706, col: 14, offset: 81499}, val: "end", ignoreCase: true, want: "\"END\"i", }, ¬Expr{ - pos: position{line: 2701, col: 33, offset: 81334}, + pos: position{line: 2706, col: 33, offset: 81518}, expr: &ruleRefExpr{ - pos: position{line: 2701, col: 34, offset: 81335}, + pos: position{line: 2706, col: 34, offset: 81519}, name: "IdentifierRest", }, }, @@ -19124,20 +19177,20 @@ var g = &grammar{ }, { name: "ENUM", - pos: position{line: 2702, col: 1, offset: 81350}, + pos: position{line: 2707, col: 1, offset: 81534}, expr: &seqExpr{ - pos: position{line: 2702, col: 14, offset: 81363}, + pos: position{line: 2707, col: 14, offset: 81547}, exprs: []any{ &litMatcher{ - pos: position{line: 2702, col: 14, offset: 81363}, + pos: position{line: 2707, col: 14, offset: 81547}, val: "enum", ignoreCase: true, want: "\"ENUM\"i", }, ¬Expr{ - pos: position{line: 2702, col: 33, offset: 81382}, + pos: position{line: 2707, col: 33, offset: 81566}, expr: &ruleRefExpr{ - pos: position{line: 2702, col: 34, offset: 81383}, + pos: position{line: 2707, col: 34, offset: 81567}, name: "IdentifierRest", }, }, @@ -19148,20 +19201,20 @@ var g = &grammar{ }, { name: "ERROR", - pos: position{line: 2703, col: 1, offset: 81398}, + pos: position{line: 2708, col: 1, offset: 81582}, expr: &seqExpr{ - pos: position{line: 2703, col: 14, offset: 81411}, + pos: position{line: 2708, col: 14, offset: 81595}, exprs: []any{ &litMatcher{ - pos: position{line: 2703, col: 14, offset: 81411}, + pos: position{line: 2708, col: 14, offset: 81595}, val: "error", ignoreCase: true, want: "\"ERROR\"i", }, ¬Expr{ - pos: position{line: 2703, col: 33, offset: 81430}, + pos: position{line: 2708, col: 33, offset: 81614}, expr: &ruleRefExpr{ - pos: position{line: 2703, col: 34, offset: 81431}, + pos: position{line: 2708, col: 34, offset: 81615}, name: "IdentifierRest", }, }, @@ -19172,20 +19225,20 @@ var g = &grammar{ }, { name: "EXISTS", - pos: position{line: 2704, col: 1, offset: 81446}, + pos: position{line: 2709, col: 1, offset: 81630}, expr: &seqExpr{ - pos: position{line: 2704, col: 14, offset: 81459}, + pos: position{line: 2709, col: 14, offset: 81643}, exprs: []any{ &litMatcher{ - pos: position{line: 2704, col: 14, offset: 81459}, + pos: position{line: 2709, col: 14, offset: 81643}, val: "exists", ignoreCase: true, want: "\"EXISTS\"i", }, ¬Expr{ - pos: position{line: 2704, col: 33, offset: 81478}, + pos: position{line: 2709, col: 33, offset: 81662}, expr: &ruleRefExpr{ - pos: position{line: 2704, col: 34, offset: 81479}, + pos: position{line: 2709, col: 34, offset: 81663}, name: "IdentifierRest", }, }, @@ -19196,20 +19249,20 @@ var g = &grammar{ }, { name: "EXTRACT", - pos: position{line: 2705, col: 1, offset: 81494}, + pos: position{line: 2710, col: 1, offset: 81678}, expr: &seqExpr{ - pos: position{line: 2705, col: 14, offset: 81507}, + pos: position{line: 2710, col: 14, offset: 81691}, exprs: []any{ &litMatcher{ - pos: position{line: 2705, col: 14, offset: 81507}, + pos: position{line: 2710, col: 14, offset: 81691}, val: "extract", ignoreCase: true, want: "\"EXTRACT\"i", }, ¬Expr{ - pos: position{line: 2705, col: 33, offset: 81526}, + pos: position{line: 2710, col: 33, offset: 81710}, expr: &ruleRefExpr{ - pos: position{line: 2705, col: 34, offset: 81527}, + pos: position{line: 2710, col: 34, offset: 81711}, name: "IdentifierRest", }, }, @@ -19220,20 +19273,20 @@ var g = &grammar{ }, { name: "FALSE", - pos: position{line: 2706, col: 1, offset: 81542}, + pos: position{line: 2711, col: 1, offset: 81726}, expr: &seqExpr{ - pos: position{line: 2706, col: 14, offset: 81555}, + pos: position{line: 2711, col: 14, offset: 81739}, exprs: []any{ &litMatcher{ - pos: position{line: 2706, col: 14, offset: 81555}, + pos: position{line: 2711, col: 14, offset: 81739}, val: "false", ignoreCase: true, want: "\"FALSE\"i", }, ¬Expr{ - pos: position{line: 2706, col: 33, offset: 81574}, + pos: position{line: 2711, col: 33, offset: 81758}, expr: &ruleRefExpr{ - pos: position{line: 2706, col: 34, offset: 81575}, + pos: position{line: 2711, col: 34, offset: 81759}, name: "IdentifierRest", }, }, @@ -19244,20 +19297,20 @@ var g = &grammar{ }, { name: "FILTER", - pos: position{line: 2707, col: 1, offset: 81590}, + pos: position{line: 2712, col: 1, offset: 81774}, expr: &seqExpr{ - pos: position{line: 2707, col: 14, offset: 81603}, + pos: position{line: 2712, col: 14, offset: 81787}, exprs: []any{ &litMatcher{ - pos: position{line: 2707, col: 14, offset: 81603}, + pos: position{line: 2712, col: 14, offset: 81787}, val: "filter", ignoreCase: true, want: "\"FILTER\"i", }, ¬Expr{ - pos: position{line: 2707, col: 33, offset: 81622}, + pos: position{line: 2712, col: 33, offset: 81806}, expr: &ruleRefExpr{ - pos: position{line: 2707, col: 34, offset: 81623}, + pos: position{line: 2712, col: 34, offset: 81807}, name: "IdentifierRest", }, }, @@ -19268,20 +19321,20 @@ var g = &grammar{ }, { name: "FIRST", - pos: position{line: 2708, col: 1, offset: 81638}, + pos: position{line: 2713, col: 1, offset: 81822}, expr: &seqExpr{ - pos: position{line: 2708, col: 14, offset: 81651}, + pos: position{line: 2713, col: 14, offset: 81835}, exprs: []any{ &litMatcher{ - pos: position{line: 2708, col: 14, offset: 81651}, + pos: position{line: 2713, col: 14, offset: 81835}, val: "first", ignoreCase: true, want: "\"FIRST\"i", }, ¬Expr{ - pos: position{line: 2708, col: 33, offset: 81670}, + pos: position{line: 2713, col: 33, offset: 81854}, expr: &ruleRefExpr{ - pos: position{line: 2708, col: 34, offset: 81671}, + pos: position{line: 2713, col: 34, offset: 81855}, name: "IdentifierRest", }, }, @@ -19292,20 +19345,20 @@ var g = &grammar{ }, { name: "FN", - pos: position{line: 2709, col: 1, offset: 81686}, + pos: position{line: 2714, col: 1, offset: 81870}, expr: &seqExpr{ - pos: position{line: 2709, col: 14, offset: 81699}, + pos: position{line: 2714, col: 14, offset: 81883}, exprs: []any{ &litMatcher{ - pos: position{line: 2709, col: 14, offset: 81699}, + pos: position{line: 2714, col: 14, offset: 81883}, val: "fn", ignoreCase: true, want: "\"FN\"i", }, ¬Expr{ - pos: position{line: 2709, col: 33, offset: 81718}, + pos: position{line: 2714, col: 33, offset: 81902}, expr: &ruleRefExpr{ - pos: position{line: 2709, col: 34, offset: 81719}, + pos: position{line: 2714, col: 34, offset: 81903}, name: "IdentifierRest", }, }, @@ -19316,20 +19369,20 @@ var g = &grammar{ }, { name: "FOR", - pos: position{line: 2710, col: 1, offset: 81734}, + pos: position{line: 2715, col: 1, offset: 81918}, expr: &seqExpr{ - pos: position{line: 2710, col: 14, offset: 81747}, + pos: position{line: 2715, col: 14, offset: 81931}, exprs: []any{ &litMatcher{ - pos: position{line: 2710, col: 14, offset: 81747}, + pos: position{line: 2715, col: 14, offset: 81931}, val: "for", ignoreCase: true, want: "\"FOR\"i", }, ¬Expr{ - pos: position{line: 2710, col: 33, offset: 81766}, + pos: position{line: 2715, col: 33, offset: 81950}, expr: &ruleRefExpr{ - pos: position{line: 2710, col: 34, offset: 81767}, + pos: position{line: 2715, col: 34, offset: 81951}, name: "IdentifierRest", }, }, @@ -19340,20 +19393,20 @@ var g = &grammar{ }, { name: "FORK", - pos: position{line: 2711, col: 1, offset: 81782}, + pos: position{line: 2716, col: 1, offset: 81966}, expr: &seqExpr{ - pos: position{line: 2711, col: 14, offset: 81795}, + pos: position{line: 2716, col: 14, offset: 81979}, exprs: []any{ &litMatcher{ - pos: position{line: 2711, col: 14, offset: 81795}, + pos: position{line: 2716, col: 14, offset: 81979}, val: "fork", ignoreCase: true, want: "\"FORK\"i", }, ¬Expr{ - pos: position{line: 2711, col: 33, offset: 81814}, + pos: position{line: 2716, col: 33, offset: 81998}, expr: &ruleRefExpr{ - pos: position{line: 2711, col: 34, offset: 81815}, + pos: position{line: 2716, col: 34, offset: 81999}, name: "IdentifierRest", }, }, @@ -19364,20 +19417,20 @@ var g = &grammar{ }, { name: "FROM", - pos: position{line: 2712, col: 1, offset: 81830}, + pos: position{line: 2717, col: 1, offset: 82014}, expr: &seqExpr{ - pos: position{line: 2712, col: 14, offset: 81843}, + pos: position{line: 2717, col: 14, offset: 82027}, exprs: []any{ &litMatcher{ - pos: position{line: 2712, col: 14, offset: 81843}, + pos: position{line: 2717, col: 14, offset: 82027}, val: "from", ignoreCase: true, want: "\"FROM\"i", }, ¬Expr{ - pos: position{line: 2712, col: 33, offset: 81862}, + pos: position{line: 2717, col: 33, offset: 82046}, expr: &ruleRefExpr{ - pos: position{line: 2712, col: 34, offset: 81863}, + pos: position{line: 2717, col: 34, offset: 82047}, name: "IdentifierRest", }, }, @@ -19388,20 +19441,20 @@ var g = &grammar{ }, { name: "FULL", - pos: position{line: 2713, col: 1, offset: 81878}, + pos: position{line: 2718, col: 1, offset: 82062}, expr: &seqExpr{ - pos: position{line: 2713, col: 14, offset: 81891}, + pos: position{line: 2718, col: 14, offset: 82075}, exprs: []any{ &litMatcher{ - pos: position{line: 2713, col: 14, offset: 81891}, + pos: position{line: 2718, col: 14, offset: 82075}, val: "full", ignoreCase: true, want: "\"FULL\"i", }, ¬Expr{ - pos: position{line: 2713, col: 33, offset: 81910}, + pos: position{line: 2718, col: 33, offset: 82094}, expr: &ruleRefExpr{ - pos: position{line: 2713, col: 34, offset: 81911}, + pos: position{line: 2718, col: 34, offset: 82095}, name: "IdentifierRest", }, }, @@ -19412,20 +19465,20 @@ var g = &grammar{ }, { name: "FUSE", - pos: position{line: 2714, col: 1, offset: 81926}, + pos: position{line: 2719, col: 1, offset: 82110}, expr: &seqExpr{ - pos: position{line: 2714, col: 14, offset: 81939}, + pos: position{line: 2719, col: 14, offset: 82123}, exprs: []any{ &litMatcher{ - pos: position{line: 2714, col: 14, offset: 81939}, + pos: position{line: 2719, col: 14, offset: 82123}, val: "fuse", ignoreCase: true, want: "\"FUSE\"i", }, ¬Expr{ - pos: position{line: 2714, col: 33, offset: 81958}, + pos: position{line: 2719, col: 33, offset: 82142}, expr: &ruleRefExpr{ - pos: position{line: 2714, col: 34, offset: 81959}, + pos: position{line: 2719, col: 34, offset: 82143}, name: "IdentifierRest", }, }, @@ -19436,20 +19489,20 @@ var g = &grammar{ }, { name: "FUSION", - pos: position{line: 2715, col: 1, offset: 81974}, + pos: position{line: 2720, col: 1, offset: 82158}, expr: &seqExpr{ - pos: position{line: 2715, col: 14, offset: 81987}, + pos: position{line: 2720, col: 14, offset: 82171}, exprs: []any{ &litMatcher{ - pos: position{line: 2715, col: 14, offset: 81987}, + pos: position{line: 2720, col: 14, offset: 82171}, val: "fusion", ignoreCase: true, want: "\"FUSION\"i", }, ¬Expr{ - pos: position{line: 2715, col: 33, offset: 82006}, + pos: position{line: 2720, col: 33, offset: 82190}, expr: &ruleRefExpr{ - pos: position{line: 2715, col: 34, offset: 82007}, + pos: position{line: 2720, col: 34, offset: 82191}, name: "IdentifierRest", }, }, @@ -19460,20 +19513,20 @@ var g = &grammar{ }, { name: "GROUP", - pos: position{line: 2716, col: 1, offset: 82022}, + pos: position{line: 2721, col: 1, offset: 82206}, expr: &seqExpr{ - pos: position{line: 2716, col: 14, offset: 82035}, + pos: position{line: 2721, col: 14, offset: 82219}, exprs: []any{ &litMatcher{ - pos: position{line: 2716, col: 14, offset: 82035}, + pos: position{line: 2721, col: 14, offset: 82219}, val: "group", ignoreCase: true, want: "\"GROUP\"i", }, ¬Expr{ - pos: position{line: 2716, col: 33, offset: 82054}, + pos: position{line: 2721, col: 33, offset: 82238}, expr: &ruleRefExpr{ - pos: position{line: 2716, col: 34, offset: 82055}, + pos: position{line: 2721, col: 34, offset: 82239}, name: "IdentifierRest", }, }, @@ -19484,20 +19537,20 @@ var g = &grammar{ }, { name: "HAVING", - pos: position{line: 2717, col: 1, offset: 82070}, + pos: position{line: 2722, col: 1, offset: 82254}, expr: &seqExpr{ - pos: position{line: 2717, col: 14, offset: 82083}, + pos: position{line: 2722, col: 14, offset: 82267}, exprs: []any{ &litMatcher{ - pos: position{line: 2717, col: 14, offset: 82083}, + pos: position{line: 2722, col: 14, offset: 82267}, val: "having", ignoreCase: true, want: "\"HAVING\"i", }, ¬Expr{ - pos: position{line: 2717, col: 33, offset: 82102}, + pos: position{line: 2722, col: 33, offset: 82286}, expr: &ruleRefExpr{ - pos: position{line: 2717, col: 34, offset: 82103}, + pos: position{line: 2722, col: 34, offset: 82287}, name: "IdentifierRest", }, }, @@ -19508,20 +19561,20 @@ var g = &grammar{ }, { name: "HEAD", - pos: position{line: 2718, col: 1, offset: 82118}, + pos: position{line: 2723, col: 1, offset: 82302}, expr: &seqExpr{ - pos: position{line: 2718, col: 14, offset: 82131}, + pos: position{line: 2723, col: 14, offset: 82315}, exprs: []any{ &litMatcher{ - pos: position{line: 2718, col: 14, offset: 82131}, + pos: position{line: 2723, col: 14, offset: 82315}, val: "head", ignoreCase: true, want: "\"HEAD\"i", }, ¬Expr{ - pos: position{line: 2718, col: 33, offset: 82150}, + pos: position{line: 2723, col: 33, offset: 82334}, expr: &ruleRefExpr{ - pos: position{line: 2718, col: 34, offset: 82151}, + pos: position{line: 2723, col: 34, offset: 82335}, name: "IdentifierRest", }, }, @@ -19532,20 +19585,20 @@ var g = &grammar{ }, { name: "IF", - pos: position{line: 2719, col: 1, offset: 82166}, + pos: position{line: 2724, col: 1, offset: 82350}, expr: &seqExpr{ - pos: position{line: 2719, col: 14, offset: 82179}, + pos: position{line: 2724, col: 14, offset: 82363}, exprs: []any{ &litMatcher{ - pos: position{line: 2719, col: 14, offset: 82179}, + pos: position{line: 2724, col: 14, offset: 82363}, val: "if", ignoreCase: true, want: "\"IF\"i", }, ¬Expr{ - pos: position{line: 2719, col: 33, offset: 82198}, + pos: position{line: 2724, col: 33, offset: 82382}, expr: &ruleRefExpr{ - pos: position{line: 2719, col: 34, offset: 82199}, + pos: position{line: 2724, col: 34, offset: 82383}, name: "IdentifierRest", }, }, @@ -19556,20 +19609,20 @@ var g = &grammar{ }, { name: "IN", - pos: position{line: 2720, col: 1, offset: 82214}, + pos: position{line: 2725, col: 1, offset: 82398}, expr: &seqExpr{ - pos: position{line: 2720, col: 14, offset: 82227}, + pos: position{line: 2725, col: 14, offset: 82411}, exprs: []any{ &litMatcher{ - pos: position{line: 2720, col: 14, offset: 82227}, + pos: position{line: 2725, col: 14, offset: 82411}, val: "in", ignoreCase: true, want: "\"IN\"i", }, ¬Expr{ - pos: position{line: 2720, col: 33, offset: 82246}, + pos: position{line: 2725, col: 33, offset: 82430}, expr: &ruleRefExpr{ - pos: position{line: 2720, col: 34, offset: 82247}, + pos: position{line: 2725, col: 34, offset: 82431}, name: "IdentifierRest", }, }, @@ -19580,20 +19633,20 @@ var g = &grammar{ }, { name: "INFER", - pos: position{line: 2721, col: 1, offset: 82262}, + pos: position{line: 2726, col: 1, offset: 82446}, expr: &seqExpr{ - pos: position{line: 2721, col: 14, offset: 82275}, + pos: position{line: 2726, col: 14, offset: 82459}, exprs: []any{ &litMatcher{ - pos: position{line: 2721, col: 14, offset: 82275}, + pos: position{line: 2726, col: 14, offset: 82459}, val: "infer", ignoreCase: true, want: "\"INFER\"i", }, ¬Expr{ - pos: position{line: 2721, col: 33, offset: 82294}, + pos: position{line: 2726, col: 33, offset: 82478}, expr: &ruleRefExpr{ - pos: position{line: 2721, col: 34, offset: 82295}, + pos: position{line: 2726, col: 34, offset: 82479}, name: "IdentifierRest", }, }, @@ -19604,20 +19657,20 @@ var g = &grammar{ }, { name: "INNER", - pos: position{line: 2722, col: 1, offset: 82310}, + pos: position{line: 2727, col: 1, offset: 82494}, expr: &seqExpr{ - pos: position{line: 2722, col: 14, offset: 82323}, + pos: position{line: 2727, col: 14, offset: 82507}, exprs: []any{ &litMatcher{ - pos: position{line: 2722, col: 14, offset: 82323}, + pos: position{line: 2727, col: 14, offset: 82507}, val: "inner", ignoreCase: true, want: "\"INNER\"i", }, ¬Expr{ - pos: position{line: 2722, col: 33, offset: 82342}, + pos: position{line: 2727, col: 33, offset: 82526}, expr: &ruleRefExpr{ - pos: position{line: 2722, col: 34, offset: 82343}, + pos: position{line: 2727, col: 34, offset: 82527}, name: "IdentifierRest", }, }, @@ -19628,20 +19681,20 @@ var g = &grammar{ }, { name: "INSERT", - pos: position{line: 2723, col: 1, offset: 82358}, + pos: position{line: 2728, col: 1, offset: 82542}, expr: &seqExpr{ - pos: position{line: 2723, col: 14, offset: 82371}, + pos: position{line: 2728, col: 14, offset: 82555}, exprs: []any{ &litMatcher{ - pos: position{line: 2723, col: 14, offset: 82371}, + pos: position{line: 2728, col: 14, offset: 82555}, val: "insert", ignoreCase: true, want: "\"INSERT\"i", }, ¬Expr{ - pos: position{line: 2723, col: 33, offset: 82390}, + pos: position{line: 2728, col: 33, offset: 82574}, expr: &ruleRefExpr{ - pos: position{line: 2723, col: 34, offset: 82391}, + pos: position{line: 2728, col: 34, offset: 82575}, name: "IdentifierRest", }, }, @@ -19652,20 +19705,20 @@ var g = &grammar{ }, { name: "INTO", - pos: position{line: 2724, col: 1, offset: 82406}, + pos: position{line: 2729, col: 1, offset: 82590}, expr: &seqExpr{ - pos: position{line: 2724, col: 14, offset: 82419}, + pos: position{line: 2729, col: 14, offset: 82603}, exprs: []any{ &litMatcher{ - pos: position{line: 2724, col: 14, offset: 82419}, + pos: position{line: 2729, col: 14, offset: 82603}, val: "into", ignoreCase: true, want: "\"INTO\"i", }, ¬Expr{ - pos: position{line: 2724, col: 33, offset: 82438}, + pos: position{line: 2729, col: 33, offset: 82622}, expr: &ruleRefExpr{ - pos: position{line: 2724, col: 34, offset: 82439}, + pos: position{line: 2729, col: 34, offset: 82623}, name: "IdentifierRest", }, }, @@ -19676,20 +19729,20 @@ var g = &grammar{ }, { name: "IS", - pos: position{line: 2725, col: 1, offset: 82454}, + pos: position{line: 2730, col: 1, offset: 82638}, expr: &seqExpr{ - pos: position{line: 2725, col: 14, offset: 82467}, + pos: position{line: 2730, col: 14, offset: 82651}, exprs: []any{ &litMatcher{ - pos: position{line: 2725, col: 14, offset: 82467}, + pos: position{line: 2730, col: 14, offset: 82651}, val: "is", ignoreCase: true, want: "\"IS\"i", }, ¬Expr{ - pos: position{line: 2725, col: 33, offset: 82486}, + pos: position{line: 2730, col: 33, offset: 82670}, expr: &ruleRefExpr{ - pos: position{line: 2725, col: 34, offset: 82487}, + pos: position{line: 2730, col: 34, offset: 82671}, name: "IdentifierRest", }, }, @@ -19700,20 +19753,20 @@ var g = &grammar{ }, { name: "JOIN", - pos: position{line: 2726, col: 1, offset: 82502}, + pos: position{line: 2731, col: 1, offset: 82686}, expr: &seqExpr{ - pos: position{line: 2726, col: 14, offset: 82515}, + pos: position{line: 2731, col: 14, offset: 82699}, exprs: []any{ &litMatcher{ - pos: position{line: 2726, col: 14, offset: 82515}, + pos: position{line: 2731, col: 14, offset: 82699}, val: "join", ignoreCase: true, want: "\"JOIN\"i", }, ¬Expr{ - pos: position{line: 2726, col: 33, offset: 82534}, + pos: position{line: 2731, col: 33, offset: 82718}, expr: &ruleRefExpr{ - pos: position{line: 2726, col: 34, offset: 82535}, + pos: position{line: 2731, col: 34, offset: 82719}, name: "IdentifierRest", }, }, @@ -19724,20 +19777,20 @@ var g = &grammar{ }, { name: "LAMBDA", - pos: position{line: 2727, col: 1, offset: 82550}, + pos: position{line: 2732, col: 1, offset: 82734}, expr: &seqExpr{ - pos: position{line: 2727, col: 14, offset: 82563}, + pos: position{line: 2732, col: 14, offset: 82747}, exprs: []any{ &litMatcher{ - pos: position{line: 2727, col: 14, offset: 82563}, + pos: position{line: 2732, col: 14, offset: 82747}, val: "lambda", ignoreCase: true, want: "\"LAMBDA\"i", }, ¬Expr{ - pos: position{line: 2727, col: 33, offset: 82582}, + pos: position{line: 2732, col: 33, offset: 82766}, expr: &ruleRefExpr{ - pos: position{line: 2727, col: 34, offset: 82583}, + pos: position{line: 2732, col: 34, offset: 82767}, name: "IdentifierRest", }, }, @@ -19748,20 +19801,20 @@ var g = &grammar{ }, { name: "LAST", - pos: position{line: 2728, col: 1, offset: 82598}, + pos: position{line: 2733, col: 1, offset: 82782}, expr: &seqExpr{ - pos: position{line: 2728, col: 14, offset: 82611}, + pos: position{line: 2733, col: 14, offset: 82795}, exprs: []any{ &litMatcher{ - pos: position{line: 2728, col: 14, offset: 82611}, + pos: position{line: 2733, col: 14, offset: 82795}, val: "last", ignoreCase: true, want: "\"LAST\"i", }, ¬Expr{ - pos: position{line: 2728, col: 33, offset: 82630}, + pos: position{line: 2733, col: 33, offset: 82814}, expr: &ruleRefExpr{ - pos: position{line: 2728, col: 34, offset: 82631}, + pos: position{line: 2733, col: 34, offset: 82815}, name: "IdentifierRest", }, }, @@ -19772,20 +19825,20 @@ var g = &grammar{ }, { name: "LEFT", - pos: position{line: 2729, col: 1, offset: 82646}, + pos: position{line: 2734, col: 1, offset: 82830}, expr: &seqExpr{ - pos: position{line: 2729, col: 14, offset: 82659}, + pos: position{line: 2734, col: 14, offset: 82843}, exprs: []any{ &litMatcher{ - pos: position{line: 2729, col: 14, offset: 82659}, + pos: position{line: 2734, col: 14, offset: 82843}, val: "left", ignoreCase: true, want: "\"LEFT\"i", }, ¬Expr{ - pos: position{line: 2729, col: 33, offset: 82678}, + pos: position{line: 2734, col: 33, offset: 82862}, expr: &ruleRefExpr{ - pos: position{line: 2729, col: 34, offset: 82679}, + pos: position{line: 2734, col: 34, offset: 82863}, name: "IdentifierRest", }, }, @@ -19796,20 +19849,20 @@ var g = &grammar{ }, { name: "LET", - pos: position{line: 2730, col: 1, offset: 82694}, + pos: position{line: 2735, col: 1, offset: 82878}, expr: &seqExpr{ - pos: position{line: 2730, col: 14, offset: 82707}, + pos: position{line: 2735, col: 14, offset: 82891}, exprs: []any{ &litMatcher{ - pos: position{line: 2730, col: 14, offset: 82707}, + pos: position{line: 2735, col: 14, offset: 82891}, val: "let", ignoreCase: true, want: "\"LET\"i", }, ¬Expr{ - pos: position{line: 2730, col: 33, offset: 82726}, + pos: position{line: 2735, col: 33, offset: 82910}, expr: &ruleRefExpr{ - pos: position{line: 2730, col: 34, offset: 82727}, + pos: position{line: 2735, col: 34, offset: 82911}, name: "IdentifierRest", }, }, @@ -19820,20 +19873,20 @@ var g = &grammar{ }, { name: "LIKE", - pos: position{line: 2731, col: 1, offset: 82742}, + pos: position{line: 2736, col: 1, offset: 82926}, expr: &seqExpr{ - pos: position{line: 2731, col: 14, offset: 82755}, + pos: position{line: 2736, col: 14, offset: 82939}, exprs: []any{ &litMatcher{ - pos: position{line: 2731, col: 14, offset: 82755}, + pos: position{line: 2736, col: 14, offset: 82939}, val: "like", ignoreCase: true, want: "\"LIKE\"i", }, ¬Expr{ - pos: position{line: 2731, col: 33, offset: 82774}, + pos: position{line: 2736, col: 33, offset: 82958}, expr: &ruleRefExpr{ - pos: position{line: 2731, col: 34, offset: 82775}, + pos: position{line: 2736, col: 34, offset: 82959}, name: "IdentifierRest", }, }, @@ -19844,20 +19897,20 @@ var g = &grammar{ }, { name: "LIMIT", - pos: position{line: 2732, col: 1, offset: 82790}, + pos: position{line: 2737, col: 1, offset: 82974}, expr: &seqExpr{ - pos: position{line: 2732, col: 14, offset: 82803}, + pos: position{line: 2737, col: 14, offset: 82987}, exprs: []any{ &litMatcher{ - pos: position{line: 2732, col: 14, offset: 82803}, + pos: position{line: 2737, col: 14, offset: 82987}, val: "limit", ignoreCase: true, want: "\"LIMIT\"i", }, ¬Expr{ - pos: position{line: 2732, col: 33, offset: 82822}, + pos: position{line: 2737, col: 33, offset: 83006}, expr: &ruleRefExpr{ - pos: position{line: 2732, col: 34, offset: 82823}, + pos: position{line: 2737, col: 34, offset: 83007}, name: "IdentifierRest", }, }, @@ -19868,20 +19921,20 @@ var g = &grammar{ }, { name: "LOAD", - pos: position{line: 2733, col: 1, offset: 82838}, + pos: position{line: 2738, col: 1, offset: 83022}, expr: &seqExpr{ - pos: position{line: 2733, col: 14, offset: 82851}, + pos: position{line: 2738, col: 14, offset: 83035}, exprs: []any{ &litMatcher{ - pos: position{line: 2733, col: 14, offset: 82851}, + pos: position{line: 2738, col: 14, offset: 83035}, val: "load", ignoreCase: true, want: "\"LOAD\"i", }, ¬Expr{ - pos: position{line: 2733, col: 33, offset: 82870}, + pos: position{line: 2738, col: 33, offset: 83054}, expr: &ruleRefExpr{ - pos: position{line: 2733, col: 34, offset: 82871}, + pos: position{line: 2738, col: 34, offset: 83055}, name: "IdentifierRest", }, }, @@ -19892,20 +19945,20 @@ var g = &grammar{ }, { name: "MATERIALIZED", - pos: position{line: 2734, col: 1, offset: 82886}, + pos: position{line: 2739, col: 1, offset: 83070}, expr: &seqExpr{ - pos: position{line: 2734, col: 16, offset: 82901}, + pos: position{line: 2739, col: 16, offset: 83085}, exprs: []any{ &litMatcher{ - pos: position{line: 2734, col: 16, offset: 82901}, + pos: position{line: 2739, col: 16, offset: 83085}, val: "materialized", ignoreCase: true, want: "\"MATERIALIZED\"i", }, ¬Expr{ - pos: position{line: 2734, col: 33, offset: 82918}, + pos: position{line: 2739, col: 33, offset: 83102}, expr: &ruleRefExpr{ - pos: position{line: 2734, col: 34, offset: 82919}, + pos: position{line: 2739, col: 34, offset: 83103}, name: "IdentifierRest", }, }, @@ -19916,20 +19969,20 @@ var g = &grammar{ }, { name: "MAP", - pos: position{line: 2735, col: 1, offset: 82934}, + pos: position{line: 2740, col: 1, offset: 83118}, expr: &seqExpr{ - pos: position{line: 2735, col: 14, offset: 82947}, + pos: position{line: 2740, col: 14, offset: 83131}, exprs: []any{ &litMatcher{ - pos: position{line: 2735, col: 14, offset: 82947}, + pos: position{line: 2740, col: 14, offset: 83131}, val: "map", ignoreCase: true, want: "\"MAP\"i", }, ¬Expr{ - pos: position{line: 2735, col: 33, offset: 82966}, + pos: position{line: 2740, col: 33, offset: 83150}, expr: &ruleRefExpr{ - pos: position{line: 2735, col: 34, offset: 82967}, + pos: position{line: 2740, col: 34, offset: 83151}, name: "IdentifierRest", }, }, @@ -19940,20 +19993,20 @@ var g = &grammar{ }, { name: "MERGE", - pos: position{line: 2736, col: 1, offset: 82982}, + pos: position{line: 2741, col: 1, offset: 83166}, expr: &seqExpr{ - pos: position{line: 2736, col: 14, offset: 82995}, + pos: position{line: 2741, col: 14, offset: 83179}, exprs: []any{ &litMatcher{ - pos: position{line: 2736, col: 14, offset: 82995}, + pos: position{line: 2741, col: 14, offset: 83179}, val: "merge", ignoreCase: true, want: "\"MERGE\"i", }, ¬Expr{ - pos: position{line: 2736, col: 33, offset: 83014}, + pos: position{line: 2741, col: 33, offset: 83198}, expr: &ruleRefExpr{ - pos: position{line: 2736, col: 34, offset: 83015}, + pos: position{line: 2741, col: 34, offset: 83199}, name: "IdentifierRest", }, }, @@ -19964,20 +20017,20 @@ var g = &grammar{ }, { name: "MISSING", - pos: position{line: 2737, col: 1, offset: 83030}, + pos: position{line: 2742, col: 1, offset: 83214}, expr: &seqExpr{ - pos: position{line: 2737, col: 14, offset: 83043}, + pos: position{line: 2742, col: 14, offset: 83227}, exprs: []any{ &litMatcher{ - pos: position{line: 2737, col: 14, offset: 83043}, + pos: position{line: 2742, col: 14, offset: 83227}, val: "missing", ignoreCase: true, want: "\"MISSING\"i", }, ¬Expr{ - pos: position{line: 2737, col: 33, offset: 83062}, + pos: position{line: 2742, col: 33, offset: 83246}, expr: &ruleRefExpr{ - pos: position{line: 2737, col: 34, offset: 83063}, + pos: position{line: 2742, col: 34, offset: 83247}, name: "IdentifierRest", }, }, @@ -19988,20 +20041,20 @@ var g = &grammar{ }, { name: "NONE", - pos: position{line: 2738, col: 1, offset: 83078}, + pos: position{line: 2743, col: 1, offset: 83262}, expr: &seqExpr{ - pos: position{line: 2738, col: 14, offset: 83091}, + pos: position{line: 2743, col: 14, offset: 83275}, exprs: []any{ &litMatcher{ - pos: position{line: 2738, col: 14, offset: 83091}, + pos: position{line: 2743, col: 14, offset: 83275}, val: "none", ignoreCase: true, want: "\"NONE\"i", }, ¬Expr{ - pos: position{line: 2738, col: 33, offset: 83110}, + pos: position{line: 2743, col: 33, offset: 83294}, expr: &ruleRefExpr{ - pos: position{line: 2738, col: 34, offset: 83111}, + pos: position{line: 2743, col: 34, offset: 83295}, name: "IdentifierRest", }, }, @@ -20012,20 +20065,20 @@ var g = &grammar{ }, { name: "NOT", - pos: position{line: 2739, col: 1, offset: 83126}, + pos: position{line: 2744, col: 1, offset: 83310}, expr: &seqExpr{ - pos: position{line: 2739, col: 14, offset: 83139}, + pos: position{line: 2744, col: 14, offset: 83323}, exprs: []any{ &litMatcher{ - pos: position{line: 2739, col: 14, offset: 83139}, + pos: position{line: 2744, col: 14, offset: 83323}, val: "not", ignoreCase: true, want: "\"NOT\"i", }, ¬Expr{ - pos: position{line: 2739, col: 33, offset: 83158}, + pos: position{line: 2744, col: 33, offset: 83342}, expr: &ruleRefExpr{ - pos: position{line: 2739, col: 34, offset: 83159}, + pos: position{line: 2744, col: 34, offset: 83343}, name: "IdentifierRest", }, }, @@ -20036,20 +20089,20 @@ var g = &grammar{ }, { name: "NULL", - pos: position{line: 2740, col: 1, offset: 83174}, + pos: position{line: 2745, col: 1, offset: 83358}, expr: &seqExpr{ - pos: position{line: 2740, col: 14, offset: 83187}, + pos: position{line: 2745, col: 14, offset: 83371}, exprs: []any{ &litMatcher{ - pos: position{line: 2740, col: 14, offset: 83187}, + pos: position{line: 2745, col: 14, offset: 83371}, val: "null", ignoreCase: true, want: "\"NULL\"i", }, ¬Expr{ - pos: position{line: 2740, col: 33, offset: 83206}, + pos: position{line: 2745, col: 33, offset: 83390}, expr: &ruleRefExpr{ - pos: position{line: 2740, col: 34, offset: 83207}, + pos: position{line: 2745, col: 34, offset: 83391}, name: "IdentifierRest", }, }, @@ -20060,20 +20113,20 @@ var g = &grammar{ }, { name: "NULLS", - pos: position{line: 2741, col: 1, offset: 83222}, + pos: position{line: 2746, col: 1, offset: 83406}, expr: &seqExpr{ - pos: position{line: 2741, col: 14, offset: 83235}, + pos: position{line: 2746, col: 14, offset: 83419}, exprs: []any{ &litMatcher{ - pos: position{line: 2741, col: 14, offset: 83235}, + pos: position{line: 2746, col: 14, offset: 83419}, val: "nulls", ignoreCase: true, want: "\"NULLS\"i", }, ¬Expr{ - pos: position{line: 2741, col: 33, offset: 83254}, + pos: position{line: 2746, col: 33, offset: 83438}, expr: &ruleRefExpr{ - pos: position{line: 2741, col: 34, offset: 83255}, + pos: position{line: 2746, col: 34, offset: 83439}, name: "IdentifierRest", }, }, @@ -20084,20 +20137,20 @@ var g = &grammar{ }, { name: "OF", - pos: position{line: 2742, col: 1, offset: 83270}, + pos: position{line: 2747, col: 1, offset: 83454}, expr: &seqExpr{ - pos: position{line: 2742, col: 14, offset: 83283}, + pos: position{line: 2747, col: 14, offset: 83467}, exprs: []any{ &litMatcher{ - pos: position{line: 2742, col: 14, offset: 83283}, + pos: position{line: 2747, col: 14, offset: 83467}, val: "of", ignoreCase: true, want: "\"OF\"i", }, ¬Expr{ - pos: position{line: 2742, col: 33, offset: 83302}, + pos: position{line: 2747, col: 33, offset: 83486}, expr: &ruleRefExpr{ - pos: position{line: 2742, col: 34, offset: 83303}, + pos: position{line: 2747, col: 34, offset: 83487}, name: "IdentifierRest", }, }, @@ -20108,20 +20161,20 @@ var g = &grammar{ }, { name: "OFFSET", - pos: position{line: 2743, col: 1, offset: 83318}, + pos: position{line: 2748, col: 1, offset: 83502}, expr: &seqExpr{ - pos: position{line: 2743, col: 14, offset: 83331}, + pos: position{line: 2748, col: 14, offset: 83515}, exprs: []any{ &litMatcher{ - pos: position{line: 2743, col: 14, offset: 83331}, + pos: position{line: 2748, col: 14, offset: 83515}, val: "offset", ignoreCase: true, want: "\"OFFSET\"i", }, ¬Expr{ - pos: position{line: 2743, col: 33, offset: 83350}, + pos: position{line: 2748, col: 33, offset: 83534}, expr: &ruleRefExpr{ - pos: position{line: 2743, col: 34, offset: 83351}, + pos: position{line: 2748, col: 34, offset: 83535}, name: "IdentifierRest", }, }, @@ -20132,20 +20185,20 @@ var g = &grammar{ }, { name: "ON", - pos: position{line: 2744, col: 1, offset: 83366}, + pos: position{line: 2749, col: 1, offset: 83550}, expr: &seqExpr{ - pos: position{line: 2744, col: 14, offset: 83379}, + pos: position{line: 2749, col: 14, offset: 83563}, exprs: []any{ &litMatcher{ - pos: position{line: 2744, col: 14, offset: 83379}, + pos: position{line: 2749, col: 14, offset: 83563}, val: "on", ignoreCase: true, want: "\"ON\"i", }, ¬Expr{ - pos: position{line: 2744, col: 33, offset: 83398}, + pos: position{line: 2749, col: 33, offset: 83582}, expr: &ruleRefExpr{ - pos: position{line: 2744, col: 34, offset: 83399}, + pos: position{line: 2749, col: 34, offset: 83583}, name: "IdentifierRest", }, }, @@ -20156,20 +20209,20 @@ var g = &grammar{ }, { name: "OP", - pos: position{line: 2745, col: 1, offset: 83414}, + pos: position{line: 2750, col: 1, offset: 83598}, expr: &seqExpr{ - pos: position{line: 2745, col: 14, offset: 83427}, + pos: position{line: 2750, col: 14, offset: 83611}, exprs: []any{ &litMatcher{ - pos: position{line: 2745, col: 14, offset: 83427}, + pos: position{line: 2750, col: 14, offset: 83611}, val: "op", ignoreCase: true, want: "\"OP\"i", }, ¬Expr{ - pos: position{line: 2745, col: 33, offset: 83446}, + pos: position{line: 2750, col: 33, offset: 83630}, expr: &ruleRefExpr{ - pos: position{line: 2745, col: 34, offset: 83447}, + pos: position{line: 2750, col: 34, offset: 83631}, name: "IdentifierRest", }, }, @@ -20180,20 +20233,20 @@ var g = &grammar{ }, { name: "OPTION", - pos: position{line: 2746, col: 1, offset: 83462}, + pos: position{line: 2751, col: 1, offset: 83646}, expr: &seqExpr{ - pos: position{line: 2746, col: 14, offset: 83475}, + pos: position{line: 2751, col: 14, offset: 83659}, exprs: []any{ &litMatcher{ - pos: position{line: 2746, col: 14, offset: 83475}, + pos: position{line: 2751, col: 14, offset: 83659}, val: "option", ignoreCase: true, want: "\"OPTION\"i", }, ¬Expr{ - pos: position{line: 2746, col: 33, offset: 83494}, + pos: position{line: 2751, col: 33, offset: 83678}, expr: &ruleRefExpr{ - pos: position{line: 2746, col: 34, offset: 83495}, + pos: position{line: 2751, col: 34, offset: 83679}, name: "IdentifierRest", }, }, @@ -20204,23 +20257,23 @@ var g = &grammar{ }, { name: "OR", - pos: position{line: 2747, col: 1, offset: 83510}, + pos: position{line: 2752, col: 1, offset: 83694}, expr: &actionExpr{ - pos: position{line: 2747, col: 14, offset: 83523}, + pos: position{line: 2752, col: 14, offset: 83707}, run: (*parser).callonOR1, expr: &seqExpr{ - pos: position{line: 2747, col: 14, offset: 83523}, + pos: position{line: 2752, col: 14, offset: 83707}, exprs: []any{ &litMatcher{ - pos: position{line: 2747, col: 14, offset: 83523}, + pos: position{line: 2752, col: 14, offset: 83707}, val: "or", ignoreCase: true, want: "\"OR\"i", }, ¬Expr{ - pos: position{line: 2747, col: 33, offset: 83542}, + pos: position{line: 2752, col: 33, offset: 83726}, expr: &ruleRefExpr{ - pos: position{line: 2747, col: 34, offset: 83543}, + pos: position{line: 2752, col: 34, offset: 83727}, name: "IdentifierRest", }, }, @@ -20232,20 +20285,20 @@ var g = &grammar{ }, { name: "ORDER", - pos: position{line: 2748, col: 1, offset: 83579}, + pos: position{line: 2753, col: 1, offset: 83763}, expr: &seqExpr{ - pos: position{line: 2748, col: 14, offset: 83592}, + pos: position{line: 2753, col: 14, offset: 83776}, exprs: []any{ &litMatcher{ - pos: position{line: 2748, col: 14, offset: 83592}, + pos: position{line: 2753, col: 14, offset: 83776}, val: "order", ignoreCase: true, want: "\"ORDER\"i", }, ¬Expr{ - pos: position{line: 2748, col: 33, offset: 83611}, + pos: position{line: 2753, col: 33, offset: 83795}, expr: &ruleRefExpr{ - pos: position{line: 2748, col: 34, offset: 83612}, + pos: position{line: 2753, col: 34, offset: 83796}, name: "IdentifierRest", }, }, @@ -20256,20 +20309,20 @@ var g = &grammar{ }, { name: "ORDINALITY", - pos: position{line: 2749, col: 1, offset: 83627}, + pos: position{line: 2754, col: 1, offset: 83811}, expr: &seqExpr{ - pos: position{line: 2749, col: 14, offset: 83640}, + pos: position{line: 2754, col: 14, offset: 83824}, exprs: []any{ &litMatcher{ - pos: position{line: 2749, col: 14, offset: 83640}, + pos: position{line: 2754, col: 14, offset: 83824}, val: "ordinality", ignoreCase: true, want: "\"ORDINALITY\"i", }, ¬Expr{ - pos: position{line: 2749, col: 33, offset: 83659}, + pos: position{line: 2754, col: 33, offset: 83843}, expr: &ruleRefExpr{ - pos: position{line: 2749, col: 34, offset: 83660}, + pos: position{line: 2754, col: 34, offset: 83844}, name: "IdentifierRest", }, }, @@ -20280,20 +20333,20 @@ var g = &grammar{ }, { name: "OUTER", - pos: position{line: 2750, col: 1, offset: 83675}, + pos: position{line: 2755, col: 1, offset: 83859}, expr: &seqExpr{ - pos: position{line: 2750, col: 14, offset: 83688}, + pos: position{line: 2755, col: 14, offset: 83872}, exprs: []any{ &litMatcher{ - pos: position{line: 2750, col: 14, offset: 83688}, + pos: position{line: 2755, col: 14, offset: 83872}, val: "outer", ignoreCase: true, want: "\"OUTER\"i", }, ¬Expr{ - pos: position{line: 2750, col: 33, offset: 83707}, + pos: position{line: 2755, col: 33, offset: 83891}, expr: &ruleRefExpr{ - pos: position{line: 2750, col: 34, offset: 83708}, + pos: position{line: 2755, col: 34, offset: 83892}, name: "IdentifierRest", }, }, @@ -20304,20 +20357,20 @@ var g = &grammar{ }, { name: "OUTPUT", - pos: position{line: 2751, col: 1, offset: 83723}, + pos: position{line: 2756, col: 1, offset: 83907}, expr: &seqExpr{ - pos: position{line: 2751, col: 14, offset: 83736}, + pos: position{line: 2756, col: 14, offset: 83920}, exprs: []any{ &litMatcher{ - pos: position{line: 2751, col: 14, offset: 83736}, + pos: position{line: 2756, col: 14, offset: 83920}, val: "output", ignoreCase: true, want: "\"OUTPUT\"i", }, ¬Expr{ - pos: position{line: 2751, col: 33, offset: 83755}, + pos: position{line: 2756, col: 33, offset: 83939}, expr: &ruleRefExpr{ - pos: position{line: 2751, col: 34, offset: 83756}, + pos: position{line: 2756, col: 34, offset: 83940}, name: "IdentifierRest", }, }, @@ -20328,20 +20381,20 @@ var g = &grammar{ }, { name: "PASS", - pos: position{line: 2752, col: 1, offset: 83771}, + pos: position{line: 2757, col: 1, offset: 83955}, expr: &seqExpr{ - pos: position{line: 2752, col: 14, offset: 83784}, + pos: position{line: 2757, col: 14, offset: 83968}, exprs: []any{ &litMatcher{ - pos: position{line: 2752, col: 14, offset: 83784}, + pos: position{line: 2757, col: 14, offset: 83968}, val: "pass", ignoreCase: true, want: "\"PASS\"i", }, ¬Expr{ - pos: position{line: 2752, col: 33, offset: 83803}, + pos: position{line: 2757, col: 33, offset: 83987}, expr: &ruleRefExpr{ - pos: position{line: 2752, col: 34, offset: 83804}, + pos: position{line: 2757, col: 34, offset: 83988}, name: "IdentifierRest", }, }, @@ -20352,20 +20405,20 @@ var g = &grammar{ }, { name: "PUT", - pos: position{line: 2753, col: 1, offset: 83819}, + pos: position{line: 2758, col: 1, offset: 84003}, expr: &seqExpr{ - pos: position{line: 2753, col: 14, offset: 83832}, + pos: position{line: 2758, col: 14, offset: 84016}, exprs: []any{ &litMatcher{ - pos: position{line: 2753, col: 14, offset: 83832}, + pos: position{line: 2758, col: 14, offset: 84016}, val: "put", ignoreCase: true, want: "\"PUT\"i", }, ¬Expr{ - pos: position{line: 2753, col: 33, offset: 83851}, + pos: position{line: 2758, col: 33, offset: 84035}, expr: &ruleRefExpr{ - pos: position{line: 2753, col: 34, offset: 83852}, + pos: position{line: 2758, col: 34, offset: 84036}, name: "IdentifierRest", }, }, @@ -20376,20 +20429,20 @@ var g = &grammar{ }, { name: "PRAGMA", - pos: position{line: 2754, col: 1, offset: 83867}, + pos: position{line: 2759, col: 1, offset: 84051}, expr: &seqExpr{ - pos: position{line: 2754, col: 14, offset: 83880}, + pos: position{line: 2759, col: 14, offset: 84064}, exprs: []any{ &litMatcher{ - pos: position{line: 2754, col: 14, offset: 83880}, + pos: position{line: 2759, col: 14, offset: 84064}, val: "pragma", ignoreCase: true, want: "\"PRAGMA\"i", }, ¬Expr{ - pos: position{line: 2754, col: 33, offset: 83899}, + pos: position{line: 2759, col: 33, offset: 84083}, expr: &ruleRefExpr{ - pos: position{line: 2754, col: 34, offset: 83900}, + pos: position{line: 2759, col: 34, offset: 84084}, name: "IdentifierRest", }, }, @@ -20400,20 +20453,20 @@ var g = &grammar{ }, { name: "RECURSIVE", - pos: position{line: 2755, col: 1, offset: 83915}, + pos: position{line: 2760, col: 1, offset: 84099}, expr: &seqExpr{ - pos: position{line: 2755, col: 14, offset: 83928}, + pos: position{line: 2760, col: 14, offset: 84112}, exprs: []any{ &litMatcher{ - pos: position{line: 2755, col: 14, offset: 83928}, + pos: position{line: 2760, col: 14, offset: 84112}, val: "recursive", ignoreCase: true, want: "\"RECURSIVE\"i", }, ¬Expr{ - pos: position{line: 2755, col: 33, offset: 83947}, + pos: position{line: 2760, col: 33, offset: 84131}, expr: &ruleRefExpr{ - pos: position{line: 2755, col: 34, offset: 83948}, + pos: position{line: 2760, col: 34, offset: 84132}, name: "IdentifierRest", }, }, @@ -20424,20 +20477,20 @@ var g = &grammar{ }, { name: "RENAME", - pos: position{line: 2756, col: 1, offset: 83963}, + pos: position{line: 2761, col: 1, offset: 84147}, expr: &seqExpr{ - pos: position{line: 2756, col: 14, offset: 83976}, + pos: position{line: 2761, col: 14, offset: 84160}, exprs: []any{ &litMatcher{ - pos: position{line: 2756, col: 14, offset: 83976}, + pos: position{line: 2761, col: 14, offset: 84160}, val: "rename", ignoreCase: true, want: "\"RENAME\"i", }, ¬Expr{ - pos: position{line: 2756, col: 33, offset: 83995}, + pos: position{line: 2761, col: 33, offset: 84179}, expr: &ruleRefExpr{ - pos: position{line: 2756, col: 34, offset: 83996}, + pos: position{line: 2761, col: 34, offset: 84180}, name: "IdentifierRest", }, }, @@ -20448,20 +20501,20 @@ var g = &grammar{ }, { name: "RIGHT", - pos: position{line: 2757, col: 1, offset: 84011}, + pos: position{line: 2762, col: 1, offset: 84195}, expr: &seqExpr{ - pos: position{line: 2757, col: 14, offset: 84024}, + pos: position{line: 2762, col: 14, offset: 84208}, exprs: []any{ &litMatcher{ - pos: position{line: 2757, col: 14, offset: 84024}, + pos: position{line: 2762, col: 14, offset: 84208}, val: "right", ignoreCase: true, want: "\"RIGHT\"i", }, ¬Expr{ - pos: position{line: 2757, col: 33, offset: 84043}, + pos: position{line: 2762, col: 33, offset: 84227}, expr: &ruleRefExpr{ - pos: position{line: 2757, col: 34, offset: 84044}, + pos: position{line: 2762, col: 34, offset: 84228}, name: "IdentifierRest", }, }, @@ -20472,20 +20525,20 @@ var g = &grammar{ }, { name: "SHAPES", - pos: position{line: 2758, col: 1, offset: 84059}, + pos: position{line: 2763, col: 1, offset: 84243}, expr: &seqExpr{ - pos: position{line: 2758, col: 14, offset: 84072}, + pos: position{line: 2763, col: 14, offset: 84256}, exprs: []any{ &litMatcher{ - pos: position{line: 2758, col: 14, offset: 84072}, + pos: position{line: 2763, col: 14, offset: 84256}, val: "shapes", ignoreCase: true, want: "\"SHAPES\"i", }, ¬Expr{ - pos: position{line: 2758, col: 33, offset: 84091}, + pos: position{line: 2763, col: 33, offset: 84275}, expr: &ruleRefExpr{ - pos: position{line: 2758, col: 34, offset: 84092}, + pos: position{line: 2763, col: 34, offset: 84276}, name: "IdentifierRest", }, }, @@ -20496,20 +20549,20 @@ var g = &grammar{ }, { name: "SEARCH", - pos: position{line: 2759, col: 1, offset: 84107}, + pos: position{line: 2764, col: 1, offset: 84291}, expr: &seqExpr{ - pos: position{line: 2759, col: 14, offset: 84120}, + pos: position{line: 2764, col: 14, offset: 84304}, exprs: []any{ &litMatcher{ - pos: position{line: 2759, col: 14, offset: 84120}, + pos: position{line: 2764, col: 14, offset: 84304}, val: "search", ignoreCase: true, want: "\"SEARCH\"i", }, ¬Expr{ - pos: position{line: 2759, col: 33, offset: 84139}, + pos: position{line: 2764, col: 33, offset: 84323}, expr: &ruleRefExpr{ - pos: position{line: 2759, col: 34, offset: 84140}, + pos: position{line: 2764, col: 34, offset: 84324}, name: "IdentifierRest", }, }, @@ -20520,20 +20573,20 @@ var g = &grammar{ }, { name: "SELECT", - pos: position{line: 2760, col: 1, offset: 84155}, + pos: position{line: 2765, col: 1, offset: 84339}, expr: &seqExpr{ - pos: position{line: 2760, col: 14, offset: 84168}, + pos: position{line: 2765, col: 14, offset: 84352}, exprs: []any{ &litMatcher{ - pos: position{line: 2760, col: 14, offset: 84168}, + pos: position{line: 2765, col: 14, offset: 84352}, val: "select", ignoreCase: true, want: "\"SELECT\"i", }, ¬Expr{ - pos: position{line: 2760, col: 33, offset: 84187}, + pos: position{line: 2765, col: 33, offset: 84371}, expr: &ruleRefExpr{ - pos: position{line: 2760, col: 34, offset: 84188}, + pos: position{line: 2765, col: 34, offset: 84372}, name: "IdentifierRest", }, }, @@ -20544,20 +20597,20 @@ var g = &grammar{ }, { name: "SHAPE", - pos: position{line: 2761, col: 1, offset: 84203}, + pos: position{line: 2766, col: 1, offset: 84387}, expr: &seqExpr{ - pos: position{line: 2761, col: 14, offset: 84216}, + pos: position{line: 2766, col: 14, offset: 84400}, exprs: []any{ &litMatcher{ - pos: position{line: 2761, col: 14, offset: 84216}, + pos: position{line: 2766, col: 14, offset: 84400}, val: "shape", ignoreCase: true, want: "\"SHAPE\"i", }, ¬Expr{ - pos: position{line: 2761, col: 33, offset: 84235}, + pos: position{line: 2766, col: 33, offset: 84419}, expr: &ruleRefExpr{ - pos: position{line: 2761, col: 34, offset: 84236}, + pos: position{line: 2766, col: 34, offset: 84420}, name: "IdentifierRest", }, }, @@ -20568,20 +20621,20 @@ var g = &grammar{ }, { name: "SKIP", - pos: position{line: 2762, col: 1, offset: 84251}, + pos: position{line: 2767, col: 1, offset: 84435}, expr: &seqExpr{ - pos: position{line: 2762, col: 14, offset: 84264}, + pos: position{line: 2767, col: 14, offset: 84448}, exprs: []any{ &litMatcher{ - pos: position{line: 2762, col: 14, offset: 84264}, + pos: position{line: 2767, col: 14, offset: 84448}, val: "skip", ignoreCase: true, want: "\"SKIP\"i", }, ¬Expr{ - pos: position{line: 2762, col: 33, offset: 84283}, + pos: position{line: 2767, col: 33, offset: 84467}, expr: &ruleRefExpr{ - pos: position{line: 2762, col: 34, offset: 84284}, + pos: position{line: 2767, col: 34, offset: 84468}, name: "IdentifierRest", }, }, @@ -20592,20 +20645,20 @@ var g = &grammar{ }, { name: "SORT", - pos: position{line: 2763, col: 1, offset: 84299}, + pos: position{line: 2768, col: 1, offset: 84483}, expr: &seqExpr{ - pos: position{line: 2763, col: 14, offset: 84312}, + pos: position{line: 2768, col: 14, offset: 84496}, exprs: []any{ &litMatcher{ - pos: position{line: 2763, col: 14, offset: 84312}, + pos: position{line: 2768, col: 14, offset: 84496}, val: "sort", ignoreCase: true, want: "\"SORT\"i", }, ¬Expr{ - pos: position{line: 2763, col: 33, offset: 84331}, + pos: position{line: 2768, col: 33, offset: 84515}, expr: &ruleRefExpr{ - pos: position{line: 2763, col: 34, offset: 84332}, + pos: position{line: 2768, col: 34, offset: 84516}, name: "IdentifierRest", }, }, @@ -20616,20 +20669,20 @@ var g = &grammar{ }, { name: "SUBSTRING", - pos: position{line: 2764, col: 1, offset: 84347}, + pos: position{line: 2769, col: 1, offset: 84531}, expr: &seqExpr{ - pos: position{line: 2764, col: 14, offset: 84360}, + pos: position{line: 2769, col: 14, offset: 84544}, exprs: []any{ &litMatcher{ - pos: position{line: 2764, col: 14, offset: 84360}, + pos: position{line: 2769, col: 14, offset: 84544}, val: "substring", ignoreCase: true, want: "\"SUBSTRING\"i", }, ¬Expr{ - pos: position{line: 2764, col: 33, offset: 84379}, + pos: position{line: 2769, col: 33, offset: 84563}, expr: &ruleRefExpr{ - pos: position{line: 2764, col: 34, offset: 84380}, + pos: position{line: 2769, col: 34, offset: 84564}, name: "IdentifierRest", }, }, @@ -20640,20 +20693,20 @@ var g = &grammar{ }, { name: "SUMMARIZE", - pos: position{line: 2765, col: 1, offset: 84395}, + pos: position{line: 2770, col: 1, offset: 84579}, expr: &seqExpr{ - pos: position{line: 2765, col: 14, offset: 84408}, + pos: position{line: 2770, col: 14, offset: 84592}, exprs: []any{ &litMatcher{ - pos: position{line: 2765, col: 14, offset: 84408}, + pos: position{line: 2770, col: 14, offset: 84592}, val: "summarize", ignoreCase: true, want: "\"SUMMARIZE\"i", }, ¬Expr{ - pos: position{line: 2765, col: 33, offset: 84427}, + pos: position{line: 2770, col: 33, offset: 84611}, expr: &ruleRefExpr{ - pos: position{line: 2765, col: 34, offset: 84428}, + pos: position{line: 2770, col: 34, offset: 84612}, name: "IdentifierRest", }, }, @@ -20664,20 +20717,20 @@ var g = &grammar{ }, { name: "SUPER", - pos: position{line: 2766, col: 1, offset: 84443}, + pos: position{line: 2771, col: 1, offset: 84627}, expr: &seqExpr{ - pos: position{line: 2766, col: 14, offset: 84456}, + pos: position{line: 2771, col: 14, offset: 84640}, exprs: []any{ &litMatcher{ - pos: position{line: 2766, col: 14, offset: 84456}, + pos: position{line: 2771, col: 14, offset: 84640}, val: "super", ignoreCase: true, want: "\"SUPER\"i", }, ¬Expr{ - pos: position{line: 2766, col: 33, offset: 84475}, + pos: position{line: 2771, col: 33, offset: 84659}, expr: &ruleRefExpr{ - pos: position{line: 2766, col: 34, offset: 84476}, + pos: position{line: 2771, col: 34, offset: 84660}, name: "IdentifierRest", }, }, @@ -20688,20 +20741,20 @@ var g = &grammar{ }, { name: "SUPERFUSE", - pos: position{line: 2767, col: 1, offset: 84491}, + pos: position{line: 2772, col: 1, offset: 84675}, expr: &seqExpr{ - pos: position{line: 2767, col: 14, offset: 84504}, + pos: position{line: 2772, col: 14, offset: 84688}, exprs: []any{ &litMatcher{ - pos: position{line: 2767, col: 14, offset: 84504}, + pos: position{line: 2772, col: 14, offset: 84688}, val: "superfuse", ignoreCase: true, want: "\"SUPERFUSE\"i", }, ¬Expr{ - pos: position{line: 2767, col: 33, offset: 84523}, + pos: position{line: 2772, col: 33, offset: 84707}, expr: &ruleRefExpr{ - pos: position{line: 2767, col: 34, offset: 84524}, + pos: position{line: 2772, col: 34, offset: 84708}, name: "IdentifierRest", }, }, @@ -20712,20 +20765,20 @@ var g = &grammar{ }, { name: "SWITCH", - pos: position{line: 2768, col: 1, offset: 84539}, + pos: position{line: 2773, col: 1, offset: 84723}, expr: &seqExpr{ - pos: position{line: 2768, col: 14, offset: 84552}, + pos: position{line: 2773, col: 14, offset: 84736}, exprs: []any{ &litMatcher{ - pos: position{line: 2768, col: 14, offset: 84552}, + pos: position{line: 2773, col: 14, offset: 84736}, val: "switch", ignoreCase: true, want: "\"SWITCH\"i", }, ¬Expr{ - pos: position{line: 2768, col: 33, offset: 84571}, + pos: position{line: 2773, col: 33, offset: 84755}, expr: &ruleRefExpr{ - pos: position{line: 2768, col: 34, offset: 84572}, + pos: position{line: 2773, col: 34, offset: 84756}, name: "IdentifierRest", }, }, @@ -20736,20 +20789,20 @@ var g = &grammar{ }, { name: "TABLE", - pos: position{line: 2769, col: 1, offset: 84587}, + pos: position{line: 2774, col: 1, offset: 84771}, expr: &seqExpr{ - pos: position{line: 2769, col: 14, offset: 84600}, + pos: position{line: 2774, col: 14, offset: 84784}, exprs: []any{ &litMatcher{ - pos: position{line: 2769, col: 14, offset: 84600}, + pos: position{line: 2774, col: 14, offset: 84784}, val: "table", ignoreCase: true, want: "\"TABLE\"i", }, ¬Expr{ - pos: position{line: 2769, col: 33, offset: 84619}, + pos: position{line: 2774, col: 33, offset: 84803}, expr: &ruleRefExpr{ - pos: position{line: 2769, col: 34, offset: 84620}, + pos: position{line: 2774, col: 34, offset: 84804}, name: "IdentifierRest", }, }, @@ -20760,20 +20813,20 @@ var g = &grammar{ }, { name: "TAIL", - pos: position{line: 2770, col: 1, offset: 84635}, + pos: position{line: 2775, col: 1, offset: 84819}, expr: &seqExpr{ - pos: position{line: 2770, col: 14, offset: 84648}, + pos: position{line: 2775, col: 14, offset: 84832}, exprs: []any{ &litMatcher{ - pos: position{line: 2770, col: 14, offset: 84648}, + pos: position{line: 2775, col: 14, offset: 84832}, val: "tail", ignoreCase: true, want: "\"TAIL\"i", }, ¬Expr{ - pos: position{line: 2770, col: 33, offset: 84667}, + pos: position{line: 2775, col: 33, offset: 84851}, expr: &ruleRefExpr{ - pos: position{line: 2770, col: 34, offset: 84668}, + pos: position{line: 2775, col: 34, offset: 84852}, name: "IdentifierRest", }, }, @@ -20784,20 +20837,20 @@ var g = &grammar{ }, { name: "THEN", - pos: position{line: 2771, col: 1, offset: 84683}, + pos: position{line: 2776, col: 1, offset: 84867}, expr: &seqExpr{ - pos: position{line: 2771, col: 14, offset: 84696}, + pos: position{line: 2776, col: 14, offset: 84880}, exprs: []any{ &litMatcher{ - pos: position{line: 2771, col: 14, offset: 84696}, + pos: position{line: 2776, col: 14, offset: 84880}, val: "then", ignoreCase: true, want: "\"THEN\"i", }, ¬Expr{ - pos: position{line: 2771, col: 33, offset: 84715}, + pos: position{line: 2776, col: 33, offset: 84899}, expr: &ruleRefExpr{ - pos: position{line: 2771, col: 34, offset: 84716}, + pos: position{line: 2776, col: 34, offset: 84900}, name: "IdentifierRest", }, }, @@ -20808,23 +20861,23 @@ var g = &grammar{ }, { name: "TIMESTAMP", - pos: position{line: 2772, col: 1, offset: 84731}, + pos: position{line: 2777, col: 1, offset: 84915}, expr: &actionExpr{ - pos: position{line: 2772, col: 14, offset: 84744}, + pos: position{line: 2777, col: 14, offset: 84928}, run: (*parser).callonTIMESTAMP1, expr: &seqExpr{ - pos: position{line: 2772, col: 14, offset: 84744}, + pos: position{line: 2777, col: 14, offset: 84928}, exprs: []any{ &litMatcher{ - pos: position{line: 2772, col: 14, offset: 84744}, + pos: position{line: 2777, col: 14, offset: 84928}, val: "timestamp", ignoreCase: true, want: "\"TIMESTAMP\"i", }, ¬Expr{ - pos: position{line: 2772, col: 33, offset: 84763}, + pos: position{line: 2777, col: 33, offset: 84947}, expr: &ruleRefExpr{ - pos: position{line: 2772, col: 34, offset: 84764}, + pos: position{line: 2777, col: 34, offset: 84948}, name: "IdentifierRest", }, }, @@ -20836,20 +20889,20 @@ var g = &grammar{ }, { name: "TOP", - pos: position{line: 2773, col: 1, offset: 84807}, + pos: position{line: 2778, col: 1, offset: 84991}, expr: &seqExpr{ - pos: position{line: 2773, col: 14, offset: 84820}, + pos: position{line: 2778, col: 14, offset: 85004}, exprs: []any{ &litMatcher{ - pos: position{line: 2773, col: 14, offset: 84820}, + pos: position{line: 2778, col: 14, offset: 85004}, val: "top", ignoreCase: true, want: "\"TOP\"i", }, ¬Expr{ - pos: position{line: 2773, col: 33, offset: 84839}, + pos: position{line: 2778, col: 33, offset: 85023}, expr: &ruleRefExpr{ - pos: position{line: 2773, col: 34, offset: 84840}, + pos: position{line: 2778, col: 34, offset: 85024}, name: "IdentifierRest", }, }, @@ -20860,20 +20913,20 @@ var g = &grammar{ }, { name: "TRUE", - pos: position{line: 2774, col: 1, offset: 84855}, + pos: position{line: 2779, col: 1, offset: 85039}, expr: &seqExpr{ - pos: position{line: 2774, col: 14, offset: 84868}, + pos: position{line: 2779, col: 14, offset: 85052}, exprs: []any{ &litMatcher{ - pos: position{line: 2774, col: 14, offset: 84868}, + pos: position{line: 2779, col: 14, offset: 85052}, val: "true", ignoreCase: true, want: "\"TRUE\"i", }, ¬Expr{ - pos: position{line: 2774, col: 33, offset: 84887}, + pos: position{line: 2779, col: 33, offset: 85071}, expr: &ruleRefExpr{ - pos: position{line: 2774, col: 34, offset: 84888}, + pos: position{line: 2779, col: 34, offset: 85072}, name: "IdentifierRest", }, }, @@ -20884,20 +20937,20 @@ var g = &grammar{ }, { name: "TYPE", - pos: position{line: 2775, col: 1, offset: 84903}, + pos: position{line: 2780, col: 1, offset: 85087}, expr: &seqExpr{ - pos: position{line: 2775, col: 14, offset: 84916}, + pos: position{line: 2780, col: 14, offset: 85100}, exprs: []any{ &litMatcher{ - pos: position{line: 2775, col: 14, offset: 84916}, + pos: position{line: 2780, col: 14, offset: 85100}, val: "type", ignoreCase: true, want: "\"TYPE\"i", }, ¬Expr{ - pos: position{line: 2775, col: 33, offset: 84935}, + pos: position{line: 2780, col: 33, offset: 85119}, expr: &ruleRefExpr{ - pos: position{line: 2775, col: 34, offset: 84936}, + pos: position{line: 2780, col: 34, offset: 85120}, name: "IdentifierRest", }, }, @@ -20908,20 +20961,20 @@ var g = &grammar{ }, { name: "UNION", - pos: position{line: 2776, col: 1, offset: 84951}, + pos: position{line: 2781, col: 1, offset: 85135}, expr: &seqExpr{ - pos: position{line: 2776, col: 14, offset: 84964}, + pos: position{line: 2781, col: 14, offset: 85148}, exprs: []any{ &litMatcher{ - pos: position{line: 2776, col: 14, offset: 84964}, + pos: position{line: 2781, col: 14, offset: 85148}, val: "union", ignoreCase: true, want: "\"UNION\"i", }, ¬Expr{ - pos: position{line: 2776, col: 33, offset: 84983}, + pos: position{line: 2781, col: 33, offset: 85167}, expr: &ruleRefExpr{ - pos: position{line: 2776, col: 34, offset: 84984}, + pos: position{line: 2781, col: 34, offset: 85168}, name: "IdentifierRest", }, }, @@ -20932,20 +20985,20 @@ var g = &grammar{ }, { name: "UNIQ", - pos: position{line: 2777, col: 1, offset: 84999}, + pos: position{line: 2782, col: 1, offset: 85183}, expr: &seqExpr{ - pos: position{line: 2777, col: 14, offset: 85012}, + pos: position{line: 2782, col: 14, offset: 85196}, exprs: []any{ &litMatcher{ - pos: position{line: 2777, col: 14, offset: 85012}, + pos: position{line: 2782, col: 14, offset: 85196}, val: "uniq", ignoreCase: true, want: "\"UNIQ\"i", }, ¬Expr{ - pos: position{line: 2777, col: 33, offset: 85031}, + pos: position{line: 2782, col: 33, offset: 85215}, expr: &ruleRefExpr{ - pos: position{line: 2777, col: 34, offset: 85032}, + pos: position{line: 2782, col: 34, offset: 85216}, name: "IdentifierRest", }, }, @@ -20956,20 +21009,20 @@ var g = &grammar{ }, { name: "UNNEST", - pos: position{line: 2778, col: 1, offset: 85047}, + pos: position{line: 2783, col: 1, offset: 85231}, expr: &seqExpr{ - pos: position{line: 2778, col: 14, offset: 85060}, + pos: position{line: 2783, col: 14, offset: 85244}, exprs: []any{ &litMatcher{ - pos: position{line: 2778, col: 14, offset: 85060}, + pos: position{line: 2783, col: 14, offset: 85244}, val: "unnest", ignoreCase: true, want: "\"UNNEST\"i", }, ¬Expr{ - pos: position{line: 2778, col: 33, offset: 85079}, + pos: position{line: 2783, col: 33, offset: 85263}, expr: &ruleRefExpr{ - pos: position{line: 2778, col: 34, offset: 85080}, + pos: position{line: 2783, col: 34, offset: 85264}, name: "IdentifierRest", }, }, @@ -20980,20 +21033,20 @@ var g = &grammar{ }, { name: "USING", - pos: position{line: 2779, col: 1, offset: 85095}, + pos: position{line: 2784, col: 1, offset: 85279}, expr: &seqExpr{ - pos: position{line: 2779, col: 14, offset: 85108}, + pos: position{line: 2784, col: 14, offset: 85292}, exprs: []any{ &litMatcher{ - pos: position{line: 2779, col: 14, offset: 85108}, + pos: position{line: 2784, col: 14, offset: 85292}, val: "using", ignoreCase: true, want: "\"USING\"i", }, ¬Expr{ - pos: position{line: 2779, col: 33, offset: 85127}, + pos: position{line: 2784, col: 33, offset: 85311}, expr: &ruleRefExpr{ - pos: position{line: 2779, col: 34, offset: 85128}, + pos: position{line: 2784, col: 34, offset: 85312}, name: "IdentifierRest", }, }, @@ -21004,20 +21057,20 @@ var g = &grammar{ }, { name: "VALUE", - pos: position{line: 2780, col: 1, offset: 85143}, + pos: position{line: 2785, col: 1, offset: 85327}, expr: &seqExpr{ - pos: position{line: 2780, col: 14, offset: 85156}, + pos: position{line: 2785, col: 14, offset: 85340}, exprs: []any{ &litMatcher{ - pos: position{line: 2780, col: 14, offset: 85156}, + pos: position{line: 2785, col: 14, offset: 85340}, val: "value", ignoreCase: true, want: "\"VALUE\"i", }, ¬Expr{ - pos: position{line: 2780, col: 33, offset: 85175}, + pos: position{line: 2785, col: 33, offset: 85359}, expr: &ruleRefExpr{ - pos: position{line: 2780, col: 34, offset: 85176}, + pos: position{line: 2785, col: 34, offset: 85360}, name: "IdentifierRest", }, }, @@ -21028,20 +21081,20 @@ var g = &grammar{ }, { name: "VALUES", - pos: position{line: 2781, col: 1, offset: 85191}, + pos: position{line: 2786, col: 1, offset: 85375}, expr: &seqExpr{ - pos: position{line: 2781, col: 14, offset: 85204}, + pos: position{line: 2786, col: 14, offset: 85388}, exprs: []any{ &litMatcher{ - pos: position{line: 2781, col: 14, offset: 85204}, + pos: position{line: 2786, col: 14, offset: 85388}, val: "values", ignoreCase: true, want: "\"VALUES\"i", }, ¬Expr{ - pos: position{line: 2781, col: 33, offset: 85223}, + pos: position{line: 2786, col: 33, offset: 85407}, expr: &ruleRefExpr{ - pos: position{line: 2781, col: 34, offset: 85224}, + pos: position{line: 2786, col: 34, offset: 85408}, name: "IdentifierRest", }, }, @@ -21052,20 +21105,20 @@ var g = &grammar{ }, { name: "WHEN", - pos: position{line: 2782, col: 1, offset: 85239}, + pos: position{line: 2787, col: 1, offset: 85423}, expr: &seqExpr{ - pos: position{line: 2782, col: 14, offset: 85252}, + pos: position{line: 2787, col: 14, offset: 85436}, exprs: []any{ &litMatcher{ - pos: position{line: 2782, col: 14, offset: 85252}, + pos: position{line: 2787, col: 14, offset: 85436}, val: "when", ignoreCase: true, want: "\"WHEN\"i", }, ¬Expr{ - pos: position{line: 2782, col: 33, offset: 85271}, + pos: position{line: 2787, col: 33, offset: 85455}, expr: &ruleRefExpr{ - pos: position{line: 2782, col: 34, offset: 85272}, + pos: position{line: 2787, col: 34, offset: 85456}, name: "IdentifierRest", }, }, @@ -21076,20 +21129,20 @@ var g = &grammar{ }, { name: "WHERE", - pos: position{line: 2783, col: 1, offset: 85287}, + pos: position{line: 2788, col: 1, offset: 85471}, expr: &seqExpr{ - pos: position{line: 2783, col: 14, offset: 85300}, + pos: position{line: 2788, col: 14, offset: 85484}, exprs: []any{ &litMatcher{ - pos: position{line: 2783, col: 14, offset: 85300}, + pos: position{line: 2788, col: 14, offset: 85484}, val: "where", ignoreCase: true, want: "\"WHERE\"i", }, ¬Expr{ - pos: position{line: 2783, col: 33, offset: 85319}, + pos: position{line: 2788, col: 33, offset: 85503}, expr: &ruleRefExpr{ - pos: position{line: 2783, col: 34, offset: 85320}, + pos: position{line: 2788, col: 34, offset: 85504}, name: "IdentifierRest", }, }, @@ -21100,20 +21153,20 @@ var g = &grammar{ }, { name: "WITH", - pos: position{line: 2784, col: 1, offset: 85335}, + pos: position{line: 2789, col: 1, offset: 85519}, expr: &seqExpr{ - pos: position{line: 2784, col: 14, offset: 85348}, + pos: position{line: 2789, col: 14, offset: 85532}, exprs: []any{ &litMatcher{ - pos: position{line: 2784, col: 14, offset: 85348}, + pos: position{line: 2789, col: 14, offset: 85532}, val: "with", ignoreCase: true, want: "\"WITH\"i", }, ¬Expr{ - pos: position{line: 2784, col: 33, offset: 85367}, + pos: position{line: 2789, col: 33, offset: 85551}, expr: &ruleRefExpr{ - pos: position{line: 2784, col: 34, offset: 85368}, + pos: position{line: 2789, col: 34, offset: 85552}, name: "IdentifierRest", }, }, @@ -21442,12 +21495,13 @@ func (p *parser) callonFuncDecl1() (any, error) { return p.cur.onFuncDecl1(stack["name"], stack["params"], stack["expr"]) } -func (c *current) onQueryDecl1(name, body any) (any, error) { +func (c *current) onQueryDecl1(name, m, body any) (any, error) { return &ast.QueryDecl{ - Kind: "QueryDecl", - Name: name.(*ast.ID), - Body: sliceOf[ast.Op](body), - Loc: loc(c), + Kind: "QueryDecl", + Name: name.(*ast.ID), + Materialized: m.(bool), + Body: sliceOf[ast.Op](body), + Loc: loc(c), }, nil } @@ -21455,7 +21509,7 @@ func (c *current) onQueryDecl1(name, body any) (any, error) { func (p *parser) callonQueryDecl1() (any, error) { stack := p.vstack[len(p.vstack)-1] _ = stack - return p.cur.onQueryDecl1(stack["name"], stack["body"]) + return p.cur.onQueryDecl1(stack["name"], stack["m"], stack["body"]) } func (c *current) onLambdaExpr7(ids any) (any, error) { @@ -23978,47 +24032,59 @@ func (p *parser) callonExprs1() (any, error) { return p.cur.onExprs1(stack["first"], stack["rest"]) } -func (c *current) onPrimary8(id any) (any, error) { - return &ast.IDExpr{Kind: "IDExpr", ID: *(id.(*ast.ID))}, nil +func (c *current) onPrimary8(expr any) (any, error) { + expr.(*ast.SubqueryExpr).Materialized = true + return expr, nil + } func (p *parser) callonPrimary8() (any, error) { stack := p.vstack[len(p.vstack)-1] _ = stack - return p.cur.onPrimary8(stack["id"]) + return p.cur.onPrimary8(stack["expr"]) +} + +func (c *current) onPrimary18(id any) (any, error) { + return &ast.IDExpr{Kind: "IDExpr", ID: *(id.(*ast.ID))}, nil +} + +func (p *parser) callonPrimary18() (any, error) { + stack := p.vstack[len(p.vstack)-1] + _ = stack + return p.cur.onPrimary18(stack["id"]) } -func (c *current) onPrimary12(expr any) (any, error) { +func (c *current) onPrimary22(expr any) (any, error) { return expr, nil } -func (p *parser) callonPrimary12() (any, error) { +func (p *parser) callonPrimary22() (any, error) { stack := p.vstack[len(p.vstack)-1] _ = stack - return p.cur.onPrimary12(stack["expr"]) + return p.cur.onPrimary22(stack["expr"]) } -func (c *current) onPrimary20(expr any) (any, error) { +func (c *current) onPrimary30(expr any) (any, error) { return expr, nil } -func (p *parser) callonPrimary20() (any, error) { +func (p *parser) callonPrimary30() (any, error) { stack := p.vstack[len(p.vstack)-1] _ = stack - return p.cur.onPrimary20(stack["expr"]) + return p.cur.onPrimary30(stack["expr"]) } -func (c *current) onPrimary28(expr any) (any, error) { +func (c *current) onPrimary38(expr any) (any, error) { expr.(*ast.SubqueryExpr).Array = true return expr, nil } -func (p *parser) callonPrimary28() (any, error) { +func (p *parser) callonPrimary38() (any, error) { stack := p.vstack[len(p.vstack)-1] _ = stack - return p.cur.onPrimary28(stack["expr"]) + return p.cur.onPrimary38(stack["expr"]) } func (c *current) onMatchExpr9(a any) (any, error) { diff --git a/compiler/parser/parser.peg b/compiler/parser/parser.peg index 0ac995a5b5..a868b09eeb 100644 --- a/compiler/parser/parser.peg +++ b/compiler/parser/parser.peg @@ -165,10 +165,11 @@ FuncDecl } QueryDecl - = LET _ name:Identifier __ "=" __ "(" __ body:Query __ ")" { + = LET _ name:Identifier __ "=" m:OptMaterialized __ "(" __ body:Query __ ")" { return &ast.QueryDecl{ Kind: "QueryDecl", Name: name.(*ast.ID), + Materialized: m.(bool), Body: sliceOf[ast.Op](body), Loc: loc(c), }, nil @@ -1342,6 +1343,10 @@ Primary / Map / SQLTimeExpr / Literal + / MATERIALIZED __ "(" __ expr:SubqueryExpr __ ")" { + expr.(*ast.SubqueryExpr).Materialized = true + return expr, nil + } / id:Identifier { return &ast.IDExpr{Kind:"IDExpr", ID: *(id.(*ast.ID))}, nil } / Tuple / "(" __ expr:Expr __ ")" { return expr, nil } diff --git a/compiler/rungen/op.go b/compiler/rungen/op.go index 1a35c0c8f5..7aa38bed22 100644 --- a/compiler/rungen/op.go +++ b/compiler/rungen/op.go @@ -24,29 +24,33 @@ import ( var ErrJoinParents = errors.New("join requires two upstream parallel query paths") type Builder struct { - rctx *runtime.Context - mctx *super.Context - mapper *super.TypeDefsMapper - env *exec.Environment - progress *vio.Progress - debugs *op.DebugChans - channels map[string][]vio.Puller - deletes *sync.Map - funcs map[string]*dag.FuncDef - compiledVamUDFs map[string]*expr.UDF - mu sync.Mutex + rctx *runtime.Context + mctx *super.Context + mapper *super.TypeDefsMapper + env *exec.Environment + progress *vio.Progress + debugs *op.DebugChans + channels map[string][]vio.Puller + deletes *sync.Map + funcs map[string]*dag.FuncDef + compiledVamUDFs map[string]*expr.UDF + materializedDefs map[string]*dag.MaterializedDef + materialized map[string]*op.Materialized + mu sync.Mutex } func NewBuilder(rctx *runtime.Context, env *exec.Environment) *Builder { return &Builder{ - rctx: rctx, - mctx: super.NewContext(), - env: env, - progress: &vio.Progress{}, - debugs: op.NewDebugChans(), - channels: make(map[string][]vio.Puller), - funcs: make(map[string]*dag.FuncDef), - compiledVamUDFs: make(map[string]*expr.UDF), + rctx: rctx, + mctx: super.NewContext(), + env: env, + progress: &vio.Progress{}, + debugs: op.NewDebugChans(), + channels: make(map[string][]vio.Puller), + funcs: make(map[string]*dag.FuncDef), + compiledVamUDFs: make(map[string]*expr.UDF), + materializedDefs: make(map[string]*dag.MaterializedDef), + materialized: make(map[string]*op.Materialized), } } @@ -181,6 +185,9 @@ func EvalAtCompileTimeWithEnv(ctx context.Context, sctx *super.Context, env *exe for _, f := range main.Funcs { b.funcs[f.Tag] = f } + for _, m := range main.Materialized { + b.materializedDefs[m.Name] = m + } if len(main.Types) != 0 { defs, ok := super.NewTypeDefsFromBytes(main.Types) if !ok { @@ -196,7 +203,7 @@ func isEntry(seq dag.Seq, fileScanIsEntry bool) bool { return false } switch op := seq[0].(type) { - case *dag.ListerScan, *dag.HTTPScan, *dag.TableScan, *dag.DBMetaScan, *dag.TableMetaScan, *dag.CommitMetaScan, *dag.NullScan: + case *dag.ListerScan, *dag.HTTPScan, *dag.TableScan, *dag.DBMetaScan, *dag.TableMetaScan, *dag.CommitMetaScan, *dag.NullScan, *dag.MaterializedRefOp: return true case *dag.FileScan: return fileScanIsEntry diff --git a/compiler/rungen/vexpr.go b/compiler/rungen/vexpr.go index f3776fc9ed..8d99ff91e8 100644 --- a/compiler/rungen/vexpr.go +++ b/compiler/rungen/vexpr.go @@ -307,7 +307,7 @@ func (b *Builder) compileVamRecordExpr(e *dag.RecordExpr) (expr.Evaluator, error } func (b *Builder) compileVamSubquery(query *dag.SubqueryExpr) (expr.Evaluator, error) { - if !query.Correlated { + if query.Materialized { exits, err := b.compileVamSeq(query.Body, nil) if err != nil { return nil, err diff --git a/compiler/rungen/vop.go b/compiler/rungen/vop.go index b17c9ceaf4..b5b35aeb03 100644 --- a/compiler/rungen/vop.go +++ b/compiler/rungen/vop.go @@ -181,6 +181,9 @@ func (b *Builder) compileVamMain(main *dag.Main, parents []vio.Puller) ([]vio.Pu for _, f := range main.Funcs { b.funcs[f.Tag] = f } + for _, d := range main.Materialized { + b.materializedDefs[d.Name] = d + } return b.compileVamSeq(main.Body, parents) } @@ -313,6 +316,8 @@ func (b *Builder) compileVamLeaf(o dag.Op, parent vio.Puller) (vio.Puller, error return op.NewLister(b.rctx.Context, b.mctx, table, o.Commit, pruner) case *dag.LoadOp: return op.NewLoad(b.rctx, b.env.DB(), parent, o.Table, o.Branch, o.Author, o.Message, o.Meta), nil + case *dag.MaterializedRefOp: + return b.compileMaterializedRef(o.Name) case *dag.NullScan: return vio.NewPuller(vector.NewNull(1)), nil case *dag.OutputOp: @@ -537,3 +542,20 @@ func (b *Builder) compileVamAgg(ag *dag.AggExpr) (*expr.Aggregator, error) { } return expr.NewAggregator(name, ag.Distinct, arg, filter, pattern) } + +func (b *Builder) compileMaterializedRef(name string) (vio.Puller, error) { + if m, ok := b.materialized[name]; ok { + return m.NewPuller(), nil + } + def, ok := b.materializedDefs[name] + if !ok { + return nil, fmt.Errorf("internal error: undefined materialized query %q", name) + } + exits, err := b.compileVamSeq(def.Body, nil) + if err != nil { + return nil, err + } + m := op.NewMaterialized(b.combineVam(exits)) + b.materialized[name] = m + return m.NewPuller(), nil +} diff --git a/compiler/semantic/analyzer.go b/compiler/semantic/analyzer.go index 43a51250bb..429551740f 100644 --- a/compiler/semantic/analyzer.go +++ b/compiler/semantic/analyzer.go @@ -68,17 +68,18 @@ func fuseInput(seq dag.Seq) dag.Seq { // to dataflow. type translator struct { reporter - ctx context.Context - resolver *resolver - checker *checker - opCnt map[*ast.OpDecl]int - opStack []string - cteStack []*ast.SQLCTE - env *exec.Environment - scope *Scope - sctx *super.Context - types *sup.Analyzer - defs *super.Context + ctx context.Context + resolver *resolver + checker *checker + opCnt map[*ast.OpDecl]int + opStack []string + cteStack []*ast.SQLCTE + env *exec.Environment + scope *Scope + sctx *super.Context + types *sup.Analyzer + defs *super.Context + materializedNames map[any]string } func newTranslator(ctx context.Context, r reporter, env *exec.Environment) *translator { @@ -95,8 +96,9 @@ func newTranslator(ctx context.Context, r reporter, env *exec.Environment) *tran // types referred to by TypeRefs in the resulting sem tree. This provides the // means to create dag.TypeRef references these types and serialize the defs tyepdefs // table into the DAG header. - types: sup.NewAnalyzer(defs), - defs: defs, + types: sup.NewAnalyzer(defs), + defs: defs, + materializedNames: make(map[any]string), } t.checker = newChecker(t) t.resolver = newResolver(t) @@ -108,7 +110,7 @@ func HasSource(seq sem.Seq) bool { return false } switch op := seq[0].(type) { - case *sem.FileScan, *sem.HTTPScan, *sem.TableScan, *sem.DBMetaScan, *sem.TableMetaScan, *sem.CommitMetaScan, *sem.DeleteScan, *sem.NullScan: + case *sem.FileScan, *sem.HTTPScan, *sem.TableScan, *sem.DBMetaScan, *sem.TableMetaScan, *sem.CommitMetaScan, *sem.DeleteScan, *sem.NullScan, *sem.MaterializedRefOp: return true case *sem.ForkOp: for _, path := range op.Paths { diff --git a/compiler/semantic/checker.go b/compiler/semantic/checker.go index c8c089b3b3..1437402249 100644 --- a/compiler/semantic/checker.go +++ b/compiler/semantic/checker.go @@ -125,6 +125,8 @@ func (c *checker) op(typ super.Type, op sem.Op) super.Type { return typ case *sem.LoadOp: return c.unknown + case *sem.MaterializedRefOp: + return c.seq(super.TypeNull, op.Body) case *sem.MergeOp: c.sortExprs(typ, op.Exprs) return typ diff --git a/compiler/semantic/compare.go b/compiler/semantic/compare.go index add8cdde91..def6cde15b 100644 --- a/compiler/semantic/compare.go +++ b/compiler/semantic/compare.go @@ -101,6 +101,9 @@ func eqOp(aop, bop sem.Op) bool { case *sem.LoadOp: b, ok := bop.(*sem.LoadOp) return ok && a.Table == b.Table && a.Branch == b.Branch && a.Author == b.Author && a.Message == b.Message && a.Meta == b.Meta + case *sem.MaterializedRefOp: + b, ok := bop.(*sem.MaterializedRefOp) + return ok && a.Name == b.Name && eqSeq(a.Body, b.Body) case *sem.MergeOp: b, ok := bop.(*sem.MergeOp) return ok && eqSortExprs(a.Exprs, b.Exprs) @@ -281,7 +284,7 @@ func eqExpr(aexpr, bexpr sem.Expr) bool { return ok && eqExpr(a.Expr, b.Expr) && eqExpr(a.From, b.From) && eqExpr(a.To, b.To) case *sem.SubqueryExpr: b, ok := bexpr.(*sem.SubqueryExpr) - return ok && a.Correlated == b.Correlated && a.Array == b.Array && a.SQL == b.SQL && eqSeq(a.Body, b.Body) + return ok && a.Materialized == b.Materialized && a.Array == b.Array && a.SQL == b.SQL && eqSeq(a.Body, b.Body) case *sem.ThisExpr: b, ok := bexpr.(*sem.ThisExpr) if !ok || len(a.Chain) != len(b.Chain) { diff --git a/compiler/semantic/dagen.go b/compiler/semantic/dagen.go index ff561d8eeb..926b98a7c8 100644 --- a/compiler/semantic/dagen.go +++ b/compiler/semantic/dagen.go @@ -2,6 +2,7 @@ package semantic import ( "errors" + "maps" "slices" "strings" @@ -14,15 +15,17 @@ import ( type dagen struct { reporter - funcs map[string]*dag.FuncDef - outputs map[*dag.OutputOp]ast.Node + funcs map[string]*dag.FuncDef + materialized map[string]*dag.MaterializedDef + outputs map[*dag.OutputOp]ast.Node } func newDagen(r reporter) *dagen { return &dagen{ - reporter: r, - funcs: make(map[string]*dag.FuncDef), - outputs: make(map[*dag.OutputOp]ast.Node), + reporter: r, + funcs: make(map[string]*dag.FuncDef), + materialized: make(map[string]*dag.MaterializedDef), + outputs: make(map[*dag.OutputOp]ast.Node), } } @@ -37,7 +40,10 @@ func (d *dagen) assemble(seq sem.Seq, types []byte, funcs map[string]*funcDef) * slices.SortFunc(dagFuncs, func(a, b *dag.FuncDef) int { return strings.Compare(a.Tag, b.Tag) }) - return &dag.Main{Types: types, Funcs: dagFuncs, Body: dagSeq} + dagMaterialized := slices.SortedFunc(maps.Values(d.materialized), func(a, b *dag.MaterializedDef) int { + return strings.Compare(a.Name, b.Name) + }) + return &dag.Main{Types: types, Funcs: dagFuncs, Materialized: dagMaterialized, Body: dagSeq} } func (d *dagen) assembleExpr(e sem.Expr, types []byte, funcs map[string]*funcDef) *dag.MainExpr { @@ -46,7 +52,8 @@ func (d *dagen) assembleExpr(e sem.Expr, types []byte, funcs map[string]*funcDef for _, f := range funcs { dagFuncs = append(dagFuncs, d.fn(f)) } - return &dag.MainExpr{Types: types, Funcs: dagFuncs, Expr: dagExpr} + dagMaterialized := slices.Collect(maps.Values(d.materialized)) + return &dag.MainExpr{Types: types, Funcs: dagFuncs, Materialized: dagMaterialized, Expr: dagExpr} } func (d *dagen) seq(seq sem.Seq) dag.Seq { @@ -224,6 +231,18 @@ func (d *dagen) op(op sem.Op) dag.Op { Message: op.Message, Meta: op.Meta, } + case *sem.MaterializedRefOp: + if _, ok := d.materialized[op.Name]; !ok { + d.materialized[op.Name] = &dag.MaterializedDef{ + Kind: "MaterializedDef", + Name: op.Name, + Body: d.checkOutputs(false, d.seq(op.Body)), + } + } + return &dag.MaterializedRefOp{ + Kind: "MaterializedRefOp", + Name: op.Name, + } case *sem.MergeOp: if len(op.Exprs) == 0 { return &dag.CombineOp{Kind: "CombineOp"} @@ -311,9 +330,8 @@ func (d *dagen) unnest(op *sem.UnnestOp) dag.Op { body.Prepend(u) body = collectThis(body) s := &dag.SubqueryExpr{ - Kind: "SubqueryExpr", - Correlated: true, - Body: body, + Kind: "SubqueryExpr", + Body: body, } return &dag.UnnestOp{Kind: "UnnestOp", Expr: s} } @@ -588,10 +606,10 @@ func (d *dagen) entries(entries []sem.Entry) []dag.Entry { func (d *dagen) subquery(e *sem.SubqueryExpr) *dag.SubqueryExpr { subquery := &dag.SubqueryExpr{ - Kind: "SubqueryExpr", - Correlated: e.Correlated, - SQL: e.SQL, - Body: d.seq(e.Body), + Kind: "SubqueryExpr", + Materialized: e.Materialized, + SQL: e.SQL, + Body: d.seq(e.Body), } if e.Array { subquery.Body = collectThis(subquery.Body) diff --git a/compiler/semantic/evaluator.go b/compiler/semantic/evaluator.go index 1906b7bafb..f780ec6b2f 100644 --- a/compiler/semantic/evaluator.go +++ b/compiler/semantic/evaluator.go @@ -139,6 +139,8 @@ func (e *evaluator) op(op sem.Op) bool { return e.expr(op.Cond) && e.constThis case *sem.LoadOp: return true + case *sem.MaterializedRefOp: + return false case *sem.MergeOp: // Like join, if any of the parent legs is non-const, the constThis if false here return e.sortExprs(op.Exprs) && e.constThis diff --git a/compiler/semantic/expr.go b/compiler/semantic/expr.go index 2822311fb9..de43f23596 100644 --- a/compiler/semantic/expr.go +++ b/compiler/semantic/expr.go @@ -205,7 +205,16 @@ func (t *translator) expr(e ast.Expr, inType super.Type) (sem.Expr, super.Type) Value: sup.FormatValue(val), }, val.Type() case *ast.SubqueryExpr: - return t.subqueryExpr(e, e.Array, e.Body, inType) + if e.Materialized { + inType = super.TypeNull + } + seq, seqType := t.seq(e.Body, inType) + if t.scope.sql != nil && !e.Array { + // SQL expects a record with a single column result so unravel this + // condition with this complex cleanup. + seq, seqType = t.scalarSubqueryCheck(e, seq, seqType) + } + return t.subqueryExpr(e, e.Array, e.Materialized, seq, seqType) case *ast.RecordExpr: fields := map[string]struct{}{} var out []sem.RecordElem @@ -526,7 +535,8 @@ func (t *translator) doubleQuoteExpr(d *ast.DoubleQuoteExpr, inType super.Type) } func (t *translator) existsExpr(e *ast.ExistsExpr, inType super.Type) (sem.Expr, super.Type) { - q, _ := t.subqueryExpr(e, true, e.Body, inType) + body, bodyType := t.seq(e.Body, inType) + q, _ := t.subqueryExpr(e, true, false, body, bodyType) return sem.NewBinaryExpr(e, ">", sem.NewCall(e, "len", []sem.Expr{q}), sem.NewLiteral(e, super.NewInt64(0), t.defs)), super.TypeBool @@ -734,14 +744,8 @@ func (t *translator) semCall(call *ast.CallExpr, inType super.Type) (sem.Expr, s } func (t *translator) maybeSubquery(n ast.Node, name string, inType super.Type) (*sem.SubqueryExpr, super.Type) { - if seq, typ := t.scope.lookupQuery(t, name); seq != nil { - e := &sem.SubqueryExpr{ - Node: n, - Correlated: isCorrelated(seq), - SQL: t.scope.sql != nil, - Body: seq, - } - return e, t.checker.subquery(e, typ) + if decl := t.scope.lookupQuery(t, name); decl != nil { + return t.subqueryExpr(n, false, decl.decl.Materialized, decl.body, decl.typ) } return nil, nil } @@ -885,19 +889,8 @@ func (t *translator) maybeSubqueryCall(call *ast.CallExpr, name string, inType s return nil, nil } userOp, typ := t.userOp(call.Loc, decl, call.Args, inType) - // When a user op is encountered inside an expression, we turn it into a - // subquery operating on a single-shot "this" value unless it's uncorrelated - // (i.e., starts with a from), in which case we put the uncorrelated body - // in the subquery without the correlating values logic. This is controlled - // via the Correlated flag. - e := &sem.SubqueryExpr{ - Node: call, - Array: false, - Correlated: isCorrelated(userOp), - SQL: t.scope.sql != nil, - Body: userOp, - } - return e, t.checker.subquery(e, typ) + // When a user op is encountered inside an expression, we turn it into a subquery. + return t.subqueryExpr(call, false, false, userOp, typ) } func (t *translator) semMapCall(call *ast.CallExpr, args []sem.Expr, argTypes []super.Type) (sem.Expr, super.Type) { @@ -1342,28 +1335,19 @@ func (t *translator) arraySubquery(elems []sem.ArrayElem) *sem.SubqueryExpr { return nil } -func (t *translator) subqueryExpr(astExpr ast.Expr, array bool, body ast.Seq, inType super.Type) (*sem.SubqueryExpr, super.Type) { - // We pass inType in whether or not it's correlated since an uncorrelated - // subquery will just ignore it. - seq, outType := t.seq(body, inType) - correlated := isCorrelated(seq) +func (t *translator) subqueryExpr(n ast.Node, array, materialized bool, body sem.Seq, bodyType super.Type) (*sem.SubqueryExpr, super.Type) { + materialized = materialized || !isCorrelated(body) + if materialized && !HasSource(body) { + body.Prepend(&sem.NullScan{}) + } e := &sem.SubqueryExpr{ - Node: astExpr, - Array: array, - Correlated: correlated, - SQL: t.scope.sql != nil, - Body: seq, - } - // Add a nullscan only for uncorrelated queries that don't have a source. - if !correlated && !HasSource(e.Body) { - e.Body.Prepend(&sem.NullScan{}) - } - if !array && t.scope.sql != nil { - // SQL expects a record with a single column result so unravel this - // condition with this complex cleanup... - e.Body, outType = t.scalarSubqueryCheck(astExpr, e.Body, outType) - } - return e, t.checker.subquery(e, outType) + Node: n, + Array: array, + Materialized: materialized, + SQL: t.scope.sql != nil, + Body: body, + } + return e, t.checker.subquery(e, bodyType) } func (t *translator) scalarSubqueryCheck(n ast.Node, seq sem.Seq, thisType super.Type) (sem.Seq, super.Type) { @@ -1421,6 +1405,7 @@ func isCorrelated(seq sem.Seq) bool { *sem.DeleteScan, *sem.FileScan, *sem.HTTPScan, + *sem.MaterializedRefOp, *sem.NullScan, *sem.TableMetaScan, *sem.TableScan: diff --git a/compiler/semantic/fmt.go b/compiler/semantic/fmt.go index 1667f4167b..a6869ba900 100644 --- a/compiler/semantic/fmt.go +++ b/compiler/semantic/fmt.go @@ -81,6 +81,9 @@ func clrOp(op sem.Op) { clrExpr(op.Cond) case *sem.LoadOp: op.Node = nil + case *sem.MaterializedRefOp: + op.Node = nil + clrSeq(op.Body) case *sem.MergeOp: op.Node = nil clrSortExprs(op.Exprs) diff --git a/compiler/semantic/nonempty.go b/compiler/semantic/nonempty.go index 3fcc79872b..edab9c496d 100644 --- a/compiler/semantic/nonempty.go +++ b/compiler/semantic/nonempty.go @@ -11,8 +11,8 @@ import ( // value of a pipe subquery is none. It's conservative: a body that's not // known to produce a value may be empty. func mayBeEmpty(e *sem.SubqueryExpr) bool { - // A correlated subquery runs on the value of its outer expression. - nonEmpty := e.Correlated + // An unmaterialized subquery runs on the value of its outer expression. + nonEmpty := !e.Materialized for _, op := range e.Body { nonEmpty = producesValue(op, nonEmpty) } diff --git a/compiler/semantic/op.go b/compiler/semantic/op.go index 0d153a0b62..d03641b9fb 100644 --- a/compiler/semantic/op.go +++ b/compiler/semantic/op.go @@ -3,6 +3,7 @@ package semantic import ( "errors" "fmt" + "maps" "net/url" "path/filepath" "reflect" @@ -100,8 +101,8 @@ func (t *translator) fromSource(entity ast.FromSource, args []ast.OpArg, seq sem seq := t.fromTableRegexp(entity, entity.Pattern, entity.Pattern, "regexp", args) return seq, t.scanType(seq), "" case *ast.Text: - if seq, typ := t.scope.lookupQuery(t, entity.Text); seq != nil { - return seq, typ, entity.Text + if decl := t.scope.lookupQuery(t, entity.Text); decl != nil { + return decl.body, decl.typ, entity.Text } if len(seq) > 0 && isURL(entity.Text) { // A URL with a parent is fetched for each input value so @@ -218,7 +219,11 @@ func (t *translator) fromCTE(node ast.Node, c *ast.SQLCTE) (sem.Seq, relTable) { t.cteStack = t.cteStack[:len(t.cteStack)-1] }() seq, scope := t.sqlQueryBody(c.Body, nil, nil, nil) - return scope.endScope(node, seq) + seq, table := scope.endScope(node, seq) + if c.Materialized { + seq = t.fromMaterialized(node, c, c.Name.Name, seq) + } + return seq, table } func (t *translator) fromFString(entity *ast.FromEval, args []ast.OpArg, seq sem.Seq) (sem.Seq, string) { @@ -1481,23 +1486,49 @@ type queryDecl struct { pending bool } -func (q *queryDecl) resolve(t *translator) (sem.Seq, super.Type) { - if q.body == nil { - if !q.pending { - save := t.scope - q.pending = true - t.scope = NewScope(q.scope) - defer func() { - q.pending = false - t.scope = save - }() - q.body, q.typ = t.seq(q.decl.Body, super.TypeNull) - } else { - t.error(q.decl.Name, fmt.Errorf("named query %q involved in cyclic dependency", q.decl.Name.Name)) - q.body = sem.Seq{badOp} +func (q *queryDecl) resolve(t *translator) { + if q.body != nil { + return + } + if !q.pending { + save := t.scope + q.pending = true + t.scope = NewScope(q.scope) + defer func() { + q.pending = false + t.scope = save + }() + q.body, q.typ = t.seq(q.decl.Body, super.TypeNull) + if q.decl.Materialized { + q.body = t.fromMaterialized(q.decl, q, q.decl.Name.Name, q.body) } + } else { + t.error(q.decl.Name, fmt.Errorf("named query %q involved in cyclic dependency", q.decl.Name.Name)) + q.body = sem.Seq{badOp} + } +} + +func (t *translator) fromMaterialized(node ast.Node, key any, name string, seq sem.Seq) sem.Seq { + if !HasSource(seq) { + seq.Prepend(&sem.NullScan{}) + } + name = t.materializedName(key, name) + return sem.Seq{&sem.MaterializedRefOp{Node: node, Name: name, Body: seq}} +} + +// materializedName returns a name for the materialized query identified by key +// that is distinct from the names of all other materialized queries. +func (t *translator) materializedName(key any, base string) string { + if name, ok := t.materializedNames[key]; ok { + return name + } + names := slices.Collect(maps.Values(t.materializedNames)) + name := base + for i := 1; slices.Contains(names, name); i++ { + name = fmt.Sprintf("%s#%d", base, i) } - return q.body, q.typ + t.materializedNames[key] = name + return name } func (t *translator) queryDecl(q *ast.QueryDecl) { @@ -1715,8 +1746,8 @@ func (t *translator) exprOp(e ast.Expr, seq sem.Seq, inType super.Type) (sem.Seq op, typ := t.userOp(id.Loc, decl, nil, inType) return append(seq, op...), typ } - if querySeq, typ := t.scope.lookupQuery(t, id.Name); querySeq != nil { - return append(seq, querySeq...), typ + if decl := t.scope.lookupQuery(t, id.Name); decl != nil { + return append(seq, decl.body...), decl.typ } } out, typ := t.expr(e, inType) diff --git a/compiler/semantic/scope.go b/compiler/semantic/scope.go index ef6a2ca951..772c57a4db 100644 --- a/compiler/semantic/scope.go +++ b/compiler/semantic/scope.go @@ -51,13 +51,14 @@ func (s *Scope) lookupOp(name string) (*opDecl, error) { return nil, nil } -func (s *Scope) lookupQuery(t *translator, name string) (sem.Seq, super.Type) { +func (s *Scope) lookupQuery(t *translator, name string) *queryDecl { if entry := s.lookupEntry(name); entry != nil { if decl, ok := entry.ref.(*queryDecl); ok { - return decl.resolve(t) + decl.resolve(t) + return decl } } - return nil, nil + return nil } func (s *Scope) lookupEntry(name string) *entry { diff --git a/compiler/semantic/sem/expr.go b/compiler/semantic/sem/expr.go index ce66492f05..fefc8b690c 100644 --- a/compiler/semantic/sem/expr.go +++ b/compiler/semantic/sem/expr.go @@ -131,8 +131,8 @@ type ( } SubqueryExpr struct { ast.Node - Correlated bool - Array bool + Array bool + Materialized bool // SQL is true for a subquery in a SQL expression (see // dag.SubqueryExpr). SQL bool @@ -462,11 +462,11 @@ func CopyExpr(e Expr) Expr { } case *SubqueryExpr: return &SubqueryExpr{ - Node: e.Node, - Correlated: e.Correlated, - Array: e.Array, - SQL: e.SQL, - Body: CopySeq(e.Body), + Node: e.Node, + Array: e.Array, + Materialized: e.Materialized, + SQL: e.SQL, + Body: CopySeq(e.Body), } case *ThisExpr: return &ThisExpr{ diff --git a/compiler/semantic/sem/op.go b/compiler/semantic/sem/op.go index 730eb88cb2..91ebf91abc 100644 --- a/compiler/semantic/sem/op.go +++ b/compiler/semantic/sem/op.go @@ -167,6 +167,11 @@ type ( Message string Meta string } + MaterializedRefOp struct { + ast.Node + Name string + Body Seq + } MergeOp struct { ast.Node Exprs []SortExpr @@ -249,33 +254,34 @@ type ( } ) -func (*AggregateOp) opNode() {} -func (*BadOp) opNode() {} -func (*CountOp) opNode() {} -func (*CutOp) opNode() {} -func (*DebugOp) opNode() {} -func (*DistinctOp) opNode() {} -func (*DropOp) opNode() {} -func (*FilterOp) opNode() {} -func (*ForkOp) opNode() {} -func (*FuseOp) opNode() {} -func (*HeadOp) opNode() {} -func (*InferOp) opNode() {} -func (*JoinOp) opNode() {} -func (*LoadOp) opNode() {} -func (*MergeOp) opNode() {} -func (*OutputOp) opNode() {} -func (*PassOp) opNode() {} -func (*PutOp) opNode() {} -func (*RenameOp) opNode() {} -func (*SkipOp) opNode() {} -func (*SortOp) opNode() {} -func (*SwitchOp) opNode() {} -func (*TailOp) opNode() {} -func (*TopOp) opNode() {} -func (*UnnestOp) opNode() {} -func (*UniqOp) opNode() {} -func (*ValuesOp) opNode() {} +func (*AggregateOp) opNode() {} +func (*BadOp) opNode() {} +func (*CountOp) opNode() {} +func (*CutOp) opNode() {} +func (*DebugOp) opNode() {} +func (*DistinctOp) opNode() {} +func (*DropOp) opNode() {} +func (*FilterOp) opNode() {} +func (*ForkOp) opNode() {} +func (*FuseOp) opNode() {} +func (*HeadOp) opNode() {} +func (*InferOp) opNode() {} +func (*JoinOp) opNode() {} +func (*LoadOp) opNode() {} +func (*MaterializedRefOp) opNode() {} +func (*MergeOp) opNode() {} +func (*OutputOp) opNode() {} +func (*PassOp) opNode() {} +func (*PutOp) opNode() {} +func (*RenameOp) opNode() {} +func (*SkipOp) opNode() {} +func (*SortOp) opNode() {} +func (*SwitchOp) opNode() {} +func (*TailOp) opNode() {} +func (*TopOp) opNode() {} +func (*UnnestOp) opNode() {} +func (*UniqOp) opNode() {} +func (*ValuesOp) opNode() {} func NewValues(n ast.Node, expr ...Expr) *ValuesOp { return &ValuesOp{Node: n, Exprs: expr} @@ -434,6 +440,12 @@ func CopyOp(op Op) Op { Message: op.Message, Meta: op.Meta, } + case *MaterializedRefOp: + return &MaterializedRefOp{ + Node: op.Node, + Name: op.Name, + Body: CopySeq(op.Body), + } case *MergeOp: return &MergeOp{ Node: op.Node, diff --git a/compiler/semantic/sql.go b/compiler/semantic/sql.go index 9d518e2a8a..2c6a2b72af 100644 --- a/compiler/semantic/sql.go +++ b/compiler/semantic/sql.go @@ -542,13 +542,14 @@ func (t *translator) sqlWith(with *ast.SQLWith) map[string]*ast.SQLCTE { } old := t.scope.ctes t.scope.ctes = maps.Clone(t.scope.ctes) - for k, c := range with.CTEs { - // XXX Materialized option not currently supported. + for _, c := range with.CTEs { name := strings.ToLower(c.Name.Name) if _, ok := t.scope.ctes[name]; ok { t.error(c.Name, errors.New("duplicate WITH clause name")) } - t.scope.ctes[name] = &with.CTEs[k] + // Each translation gets its own copy so that a materialized CTE isn't + // shared between translations (e.g., user op calls) with different bodies. + t.scope.ctes[name] = &c } return old } diff --git a/compiler/semantic/ztests/subquery-correlated.yaml b/compiler/semantic/ztests/subquery-correlated.yaml index dced5a2f33..0c1d68c56d 100644 --- a/compiler/semantic/ztests/subquery-correlated.yaml +++ b/compiler/semantic/ztests/subquery-correlated.yaml @@ -32,43 +32,42 @@ outputs: data: | === dag.FileScan null - | values ( + | values materialized ( file /dev/null) | output main === dag.HTTPScan null - | values ( + | values materialized ( get http://host format auto) | output main === dag.RobotScan null | values ( - -- correlated robot cast(this, )) | output main === dag.CommitMetaScan null - | values ( + | values materialized ( table xxx@00000000-0000-0000-0000-000000000000:objects) | output main === dag.DBMetaScan null - | values ( + | values materialized ( :tables) | output main === dag.TableMetaScan null - | values ( + | values materialized ( table xxx:branches) | output main === dag.TableScan null - | values ( + | values materialized ( table xxx) | output main === dag.ForkOp null - | values ( + | values materialized ( fork ( file /dev/null @@ -79,7 +78,6 @@ outputs: | output main null | values ( - -- correlated fork ( file /dev/null @@ -90,7 +88,6 @@ outputs: | output main null | values ( - -- correlated fork ( head 1 @@ -101,7 +98,6 @@ outputs: | output main null | values ( - -- correlated fork ( head 1 @@ -113,7 +109,6 @@ outputs: === dag.SwitchOp null | values ( - -- correlated switch case true ( file /dev/null diff --git a/compiler/sfmt/ast.go b/compiler/sfmt/ast.go index 58d8848288..8350b592b0 100644 --- a/compiler/sfmt/ast.go +++ b/compiler/sfmt/ast.go @@ -274,6 +274,9 @@ func (c *canon) expr(e ast.Expr, parent string) { if e.Array { open, close = "[", "]" } + if e.Materialized { + c.write("materialized ") + } c.open(open) c.head = true c.seq(e.Body) @@ -467,31 +470,20 @@ func (c *canon) decl(d ast.Decl) { } c.write(f.Name) } - c.open(": (") - c.ret() - c.flush() - c.head = true - c.seq(d.Body) - c.close() - c.ret() - c.flush() - c.write(")") - c.head, c.first = true, true + c.write(": ") + c.declBody(d.Body) + case *ast.QueryDecl: + c.write("let %s = ", sup.QuotedName(d.Name.Name)) + if d.Materialized { + c.write("materialized ") + } + c.declBody(d.Body) case *ast.TypeDecl: c.write("type %s = ", sup.QuotedName(d.Name.Name)) c.typ(d.Type) case *ast.TypeQueryDecl: - c.write("type %s ", sup.QuotedName(d.Name.Name)) - c.open("= (") - c.ret() - c.flush() - c.head = true - c.seq(d.Body) - c.close() - c.ret() - c.flush() - c.write(")") - c.head, c.first = true, true + c.write("type %s = ", sup.QuotedName(d.Name.Name)) + c.declBody(d.Body) default: c.open("unknown decl: %T", d) c.close() @@ -499,6 +491,19 @@ func (c *canon) decl(d ast.Decl) { } +func (c *canon) declBody(body ast.Seq) { + c.open("(") + c.ret() + c.flush() + c.head = true + c.seq(body) + c.close() + c.ret() + c.flush() + c.write(")") + c.head, c.first = true, true +} + func (c *canon) seq(seq ast.Seq) { for _, p := range seq { c.op(p) diff --git a/compiler/sfmt/dag.go b/compiler/sfmt/dag.go index 919221d8cd..a8eb06ddec 100644 --- a/compiler/sfmt/dag.go +++ b/compiler/sfmt/dag.go @@ -205,12 +205,10 @@ func (c *canonDAG) expr(e dag.Expr, parent string) { } c.write("]") case *dag.SubqueryExpr: - c.open("(") - if e.Correlated { - c.head = true - c.next() - c.write("-- correlated") + if e.Materialized { + c.write("materialized ") } + c.open("(") c.head = true c.seq(e.Body) c.close() @@ -406,6 +404,9 @@ func (c *canonDAG) op(o dag.Op) { c.write(")") } c.close() + case *dag.MaterializedRefOp: + c.next() + c.write("materialized %s", sup.QuotedName(o.Name)) case *dag.NullScan: c.next() c.write("null") @@ -728,6 +729,20 @@ func (c *canonDAG) main(main *dag.Main) { c.ret() c.flush() } + for _, m := range main.Materialized { + c.open("let %s = materialized (", sup.QuotedName(m.Name)) + c.ret() + c.flush() + c.head = true + c.seq(m.Body) + c.close() + c.ret() + c.flush() + c.write(")") + c.ret() + c.flush() + c.head, c.first = true, true + } c.head = true c.seq(main.Body) } diff --git a/compiler/sfmt/ztests/decls.yaml b/compiler/sfmt/ztests/decls.yaml index b2ca30c162..44cc6b5438 100644 --- a/compiler/sfmt/ztests/decls.yaml +++ b/compiler/sfmt/ztests/decls.yaml @@ -19,9 +19,11 @@ inputs: ) on left.left_key = right.right_key | values {...left,left_dest:right.right_source} ) + let q1 = ( values 1 ) + let q2 = materialized ( values 2 ) joinTest "fruit.json", "people.json", flavor, likes, eater, name | stamp "bob" - | values fib(1), add(2,3) + | values fib(1), add(2,3), q1, q2 outputs: - name: stdout @@ -47,9 +49,15 @@ outputs: ) on left.left_key=right.right_key | values {...left,left_dest:right.right_source} ) + let q1 = ( + values 1 + ) + let q2 = materialized ( + values 2 + ) call joinTest "fruit.json", "people.json", flavor, likes, eater, name | call stamp "bob" - | values fib(1), add(2, 3) + | values fib(1), add(2, 3), q1, q2 === fn 0/fib(n): ( (n<=1) ? n : 0(n-1)+0(n-2) @@ -57,6 +65,10 @@ outputs: fn 1/add(a, b): ( a+b ) + let q2 = materialized ( + null + | values 2 + ) fork ( file fruit.json format json @@ -67,5 +79,7 @@ outputs: | inner join as {left,right} on left.left_key==right.right_key | values {...left,left_dest:right.right_source} | values {...this,assignee:"bob",ts:now()} - | values 0(1), 1(2, 3) + | values 0(1), 1(2, 3), ( + values 1), materialized ( + materialized q2) | output main diff --git a/compiler/sfmt/ztests/unnest.yaml b/compiler/sfmt/ztests/unnest.yaml index a5b57217c1..75f87573c5 100644 --- a/compiler/sfmt/ztests/unnest.yaml +++ b/compiler/sfmt/ztests/unnest.yaml @@ -26,12 +26,10 @@ outputs: === null | values ( - -- correlated unnest [this] | where search("b")) | unnest [this] | unnest ( - -- correlated unnest [this] | where search("b") | aggregate diff --git a/compiler/ztests/let.yaml b/compiler/ztests/let.yaml new file mode 100644 index 0000000000..bc8f542bf2 --- /dev/null +++ b/compiler/ztests/let.yaml @@ -0,0 +1,139 @@ +spq: | + let q = (values 1) + values q,q + +output: | + 1 + 1 + +--- + +spq: | + let q = (values 1) + values 1,2 + | values q + +output: | + 1 + 1 + +--- + +spq: | + let q = materialized (values now()) + values q,q,q,q,q + | count(distinct this) + +output: | + 1 + +--- + +spq: | + let q = materialized ( + let q = materialized (values now()) + values [q,now()] + ) + values q,q,q,q,q + | count(distinct this) + +output: | + 1 + +--- + +spq: | + let t = materialized (values now()) + values 1,2,3 + | values materialized (from t) + | count(distinct this) + +output: | + 1 + +--- + +spq: | + values 1,2,3 + | values materialized (values now()) + | count(distinct this) + +output: | + 1 + +--- + +spq: | + let t = materialized (values now()) + values 1,2,3 + | values [materialized (from t)] + | count(distinct this) + +output: | + 1 + +--- + +spq: | + let t = materialized (values 1,2) + const c = [t] + values c + +output: | + [1,2] + +--- + +spq: | + let t = materialized (values ) + type T = (values t) + values 1::T + | typeof(this) + +output: | + type T=int64 + + +--- + +spq: | + let t = materialized (values 1 | values x) + values t + +error: | + no such field "x": . applied to int64 at line 1, column 41: + let t = materialized (values 1 | values x) + ~ + +--- + +spq: | + let t = materialized (values 1) + from t | values x + +error: | + no such field "x": . applied to int64 at line 2, column 17: + from t | values x + ~ + +--- + +spq: | + let t = materialized (values 1 | output foo) + from t + +error: | + output operator must be a flowgraph leaf at line 1, column 34: + let t = materialized (values 1 | output foo) + ~~~~~~~~~~ + +--- + +spq: | + values {a:1},{a:2} + | values materialized (values a) + +error: | + no such field "a": . applied to null at line 2, column 31: + | values materialized (values a) + ~ diff --git a/compiler/ztests/merge-filters.yaml b/compiler/ztests/merge-filters.yaml index d987cc41e0..b87a42a893 100644 --- a/compiler/ztests/merge-filters.yaml +++ b/compiler/ztests/merge-filters.yaml @@ -36,7 +36,6 @@ outputs: === file /dev/null project [a] | unnest ( - -- correlated unnest [a] | where b and c | aggregate diff --git a/compiler/ztests/pruner.yaml b/compiler/ztests/pruner.yaml index b5c6140a39..ae4873c391 100644 --- a/compiler/ztests/pruner.yaml +++ b/compiler/ztests/pruner.yaml @@ -21,7 +21,7 @@ outputs: | output main === Test pruner optimization works with in subquery expressions null - | values {x:( + | values {x:materialized ( file test.parquet format parquet type {v:int64} meta-filter project [v.max,v.min] ( compare(v.max, 1, true)>=0 and compare(v.min, 1, true)<=0 diff --git a/compiler/ztests/sql/cte.yaml b/compiler/ztests/sql/cte.yaml index edf10ec7e5..71f3e6fcd8 100644 --- a/compiler/ztests/sql/cte.yaml +++ b/compiler/ztests/sql/cte.yaml @@ -59,3 +59,31 @@ outputs: duplicate WITH clause name at line 1, column 30: with x as ( select 1 as y ), x as ( select 2 as y ) select * from x ~ +--- + +spq: | + with t as materialized (select now() as x) + select x from t + union all + select x from t + union all + select x from t + union all + select x from t + union all + select x from t + | count(distinct this) + +output: | + 1 + +--- + +spq: | + op o x: (with t as materialized (select x) select x from t) + fork (o 1) (o 2) + | sort x + +output: | + {x:1} + {x:2} diff --git a/compiler/ztests/sql/subqueries.yaml b/compiler/ztests/sql/subqueries.yaml index 31c006f352..0dc70087cb 100644 --- a/compiler/ztests/sql/subqueries.yaml +++ b/compiler/ztests/sql/subqueries.yaml @@ -30,3 +30,40 @@ outputs: {x:[{y:2}]} === {e:error("foo")} + +--- + +spq: | + let q = (values 1) + select q+1 as x + +output: | + {x:2} + +--- + +spq: | + let q = (values {a:1}) + select q as x + +output: | + {x:{a:1}} + +--- + +spq: | + let q = (values 1,2) + select [q] as x + +output: | + {x:[1,2]} + +--- + +spq: | + op o: (values 5) + select o() as x + +output: | + {x:5} + diff --git a/compiler/ztests/values-subquery.yaml b/compiler/ztests/values-subquery.yaml new file mode 100644 index 0000000000..6739ba94fa --- /dev/null +++ b/compiler/ztests/values-subquery.yaml @@ -0,0 +1,48 @@ +spq: | + values 1,2 + | values (values this) + +output: | + 1 + 2 + +--- + +spq: | + values 1,2 + | values materialized (values this) + +output: | + null + null + +--- + +spq: | + op o: (values 1) + values 1,2 + | values o() + +output: | + 1 + 1 + +--- + +spq: | + values [1,2] + | values (values map([1,2], lambda x:x+1)) + +output: | + [2,3] + +--- + +spq: | + let q = (values 5) + values 1,2 + | values q + +output: | + 5 + 5 diff --git a/runtime/op/cachedsubquery.go b/runtime/op/cachedsubquery.go index f47ce59ece..0d5e964992 100644 --- a/runtime/op/cachedsubquery.go +++ b/runtime/op/cachedsubquery.go @@ -4,7 +4,6 @@ import ( "github.com/superdb/super" "github.com/superdb/super/runtime/expr" "github.com/superdb/super/vector" - "github.com/superdb/super/vector/vbuild" "github.com/superdb/super/vector/vio" ) @@ -24,55 +23,8 @@ func NewCachedSubquery(sctx *super.Context, body vio.Puller, sql bool) expr.Eval func (c *cachedSubquery) Eval(this vector.Any) vector.Any { if c.cached == nil { - c.cached = c.exec() + c.cached = subqueryBodyPull(c.sctx, c.body, c.sql) } index := make([]uint32, this.Len()) return vector.Pick(c.cached, index) } - -// exec executes c.body and returns a vector of length 1. -func (c *cachedSubquery) exec() vector.Any { - var vecs []vector.Any - for { - vec, err := c.body.Pull(false) - if err != nil { - return vector.NewStringError(c.sctx, err.Error(), 1) - } - if vec == nil { - break - } - vecs = append(vecs, vec) - } - if len(vecs) == 0 { - return emptyResult(c.sql) - } - if len(vecs) == 1 && vecs[0].Len() == 1 { - return vecs[0] - } - return c.newArray(c.vectorConcat(vecs)) -} - -// newArray returns a vector whose single element is an array of elems. -func (c *cachedSubquery) newArray(elems vector.Any) vector.Any { - if d, ok := elems.(*vector.Dynamic); ok { - elems = vector.NewUnionFromDynamic(c.sctx, d) - } - arrayType := c.sctx.LookupTypeArray(elems.Type()) - offsets := []uint32{0, elems.Len()} - return vector.NewArray(arrayType, offsets, elems) -} - -// vectorConcat returns a vector concatenating vecs. -func (c *cachedSubquery) vectorConcat(vecs []vector.Any) vector.Any { - if len(vecs) == 0 { - return nil - } - if len(vecs) == 1 { - return vecs[0] - } - db := vbuild.NewDynamicBuilder() - for _, vec := range vecs { - db.Write(vec) - } - return db.Build() -} diff --git a/runtime/op/materialized.go b/runtime/op/materialized.go new file mode 100644 index 0000000000..8b0dbdfad2 --- /dev/null +++ b/runtime/op/materialized.go @@ -0,0 +1,61 @@ +package op + +import ( + "sync" + + "github.com/superdb/super/vector" + "github.com/superdb/super/vector/vio" +) + +type Materialized struct { + mu sync.Mutex + parent vio.Puller + eos bool + err error + vecs []vector.Any +} + +func NewMaterialized(parent vio.Puller) *Materialized { + return &Materialized{parent: parent} +} + +func (m *Materialized) NewPuller() vio.Puller { + return &materializedPuller{m: m} +} + +func (m *Materialized) pull(i int) (vector.Any, error) { + m.mu.Lock() + defer m.mu.Unlock() + for i >= len(m.vecs) && !m.eos && m.err == nil { + if vec, err := m.parent.Pull(false); err != nil { + m.err = err + } else if vec == nil { + m.eos = true + } else { + m.vecs = append(m.vecs, vec) + } + } + if i < len(m.vecs) { + return m.vecs[i], nil + } + return nil, m.err +} + +type materializedPuller struct { + m *Materialized + next int +} + +func (r *materializedPuller) Pull(done bool) (vector.Any, error) { + if done { + r.next = 0 + return nil, nil + } + vec, err := r.m.pull(r.next) + if vec == nil || err != nil { + r.next = 0 + return nil, err + } + r.next++ + return vec, nil +} diff --git a/runtime/op/subquery.go b/runtime/op/subquery.go index 2027bb1863..ae6e545b9f 100644 --- a/runtime/op/subquery.go +++ b/runtime/op/subquery.go @@ -75,30 +75,33 @@ func (s *Subquery) Eval(this vector.Any) vector.Any { msg := s.ctx.Err().Error() return vector.NewStringError(s.sctx, msg, this.Len()) } - db.Write(s.bodyPull()) + db.Write(subqueryBodyPull(s.sctx, s.body, s.sql)) } return db.Build() } -func (s *Subquery) bodyPull() vector.Any { - vec, err := s.body.Pull(false) +func subqueryBodyPull(sctx *super.Context, p vio.Puller, sql bool) vector.Any { + vec, err := p.Pull(false) if err != nil { - return vector.NewStringError(s.sctx, err.Error(), 1) + return vector.NewStringError(sctx, err.Error(), 1) } if vec == nil { - return emptyResult(s.sql) + if sql { + return vector.NewNull(1) + } + return vector.NewNone(1) } - vec2, err := s.body.Pull(false) + vec2, err := p.Pull(false) if err != nil { - return vector.NewStringError(s.sctx, err.Error(), 1) + return vector.NewStringError(sctx, err.Error(), 1) } if vec2 != nil { - if _, err := s.body.Pull(true); err != nil { - return vector.NewStringError(s.sctx, err.Error(), 1) + if _, err := p.Pull(true); err != nil { + return vector.NewStringError(sctx, err.Error(), 1) } } if vec2 != nil || vec.Len() > 1 { - return vector.NewStringError(s.sctx, "query expression produced multiple values (consider [subquery])", 1) + return vector.NewStringError(sctx, "query expression produced multiple values (consider [subquery])", 1) } return vec } @@ -116,12 +119,3 @@ func (s *Subquery) Pull(done bool) (vector.Any, error) { return nil, s.ctx.Err() } } - -// emptyResult returns the value of a subquery that produces no values: null -// in a SQL expression and otherwise none. -func emptyResult(sql bool) vector.Any { - if sql { - return vector.NewNull(1) - } - return vector.NewNone(1) -} diff --git a/runtime/ztests/expr/queryexpr-unnest.yaml b/runtime/ztests/expr/queryexpr-unnest.yaml index 1bdcc636e6..d527ae82b3 100644 --- a/runtime/ztests/expr/queryexpr-unnest.yaml +++ b/runtime/ztests/expr/queryexpr-unnest.yaml @@ -1,8 +1,8 @@ script: | super -dynamic -s -c 'from input.sup - | values (unnest inner:=(from foo.sup) with outer:=this | where inner.id=outer.id | values inner.name) || + | values (unnest inner:=[(from foo.sup)] with outer:=this | where inner.id=outer.id | values inner.name) || "_" || - (unnest inner:=(from bar.sup) with outer:=this | where inner.id=outer.id | values inner.name)' + (unnest inner:=[(from bar.sup)] with outer:=this | where inner.id=outer.id | values inner.name)' # enable once we allow unnest expressions in vector runtime. # vector: true diff --git a/service/ztests/query-describe.yaml b/service/ztests/query-describe.yaml index 0b3346161e..22c0121af5 100644 --- a/service/ztests/query-describe.yaml +++ b/service/ztests/query-describe.yaml @@ -2,7 +2,7 @@ script: | source service.sh super db create -q -orderby ts:desc test1 super db create -q -orderby ts:desc test2 - for file in multifrom.spq agg.spq agg-no-keys.spq two-channels.spq agg-sort.spq scope.spq auto-combined-channels.spq; do + for file in multifrom.spq agg.spq agg-no-keys.spq two-channels.spq agg-sort.spq scope.spq auto-combined-channels.spq materialized.spq; do echo // === $file === query="$(cat $file | jq -Rsa .)" curl -H "Accept: application/json" -d "{\"query\":$query,\"head\":{\"table\":\"test1\"}}" $DB_URL/query/describe | @@ -42,6 +42,10 @@ inputs: - name: auto-combined-channels.spq data: | from test1 | fork ( pass ) ( pass ) + - name: materialized.spq + data: | + let t = materialized (from test1) + from t outputs: - name: stdout @@ -228,3 +232,20 @@ outputs: } ] } + // === materialized.spq === + { + "sources": [ + { + "kind": "Table", + "name": "test1", + "id": "XXX" + } + ], + "channels": [ + { + "name": "main", + "aggregation_keys": [], + "sort": [] + } + ] + }