diff options
author | Ting-Wei Lan <tingwei.lan@cobinhood.com> | 2019-03-04 14:30:51 +0800 |
---|---|---|
committer | Jhih-Ming Huang <jm.huang@cobinhood.com> | 2019-05-06 10:44:04 +0800 |
commit | efabc336cf705aab463d81dd20e8d95df97e0965 (patch) | |
tree | 8ca0eb7e0879bf0dcb042ca8e7e8cfce121cc34d | |
parent | 3092f54b1c16b45be4fb5e52574e4b9d7a9ebcb8 (diff) | |
download | dexon-efabc336cf705aab463d81dd20e8d95df97e0965.tar.gz dexon-efabc336cf705aab463d81dd20e8d95df97e0965.tar.zst dexon-efabc336cf705aab463d81dd20e8d95df97e0965.zip |
core: vm: sqlvm: parser: move generated code to internal package
Code generated by pigeon includes many exported symbols which should not
be used by any other code other than the parser itself. To prevent them
from being misused, we used to hide them by editing the generated code
with sed. This commit removes the unreliable sed trick by putting
generated code to internal package.
-rw-r--r-- | core/vm/sqlvm/parser/grammar.sed | 4 | ||||
-rw-r--r-- | core/vm/sqlvm/parser/internal/grammar.go (renamed from core/vm/sqlvm/parser/grammar.go) | 2440 | ||||
-rw-r--r-- | core/vm/sqlvm/parser/internal/grammar.peg (renamed from core/vm/sqlvm/parser/grammar.peg) | 72 | ||||
-rw-r--r-- | core/vm/sqlvm/parser/internal/helpers.go | 317 | ||||
-rw-r--r-- | core/vm/sqlvm/parser/parser.go | 317 |
5 files changed, 1585 insertions, 1565 deletions
diff --git a/core/vm/sqlvm/parser/grammar.sed b/core/vm/sqlvm/parser/grammar.sed deleted file mode 100644 index f2b501109..000000000 --- a/core/vm/sqlvm/parser/grammar.sed +++ /dev/null @@ -1,4 +0,0 @@ -/^import (/a\ -goerrors "errors" -s|errors\.New(|goerrors.New(|g -s|\([^[:alnum:]]\)Parse\([[:upper:]]\{0,1\}[[:lower:]]*\)\([( ]\)|\1parse\2\3|g diff --git a/core/vm/sqlvm/parser/grammar.go b/core/vm/sqlvm/parser/internal/grammar.go index 36b3c06fe..c1288c991 100644 --- a/core/vm/sqlvm/parser/grammar.go +++ b/core/vm/sqlvm/parser/internal/grammar.go @@ -1,10 +1,10 @@ // Code generated by pigeon; DO NOT EDIT. -package parser +package internal import ( "bytes" - goerrors "errors" + "errors" "fmt" "io" "io/ioutil" @@ -17,72 +17,72 @@ import ( "unicode/utf8" "github.com/dexon-foundation/dexon/core/vm/sqlvm/ast" - "github.com/dexon-foundation/dexon/core/vm/sqlvm/errors" + se "github.com/dexon-foundation/dexon/core/vm/sqlvm/errors" ) var g = &grammar{ rules: []*rule{ { name: "S", - pos: position{line: 10, col: 1, offset: 145}, + pos: position{line: 10, col: 1, offset: 150}, expr: &actionExpr{ - pos: position{line: 11, col: 5, offset: 151}, + pos: position{line: 11, col: 5, offset: 156}, run: (*parser).callonS1, expr: &seqExpr{ - pos: position{line: 11, col: 5, offset: 151}, + pos: position{line: 11, col: 5, offset: 156}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 11, col: 5, offset: 151}, + pos: position{line: 11, col: 5, offset: 156}, name: "_", }, &labeledExpr{ - pos: position{line: 11, col: 7, offset: 153}, + pos: position{line: 11, col: 7, offset: 158}, label: "x", expr: &zeroOrOneExpr{ - pos: position{line: 11, col: 9, offset: 155}, + pos: position{line: 11, col: 9, offset: 160}, expr: &ruleRefExpr{ - pos: position{line: 11, col: 9, offset: 155}, + pos: position{line: 11, col: 9, offset: 160}, name: "Stmt", }, }, }, &ruleRefExpr{ - pos: position{line: 11, col: 15, offset: 161}, + pos: position{line: 11, col: 15, offset: 166}, name: "_", }, &labeledExpr{ - pos: position{line: 11, col: 17, offset: 163}, + pos: position{line: 11, col: 17, offset: 168}, label: "xs", expr: &zeroOrMoreExpr{ - pos: position{line: 11, col: 20, offset: 166}, + pos: position{line: 11, col: 20, offset: 171}, expr: &actionExpr{ - pos: position{line: 11, col: 22, offset: 168}, + pos: position{line: 11, col: 22, offset: 173}, run: (*parser).callonS10, expr: &seqExpr{ - pos: position{line: 11, col: 22, offset: 168}, + pos: position{line: 11, col: 22, offset: 173}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 11, col: 22, offset: 168}, + pos: position{line: 11, col: 22, offset: 173}, val: ";", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 11, col: 26, offset: 172}, + pos: position{line: 11, col: 26, offset: 177}, name: "_", }, &labeledExpr{ - pos: position{line: 11, col: 28, offset: 174}, + pos: position{line: 11, col: 28, offset: 179}, label: "s", expr: &zeroOrOneExpr{ - pos: position{line: 11, col: 30, offset: 176}, + pos: position{line: 11, col: 30, offset: 181}, expr: &ruleRefExpr{ - pos: position{line: 11, col: 30, offset: 176}, + pos: position{line: 11, col: 30, offset: 181}, name: "Stmt", }, }, }, &ruleRefExpr{ - pos: position{line: 11, col: 36, offset: 182}, + pos: position{line: 11, col: 36, offset: 187}, name: "_", }, }, @@ -91,7 +91,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 11, col: 59, offset: 205}, + pos: position{line: 11, col: 59, offset: 210}, name: "EOF", }, }, @@ -100,32 +100,32 @@ var g = &grammar{ }, { name: "Stmt", - pos: position{line: 15, col: 1, offset: 271}, + pos: position{line: 15, col: 1, offset: 293}, expr: &choiceExpr{ - pos: position{line: 16, col: 4, offset: 279}, + pos: position{line: 16, col: 4, offset: 301}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 16, col: 4, offset: 279}, + pos: position{line: 16, col: 4, offset: 301}, name: "SelectStmt", }, &ruleRefExpr{ - pos: position{line: 17, col: 4, offset: 293}, + pos: position{line: 17, col: 4, offset: 315}, name: "UpdateStmt", }, &ruleRefExpr{ - pos: position{line: 18, col: 4, offset: 307}, + pos: position{line: 18, col: 4, offset: 329}, name: "DeleteStmt", }, &ruleRefExpr{ - pos: position{line: 19, col: 4, offset: 321}, + pos: position{line: 19, col: 4, offset: 343}, name: "InsertStmt", }, &ruleRefExpr{ - pos: position{line: 20, col: 4, offset: 335}, + pos: position{line: 20, col: 4, offset: 357}, name: "CreateTableStmt", }, &ruleRefExpr{ - pos: position{line: 21, col: 4, offset: 354}, + pos: position{line: 21, col: 4, offset: 376}, name: "CreateIndexStmt", }, }, @@ -133,57 +133,57 @@ var g = &grammar{ }, { name: "SelectStmt", - pos: position{line: 23, col: 1, offset: 371}, + pos: position{line: 23, col: 1, offset: 393}, expr: &actionExpr{ - pos: position{line: 24, col: 4, offset: 385}, + pos: position{line: 24, col: 4, offset: 407}, run: (*parser).callonSelectStmt1, expr: &seqExpr{ - pos: position{line: 24, col: 4, offset: 385}, + pos: position{line: 24, col: 4, offset: 407}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 24, col: 4, offset: 385}, + pos: position{line: 24, col: 4, offset: 407}, name: "SelectToken", }, &ruleRefExpr{ - pos: position{line: 25, col: 2, offset: 398}, + pos: position{line: 25, col: 2, offset: 420}, name: "_", }, &labeledExpr{ - pos: position{line: 25, col: 4, offset: 400}, + pos: position{line: 25, col: 4, offset: 422}, label: "f", expr: &ruleRefExpr{ - pos: position{line: 25, col: 6, offset: 402}, + pos: position{line: 25, col: 6, offset: 424}, name: "SelectColumn", }, }, &labeledExpr{ - pos: position{line: 25, col: 19, offset: 415}, + pos: position{line: 25, col: 19, offset: 437}, label: "fs", expr: &zeroOrMoreExpr{ - pos: position{line: 25, col: 22, offset: 418}, + pos: position{line: 25, col: 22, offset: 440}, expr: &actionExpr{ - pos: position{line: 25, col: 24, offset: 420}, + pos: position{line: 25, col: 24, offset: 442}, run: (*parser).callonSelectStmt9, expr: &seqExpr{ - pos: position{line: 25, col: 24, offset: 420}, + pos: position{line: 25, col: 24, offset: 442}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 25, col: 24, offset: 420}, + pos: position{line: 25, col: 24, offset: 442}, name: "_", }, &ruleRefExpr{ - pos: position{line: 25, col: 26, offset: 422}, + pos: position{line: 25, col: 26, offset: 444}, name: "SeparatorToken", }, &ruleRefExpr{ - pos: position{line: 25, col: 41, offset: 437}, + pos: position{line: 25, col: 41, offset: 459}, name: "_", }, &labeledExpr{ - pos: position{line: 25, col: 43, offset: 439}, + pos: position{line: 25, col: 43, offset: 461}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 25, col: 45, offset: 441}, + pos: position{line: 25, col: 45, offset: 463}, name: "SelectColumn", }, }, @@ -193,33 +193,33 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 26, col: 2, offset: 476}, + pos: position{line: 26, col: 2, offset: 498}, label: "table", expr: &zeroOrOneExpr{ - pos: position{line: 26, col: 8, offset: 482}, + pos: position{line: 26, col: 8, offset: 504}, expr: &actionExpr{ - pos: position{line: 26, col: 10, offset: 484}, + pos: position{line: 26, col: 10, offset: 506}, run: (*parser).callonSelectStmt18, expr: &seqExpr{ - pos: position{line: 26, col: 10, offset: 484}, + pos: position{line: 26, col: 10, offset: 506}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 26, col: 10, offset: 484}, + pos: position{line: 26, col: 10, offset: 506}, name: "_", }, &ruleRefExpr{ - pos: position{line: 26, col: 12, offset: 486}, + pos: position{line: 26, col: 12, offset: 508}, name: "FromToken", }, &ruleRefExpr{ - pos: position{line: 26, col: 22, offset: 496}, + pos: position{line: 26, col: 22, offset: 518}, name: "_", }, &labeledExpr{ - pos: position{line: 26, col: 24, offset: 498}, + pos: position{line: 26, col: 24, offset: 520}, label: "i", expr: &ruleRefExpr{ - pos: position{line: 26, col: 26, offset: 500}, + pos: position{line: 26, col: 26, offset: 522}, name: "Identifier", }, }, @@ -229,25 +229,25 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 27, col: 2, offset: 533}, + pos: position{line: 27, col: 2, offset: 555}, label: "where", expr: &zeroOrOneExpr{ - pos: position{line: 27, col: 8, offset: 539}, + pos: position{line: 27, col: 8, offset: 561}, expr: &actionExpr{ - pos: position{line: 27, col: 10, offset: 541}, + pos: position{line: 27, col: 10, offset: 563}, run: (*parser).callonSelectStmt27, expr: &seqExpr{ - pos: position{line: 27, col: 10, offset: 541}, + pos: position{line: 27, col: 10, offset: 563}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 27, col: 10, offset: 541}, + pos: position{line: 27, col: 10, offset: 563}, name: "_", }, &labeledExpr{ - pos: position{line: 27, col: 12, offset: 543}, + pos: position{line: 27, col: 12, offset: 565}, label: "w", expr: &ruleRefExpr{ - pos: position{line: 27, col: 14, offset: 545}, + pos: position{line: 27, col: 14, offset: 567}, name: "WhereClause", }, }, @@ -257,25 +257,25 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 28, col: 2, offset: 579}, + pos: position{line: 28, col: 2, offset: 601}, label: "group", expr: &zeroOrOneExpr{ - pos: position{line: 28, col: 8, offset: 585}, + pos: position{line: 28, col: 8, offset: 607}, expr: &actionExpr{ - pos: position{line: 28, col: 10, offset: 587}, + pos: position{line: 28, col: 10, offset: 609}, run: (*parser).callonSelectStmt34, expr: &seqExpr{ - pos: position{line: 28, col: 10, offset: 587}, + pos: position{line: 28, col: 10, offset: 609}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 28, col: 10, offset: 587}, + pos: position{line: 28, col: 10, offset: 609}, name: "_", }, &labeledExpr{ - pos: position{line: 28, col: 12, offset: 589}, + pos: position{line: 28, col: 12, offset: 611}, label: "g", expr: &ruleRefExpr{ - pos: position{line: 28, col: 14, offset: 591}, + pos: position{line: 28, col: 14, offset: 613}, name: "GroupByClause", }, }, @@ -285,25 +285,25 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 29, col: 2, offset: 627}, + pos: position{line: 29, col: 2, offset: 649}, label: "order", expr: &zeroOrOneExpr{ - pos: position{line: 29, col: 8, offset: 633}, + pos: position{line: 29, col: 8, offset: 655}, expr: &actionExpr{ - pos: position{line: 29, col: 10, offset: 635}, + pos: position{line: 29, col: 10, offset: 657}, run: (*parser).callonSelectStmt41, expr: &seqExpr{ - pos: position{line: 29, col: 10, offset: 635}, + pos: position{line: 29, col: 10, offset: 657}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 29, col: 10, offset: 635}, + pos: position{line: 29, col: 10, offset: 657}, name: "_", }, &labeledExpr{ - pos: position{line: 29, col: 12, offset: 637}, + pos: position{line: 29, col: 12, offset: 659}, label: "or", expr: &ruleRefExpr{ - pos: position{line: 29, col: 15, offset: 640}, + pos: position{line: 29, col: 15, offset: 662}, name: "OrderByClause", }, }, @@ -313,25 +313,25 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 30, col: 2, offset: 677}, + pos: position{line: 30, col: 2, offset: 699}, label: "limit", expr: &zeroOrOneExpr{ - pos: position{line: 30, col: 8, offset: 683}, + pos: position{line: 30, col: 8, offset: 705}, expr: &actionExpr{ - pos: position{line: 30, col: 10, offset: 685}, + pos: position{line: 30, col: 10, offset: 707}, run: (*parser).callonSelectStmt48, expr: &seqExpr{ - pos: position{line: 30, col: 10, offset: 685}, + pos: position{line: 30, col: 10, offset: 707}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 30, col: 10, offset: 685}, + pos: position{line: 30, col: 10, offset: 707}, name: "_", }, &labeledExpr{ - pos: position{line: 30, col: 12, offset: 687}, + pos: position{line: 30, col: 12, offset: 709}, label: "l", expr: &ruleRefExpr{ - pos: position{line: 30, col: 14, offset: 689}, + pos: position{line: 30, col: 14, offset: 711}, name: "LimitClause", }, }, @@ -341,25 +341,25 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 31, col: 2, offset: 723}, + pos: position{line: 31, col: 2, offset: 745}, label: "offset", expr: &zeroOrOneExpr{ - pos: position{line: 31, col: 9, offset: 730}, + pos: position{line: 31, col: 9, offset: 752}, expr: &actionExpr{ - pos: position{line: 31, col: 11, offset: 732}, + pos: position{line: 31, col: 11, offset: 754}, run: (*parser).callonSelectStmt55, expr: &seqExpr{ - pos: position{line: 31, col: 11, offset: 732}, + pos: position{line: 31, col: 11, offset: 754}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 31, col: 11, offset: 732}, + pos: position{line: 31, col: 11, offset: 754}, name: "_", }, &labeledExpr{ - pos: position{line: 31, col: 13, offset: 734}, + pos: position{line: 31, col: 13, offset: 756}, label: "of", expr: &ruleRefExpr{ - pos: position{line: 31, col: 16, offset: 737}, + pos: position{line: 31, col: 16, offset: 759}, name: "OffsetClause", }, }, @@ -374,16 +374,16 @@ var g = &grammar{ }, { name: "SelectColumn", - pos: position{line: 62, col: 1, offset: 1604}, + pos: position{line: 62, col: 1, offset: 1626}, expr: &choiceExpr{ - pos: position{line: 63, col: 4, offset: 1620}, + pos: position{line: 63, col: 4, offset: 1642}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 63, col: 4, offset: 1620}, + pos: position{line: 63, col: 4, offset: 1642}, name: "AnyLiteral", }, &ruleRefExpr{ - pos: position{line: 64, col: 4, offset: 1634}, + pos: position{line: 64, col: 4, offset: 1656}, name: "Expr", }, }, @@ -391,77 +391,77 @@ var g = &grammar{ }, { name: "UpdateStmt", - pos: position{line: 66, col: 1, offset: 1640}, + pos: position{line: 66, col: 1, offset: 1662}, expr: &actionExpr{ - pos: position{line: 67, col: 4, offset: 1654}, + pos: position{line: 67, col: 4, offset: 1676}, run: (*parser).callonUpdateStmt1, expr: &seqExpr{ - pos: position{line: 67, col: 4, offset: 1654}, + pos: position{line: 67, col: 4, offset: 1676}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 67, col: 4, offset: 1654}, + pos: position{line: 67, col: 4, offset: 1676}, name: "UpdateToken", }, &ruleRefExpr{ - pos: position{line: 68, col: 2, offset: 1667}, + pos: position{line: 68, col: 2, offset: 1689}, name: "_", }, &labeledExpr{ - pos: position{line: 68, col: 4, offset: 1669}, + pos: position{line: 68, col: 4, offset: 1691}, label: "table", expr: &ruleRefExpr{ - pos: position{line: 68, col: 10, offset: 1675}, + pos: position{line: 68, col: 10, offset: 1697}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 69, col: 2, offset: 1687}, + pos: position{line: 69, col: 2, offset: 1709}, name: "_", }, &ruleRefExpr{ - pos: position{line: 69, col: 4, offset: 1689}, + pos: position{line: 69, col: 4, offset: 1711}, name: "SetToken", }, &ruleRefExpr{ - pos: position{line: 70, col: 2, offset: 1699}, + pos: position{line: 70, col: 2, offset: 1721}, name: "_", }, &labeledExpr{ - pos: position{line: 70, col: 4, offset: 1701}, + pos: position{line: 70, col: 4, offset: 1723}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 70, col: 6, offset: 1703}, + pos: position{line: 70, col: 6, offset: 1725}, name: "Assignment", }, }, &labeledExpr{ - pos: position{line: 70, col: 17, offset: 1714}, + pos: position{line: 70, col: 17, offset: 1736}, label: "as", expr: &zeroOrMoreExpr{ - pos: position{line: 70, col: 20, offset: 1717}, + pos: position{line: 70, col: 20, offset: 1739}, expr: &actionExpr{ - pos: position{line: 70, col: 22, offset: 1719}, + pos: position{line: 70, col: 22, offset: 1741}, run: (*parser).callonUpdateStmt14, expr: &seqExpr{ - pos: position{line: 70, col: 22, offset: 1719}, + pos: position{line: 70, col: 22, offset: 1741}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 70, col: 22, offset: 1719}, + pos: position{line: 70, col: 22, offset: 1741}, name: "_", }, &ruleRefExpr{ - pos: position{line: 70, col: 24, offset: 1721}, + pos: position{line: 70, col: 24, offset: 1743}, name: "SeparatorToken", }, &ruleRefExpr{ - pos: position{line: 70, col: 39, offset: 1736}, + pos: position{line: 70, col: 39, offset: 1758}, name: "_", }, &labeledExpr{ - pos: position{line: 70, col: 41, offset: 1738}, + pos: position{line: 70, col: 41, offset: 1760}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 70, col: 43, offset: 1740}, + pos: position{line: 70, col: 43, offset: 1762}, name: "Assignment", }, }, @@ -471,25 +471,25 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 71, col: 2, offset: 1773}, + pos: position{line: 71, col: 2, offset: 1795}, label: "where", expr: &zeroOrOneExpr{ - pos: position{line: 71, col: 8, offset: 1779}, + pos: position{line: 71, col: 8, offset: 1801}, expr: &actionExpr{ - pos: position{line: 71, col: 10, offset: 1781}, + pos: position{line: 71, col: 10, offset: 1803}, run: (*parser).callonUpdateStmt23, expr: &seqExpr{ - pos: position{line: 71, col: 10, offset: 1781}, + pos: position{line: 71, col: 10, offset: 1803}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 71, col: 10, offset: 1781}, + pos: position{line: 71, col: 10, offset: 1803}, name: "_", }, &labeledExpr{ - pos: position{line: 71, col: 12, offset: 1783}, + pos: position{line: 71, col: 12, offset: 1805}, label: "w", expr: &ruleRefExpr{ - pos: position{line: 71, col: 14, offset: 1785}, + pos: position{line: 71, col: 14, offset: 1807}, name: "WhereClause", }, }, @@ -504,57 +504,57 @@ var g = &grammar{ }, { name: "DeleteStmt", - pos: position{line: 88, col: 1, offset: 2273}, + pos: position{line: 88, col: 1, offset: 2295}, expr: &actionExpr{ - pos: position{line: 89, col: 4, offset: 2287}, + pos: position{line: 89, col: 4, offset: 2309}, run: (*parser).callonDeleteStmt1, expr: &seqExpr{ - pos: position{line: 89, col: 4, offset: 2287}, + pos: position{line: 89, col: 4, offset: 2309}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 89, col: 4, offset: 2287}, + pos: position{line: 89, col: 4, offset: 2309}, name: "DeleteToken", }, &ruleRefExpr{ - pos: position{line: 90, col: 2, offset: 2300}, + pos: position{line: 90, col: 2, offset: 2322}, name: "_", }, &ruleRefExpr{ - pos: position{line: 90, col: 4, offset: 2302}, + pos: position{line: 90, col: 4, offset: 2324}, name: "FromToken", }, &ruleRefExpr{ - pos: position{line: 91, col: 2, offset: 2313}, + pos: position{line: 91, col: 2, offset: 2335}, name: "_", }, &labeledExpr{ - pos: position{line: 91, col: 4, offset: 2315}, + pos: position{line: 91, col: 4, offset: 2337}, label: "table", expr: &ruleRefExpr{ - pos: position{line: 91, col: 10, offset: 2321}, + pos: position{line: 91, col: 10, offset: 2343}, name: "Identifier", }, }, &labeledExpr{ - pos: position{line: 92, col: 2, offset: 2333}, + pos: position{line: 92, col: 2, offset: 2355}, label: "where", expr: &zeroOrOneExpr{ - pos: position{line: 92, col: 8, offset: 2339}, + pos: position{line: 92, col: 8, offset: 2361}, expr: &actionExpr{ - pos: position{line: 92, col: 10, offset: 2341}, + pos: position{line: 92, col: 10, offset: 2363}, run: (*parser).callonDeleteStmt11, expr: &seqExpr{ - pos: position{line: 92, col: 10, offset: 2341}, + pos: position{line: 92, col: 10, offset: 2363}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 92, col: 10, offset: 2341}, + pos: position{line: 92, col: 10, offset: 2363}, name: "_", }, &labeledExpr{ - pos: position{line: 92, col: 12, offset: 2343}, + pos: position{line: 92, col: 12, offset: 2365}, label: "w", expr: &ruleRefExpr{ - pos: position{line: 92, col: 14, offset: 2345}, + pos: position{line: 92, col: 14, offset: 2367}, name: "WhereClause", }, }, @@ -569,53 +569,53 @@ var g = &grammar{ }, { name: "InsertStmt", - pos: position{line: 104, col: 1, offset: 2617}, + pos: position{line: 104, col: 1, offset: 2639}, expr: &actionExpr{ - pos: position{line: 105, col: 4, offset: 2631}, + pos: position{line: 105, col: 4, offset: 2653}, run: (*parser).callonInsertStmt1, expr: &seqExpr{ - pos: position{line: 105, col: 4, offset: 2631}, + pos: position{line: 105, col: 4, offset: 2653}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 105, col: 4, offset: 2631}, + pos: position{line: 105, col: 4, offset: 2653}, name: "InsertToken", }, &ruleRefExpr{ - pos: position{line: 106, col: 2, offset: 2644}, + pos: position{line: 106, col: 2, offset: 2666}, name: "_", }, &ruleRefExpr{ - pos: position{line: 106, col: 4, offset: 2646}, + pos: position{line: 106, col: 4, offset: 2668}, name: "IntoToken", }, &ruleRefExpr{ - pos: position{line: 107, col: 2, offset: 2657}, + pos: position{line: 107, col: 2, offset: 2679}, name: "_", }, &labeledExpr{ - pos: position{line: 107, col: 4, offset: 2659}, + pos: position{line: 107, col: 4, offset: 2681}, label: "table", expr: &ruleRefExpr{ - pos: position{line: 107, col: 10, offset: 2665}, + pos: position{line: 107, col: 10, offset: 2687}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 108, col: 2, offset: 2677}, + pos: position{line: 108, col: 2, offset: 2699}, name: "_", }, &labeledExpr{ - pos: position{line: 108, col: 4, offset: 2679}, + pos: position{line: 108, col: 4, offset: 2701}, label: "insert", expr: &choiceExpr{ - pos: position{line: 108, col: 13, offset: 2688}, + pos: position{line: 108, col: 13, offset: 2710}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 108, col: 13, offset: 2688}, + pos: position{line: 108, col: 13, offset: 2710}, name: "InsertWithColumnClause", }, &ruleRefExpr{ - pos: position{line: 108, col: 38, offset: 2713}, + pos: position{line: 108, col: 38, offset: 2735}, name: "InsertWithDefaultClause", }, }, @@ -627,36 +627,36 @@ var g = &grammar{ }, { name: "InsertValue", - pos: position{line: 125, col: 1, offset: 3124}, + pos: position{line: 125, col: 1, offset: 3146}, expr: &actionExpr{ - pos: position{line: 126, col: 4, offset: 3139}, + pos: position{line: 126, col: 4, offset: 3161}, run: (*parser).callonInsertValue1, expr: &seqExpr{ - pos: position{line: 126, col: 4, offset: 3139}, + pos: position{line: 126, col: 4, offset: 3161}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 126, col: 4, offset: 3139}, + pos: position{line: 126, col: 4, offset: 3161}, val: "(", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 126, col: 8, offset: 3143}, + pos: position{line: 126, col: 8, offset: 3165}, name: "_", }, &labeledExpr{ - pos: position{line: 126, col: 10, offset: 3145}, + pos: position{line: 126, col: 10, offset: 3167}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 126, col: 12, offset: 3147}, + pos: position{line: 126, col: 12, offset: 3169}, name: "MultiExprWithDefault", }, }, &ruleRefExpr{ - pos: position{line: 126, col: 33, offset: 3168}, + pos: position{line: 126, col: 33, offset: 3190}, name: "_", }, &litMatcher{ - pos: position{line: 126, col: 35, offset: 3170}, + pos: position{line: 126, col: 35, offset: 3192}, val: ")", ignoreCase: false, }, @@ -666,97 +666,97 @@ var g = &grammar{ }, { name: "CreateTableStmt", - pos: position{line: 129, col: 1, offset: 3193}, + pos: position{line: 129, col: 1, offset: 3215}, expr: &actionExpr{ - pos: position{line: 130, col: 4, offset: 3212}, + pos: position{line: 130, col: 4, offset: 3234}, run: (*parser).callonCreateTableStmt1, expr: &seqExpr{ - pos: position{line: 130, col: 4, offset: 3212}, + pos: position{line: 130, col: 4, offset: 3234}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 130, col: 4, offset: 3212}, + pos: position{line: 130, col: 4, offset: 3234}, name: "CreateToken", }, &ruleRefExpr{ - pos: position{line: 131, col: 2, offset: 3225}, + pos: position{line: 131, col: 2, offset: 3247}, name: "_", }, &ruleRefExpr{ - pos: position{line: 131, col: 4, offset: 3227}, + pos: position{line: 131, col: 4, offset: 3249}, name: "TableToken", }, &ruleRefExpr{ - pos: position{line: 132, col: 2, offset: 3239}, + pos: position{line: 132, col: 2, offset: 3261}, name: "_", }, &labeledExpr{ - pos: position{line: 132, col: 4, offset: 3241}, + pos: position{line: 132, col: 4, offset: 3263}, label: "table", expr: &ruleRefExpr{ - pos: position{line: 132, col: 10, offset: 3247}, + pos: position{line: 132, col: 10, offset: 3269}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 133, col: 2, offset: 3259}, + pos: position{line: 133, col: 2, offset: 3281}, name: "_", }, &litMatcher{ - pos: position{line: 133, col: 4, offset: 3261}, + pos: position{line: 133, col: 4, offset: 3283}, val: "(", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 134, col: 2, offset: 3266}, + pos: position{line: 134, col: 2, offset: 3288}, name: "_", }, &labeledExpr{ - pos: position{line: 134, col: 4, offset: 3268}, + pos: position{line: 134, col: 4, offset: 3290}, label: "column", expr: &zeroOrOneExpr{ - pos: position{line: 134, col: 11, offset: 3275}, + pos: position{line: 134, col: 11, offset: 3297}, expr: &actionExpr{ - pos: position{line: 135, col: 3, offset: 3279}, + pos: position{line: 135, col: 3, offset: 3301}, run: (*parser).callonCreateTableStmt14, expr: &seqExpr{ - pos: position{line: 135, col: 3, offset: 3279}, + pos: position{line: 135, col: 3, offset: 3301}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 135, col: 3, offset: 3279}, + pos: position{line: 135, col: 3, offset: 3301}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 135, col: 5, offset: 3281}, + pos: position{line: 135, col: 5, offset: 3303}, name: "ColumnSchema", }, }, &labeledExpr{ - pos: position{line: 136, col: 3, offset: 3296}, + pos: position{line: 136, col: 3, offset: 3318}, label: "ss", expr: &zeroOrMoreExpr{ - pos: position{line: 136, col: 6, offset: 3299}, + pos: position{line: 136, col: 6, offset: 3321}, expr: &actionExpr{ - pos: position{line: 136, col: 8, offset: 3301}, + pos: position{line: 136, col: 8, offset: 3323}, run: (*parser).callonCreateTableStmt20, expr: &seqExpr{ - pos: position{line: 136, col: 8, offset: 3301}, + pos: position{line: 136, col: 8, offset: 3323}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 136, col: 8, offset: 3301}, + pos: position{line: 136, col: 8, offset: 3323}, name: "_", }, &ruleRefExpr{ - pos: position{line: 136, col: 10, offset: 3303}, + pos: position{line: 136, col: 10, offset: 3325}, name: "SeparatorToken", }, &ruleRefExpr{ - pos: position{line: 136, col: 25, offset: 3318}, + pos: position{line: 136, col: 25, offset: 3340}, name: "_", }, &labeledExpr{ - pos: position{line: 136, col: 27, offset: 3320}, + pos: position{line: 136, col: 27, offset: 3342}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 136, col: 29, offset: 3322}, + pos: position{line: 136, col: 29, offset: 3344}, name: "ColumnSchema", }, }, @@ -771,11 +771,11 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 139, col: 2, offset: 3407}, + pos: position{line: 139, col: 2, offset: 3429}, name: "_", }, &litMatcher{ - pos: position{line: 139, col: 4, offset: 3409}, + pos: position{line: 139, col: 4, offset: 3431}, val: ")", ignoreCase: false, }, @@ -785,53 +785,53 @@ var g = &grammar{ }, { name: "ColumnSchema", - pos: position{line: 153, col: 1, offset: 3787}, + pos: position{line: 153, col: 1, offset: 3809}, expr: &actionExpr{ - pos: position{line: 154, col: 4, offset: 3803}, + pos: position{line: 154, col: 4, offset: 3825}, run: (*parser).callonColumnSchema1, expr: &seqExpr{ - pos: position{line: 154, col: 4, offset: 3803}, + pos: position{line: 154, col: 4, offset: 3825}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 154, col: 4, offset: 3803}, + pos: position{line: 154, col: 4, offset: 3825}, label: "i", expr: &ruleRefExpr{ - pos: position{line: 154, col: 6, offset: 3805}, + pos: position{line: 154, col: 6, offset: 3827}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 155, col: 2, offset: 3817}, + pos: position{line: 155, col: 2, offset: 3839}, name: "_", }, &labeledExpr{ - pos: position{line: 155, col: 4, offset: 3819}, + pos: position{line: 155, col: 4, offset: 3841}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 155, col: 6, offset: 3821}, + pos: position{line: 155, col: 6, offset: 3843}, name: "DataType", }, }, &labeledExpr{ - pos: position{line: 156, col: 2, offset: 3831}, + pos: position{line: 156, col: 2, offset: 3853}, label: "cs", expr: &zeroOrMoreExpr{ - pos: position{line: 156, col: 5, offset: 3834}, + pos: position{line: 156, col: 5, offset: 3856}, expr: &actionExpr{ - pos: position{line: 156, col: 7, offset: 3836}, + pos: position{line: 156, col: 7, offset: 3858}, run: (*parser).callonColumnSchema10, expr: &seqExpr{ - pos: position{line: 156, col: 7, offset: 3836}, + pos: position{line: 156, col: 7, offset: 3858}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 156, col: 7, offset: 3836}, + pos: position{line: 156, col: 7, offset: 3858}, name: "_", }, &labeledExpr{ - pos: position{line: 156, col: 9, offset: 3838}, + pos: position{line: 156, col: 9, offset: 3860}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 156, col: 11, offset: 3840}, + pos: position{line: 156, col: 11, offset: 3862}, name: "ColumnConstraint", }, }, @@ -846,32 +846,32 @@ var g = &grammar{ }, { name: "ColumnConstraint", - pos: position{line: 186, col: 1, offset: 4692}, + pos: position{line: 186, col: 1, offset: 4714}, expr: &choiceExpr{ - pos: position{line: 187, col: 4, offset: 4712}, + pos: position{line: 187, col: 4, offset: 4734}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 187, col: 4, offset: 4712}, + pos: position{line: 187, col: 4, offset: 4734}, name: "PrimaryKeyClause", }, &ruleRefExpr{ - pos: position{line: 188, col: 4, offset: 4732}, + pos: position{line: 188, col: 4, offset: 4754}, name: "NotNullClause", }, &ruleRefExpr{ - pos: position{line: 189, col: 4, offset: 4749}, + pos: position{line: 189, col: 4, offset: 4771}, name: "UniqueClause", }, &ruleRefExpr{ - pos: position{line: 190, col: 4, offset: 4765}, + pos: position{line: 190, col: 4, offset: 4787}, name: "DefaultClause", }, &ruleRefExpr{ - pos: position{line: 191, col: 4, offset: 4782}, + pos: position{line: 191, col: 4, offset: 4804}, name: "ForeignClause", }, &ruleRefExpr{ - pos: position{line: 192, col: 4, offset: 4799}, + pos: position{line: 192, col: 4, offset: 4821}, name: "AutoincrementClause", }, }, @@ -879,37 +879,37 @@ var g = &grammar{ }, { name: "CreateIndexStmt", - pos: position{line: 194, col: 1, offset: 4820}, + pos: position{line: 194, col: 1, offset: 4842}, expr: &actionExpr{ - pos: position{line: 195, col: 4, offset: 4839}, + pos: position{line: 195, col: 4, offset: 4861}, run: (*parser).callonCreateIndexStmt1, expr: &seqExpr{ - pos: position{line: 195, col: 4, offset: 4839}, + pos: position{line: 195, col: 4, offset: 4861}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 195, col: 4, offset: 4839}, + pos: position{line: 195, col: 4, offset: 4861}, name: "CreateToken", }, &labeledExpr{ - pos: position{line: 196, col: 2, offset: 4852}, + pos: position{line: 196, col: 2, offset: 4874}, label: "unique", expr: &zeroOrOneExpr{ - pos: position{line: 196, col: 9, offset: 4859}, + pos: position{line: 196, col: 9, offset: 4881}, expr: &actionExpr{ - pos: position{line: 196, col: 11, offset: 4861}, + pos: position{line: 196, col: 11, offset: 4883}, run: (*parser).callonCreateIndexStmt6, expr: &seqExpr{ - pos: position{line: 196, col: 11, offset: 4861}, + pos: position{line: 196, col: 11, offset: 4883}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 196, col: 11, offset: 4861}, + pos: position{line: 196, col: 11, offset: 4883}, name: "_", }, &labeledExpr{ - pos: position{line: 196, col: 13, offset: 4863}, + pos: position{line: 196, col: 13, offset: 4885}, label: "u", expr: &ruleRefExpr{ - pos: position{line: 196, col: 15, offset: 4865}, + pos: position{line: 196, col: 15, offset: 4887}, name: "UniqueClause", }, }, @@ -919,94 +919,94 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 197, col: 2, offset: 4900}, + pos: position{line: 197, col: 2, offset: 4922}, name: "_", }, &ruleRefExpr{ - pos: position{line: 197, col: 4, offset: 4902}, + pos: position{line: 197, col: 4, offset: 4924}, name: "IndexToken", }, &ruleRefExpr{ - pos: position{line: 198, col: 2, offset: 4914}, + pos: position{line: 198, col: 2, offset: 4936}, name: "_", }, &labeledExpr{ - pos: position{line: 198, col: 4, offset: 4916}, + pos: position{line: 198, col: 4, offset: 4938}, label: "index", expr: &ruleRefExpr{ - pos: position{line: 198, col: 10, offset: 4922}, + pos: position{line: 198, col: 10, offset: 4944}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 199, col: 2, offset: 4934}, + pos: position{line: 199, col: 2, offset: 4956}, name: "_", }, &ruleRefExpr{ - pos: position{line: 199, col: 4, offset: 4936}, + pos: position{line: 199, col: 4, offset: 4958}, name: "OnToken", }, &ruleRefExpr{ - pos: position{line: 200, col: 2, offset: 4945}, + pos: position{line: 200, col: 2, offset: 4967}, name: "_", }, &labeledExpr{ - pos: position{line: 200, col: 4, offset: 4947}, + pos: position{line: 200, col: 4, offset: 4969}, label: "table", expr: &ruleRefExpr{ - pos: position{line: 200, col: 10, offset: 4953}, + pos: position{line: 200, col: 10, offset: 4975}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 201, col: 2, offset: 4965}, + pos: position{line: 201, col: 2, offset: 4987}, name: "_", }, &litMatcher{ - pos: position{line: 201, col: 4, offset: 4967}, + pos: position{line: 201, col: 4, offset: 4989}, val: "(", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 201, col: 8, offset: 4971}, + pos: position{line: 201, col: 8, offset: 4993}, name: "_", }, &labeledExpr{ - pos: position{line: 201, col: 10, offset: 4973}, + pos: position{line: 201, col: 10, offset: 4995}, label: "i", expr: &ruleRefExpr{ - pos: position{line: 201, col: 12, offset: 4975}, + pos: position{line: 201, col: 12, offset: 4997}, name: "Identifier", }, }, &labeledExpr{ - pos: position{line: 201, col: 23, offset: 4986}, + pos: position{line: 201, col: 23, offset: 5008}, label: "is", expr: &zeroOrMoreExpr{ - pos: position{line: 201, col: 26, offset: 4989}, + pos: position{line: 201, col: 26, offset: 5011}, expr: &actionExpr{ - pos: position{line: 201, col: 28, offset: 4991}, + pos: position{line: 201, col: 28, offset: 5013}, run: (*parser).callonCreateIndexStmt28, expr: &seqExpr{ - pos: position{line: 201, col: 28, offset: 4991}, + pos: position{line: 201, col: 28, offset: 5013}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 201, col: 28, offset: 4991}, + pos: position{line: 201, col: 28, offset: 5013}, name: "_", }, &ruleRefExpr{ - pos: position{line: 201, col: 30, offset: 4993}, + pos: position{line: 201, col: 30, offset: 5015}, name: "SeparatorToken", }, &ruleRefExpr{ - pos: position{line: 201, col: 45, offset: 5008}, + pos: position{line: 201, col: 45, offset: 5030}, name: "_", }, &labeledExpr{ - pos: position{line: 201, col: 47, offset: 5010}, + pos: position{line: 201, col: 47, offset: 5032}, label: "x", expr: &ruleRefExpr{ - pos: position{line: 201, col: 49, offset: 5012}, + pos: position{line: 201, col: 49, offset: 5034}, name: "Identifier", }, }, @@ -1016,11 +1016,11 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 201, col: 81, offset: 5044}, + pos: position{line: 201, col: 81, offset: 5066}, name: "_", }, &litMatcher{ - pos: position{line: 201, col: 83, offset: 5046}, + pos: position{line: 201, col: 83, offset: 5068}, val: ")", ignoreCase: false, }, @@ -1030,26 +1030,26 @@ var g = &grammar{ }, { name: "WhereClause", - pos: position{line: 220, col: 1, offset: 5567}, + pos: position{line: 220, col: 1, offset: 5589}, expr: &actionExpr{ - pos: position{line: 221, col: 4, offset: 5582}, + pos: position{line: 221, col: 4, offset: 5604}, run: (*parser).callonWhereClause1, expr: &seqExpr{ - pos: position{line: 221, col: 4, offset: 5582}, + pos: position{line: 221, col: 4, offset: 5604}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 221, col: 4, offset: 5582}, + pos: position{line: 221, col: 4, offset: 5604}, name: "WhereToken", }, &ruleRefExpr{ - pos: position{line: 221, col: 15, offset: 5593}, + pos: position{line: 221, col: 15, offset: 5615}, name: "_", }, &labeledExpr{ - pos: position{line: 221, col: 17, offset: 5595}, + pos: position{line: 221, col: 17, offset: 5617}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 221, col: 19, offset: 5597}, + pos: position{line: 221, col: 19, offset: 5619}, name: "Expr", }, }, @@ -1059,65 +1059,65 @@ var g = &grammar{ }, { name: "OrderByClause", - pos: position{line: 230, col: 1, offset: 5769}, + pos: position{line: 230, col: 1, offset: 5791}, expr: &actionExpr{ - pos: position{line: 231, col: 4, offset: 5786}, + pos: position{line: 231, col: 4, offset: 5808}, run: (*parser).callonOrderByClause1, expr: &seqExpr{ - pos: position{line: 231, col: 4, offset: 5786}, + pos: position{line: 231, col: 4, offset: 5808}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 231, col: 4, offset: 5786}, + pos: position{line: 231, col: 4, offset: 5808}, name: "OrderToken", }, &ruleRefExpr{ - pos: position{line: 232, col: 2, offset: 5798}, + pos: position{line: 232, col: 2, offset: 5820}, name: "_", }, &ruleRefExpr{ - pos: position{line: 232, col: 4, offset: 5800}, + pos: position{line: 232, col: 4, offset: 5822}, name: "ByToken", }, &ruleRefExpr{ - pos: position{line: 233, col: 2, offset: 5809}, + pos: position{line: 233, col: 2, offset: 5831}, name: "_", }, &labeledExpr{ - pos: position{line: 233, col: 4, offset: 5811}, + pos: position{line: 233, col: 4, offset: 5833}, label: "f", expr: &ruleRefExpr{ - pos: position{line: 233, col: 6, offset: 5813}, + pos: position{line: 233, col: 6, offset: 5835}, name: "OrderColumn", }, }, &labeledExpr{ - pos: position{line: 234, col: 2, offset: 5826}, + pos: position{line: 234, col: 2, offset: 5848}, label: "fs", expr: &zeroOrMoreExpr{ - pos: position{line: 234, col: 5, offset: 5829}, + pos: position{line: 234, col: 5, offset: 5851}, expr: &actionExpr{ - pos: position{line: 234, col: 7, offset: 5831}, + pos: position{line: 234, col: 7, offset: 5853}, run: (*parser).callonOrderByClause11, expr: &seqExpr{ - pos: position{line: 234, col: 7, offset: 5831}, + pos: position{line: 234, col: 7, offset: 5853}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 234, col: 7, offset: 5831}, + pos: position{line: 234, col: 7, offset: 5853}, name: "_", }, &ruleRefExpr{ - pos: position{line: 234, col: 9, offset: 5833}, + pos: position{line: 234, col: 9, offset: 5855}, name: "SeparatorToken", }, &ruleRefExpr{ - pos: position{line: 234, col: 24, offset: 5848}, + pos: position{line: 234, col: 24, offset: 5870}, name: "_", }, &labeledExpr{ - pos: position{line: 234, col: 26, offset: 5850}, + pos: position{line: 234, col: 26, offset: 5872}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 234, col: 28, offset: 5852}, + pos: position{line: 234, col: 28, offset: 5874}, name: "OrderColumn", }, }, @@ -1132,48 +1132,48 @@ var g = &grammar{ }, { name: "OrderColumn", - pos: position{line: 239, col: 1, offset: 5931}, + pos: position{line: 239, col: 1, offset: 5953}, expr: &actionExpr{ - pos: position{line: 240, col: 4, offset: 5946}, + pos: position{line: 240, col: 4, offset: 5968}, run: (*parser).callonOrderColumn1, expr: &seqExpr{ - pos: position{line: 240, col: 4, offset: 5946}, + pos: position{line: 240, col: 4, offset: 5968}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 240, col: 4, offset: 5946}, + pos: position{line: 240, col: 4, offset: 5968}, label: "i", expr: &ruleRefExpr{ - pos: position{line: 240, col: 6, offset: 5948}, + pos: position{line: 240, col: 6, offset: 5970}, name: "Expr", }, }, &labeledExpr{ - pos: position{line: 241, col: 2, offset: 5954}, + pos: position{line: 241, col: 2, offset: 5976}, label: "s", expr: &zeroOrOneExpr{ - pos: position{line: 241, col: 4, offset: 5956}, + pos: position{line: 241, col: 4, offset: 5978}, expr: &actionExpr{ - pos: position{line: 241, col: 6, offset: 5958}, + pos: position{line: 241, col: 6, offset: 5980}, run: (*parser).callonOrderColumn7, expr: &seqExpr{ - pos: position{line: 241, col: 6, offset: 5958}, + pos: position{line: 241, col: 6, offset: 5980}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 241, col: 6, offset: 5958}, + pos: position{line: 241, col: 6, offset: 5980}, name: "_", }, &labeledExpr{ - pos: position{line: 241, col: 8, offset: 5960}, + pos: position{line: 241, col: 8, offset: 5982}, label: "t", expr: &choiceExpr{ - pos: position{line: 241, col: 12, offset: 5964}, + pos: position{line: 241, col: 12, offset: 5986}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 241, col: 12, offset: 5964}, + pos: position{line: 241, col: 12, offset: 5986}, name: "AscToken", }, &ruleRefExpr{ - pos: position{line: 241, col: 23, offset: 5975}, + pos: position{line: 241, col: 23, offset: 5997}, name: "DescToken", }, }, @@ -1185,40 +1185,40 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 242, col: 2, offset: 6009}, + pos: position{line: 242, col: 2, offset: 6031}, label: "n", expr: &zeroOrOneExpr{ - pos: position{line: 242, col: 4, offset: 6011}, + pos: position{line: 242, col: 4, offset: 6033}, expr: &actionExpr{ - pos: position{line: 242, col: 6, offset: 6013}, + pos: position{line: 242, col: 6, offset: 6035}, run: (*parser).callonOrderColumn16, expr: &seqExpr{ - pos: position{line: 242, col: 6, offset: 6013}, + pos: position{line: 242, col: 6, offset: 6035}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 242, col: 6, offset: 6013}, + pos: position{line: 242, col: 6, offset: 6035}, name: "_", }, &ruleRefExpr{ - pos: position{line: 242, col: 8, offset: 6015}, + pos: position{line: 242, col: 8, offset: 6037}, name: "NullsToken", }, &ruleRefExpr{ - pos: position{line: 242, col: 19, offset: 6026}, + pos: position{line: 242, col: 19, offset: 6048}, name: "_", }, &labeledExpr{ - pos: position{line: 242, col: 21, offset: 6028}, + pos: position{line: 242, col: 21, offset: 6050}, label: "l", expr: &choiceExpr{ - pos: position{line: 242, col: 25, offset: 6032}, + pos: position{line: 242, col: 25, offset: 6054}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 242, col: 25, offset: 6032}, + pos: position{line: 242, col: 25, offset: 6054}, name: "LastToken", }, &ruleRefExpr{ - pos: position{line: 242, col: 37, offset: 6044}, + pos: position{line: 242, col: 37, offset: 6066}, name: "FirstToken", }, }, @@ -1235,65 +1235,65 @@ var g = &grammar{ }, { name: "GroupByClause", - pos: position{line: 253, col: 1, offset: 6355}, + pos: position{line: 253, col: 1, offset: 6377}, expr: &actionExpr{ - pos: position{line: 254, col: 4, offset: 6372}, + pos: position{line: 254, col: 4, offset: 6394}, run: (*parser).callonGroupByClause1, expr: &seqExpr{ - pos: position{line: 254, col: 4, offset: 6372}, + pos: position{line: 254, col: 4, offset: 6394}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 254, col: 4, offset: 6372}, + pos: position{line: 254, col: 4, offset: 6394}, name: "GroupToken", }, &ruleRefExpr{ - pos: position{line: 255, col: 2, offset: 6384}, + pos: position{line: 255, col: 2, offset: 6406}, name: "_", }, &ruleRefExpr{ - pos: position{line: 255, col: 4, offset: 6386}, + pos: position{line: 255, col: 4, offset: 6408}, name: "ByToken", }, &ruleRefExpr{ - pos: position{line: 256, col: 2, offset: 6395}, + pos: position{line: 256, col: 2, offset: 6417}, name: "_", }, &labeledExpr{ - pos: position{line: 256, col: 4, offset: 6397}, + pos: position{line: 256, col: 4, offset: 6419}, label: "f", expr: &ruleRefExpr{ - pos: position{line: 256, col: 6, offset: 6399}, + pos: position{line: 256, col: 6, offset: 6421}, name: "GroupColumn", }, }, &labeledExpr{ - pos: position{line: 257, col: 2, offset: 6412}, + pos: position{line: 257, col: 2, offset: 6434}, label: "fs", expr: &zeroOrMoreExpr{ - pos: position{line: 257, col: 5, offset: 6415}, + pos: position{line: 257, col: 5, offset: 6437}, expr: &actionExpr{ - pos: position{line: 257, col: 7, offset: 6417}, + pos: position{line: 257, col: 7, offset: 6439}, run: (*parser).callonGroupByClause11, expr: &seqExpr{ - pos: position{line: 257, col: 7, offset: 6417}, + pos: position{line: 257, col: 7, offset: 6439}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 257, col: 7, offset: 6417}, + pos: position{line: 257, col: 7, offset: 6439}, name: "_", }, &ruleRefExpr{ - pos: position{line: 257, col: 9, offset: 6419}, + pos: position{line: 257, col: 9, offset: 6441}, name: "SeparatorToken", }, &ruleRefExpr{ - pos: position{line: 257, col: 24, offset: 6434}, + pos: position{line: 257, col: 24, offset: 6456}, name: "_", }, &labeledExpr{ - pos: position{line: 257, col: 26, offset: 6436}, + pos: position{line: 257, col: 26, offset: 6458}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 257, col: 28, offset: 6438}, + pos: position{line: 257, col: 28, offset: 6460}, name: "GroupColumn", }, }, @@ -1308,15 +1308,15 @@ var g = &grammar{ }, { name: "GroupColumn", - pos: position{line: 262, col: 1, offset: 6517}, + pos: position{line: 262, col: 1, offset: 6539}, expr: &actionExpr{ - pos: position{line: 263, col: 4, offset: 6532}, + pos: position{line: 263, col: 4, offset: 6554}, run: (*parser).callonGroupColumn1, expr: &labeledExpr{ - pos: position{line: 263, col: 4, offset: 6532}, + pos: position{line: 263, col: 4, offset: 6554}, label: "i", expr: &ruleRefExpr{ - pos: position{line: 263, col: 6, offset: 6534}, + pos: position{line: 263, col: 6, offset: 6556}, name: "Expr", }, }, @@ -1324,26 +1324,26 @@ var g = &grammar{ }, { name: "OffsetClause", - pos: position{line: 272, col: 1, offset: 6701}, + pos: position{line: 272, col: 1, offset: 6723}, expr: &actionExpr{ - pos: position{line: 273, col: 4, offset: 6717}, + pos: position{line: 273, col: 4, offset: 6739}, run: (*parser).callonOffsetClause1, expr: &seqExpr{ - pos: position{line: 273, col: 4, offset: 6717}, + pos: position{line: 273, col: 4, offset: 6739}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 273, col: 4, offset: 6717}, + pos: position{line: 273, col: 4, offset: 6739}, name: "OffsetToken", }, &ruleRefExpr{ - pos: position{line: 273, col: 16, offset: 6729}, + pos: position{line: 273, col: 16, offset: 6751}, name: "_", }, &labeledExpr{ - pos: position{line: 273, col: 18, offset: 6731}, + pos: position{line: 273, col: 18, offset: 6753}, label: "i", expr: &ruleRefExpr{ - pos: position{line: 273, col: 20, offset: 6733}, + pos: position{line: 273, col: 20, offset: 6755}, name: "Integer", }, }, @@ -1353,26 +1353,26 @@ var g = &grammar{ }, { name: "LimitClause", - pos: position{line: 282, col: 1, offset: 6914}, + pos: position{line: 282, col: 1, offset: 6936}, expr: &actionExpr{ - pos: position{line: 283, col: 4, offset: 6929}, + pos: position{line: 283, col: 4, offset: 6951}, run: (*parser).callonLimitClause1, expr: &seqExpr{ - pos: position{line: 283, col: 4, offset: 6929}, + pos: position{line: 283, col: 4, offset: 6951}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 283, col: 4, offset: 6929}, + pos: position{line: 283, col: 4, offset: 6951}, name: "LimitToken", }, &ruleRefExpr{ - pos: position{line: 283, col: 15, offset: 6940}, + pos: position{line: 283, col: 15, offset: 6962}, name: "_", }, &labeledExpr{ - pos: position{line: 283, col: 17, offset: 6942}, + pos: position{line: 283, col: 17, offset: 6964}, label: "i", expr: &ruleRefExpr{ - pos: position{line: 283, col: 19, offset: 6944}, + pos: position{line: 283, col: 19, offset: 6966}, name: "Integer", }, }, @@ -1382,69 +1382,69 @@ var g = &grammar{ }, { name: "InsertWithColumnClause", - pos: position{line: 292, col: 1, offset: 7124}, + pos: position{line: 292, col: 1, offset: 7146}, expr: &actionExpr{ - pos: position{line: 293, col: 4, offset: 7150}, + pos: position{line: 293, col: 4, offset: 7172}, run: (*parser).callonInsertWithColumnClause1, expr: &seqExpr{ - pos: position{line: 293, col: 4, offset: 7150}, + pos: position{line: 293, col: 4, offset: 7172}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 293, col: 4, offset: 7150}, + pos: position{line: 293, col: 4, offset: 7172}, label: "cs", expr: &zeroOrOneExpr{ - pos: position{line: 293, col: 7, offset: 7153}, + pos: position{line: 293, col: 7, offset: 7175}, expr: &actionExpr{ - pos: position{line: 293, col: 9, offset: 7155}, + pos: position{line: 293, col: 9, offset: 7177}, run: (*parser).callonInsertWithColumnClause5, expr: &seqExpr{ - pos: position{line: 293, col: 9, offset: 7155}, + pos: position{line: 293, col: 9, offset: 7177}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 293, col: 9, offset: 7155}, + pos: position{line: 293, col: 9, offset: 7177}, val: "(", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 294, col: 4, offset: 7162}, + pos: position{line: 294, col: 4, offset: 7184}, name: "_", }, &labeledExpr{ - pos: position{line: 294, col: 6, offset: 7164}, + pos: position{line: 294, col: 6, offset: 7186}, label: "f", expr: &ruleRefExpr{ - pos: position{line: 294, col: 8, offset: 7166}, + pos: position{line: 294, col: 8, offset: 7188}, name: "Identifier", }, }, &labeledExpr{ - pos: position{line: 295, col: 4, offset: 7180}, + pos: position{line: 295, col: 4, offset: 7202}, label: "fs", expr: &zeroOrMoreExpr{ - pos: position{line: 295, col: 7, offset: 7183}, + pos: position{line: 295, col: 7, offset: 7205}, expr: &actionExpr{ - pos: position{line: 295, col: 9, offset: 7185}, + pos: position{line: 295, col: 9, offset: 7207}, run: (*parser).callonInsertWithColumnClause13, expr: &seqExpr{ - pos: position{line: 295, col: 9, offset: 7185}, + pos: position{line: 295, col: 9, offset: 7207}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 295, col: 9, offset: 7185}, + pos: position{line: 295, col: 9, offset: 7207}, name: "_", }, &ruleRefExpr{ - pos: position{line: 295, col: 11, offset: 7187}, + pos: position{line: 295, col: 11, offset: 7209}, name: "SeparatorToken", }, &ruleRefExpr{ - pos: position{line: 295, col: 26, offset: 7202}, + pos: position{line: 295, col: 26, offset: 7224}, name: "_", }, &labeledExpr{ - pos: position{line: 295, col: 28, offset: 7204}, + pos: position{line: 295, col: 28, offset: 7226}, label: "x", expr: &ruleRefExpr{ - pos: position{line: 295, col: 30, offset: 7206}, + pos: position{line: 295, col: 30, offset: 7228}, name: "Identifier", }, }, @@ -1454,16 +1454,16 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 296, col: 4, offset: 7241}, + pos: position{line: 296, col: 4, offset: 7263}, name: "_", }, &litMatcher{ - pos: position{line: 296, col: 6, offset: 7243}, + pos: position{line: 296, col: 6, offset: 7265}, val: ")", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 297, col: 4, offset: 7250}, + pos: position{line: 297, col: 4, offset: 7272}, name: "_", }, }, @@ -1472,49 +1472,49 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 299, col: 3, offset: 7303}, + pos: position{line: 299, col: 3, offset: 7325}, name: "ValuesToken", }, &ruleRefExpr{ - pos: position{line: 300, col: 2, offset: 7316}, + pos: position{line: 300, col: 2, offset: 7338}, name: "_", }, &labeledExpr{ - pos: position{line: 300, col: 4, offset: 7318}, + pos: position{line: 300, col: 4, offset: 7340}, label: "v", expr: &ruleRefExpr{ - pos: position{line: 300, col: 6, offset: 7320}, + pos: position{line: 300, col: 6, offset: 7342}, name: "InsertValue", }, }, &labeledExpr{ - pos: position{line: 301, col: 2, offset: 7333}, + pos: position{line: 301, col: 2, offset: 7355}, label: "vs", expr: &zeroOrMoreExpr{ - pos: position{line: 301, col: 5, offset: 7336}, + pos: position{line: 301, col: 5, offset: 7358}, expr: &actionExpr{ - pos: position{line: 301, col: 7, offset: 7338}, + pos: position{line: 301, col: 7, offset: 7360}, run: (*parser).callonInsertWithColumnClause29, expr: &seqExpr{ - pos: position{line: 301, col: 7, offset: 7338}, + pos: position{line: 301, col: 7, offset: 7360}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 301, col: 7, offset: 7338}, + pos: position{line: 301, col: 7, offset: 7360}, name: "_", }, &ruleRefExpr{ - pos: position{line: 301, col: 9, offset: 7340}, + pos: position{line: 301, col: 9, offset: 7362}, name: "SeparatorToken", }, &ruleRefExpr{ - pos: position{line: 301, col: 24, offset: 7355}, + pos: position{line: 301, col: 24, offset: 7377}, name: "_", }, &labeledExpr{ - pos: position{line: 301, col: 26, offset: 7357}, + pos: position{line: 301, col: 26, offset: 7379}, label: "y", expr: &ruleRefExpr{ - pos: position{line: 301, col: 28, offset: 7359}, + pos: position{line: 301, col: 28, offset: 7381}, name: "InsertValue", }, }, @@ -1529,23 +1529,23 @@ var g = &grammar{ }, { name: "InsertWithDefaultClause", - pos: position{line: 320, col: 1, offset: 7935}, + pos: position{line: 320, col: 1, offset: 7957}, expr: &actionExpr{ - pos: position{line: 321, col: 4, offset: 7962}, + pos: position{line: 321, col: 4, offset: 7984}, run: (*parser).callonInsertWithDefaultClause1, expr: &seqExpr{ - pos: position{line: 321, col: 4, offset: 7962}, + pos: position{line: 321, col: 4, offset: 7984}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 321, col: 4, offset: 7962}, + pos: position{line: 321, col: 4, offset: 7984}, name: "DefaultToken", }, &ruleRefExpr{ - pos: position{line: 321, col: 17, offset: 7975}, + pos: position{line: 321, col: 17, offset: 7997}, name: "_", }, &ruleRefExpr{ - pos: position{line: 321, col: 19, offset: 7977}, + pos: position{line: 321, col: 19, offset: 7999}, name: "ValuesToken", }, }, @@ -1554,23 +1554,23 @@ var g = &grammar{ }, { name: "PrimaryKeyClause", - pos: position{line: 329, col: 1, offset: 8133}, + pos: position{line: 329, col: 1, offset: 8155}, expr: &actionExpr{ - pos: position{line: 330, col: 4, offset: 8153}, + pos: position{line: 330, col: 4, offset: 8175}, run: (*parser).callonPrimaryKeyClause1, expr: &seqExpr{ - pos: position{line: 330, col: 4, offset: 8153}, + pos: position{line: 330, col: 4, offset: 8175}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 330, col: 4, offset: 8153}, + pos: position{line: 330, col: 4, offset: 8175}, name: "PrimaryToken", }, &ruleRefExpr{ - pos: position{line: 330, col: 17, offset: 8166}, + pos: position{line: 330, col: 17, offset: 8188}, name: "_", }, &ruleRefExpr{ - pos: position{line: 330, col: 19, offset: 8168}, + pos: position{line: 330, col: 19, offset: 8190}, name: "KeyToken", }, }, @@ -1579,23 +1579,23 @@ var g = &grammar{ }, { name: "NotNullClause", - pos: position{line: 338, col: 1, offset: 8311}, + pos: position{line: 338, col: 1, offset: 8333}, expr: &actionExpr{ - pos: position{line: 339, col: 4, offset: 8328}, + pos: position{line: 339, col: 4, offset: 8350}, run: (*parser).callonNotNullClause1, expr: &seqExpr{ - pos: position{line: 339, col: 4, offset: 8328}, + pos: position{line: 339, col: 4, offset: 8350}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 339, col: 4, offset: 8328}, + pos: position{line: 339, col: 4, offset: 8350}, name: "NotToken", }, &ruleRefExpr{ - pos: position{line: 339, col: 13, offset: 8337}, + pos: position{line: 339, col: 13, offset: 8359}, name: "_", }, &ruleRefExpr{ - pos: position{line: 339, col: 15, offset: 8339}, + pos: position{line: 339, col: 15, offset: 8361}, name: "NullToken", }, }, @@ -1604,38 +1604,38 @@ var g = &grammar{ }, { name: "UniqueClause", - pos: position{line: 347, col: 1, offset: 8483}, + pos: position{line: 347, col: 1, offset: 8505}, expr: &actionExpr{ - pos: position{line: 348, col: 4, offset: 8499}, + pos: position{line: 348, col: 4, offset: 8521}, run: (*parser).callonUniqueClause1, expr: &ruleRefExpr{ - pos: position{line: 348, col: 4, offset: 8499}, + pos: position{line: 348, col: 4, offset: 8521}, name: "UniqueToken", }, }, }, { name: "DefaultClause", - pos: position{line: 356, col: 1, offset: 8644}, + pos: position{line: 356, col: 1, offset: 8666}, expr: &actionExpr{ - pos: position{line: 357, col: 4, offset: 8661}, + pos: position{line: 357, col: 4, offset: 8683}, run: (*parser).callonDefaultClause1, expr: &seqExpr{ - pos: position{line: 357, col: 4, offset: 8661}, + pos: position{line: 357, col: 4, offset: 8683}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 357, col: 4, offset: 8661}, + pos: position{line: 357, col: 4, offset: 8683}, name: "DefaultToken", }, &ruleRefExpr{ - pos: position{line: 357, col: 17, offset: 8674}, + pos: position{line: 357, col: 17, offset: 8696}, name: "_", }, &labeledExpr{ - pos: position{line: 357, col: 19, offset: 8676}, + pos: position{line: 357, col: 19, offset: 8698}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 357, col: 21, offset: 8678}, + pos: position{line: 357, col: 21, offset: 8700}, name: "Expr", }, }, @@ -1645,56 +1645,56 @@ var g = &grammar{ }, { name: "ForeignClause", - pos: position{line: 366, col: 1, offset: 8848}, + pos: position{line: 366, col: 1, offset: 8870}, expr: &actionExpr{ - pos: position{line: 367, col: 4, offset: 8865}, + pos: position{line: 367, col: 4, offset: 8887}, run: (*parser).callonForeignClause1, expr: &seqExpr{ - pos: position{line: 367, col: 4, offset: 8865}, + pos: position{line: 367, col: 4, offset: 8887}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 367, col: 4, offset: 8865}, + pos: position{line: 367, col: 4, offset: 8887}, name: "ReferencesToken", }, &ruleRefExpr{ - pos: position{line: 367, col: 20, offset: 8881}, + pos: position{line: 367, col: 20, offset: 8903}, name: "_", }, &labeledExpr{ - pos: position{line: 367, col: 22, offset: 8883}, + pos: position{line: 367, col: 22, offset: 8905}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 367, col: 24, offset: 8885}, + pos: position{line: 367, col: 24, offset: 8907}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 367, col: 35, offset: 8896}, + pos: position{line: 367, col: 35, offset: 8918}, name: "_", }, &litMatcher{ - pos: position{line: 367, col: 37, offset: 8898}, + pos: position{line: 367, col: 37, offset: 8920}, val: "(", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 367, col: 41, offset: 8902}, + pos: position{line: 367, col: 41, offset: 8924}, name: "_", }, &labeledExpr{ - pos: position{line: 367, col: 43, offset: 8904}, + pos: position{line: 367, col: 43, offset: 8926}, label: "f", expr: &ruleRefExpr{ - pos: position{line: 367, col: 45, offset: 8906}, + pos: position{line: 367, col: 45, offset: 8928}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 367, col: 56, offset: 8917}, + pos: position{line: 367, col: 56, offset: 8939}, name: "_", }, &litMatcher{ - pos: position{line: 367, col: 58, offset: 8919}, + pos: position{line: 367, col: 58, offset: 8941}, val: ")", ignoreCase: false, }, @@ -1704,48 +1704,48 @@ var g = &grammar{ }, { name: "AutoincrementClause", - pos: position{line: 377, col: 1, offset: 9134}, + pos: position{line: 377, col: 1, offset: 9156}, expr: &actionExpr{ - pos: position{line: 378, col: 4, offset: 9157}, + pos: position{line: 378, col: 4, offset: 9179}, run: (*parser).callonAutoincrementClause1, expr: &ruleRefExpr{ - pos: position{line: 378, col: 4, offset: 9157}, + pos: position{line: 378, col: 4, offset: 9179}, name: "AutoincrementToken", }, }, }, { name: "Expr", - pos: position{line: 387, col: 1, offset: 9334}, + pos: position{line: 387, col: 1, offset: 9356}, expr: &ruleRefExpr{ - pos: position{line: 388, col: 4, offset: 9342}, + pos: position{line: 388, col: 4, offset: 9364}, name: "LogicExpr", }, }, { name: "ExprWithDefault", - pos: position{line: 390, col: 1, offset: 9353}, + pos: position{line: 390, col: 1, offset: 9375}, expr: &choiceExpr{ - pos: position{line: 391, col: 4, offset: 9372}, + pos: position{line: 391, col: 4, offset: 9394}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 391, col: 4, offset: 9372}, + pos: position{line: 391, col: 4, offset: 9394}, run: (*parser).callonExprWithDefault2, expr: &seqExpr{ - pos: position{line: 391, col: 4, offset: 9372}, + pos: position{line: 391, col: 4, offset: 9394}, exprs: []interface{}{ &andExpr{ - pos: position{line: 391, col: 4, offset: 9372}, + pos: position{line: 391, col: 4, offset: 9394}, expr: &ruleRefExpr{ - pos: position{line: 391, col: 6, offset: 9374}, + pos: position{line: 391, col: 6, offset: 9396}, name: "DefaultLiteral", }, }, &labeledExpr{ - pos: position{line: 391, col: 22, offset: 9390}, + pos: position{line: 391, col: 22, offset: 9412}, label: "d", expr: &ruleRefExpr{ - pos: position{line: 391, col: 24, offset: 9392}, + pos: position{line: 391, col: 24, offset: 9414}, name: "DefaultLiteral", }, }, @@ -1753,7 +1753,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 392, col: 4, offset: 9428}, + pos: position{line: 392, col: 4, offset: 9450}, name: "Expr", }, }, @@ -1761,61 +1761,61 @@ var g = &grammar{ }, { name: "LogicExpr", - pos: position{line: 394, col: 1, offset: 9434}, + pos: position{line: 394, col: 1, offset: 9456}, expr: &ruleRefExpr{ - pos: position{line: 395, col: 4, offset: 9447}, + pos: position{line: 395, col: 4, offset: 9469}, name: "LogicExpr4", }, }, { name: "LogicExpr4", - pos: position{line: 397, col: 1, offset: 9459}, + pos: position{line: 397, col: 1, offset: 9481}, expr: &actionExpr{ - pos: position{line: 398, col: 4, offset: 9473}, + pos: position{line: 398, col: 4, offset: 9495}, run: (*parser).callonLogicExpr41, expr: &seqExpr{ - pos: position{line: 398, col: 4, offset: 9473}, + pos: position{line: 398, col: 4, offset: 9495}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 398, col: 4, offset: 9473}, + pos: position{line: 398, col: 4, offset: 9495}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 398, col: 6, offset: 9475}, + pos: position{line: 398, col: 6, offset: 9497}, name: "LogicExpr3", }, }, &labeledExpr{ - pos: position{line: 399, col: 3, offset: 9488}, + pos: position{line: 399, col: 3, offset: 9510}, label: "os", expr: &zeroOrMoreExpr{ - pos: position{line: 399, col: 6, offset: 9491}, + pos: position{line: 399, col: 6, offset: 9513}, expr: &actionExpr{ - pos: position{line: 399, col: 8, offset: 9493}, + pos: position{line: 399, col: 8, offset: 9515}, run: (*parser).callonLogicExpr47, expr: &seqExpr{ - pos: position{line: 399, col: 8, offset: 9493}, + pos: position{line: 399, col: 8, offset: 9515}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 399, col: 8, offset: 9493}, + pos: position{line: 399, col: 8, offset: 9515}, name: "_", }, &labeledExpr{ - pos: position{line: 399, col: 10, offset: 9495}, + pos: position{line: 399, col: 10, offset: 9517}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 399, col: 13, offset: 9498}, + pos: position{line: 399, col: 13, offset: 9520}, name: "OrOperator", }, }, &ruleRefExpr{ - pos: position{line: 399, col: 24, offset: 9509}, + pos: position{line: 399, col: 24, offset: 9531}, name: "_", }, &labeledExpr{ - pos: position{line: 399, col: 26, offset: 9511}, + pos: position{line: 399, col: 26, offset: 9533}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 399, col: 28, offset: 9513}, + pos: position{line: 399, col: 28, offset: 9535}, name: "LogicExpr3", }, }, @@ -1830,53 +1830,53 @@ var g = &grammar{ }, { name: "LogicExpr3", - pos: position{line: 403, col: 1, offset: 9676}, + pos: position{line: 403, col: 1, offset: 9698}, expr: &actionExpr{ - pos: position{line: 404, col: 4, offset: 9690}, + pos: position{line: 404, col: 4, offset: 9712}, run: (*parser).callonLogicExpr31, expr: &seqExpr{ - pos: position{line: 404, col: 4, offset: 9690}, + pos: position{line: 404, col: 4, offset: 9712}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 404, col: 4, offset: 9690}, + pos: position{line: 404, col: 4, offset: 9712}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 404, col: 6, offset: 9692}, + pos: position{line: 404, col: 6, offset: 9714}, name: "LogicExpr2", }, }, &labeledExpr{ - pos: position{line: 405, col: 3, offset: 9705}, + pos: position{line: 405, col: 3, offset: 9727}, label: "os", expr: &zeroOrMoreExpr{ - pos: position{line: 405, col: 6, offset: 9708}, + pos: position{line: 405, col: 6, offset: 9730}, expr: &actionExpr{ - pos: position{line: 405, col: 8, offset: 9710}, + pos: position{line: 405, col: 8, offset: 9732}, run: (*parser).callonLogicExpr37, expr: &seqExpr{ - pos: position{line: 405, col: 8, offset: 9710}, + pos: position{line: 405, col: 8, offset: 9732}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 405, col: 8, offset: 9710}, + pos: position{line: 405, col: 8, offset: 9732}, name: "_", }, &labeledExpr{ - pos: position{line: 405, col: 10, offset: 9712}, + pos: position{line: 405, col: 10, offset: 9734}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 405, col: 13, offset: 9715}, + pos: position{line: 405, col: 13, offset: 9737}, name: "AndOperator", }, }, &ruleRefExpr{ - pos: position{line: 405, col: 25, offset: 9727}, + pos: position{line: 405, col: 25, offset: 9749}, name: "_", }, &labeledExpr{ - pos: position{line: 405, col: 27, offset: 9729}, + pos: position{line: 405, col: 27, offset: 9751}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 405, col: 29, offset: 9731}, + pos: position{line: 405, col: 29, offset: 9753}, name: "LogicExpr2", }, }, @@ -1891,33 +1891,33 @@ var g = &grammar{ }, { name: "LogicExpr2", - pos: position{line: 409, col: 1, offset: 9894}, + pos: position{line: 409, col: 1, offset: 9916}, expr: &choiceExpr{ - pos: position{line: 410, col: 4, offset: 9908}, + pos: position{line: 410, col: 4, offset: 9930}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 410, col: 4, offset: 9908}, + pos: position{line: 410, col: 4, offset: 9930}, run: (*parser).callonLogicExpr22, expr: &seqExpr{ - pos: position{line: 410, col: 4, offset: 9908}, + pos: position{line: 410, col: 4, offset: 9930}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 410, col: 4, offset: 9908}, + pos: position{line: 410, col: 4, offset: 9930}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 410, col: 7, offset: 9911}, + pos: position{line: 410, col: 7, offset: 9933}, name: "NotOperator", }, }, &ruleRefExpr{ - pos: position{line: 410, col: 19, offset: 9923}, + pos: position{line: 410, col: 19, offset: 9945}, name: "_", }, &labeledExpr{ - pos: position{line: 410, col: 21, offset: 9925}, + pos: position{line: 410, col: 21, offset: 9947}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 410, col: 23, offset: 9927}, + pos: position{line: 410, col: 23, offset: 9949}, name: "LogicExpr2", }, }, @@ -1925,7 +1925,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 412, col: 4, offset: 10012}, + pos: position{line: 412, col: 4, offset: 10034}, name: "LogicExpr1", }, }, @@ -1933,41 +1933,41 @@ var g = &grammar{ }, { name: "LogicExpr1", - pos: position{line: 414, col: 1, offset: 10024}, + pos: position{line: 414, col: 1, offset: 10046}, expr: &actionExpr{ - pos: position{line: 415, col: 4, offset: 10038}, + pos: position{line: 415, col: 4, offset: 10060}, run: (*parser).callonLogicExpr11, expr: &seqExpr{ - pos: position{line: 415, col: 4, offset: 10038}, + pos: position{line: 415, col: 4, offset: 10060}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 415, col: 4, offset: 10038}, + pos: position{line: 415, col: 4, offset: 10060}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 415, col: 6, offset: 10040}, + pos: position{line: 415, col: 6, offset: 10062}, name: "ArithmeticExpr", }, }, &labeledExpr{ - pos: position{line: 415, col: 21, offset: 10055}, + pos: position{line: 415, col: 21, offset: 10077}, label: "os", expr: &zeroOrMoreExpr{ - pos: position{line: 415, col: 24, offset: 10058}, + pos: position{line: 415, col: 24, offset: 10080}, expr: &actionExpr{ - pos: position{line: 415, col: 26, offset: 10060}, + pos: position{line: 415, col: 26, offset: 10082}, run: (*parser).callonLogicExpr17, expr: &seqExpr{ - pos: position{line: 415, col: 26, offset: 10060}, + pos: position{line: 415, col: 26, offset: 10082}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 415, col: 26, offset: 10060}, + pos: position{line: 415, col: 26, offset: 10082}, name: "_", }, &labeledExpr{ - pos: position{line: 415, col: 28, offset: 10062}, + pos: position{line: 415, col: 28, offset: 10084}, label: "l", expr: &ruleRefExpr{ - pos: position{line: 415, col: 30, offset: 10064}, + pos: position{line: 415, col: 30, offset: 10086}, name: "LogicExpr1Op", }, }, @@ -1982,24 +1982,24 @@ var g = &grammar{ }, { name: "LogicExpr1Op", - pos: position{line: 418, col: 1, offset: 10173}, + pos: position{line: 418, col: 1, offset: 10195}, expr: &choiceExpr{ - pos: position{line: 419, col: 4, offset: 10189}, + pos: position{line: 419, col: 4, offset: 10211}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 419, col: 4, offset: 10189}, + pos: position{line: 419, col: 4, offset: 10211}, name: "LogicExpr1In", }, &ruleRefExpr{ - pos: position{line: 420, col: 4, offset: 10205}, + pos: position{line: 420, col: 4, offset: 10227}, name: "LogicExpr1Is", }, &ruleRefExpr{ - pos: position{line: 421, col: 4, offset: 10221}, + pos: position{line: 421, col: 4, offset: 10243}, name: "LogicExpr1Like", }, &ruleRefExpr{ - pos: position{line: 422, col: 4, offset: 10239}, + pos: position{line: 422, col: 4, offset: 10261}, name: "LogicExpr1Cmp", }, }, @@ -2007,34 +2007,34 @@ var g = &grammar{ }, { name: "LogicExpr1In", - pos: position{line: 424, col: 1, offset: 10254}, + pos: position{line: 424, col: 1, offset: 10276}, expr: &actionExpr{ - pos: position{line: 425, col: 4, offset: 10270}, + pos: position{line: 425, col: 4, offset: 10292}, run: (*parser).callonLogicExpr1In1, expr: &seqExpr{ - pos: position{line: 425, col: 4, offset: 10270}, + pos: position{line: 425, col: 4, offset: 10292}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 425, col: 4, offset: 10270}, + pos: position{line: 425, col: 4, offset: 10292}, label: "n", expr: &zeroOrOneExpr{ - pos: position{line: 425, col: 6, offset: 10272}, + pos: position{line: 425, col: 6, offset: 10294}, expr: &actionExpr{ - pos: position{line: 425, col: 8, offset: 10274}, + pos: position{line: 425, col: 8, offset: 10296}, run: (*parser).callonLogicExpr1In5, expr: &seqExpr{ - pos: position{line: 425, col: 8, offset: 10274}, + pos: position{line: 425, col: 8, offset: 10296}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 425, col: 8, offset: 10274}, + pos: position{line: 425, col: 8, offset: 10296}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 425, col: 10, offset: 10276}, + pos: position{line: 425, col: 10, offset: 10298}, name: "NotOperator", }, }, &ruleRefExpr{ - pos: position{line: 425, col: 22, offset: 10288}, + pos: position{line: 425, col: 22, offset: 10310}, name: "_", }, }, @@ -2043,36 +2043,36 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 425, col: 45, offset: 10311}, + pos: position{line: 425, col: 45, offset: 10333}, name: "InToken", }, &ruleRefExpr{ - pos: position{line: 425, col: 53, offset: 10319}, + pos: position{line: 425, col: 53, offset: 10341}, name: "_", }, &litMatcher{ - pos: position{line: 425, col: 55, offset: 10321}, + pos: position{line: 425, col: 55, offset: 10343}, val: "(", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 425, col: 59, offset: 10325}, + pos: position{line: 425, col: 59, offset: 10347}, name: "_", }, &labeledExpr{ - pos: position{line: 425, col: 61, offset: 10327}, + pos: position{line: 425, col: 61, offset: 10349}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 425, col: 63, offset: 10329}, + pos: position{line: 425, col: 63, offset: 10351}, name: "MultiExpr", }, }, &ruleRefExpr{ - pos: position{line: 425, col: 73, offset: 10339}, + pos: position{line: 425, col: 73, offset: 10361}, name: "_", }, &litMatcher{ - pos: position{line: 425, col: 75, offset: 10341}, + pos: position{line: 425, col: 75, offset: 10363}, val: ")", ignoreCase: false, }, @@ -2082,37 +2082,37 @@ var g = &grammar{ }, { name: "LogicExpr1Is", - pos: position{line: 437, col: 1, offset: 10582}, + pos: position{line: 437, col: 1, offset: 10604}, expr: &actionExpr{ - pos: position{line: 438, col: 4, offset: 10598}, + pos: position{line: 438, col: 4, offset: 10620}, run: (*parser).callonLogicExpr1Is1, expr: &seqExpr{ - pos: position{line: 438, col: 4, offset: 10598}, + pos: position{line: 438, col: 4, offset: 10620}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 438, col: 4, offset: 10598}, + pos: position{line: 438, col: 4, offset: 10620}, name: "IsToken", }, &labeledExpr{ - pos: position{line: 438, col: 12, offset: 10606}, + pos: position{line: 438, col: 12, offset: 10628}, label: "n", expr: &zeroOrOneExpr{ - pos: position{line: 438, col: 14, offset: 10608}, + pos: position{line: 438, col: 14, offset: 10630}, expr: &actionExpr{ - pos: position{line: 438, col: 16, offset: 10610}, + pos: position{line: 438, col: 16, offset: 10632}, run: (*parser).callonLogicExpr1Is6, expr: &seqExpr{ - pos: position{line: 438, col: 16, offset: 10610}, + pos: position{line: 438, col: 16, offset: 10632}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 438, col: 16, offset: 10610}, + pos: position{line: 438, col: 16, offset: 10632}, name: "_", }, &labeledExpr{ - pos: position{line: 438, col: 18, offset: 10612}, + pos: position{line: 438, col: 18, offset: 10634}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 438, col: 20, offset: 10614}, + pos: position{line: 438, col: 20, offset: 10636}, name: "NotOperator", }, }, @@ -2122,14 +2122,14 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 438, col: 53, offset: 10647}, + pos: position{line: 438, col: 53, offset: 10669}, name: "_", }, &labeledExpr{ - pos: position{line: 438, col: 55, offset: 10649}, + pos: position{line: 438, col: 55, offset: 10671}, label: "u", expr: &ruleRefExpr{ - pos: position{line: 438, col: 57, offset: 10651}, + pos: position{line: 438, col: 57, offset: 10673}, name: "NullLiteral", }, }, @@ -2139,34 +2139,34 @@ var g = &grammar{ }, { name: "LogicExpr1Like", - pos: position{line: 450, col: 1, offset: 10911}, + pos: position{line: 450, col: 1, offset: 10933}, expr: &actionExpr{ - pos: position{line: 451, col: 4, offset: 10929}, + pos: position{line: 451, col: 4, offset: 10951}, run: (*parser).callonLogicExpr1Like1, expr: &seqExpr{ - pos: position{line: 451, col: 4, offset: 10929}, + pos: position{line: 451, col: 4, offset: 10951}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 451, col: 4, offset: 10929}, + pos: position{line: 451, col: 4, offset: 10951}, label: "n", expr: &zeroOrOneExpr{ - pos: position{line: 451, col: 6, offset: 10931}, + pos: position{line: 451, col: 6, offset: 10953}, expr: &actionExpr{ - pos: position{line: 451, col: 8, offset: 10933}, + pos: position{line: 451, col: 8, offset: 10955}, run: (*parser).callonLogicExpr1Like5, expr: &seqExpr{ - pos: position{line: 451, col: 8, offset: 10933}, + pos: position{line: 451, col: 8, offset: 10955}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 451, col: 8, offset: 10933}, + pos: position{line: 451, col: 8, offset: 10955}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 451, col: 10, offset: 10935}, + pos: position{line: 451, col: 10, offset: 10957}, name: "NotOperator", }, }, &ruleRefExpr{ - pos: position{line: 451, col: 22, offset: 10947}, + pos: position{line: 451, col: 22, offset: 10969}, name: "_", }, }, @@ -2175,18 +2175,18 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 451, col: 45, offset: 10970}, + pos: position{line: 451, col: 45, offset: 10992}, name: "LikeToken", }, &ruleRefExpr{ - pos: position{line: 451, col: 55, offset: 10980}, + pos: position{line: 451, col: 55, offset: 11002}, name: "_", }, &labeledExpr{ - pos: position{line: 451, col: 57, offset: 10982}, + pos: position{line: 451, col: 57, offset: 11004}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 451, col: 59, offset: 10984}, + pos: position{line: 451, col: 59, offset: 11006}, name: "Expr", }, }, @@ -2196,30 +2196,30 @@ var g = &grammar{ }, { name: "LogicExpr1Cmp", - pos: position{line: 463, col: 1, offset: 11233}, + pos: position{line: 463, col: 1, offset: 11255}, expr: &actionExpr{ - pos: position{line: 464, col: 4, offset: 11250}, + pos: position{line: 464, col: 4, offset: 11272}, run: (*parser).callonLogicExpr1Cmp1, expr: &seqExpr{ - pos: position{line: 464, col: 4, offset: 11250}, + pos: position{line: 464, col: 4, offset: 11272}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 464, col: 4, offset: 11250}, + pos: position{line: 464, col: 4, offset: 11272}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 464, col: 7, offset: 11253}, + pos: position{line: 464, col: 7, offset: 11275}, name: "CmpOperator", }, }, &ruleRefExpr{ - pos: position{line: 464, col: 19, offset: 11265}, + pos: position{line: 464, col: 19, offset: 11287}, name: "_", }, &labeledExpr{ - pos: position{line: 464, col: 21, offset: 11267}, + pos: position{line: 464, col: 21, offset: 11289}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 464, col: 23, offset: 11269}, + pos: position{line: 464, col: 23, offset: 11291}, name: "ArithmeticExpr", }, }, @@ -2229,61 +2229,61 @@ var g = &grammar{ }, { name: "ArithmeticExpr", - pos: position{line: 467, col: 1, offset: 11357}, + pos: position{line: 467, col: 1, offset: 11379}, expr: &ruleRefExpr{ - pos: position{line: 468, col: 4, offset: 11375}, + pos: position{line: 468, col: 4, offset: 11397}, name: "ArithmeticExpr3", }, }, { name: "ArithmeticExpr3", - pos: position{line: 470, col: 1, offset: 11392}, + pos: position{line: 470, col: 1, offset: 11414}, expr: &actionExpr{ - pos: position{line: 471, col: 4, offset: 11411}, + pos: position{line: 471, col: 4, offset: 11433}, run: (*parser).callonArithmeticExpr31, expr: &seqExpr{ - pos: position{line: 471, col: 4, offset: 11411}, + pos: position{line: 471, col: 4, offset: 11433}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 471, col: 4, offset: 11411}, + pos: position{line: 471, col: 4, offset: 11433}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 471, col: 6, offset: 11413}, + pos: position{line: 471, col: 6, offset: 11435}, name: "ArithmeticExpr2", }, }, &labeledExpr{ - pos: position{line: 472, col: 3, offset: 11431}, + pos: position{line: 472, col: 3, offset: 11453}, label: "os", expr: &zeroOrMoreExpr{ - pos: position{line: 472, col: 6, offset: 11434}, + pos: position{line: 472, col: 6, offset: 11456}, expr: &actionExpr{ - pos: position{line: 472, col: 8, offset: 11436}, + pos: position{line: 472, col: 8, offset: 11458}, run: (*parser).callonArithmeticExpr37, expr: &seqExpr{ - pos: position{line: 472, col: 8, offset: 11436}, + pos: position{line: 472, col: 8, offset: 11458}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 472, col: 8, offset: 11436}, + pos: position{line: 472, col: 8, offset: 11458}, name: "_", }, &labeledExpr{ - pos: position{line: 472, col: 10, offset: 11438}, + pos: position{line: 472, col: 10, offset: 11460}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 472, col: 13, offset: 11441}, + pos: position{line: 472, col: 13, offset: 11463}, name: "ConcatOperator", }, }, &ruleRefExpr{ - pos: position{line: 472, col: 28, offset: 11456}, + pos: position{line: 472, col: 28, offset: 11478}, name: "_", }, &labeledExpr{ - pos: position{line: 472, col: 30, offset: 11458}, + pos: position{line: 472, col: 30, offset: 11480}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 472, col: 32, offset: 11460}, + pos: position{line: 472, col: 32, offset: 11482}, name: "ArithmeticExpr2", }, }, @@ -2298,53 +2298,53 @@ var g = &grammar{ }, { name: "ArithmeticExpr2", - pos: position{line: 476, col: 1, offset: 11628}, + pos: position{line: 476, col: 1, offset: 11650}, expr: &actionExpr{ - pos: position{line: 477, col: 4, offset: 11647}, + pos: position{line: 477, col: 4, offset: 11669}, run: (*parser).callonArithmeticExpr21, expr: &seqExpr{ - pos: position{line: 477, col: 4, offset: 11647}, + pos: position{line: 477, col: 4, offset: 11669}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 477, col: 4, offset: 11647}, + pos: position{line: 477, col: 4, offset: 11669}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 477, col: 6, offset: 11649}, + pos: position{line: 477, col: 6, offset: 11671}, name: "ArithmeticExpr1", }, }, &labeledExpr{ - pos: position{line: 478, col: 3, offset: 11667}, + pos: position{line: 478, col: 3, offset: 11689}, label: "os", expr: &zeroOrMoreExpr{ - pos: position{line: 478, col: 6, offset: 11670}, + pos: position{line: 478, col: 6, offset: 11692}, expr: &actionExpr{ - pos: position{line: 478, col: 8, offset: 11672}, + pos: position{line: 478, col: 8, offset: 11694}, run: (*parser).callonArithmeticExpr27, expr: &seqExpr{ - pos: position{line: 478, col: 8, offset: 11672}, + pos: position{line: 478, col: 8, offset: 11694}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 478, col: 8, offset: 11672}, + pos: position{line: 478, col: 8, offset: 11694}, name: "_", }, &labeledExpr{ - pos: position{line: 478, col: 10, offset: 11674}, + pos: position{line: 478, col: 10, offset: 11696}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 478, col: 13, offset: 11677}, + pos: position{line: 478, col: 13, offset: 11699}, name: "AddSubOperator", }, }, &ruleRefExpr{ - pos: position{line: 478, col: 28, offset: 11692}, + pos: position{line: 478, col: 28, offset: 11714}, name: "_", }, &labeledExpr{ - pos: position{line: 478, col: 30, offset: 11694}, + pos: position{line: 478, col: 30, offset: 11716}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 478, col: 32, offset: 11696}, + pos: position{line: 478, col: 32, offset: 11718}, name: "ArithmeticExpr1", }, }, @@ -2359,53 +2359,53 @@ var g = &grammar{ }, { name: "ArithmeticExpr1", - pos: position{line: 482, col: 1, offset: 11864}, + pos: position{line: 482, col: 1, offset: 11886}, expr: &actionExpr{ - pos: position{line: 483, col: 4, offset: 11883}, + pos: position{line: 483, col: 4, offset: 11905}, run: (*parser).callonArithmeticExpr11, expr: &seqExpr{ - pos: position{line: 483, col: 4, offset: 11883}, + pos: position{line: 483, col: 4, offset: 11905}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 483, col: 4, offset: 11883}, + pos: position{line: 483, col: 4, offset: 11905}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 483, col: 6, offset: 11885}, + pos: position{line: 483, col: 6, offset: 11907}, name: "Operand", }, }, &labeledExpr{ - pos: position{line: 484, col: 3, offset: 11895}, + pos: position{line: 484, col: 3, offset: 11917}, label: "os", expr: &zeroOrMoreExpr{ - pos: position{line: 484, col: 6, offset: 11898}, + pos: position{line: 484, col: 6, offset: 11920}, expr: &actionExpr{ - pos: position{line: 484, col: 8, offset: 11900}, + pos: position{line: 484, col: 8, offset: 11922}, run: (*parser).callonArithmeticExpr17, expr: &seqExpr{ - pos: position{line: 484, col: 8, offset: 11900}, + pos: position{line: 484, col: 8, offset: 11922}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 484, col: 8, offset: 11900}, + pos: position{line: 484, col: 8, offset: 11922}, name: "_", }, &labeledExpr{ - pos: position{line: 484, col: 10, offset: 11902}, + pos: position{line: 484, col: 10, offset: 11924}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 484, col: 13, offset: 11905}, + pos: position{line: 484, col: 13, offset: 11927}, name: "MulDivModOperator", }, }, &ruleRefExpr{ - pos: position{line: 484, col: 31, offset: 11923}, + pos: position{line: 484, col: 31, offset: 11945}, name: "_", }, &labeledExpr{ - pos: position{line: 484, col: 33, offset: 11925}, + pos: position{line: 484, col: 33, offset: 11947}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 484, col: 35, offset: 11927}, + pos: position{line: 484, col: 35, offset: 11949}, name: "Operand", }, }, @@ -2420,49 +2420,49 @@ var g = &grammar{ }, { name: "MultiExpr", - pos: position{line: 488, col: 1, offset: 12087}, + pos: position{line: 488, col: 1, offset: 12109}, expr: &actionExpr{ - pos: position{line: 489, col: 4, offset: 12100}, + pos: position{line: 489, col: 4, offset: 12122}, run: (*parser).callonMultiExpr1, expr: &seqExpr{ - pos: position{line: 489, col: 4, offset: 12100}, + pos: position{line: 489, col: 4, offset: 12122}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 489, col: 4, offset: 12100}, + pos: position{line: 489, col: 4, offset: 12122}, label: "x", expr: &ruleRefExpr{ - pos: position{line: 489, col: 6, offset: 12102}, + pos: position{line: 489, col: 6, offset: 12124}, name: "Expr", }, }, &labeledExpr{ - pos: position{line: 489, col: 11, offset: 12107}, + pos: position{line: 489, col: 11, offset: 12129}, label: "xs", expr: &zeroOrMoreExpr{ - pos: position{line: 489, col: 14, offset: 12110}, + pos: position{line: 489, col: 14, offset: 12132}, expr: &actionExpr{ - pos: position{line: 489, col: 16, offset: 12112}, + pos: position{line: 489, col: 16, offset: 12134}, run: (*parser).callonMultiExpr7, expr: &seqExpr{ - pos: position{line: 489, col: 16, offset: 12112}, + pos: position{line: 489, col: 16, offset: 12134}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 489, col: 16, offset: 12112}, + pos: position{line: 489, col: 16, offset: 12134}, name: "_", }, &ruleRefExpr{ - pos: position{line: 489, col: 18, offset: 12114}, + pos: position{line: 489, col: 18, offset: 12136}, name: "SeparatorToken", }, &ruleRefExpr{ - pos: position{line: 489, col: 33, offset: 12129}, + pos: position{line: 489, col: 33, offset: 12151}, name: "_", }, &labeledExpr{ - pos: position{line: 489, col: 35, offset: 12131}, + pos: position{line: 489, col: 35, offset: 12153}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 489, col: 37, offset: 12133}, + pos: position{line: 489, col: 37, offset: 12155}, name: "Expr", }, }, @@ -2477,49 +2477,49 @@ var g = &grammar{ }, { name: "MultiExprWithDefault", - pos: position{line: 492, col: 1, offset: 12221}, + pos: position{line: 492, col: 1, offset: 12243}, expr: &actionExpr{ - pos: position{line: 493, col: 4, offset: 12245}, + pos: position{line: 493, col: 4, offset: 12267}, run: (*parser).callonMultiExprWithDefault1, expr: &seqExpr{ - pos: position{line: 493, col: 4, offset: 12245}, + pos: position{line: 493, col: 4, offset: 12267}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 493, col: 4, offset: 12245}, + pos: position{line: 493, col: 4, offset: 12267}, label: "x", expr: &ruleRefExpr{ - pos: position{line: 493, col: 6, offset: 12247}, + pos: position{line: 493, col: 6, offset: 12269}, name: "ExprWithDefault", }, }, &labeledExpr{ - pos: position{line: 493, col: 22, offset: 12263}, + pos: position{line: 493, col: 22, offset: 12285}, label: "xs", expr: &zeroOrMoreExpr{ - pos: position{line: 493, col: 25, offset: 12266}, + pos: position{line: 493, col: 25, offset: 12288}, expr: &actionExpr{ - pos: position{line: 493, col: 27, offset: 12268}, + pos: position{line: 493, col: 27, offset: 12290}, run: (*parser).callonMultiExprWithDefault7, expr: &seqExpr{ - pos: position{line: 493, col: 27, offset: 12268}, + pos: position{line: 493, col: 27, offset: 12290}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 493, col: 27, offset: 12268}, + pos: position{line: 493, col: 27, offset: 12290}, name: "_", }, &ruleRefExpr{ - pos: position{line: 493, col: 29, offset: 12270}, + pos: position{line: 493, col: 29, offset: 12292}, name: "SeparatorToken", }, &ruleRefExpr{ - pos: position{line: 493, col: 44, offset: 12285}, + pos: position{line: 493, col: 44, offset: 12307}, name: "_", }, &labeledExpr{ - pos: position{line: 493, col: 46, offset: 12287}, + pos: position{line: 493, col: 46, offset: 12309}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 493, col: 48, offset: 12289}, + pos: position{line: 493, col: 48, offset: 12311}, name: "ExprWithDefault", }, }, @@ -2534,33 +2534,33 @@ var g = &grammar{ }, { name: "Operand", - pos: position{line: 496, col: 1, offset: 12388}, + pos: position{line: 496, col: 1, offset: 12410}, expr: &choiceExpr{ - pos: position{line: 497, col: 4, offset: 12399}, + pos: position{line: 497, col: 4, offset: 12421}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 497, col: 4, offset: 12399}, + pos: position{line: 497, col: 4, offset: 12421}, run: (*parser).callonOperand2, expr: &seqExpr{ - pos: position{line: 497, col: 4, offset: 12399}, + pos: position{line: 497, col: 4, offset: 12421}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 497, col: 4, offset: 12399}, + pos: position{line: 497, col: 4, offset: 12421}, label: "op", expr: &ruleRefExpr{ - pos: position{line: 497, col: 7, offset: 12402}, + pos: position{line: 497, col: 7, offset: 12424}, name: "UnaryOperator", }, }, &ruleRefExpr{ - pos: position{line: 497, col: 21, offset: 12416}, + pos: position{line: 497, col: 21, offset: 12438}, name: "_", }, &labeledExpr{ - pos: position{line: 497, col: 23, offset: 12418}, + pos: position{line: 497, col: 23, offset: 12440}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 497, col: 25, offset: 12420}, + pos: position{line: 497, col: 25, offset: 12442}, name: "Operand", }, }, @@ -2568,34 +2568,34 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 499, col: 4, offset: 12503}, + pos: position{line: 499, col: 4, offset: 12525}, run: (*parser).callonOperand9, expr: &seqExpr{ - pos: position{line: 499, col: 4, offset: 12503}, + pos: position{line: 499, col: 4, offset: 12525}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 499, col: 4, offset: 12503}, + pos: position{line: 499, col: 4, offset: 12525}, val: "(", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 499, col: 8, offset: 12507}, + pos: position{line: 499, col: 8, offset: 12529}, name: "_", }, &labeledExpr{ - pos: position{line: 499, col: 10, offset: 12509}, + pos: position{line: 499, col: 10, offset: 12531}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 499, col: 12, offset: 12511}, + pos: position{line: 499, col: 12, offset: 12533}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 499, col: 17, offset: 12516}, + pos: position{line: 499, col: 17, offset: 12538}, name: "_", }, &litMatcher{ - pos: position{line: 499, col: 19, offset: 12518}, + pos: position{line: 499, col: 19, offset: 12540}, val: ")", ignoreCase: false, }, @@ -2603,23 +2603,23 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 507, col: 4, offset: 12709}, + pos: position{line: 507, col: 4, offset: 12731}, run: (*parser).callonOperand17, expr: &seqExpr{ - pos: position{line: 507, col: 4, offset: 12709}, + pos: position{line: 507, col: 4, offset: 12731}, exprs: []interface{}{ &andExpr{ - pos: position{line: 507, col: 4, offset: 12709}, + pos: position{line: 507, col: 4, offset: 12731}, expr: &ruleRefExpr{ - pos: position{line: 507, col: 6, offset: 12711}, + pos: position{line: 507, col: 6, offset: 12733}, name: "CastToken", }, }, &labeledExpr{ - pos: position{line: 507, col: 17, offset: 12722}, + pos: position{line: 507, col: 17, offset: 12744}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 507, col: 19, offset: 12724}, + pos: position{line: 507, col: 19, offset: 12746}, name: "TypeCast", }, }, @@ -2627,15 +2627,15 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 508, col: 4, offset: 12754}, + pos: position{line: 508, col: 4, offset: 12776}, name: "FunctionCall", }, &ruleRefExpr{ - pos: position{line: 509, col: 4, offset: 12770}, + pos: position{line: 509, col: 4, offset: 12792}, name: "Value", }, &ruleRefExpr{ - pos: position{line: 510, col: 4, offset: 12779}, + pos: position{line: 510, col: 4, offset: 12801}, name: "Identifier", }, }, @@ -2643,64 +2643,64 @@ var g = &grammar{ }, { name: "TypeCast", - pos: position{line: 512, col: 1, offset: 12791}, + pos: position{line: 512, col: 1, offset: 12813}, expr: &actionExpr{ - pos: position{line: 513, col: 4, offset: 12803}, + pos: position{line: 513, col: 4, offset: 12825}, run: (*parser).callonTypeCast1, expr: &seqExpr{ - pos: position{line: 513, col: 4, offset: 12803}, + pos: position{line: 513, col: 4, offset: 12825}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 513, col: 4, offset: 12803}, + pos: position{line: 513, col: 4, offset: 12825}, name: "CastToken", }, &ruleRefExpr{ - pos: position{line: 513, col: 14, offset: 12813}, + pos: position{line: 513, col: 14, offset: 12835}, name: "_", }, &litMatcher{ - pos: position{line: 513, col: 16, offset: 12815}, + pos: position{line: 513, col: 16, offset: 12837}, val: "(", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 513, col: 20, offset: 12819}, + pos: position{line: 513, col: 20, offset: 12841}, name: "_", }, &labeledExpr{ - pos: position{line: 513, col: 22, offset: 12821}, + pos: position{line: 513, col: 22, offset: 12843}, label: "o", expr: &ruleRefExpr{ - pos: position{line: 513, col: 24, offset: 12823}, + pos: position{line: 513, col: 24, offset: 12845}, name: "Expr", }, }, &ruleRefExpr{ - pos: position{line: 513, col: 29, offset: 12828}, + pos: position{line: 513, col: 29, offset: 12850}, name: "_", }, &ruleRefExpr{ - pos: position{line: 513, col: 31, offset: 12830}, + pos: position{line: 513, col: 31, offset: 12852}, name: "AsToken", }, &ruleRefExpr{ - pos: position{line: 513, col: 39, offset: 12838}, + pos: position{line: 513, col: 39, offset: 12860}, name: "_", }, &labeledExpr{ - pos: position{line: 513, col: 41, offset: 12840}, + pos: position{line: 513, col: 41, offset: 12862}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 513, col: 43, offset: 12842}, + pos: position{line: 513, col: 43, offset: 12864}, name: "DataType", }, }, &ruleRefExpr{ - pos: position{line: 513, col: 52, offset: 12851}, + pos: position{line: 513, col: 52, offset: 12873}, name: "_", }, &litMatcher{ - pos: position{line: 513, col: 54, offset: 12853}, + pos: position{line: 513, col: 54, offset: 12875}, val: ")", ignoreCase: false, }, @@ -2710,51 +2710,51 @@ var g = &grammar{ }, { name: "FunctionCall", - pos: position{line: 523, col: 1, offset: 13062}, + pos: position{line: 523, col: 1, offset: 13084}, expr: &actionExpr{ - pos: position{line: 524, col: 4, offset: 13078}, + pos: position{line: 524, col: 4, offset: 13100}, run: (*parser).callonFunctionCall1, expr: &seqExpr{ - pos: position{line: 524, col: 4, offset: 13078}, + pos: position{line: 524, col: 4, offset: 13100}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 524, col: 4, offset: 13078}, + pos: position{line: 524, col: 4, offset: 13100}, label: "i", expr: &ruleRefExpr{ - pos: position{line: 524, col: 6, offset: 13080}, + pos: position{line: 524, col: 6, offset: 13102}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 524, col: 17, offset: 13091}, + pos: position{line: 524, col: 17, offset: 13113}, name: "_", }, &litMatcher{ - pos: position{line: 524, col: 19, offset: 13093}, + pos: position{line: 524, col: 19, offset: 13115}, val: "(", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 524, col: 23, offset: 13097}, + pos: position{line: 524, col: 23, offset: 13119}, name: "_", }, &labeledExpr{ - pos: position{line: 524, col: 25, offset: 13099}, + pos: position{line: 524, col: 25, offset: 13121}, label: "r", expr: &zeroOrOneExpr{ - pos: position{line: 524, col: 27, offset: 13101}, + pos: position{line: 524, col: 27, offset: 13123}, expr: &ruleRefExpr{ - pos: position{line: 524, col: 27, offset: 13101}, + pos: position{line: 524, col: 27, offset: 13123}, name: "FunctionArgs", }, }, }, &ruleRefExpr{ - pos: position{line: 524, col: 41, offset: 13115}, + pos: position{line: 524, col: 41, offset: 13137}, name: "_", }, &litMatcher{ - pos: position{line: 524, col: 43, offset: 13117}, + pos: position{line: 524, col: 43, offset: 13139}, val: ")", ignoreCase: false, }, @@ -2764,24 +2764,24 @@ var g = &grammar{ }, { name: "FunctionArgs", - pos: position{line: 536, col: 1, offset: 13346}, + pos: position{line: 536, col: 1, offset: 13368}, expr: &choiceExpr{ - pos: position{line: 537, col: 4, offset: 13362}, + pos: position{line: 537, col: 4, offset: 13384}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 537, col: 4, offset: 13362}, + pos: position{line: 537, col: 4, offset: 13384}, run: (*parser).callonFunctionArgs2, expr: &labeledExpr{ - pos: position{line: 537, col: 4, offset: 13362}, + pos: position{line: 537, col: 4, offset: 13384}, label: "a", expr: &ruleRefExpr{ - pos: position{line: 537, col: 6, offset: 13364}, + pos: position{line: 537, col: 6, offset: 13386}, name: "AnyLiteral", }, }, }, &ruleRefExpr{ - pos: position{line: 538, col: 4, offset: 13432}, + pos: position{line: 538, col: 4, offset: 13454}, name: "MultiExpr", }, }, @@ -2789,39 +2789,39 @@ var g = &grammar{ }, { name: "Assignment", - pos: position{line: 540, col: 1, offset: 13443}, + pos: position{line: 540, col: 1, offset: 13465}, expr: &actionExpr{ - pos: position{line: 541, col: 4, offset: 13457}, + pos: position{line: 541, col: 4, offset: 13479}, run: (*parser).callonAssignment1, expr: &seqExpr{ - pos: position{line: 541, col: 4, offset: 13457}, + pos: position{line: 541, col: 4, offset: 13479}, exprs: []interface{}{ &labeledExpr{ - pos: position{line: 541, col: 4, offset: 13457}, + pos: position{line: 541, col: 4, offset: 13479}, label: "i", expr: &ruleRefExpr{ - pos: position{line: 541, col: 6, offset: 13459}, + pos: position{line: 541, col: 6, offset: 13481}, name: "Identifier", }, }, &ruleRefExpr{ - pos: position{line: 541, col: 17, offset: 13470}, + pos: position{line: 541, col: 17, offset: 13492}, name: "_", }, &litMatcher{ - pos: position{line: 541, col: 19, offset: 13472}, + pos: position{line: 541, col: 19, offset: 13494}, val: "=", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 541, col: 23, offset: 13476}, + pos: position{line: 541, col: 23, offset: 13498}, name: "_", }, &labeledExpr{ - pos: position{line: 541, col: 25, offset: 13478}, + pos: position{line: 541, col: 25, offset: 13500}, label: "e", expr: &ruleRefExpr{ - pos: position{line: 541, col: 27, offset: 13480}, + pos: position{line: 541, col: 27, offset: 13502}, name: "ExprWithDefault", }, }, @@ -2831,91 +2831,91 @@ var g = &grammar{ }, { name: "UnaryOperator", - pos: position{line: 552, col: 1, offset: 13716}, + pos: position{line: 552, col: 1, offset: 13738}, expr: &ruleRefExpr{ - pos: position{line: 553, col: 4, offset: 13733}, + pos: position{line: 553, col: 4, offset: 13755}, name: "SignOperator", }, }, { name: "SignOperator", - pos: position{line: 555, col: 1, offset: 13747}, + pos: position{line: 555, col: 1, offset: 13769}, expr: &actionExpr{ - pos: position{line: 556, col: 4, offset: 13763}, + pos: position{line: 556, col: 4, offset: 13785}, run: (*parser).callonSignOperator1, expr: &ruleRefExpr{ - pos: position{line: 556, col: 4, offset: 13763}, + pos: position{line: 556, col: 4, offset: 13785}, name: "Sign", }, }, }, { name: "NotOperator", - pos: position{line: 572, col: 1, offset: 14068}, + pos: position{line: 572, col: 1, offset: 14090}, expr: &actionExpr{ - pos: position{line: 573, col: 4, offset: 14083}, + pos: position{line: 573, col: 4, offset: 14105}, run: (*parser).callonNotOperator1, expr: &ruleRefExpr{ - pos: position{line: 573, col: 4, offset: 14083}, + pos: position{line: 573, col: 4, offset: 14105}, name: "NotToken", }, }, }, { name: "AndOperator", - pos: position{line: 581, col: 1, offset: 14224}, + pos: position{line: 581, col: 1, offset: 14246}, expr: &actionExpr{ - pos: position{line: 582, col: 4, offset: 14239}, + pos: position{line: 582, col: 4, offset: 14261}, run: (*parser).callonAndOperator1, expr: &ruleRefExpr{ - pos: position{line: 582, col: 4, offset: 14239}, + pos: position{line: 582, col: 4, offset: 14261}, name: "AndToken", }, }, }, { name: "OrOperator", - pos: position{line: 590, col: 1, offset: 14380}, + pos: position{line: 590, col: 1, offset: 14402}, expr: &actionExpr{ - pos: position{line: 591, col: 4, offset: 14394}, + pos: position{line: 591, col: 4, offset: 14416}, run: (*parser).callonOrOperator1, expr: &ruleRefExpr{ - pos: position{line: 591, col: 4, offset: 14394}, + pos: position{line: 591, col: 4, offset: 14416}, name: "OrToken", }, }, }, { name: "CmpOperator", - pos: position{line: 599, col: 1, offset: 14533}, + pos: position{line: 599, col: 1, offset: 14555}, expr: &actionExpr{ - pos: position{line: 600, col: 4, offset: 14548}, + pos: position{line: 600, col: 4, offset: 14570}, run: (*parser).callonCmpOperator1, expr: &choiceExpr{ - pos: position{line: 600, col: 6, offset: 14550}, + pos: position{line: 600, col: 6, offset: 14572}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 600, col: 6, offset: 14550}, + pos: position{line: 600, col: 6, offset: 14572}, val: "<=", ignoreCase: false, }, &litMatcher{ - pos: position{line: 600, col: 13, offset: 14557}, + pos: position{line: 600, col: 13, offset: 14579}, val: ">=", ignoreCase: false, }, &litMatcher{ - pos: position{line: 600, col: 20, offset: 14564}, + pos: position{line: 600, col: 20, offset: 14586}, val: "<>", ignoreCase: false, }, &litMatcher{ - pos: position{line: 600, col: 27, offset: 14571}, + pos: position{line: 600, col: 27, offset: 14593}, val: "!=", ignoreCase: false, }, &charClassMatcher{ - pos: position{line: 600, col: 34, offset: 14578}, + pos: position{line: 600, col: 34, offset: 14600}, val: "[<>=]", chars: []rune{'<', '>', '='}, ignoreCase: false, @@ -2927,12 +2927,12 @@ var g = &grammar{ }, { name: "ConcatOperator", - pos: position{line: 626, col: 1, offset: 15157}, + pos: position{line: 626, col: 1, offset: 15179}, expr: &actionExpr{ - pos: position{line: 627, col: 4, offset: 15175}, + pos: position{line: 627, col: 4, offset: 15197}, run: (*parser).callonConcatOperator1, expr: &litMatcher{ - pos: position{line: 627, col: 4, offset: 15175}, + pos: position{line: 627, col: 4, offset: 15197}, val: "||", ignoreCase: false, }, @@ -2940,12 +2940,12 @@ var g = &grammar{ }, { name: "AddSubOperator", - pos: position{line: 635, col: 1, offset: 15315}, + pos: position{line: 635, col: 1, offset: 15337}, expr: &actionExpr{ - pos: position{line: 636, col: 4, offset: 15333}, + pos: position{line: 636, col: 4, offset: 15355}, run: (*parser).callonAddSubOperator1, expr: &charClassMatcher{ - pos: position{line: 636, col: 4, offset: 15333}, + pos: position{line: 636, col: 4, offset: 15355}, val: "[+-]", chars: []rune{'+', '-'}, ignoreCase: false, @@ -2955,12 +2955,12 @@ var g = &grammar{ }, { name: "MulDivModOperator", - pos: position{line: 652, col: 1, offset: 15667}, + pos: position{line: 652, col: 1, offset: 15689}, expr: &actionExpr{ - pos: position{line: 653, col: 4, offset: 15688}, + pos: position{line: 653, col: 4, offset: 15710}, run: (*parser).callonMulDivModOperator1, expr: &charClassMatcher{ - pos: position{line: 653, col: 4, offset: 15688}, + pos: position{line: 653, col: 4, offset: 15710}, val: "[*/%]", chars: []rune{'*', '/', '%'}, ignoreCase: false, @@ -2970,40 +2970,40 @@ var g = &grammar{ }, { name: "DataType", - pos: position{line: 672, col: 1, offset: 16088}, + pos: position{line: 672, col: 1, offset: 16110}, expr: &choiceExpr{ - pos: position{line: 673, col: 4, offset: 16100}, + pos: position{line: 673, col: 4, offset: 16122}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 673, col: 4, offset: 16100}, + pos: position{line: 673, col: 4, offset: 16122}, name: "UIntType", }, &ruleRefExpr{ - pos: position{line: 674, col: 4, offset: 16112}, + pos: position{line: 674, col: 4, offset: 16134}, name: "IntType", }, &ruleRefExpr{ - pos: position{line: 675, col: 4, offset: 16123}, + pos: position{line: 675, col: 4, offset: 16145}, name: "UFixedType", }, &ruleRefExpr{ - pos: position{line: 676, col: 4, offset: 16137}, + pos: position{line: 676, col: 4, offset: 16159}, name: "FixedType", }, &ruleRefExpr{ - pos: position{line: 677, col: 4, offset: 16150}, + pos: position{line: 677, col: 4, offset: 16172}, name: "FixedBytesType", }, &ruleRefExpr{ - pos: position{line: 678, col: 4, offset: 16168}, + pos: position{line: 678, col: 4, offset: 16190}, name: "DynamicBytesType", }, &ruleRefExpr{ - pos: position{line: 679, col: 4, offset: 16188}, + pos: position{line: 679, col: 4, offset: 16210}, name: "BoolType", }, &ruleRefExpr{ - pos: position{line: 680, col: 4, offset: 16200}, + pos: position{line: 680, col: 4, offset: 16222}, name: "AddressType", }, }, @@ -3011,30 +3011,30 @@ var g = &grammar{ }, { name: "UIntType", - pos: position{line: 682, col: 1, offset: 16213}, + pos: position{line: 682, col: 1, offset: 16235}, expr: &actionExpr{ - pos: position{line: 683, col: 4, offset: 16225}, + pos: position{line: 683, col: 4, offset: 16247}, run: (*parser).callonUIntType1, expr: &seqExpr{ - pos: position{line: 683, col: 4, offset: 16225}, + pos: position{line: 683, col: 4, offset: 16247}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 683, col: 4, offset: 16225}, + pos: position{line: 683, col: 4, offset: 16247}, val: "uint", ignoreCase: true, }, &labeledExpr{ - pos: position{line: 683, col: 12, offset: 16233}, + pos: position{line: 683, col: 12, offset: 16255}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 683, col: 14, offset: 16235}, + pos: position{line: 683, col: 14, offset: 16257}, name: "NonZeroLeadingInteger", }, }, ¬Expr{ - pos: position{line: 683, col: 36, offset: 16257}, + pos: position{line: 683, col: 36, offset: 16279}, expr: &ruleRefExpr{ - pos: position{line: 683, col: 37, offset: 16258}, + pos: position{line: 683, col: 37, offset: 16280}, name: "NormalIdentifierRest", }, }, @@ -3044,30 +3044,30 @@ var g = &grammar{ }, { name: "IntType", - pos: position{line: 705, col: 1, offset: 16782}, + pos: position{line: 705, col: 1, offset: 16792}, expr: &actionExpr{ - pos: position{line: 706, col: 4, offset: 16793}, + pos: position{line: 706, col: 4, offset: 16803}, run: (*parser).callonIntType1, expr: &seqExpr{ - pos: position{line: 706, col: 4, offset: 16793}, + pos: position{line: 706, col: 4, offset: 16803}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 706, col: 4, offset: 16793}, + pos: position{line: 706, col: 4, offset: 16803}, val: "int", ignoreCase: true, }, &labeledExpr{ - pos: position{line: 706, col: 11, offset: 16800}, + pos: position{line: 706, col: 11, offset: 16810}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 706, col: 13, offset: 16802}, + pos: position{line: 706, col: 13, offset: 16812}, name: "NonZeroLeadingInteger", }, }, ¬Expr{ - pos: position{line: 706, col: 35, offset: 16824}, + pos: position{line: 706, col: 35, offset: 16834}, expr: &ruleRefExpr{ - pos: position{line: 706, col: 36, offset: 16825}, + pos: position{line: 706, col: 36, offset: 16835}, name: "NormalIdentifierRest", }, }, @@ -3077,43 +3077,43 @@ var g = &grammar{ }, { name: "UFixedType", - pos: position{line: 728, col: 1, offset: 17349}, + pos: position{line: 728, col: 1, offset: 17347}, expr: &actionExpr{ - pos: position{line: 729, col: 4, offset: 17363}, + pos: position{line: 729, col: 4, offset: 17361}, run: (*parser).callonUFixedType1, expr: &seqExpr{ - pos: position{line: 729, col: 4, offset: 17363}, + pos: position{line: 729, col: 4, offset: 17361}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 729, col: 4, offset: 17363}, + pos: position{line: 729, col: 4, offset: 17361}, val: "ufixed", ignoreCase: true, }, &labeledExpr{ - pos: position{line: 729, col: 14, offset: 17373}, + pos: position{line: 729, col: 14, offset: 17371}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 729, col: 16, offset: 17375}, + pos: position{line: 729, col: 16, offset: 17373}, name: "NonZeroLeadingInteger", }, }, &litMatcher{ - pos: position{line: 729, col: 38, offset: 17397}, + pos: position{line: 729, col: 38, offset: 17395}, val: "x", ignoreCase: true, }, &labeledExpr{ - pos: position{line: 729, col: 43, offset: 17402}, + pos: position{line: 729, col: 43, offset: 17400}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 729, col: 45, offset: 17404}, + pos: position{line: 729, col: 45, offset: 17402}, name: "NonZeroLeadingInteger", }, }, ¬Expr{ - pos: position{line: 729, col: 67, offset: 17426}, + pos: position{line: 729, col: 67, offset: 17424}, expr: &ruleRefExpr{ - pos: position{line: 729, col: 68, offset: 17427}, + pos: position{line: 729, col: 68, offset: 17425}, name: "NormalIdentifierRest", }, }, @@ -3123,43 +3123,43 @@ var g = &grammar{ }, { name: "FixedType", - pos: position{line: 764, col: 1, offset: 18346}, + pos: position{line: 764, col: 1, offset: 18320}, expr: &actionExpr{ - pos: position{line: 765, col: 4, offset: 18359}, + pos: position{line: 765, col: 4, offset: 18333}, run: (*parser).callonFixedType1, expr: &seqExpr{ - pos: position{line: 765, col: 4, offset: 18359}, + pos: position{line: 765, col: 4, offset: 18333}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 765, col: 4, offset: 18359}, + pos: position{line: 765, col: 4, offset: 18333}, val: "fixed", ignoreCase: true, }, &labeledExpr{ - pos: position{line: 765, col: 13, offset: 18368}, + pos: position{line: 765, col: 13, offset: 18342}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 765, col: 15, offset: 18370}, + pos: position{line: 765, col: 15, offset: 18344}, name: "NonZeroLeadingInteger", }, }, &litMatcher{ - pos: position{line: 765, col: 37, offset: 18392}, + pos: position{line: 765, col: 37, offset: 18366}, val: "x", ignoreCase: true, }, &labeledExpr{ - pos: position{line: 765, col: 42, offset: 18397}, + pos: position{line: 765, col: 42, offset: 18371}, label: "t", expr: &ruleRefExpr{ - pos: position{line: 765, col: 44, offset: 18399}, + pos: position{line: 765, col: 44, offset: 18373}, name: "NonZeroLeadingInteger", }, }, ¬Expr{ - pos: position{line: 765, col: 66, offset: 18421}, + pos: position{line: 765, col: 66, offset: 18395}, expr: &ruleRefExpr{ - pos: position{line: 765, col: 67, offset: 18422}, + pos: position{line: 765, col: 67, offset: 18396}, name: "NormalIdentifierRest", }, }, @@ -3169,33 +3169,33 @@ var g = &grammar{ }, { name: "FixedBytesType", - pos: position{line: 800, col: 1, offset: 19340}, + pos: position{line: 800, col: 1, offset: 19290}, expr: &choiceExpr{ - pos: position{line: 801, col: 4, offset: 19358}, + pos: position{line: 801, col: 4, offset: 19308}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 801, col: 4, offset: 19358}, + pos: position{line: 801, col: 4, offset: 19308}, run: (*parser).callonFixedBytesType2, expr: &seqExpr{ - pos: position{line: 801, col: 4, offset: 19358}, + pos: position{line: 801, col: 4, offset: 19308}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 801, col: 4, offset: 19358}, + pos: position{line: 801, col: 4, offset: 19308}, val: "bytes", ignoreCase: true, }, &labeledExpr{ - pos: position{line: 801, col: 13, offset: 19367}, + pos: position{line: 801, col: 13, offset: 19317}, label: "s", expr: &ruleRefExpr{ - pos: position{line: 801, col: 15, offset: 19369}, + pos: position{line: 801, col: 15, offset: 19319}, name: "NonZeroLeadingInteger", }, }, ¬Expr{ - pos: position{line: 801, col: 37, offset: 19391}, + pos: position{line: 801, col: 37, offset: 19341}, expr: &ruleRefExpr{ - pos: position{line: 801, col: 38, offset: 19392}, + pos: position{line: 801, col: 38, offset: 19342}, name: "NormalIdentifierRest", }, }, @@ -3203,20 +3203,20 @@ var g = &grammar{ }, }, &actionExpr{ - pos: position{line: 821, col: 4, offset: 19909}, + pos: position{line: 821, col: 4, offset: 19847}, run: (*parser).callonFixedBytesType9, expr: &seqExpr{ - pos: position{line: 821, col: 4, offset: 19909}, + pos: position{line: 821, col: 4, offset: 19847}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 821, col: 4, offset: 19909}, + pos: position{line: 821, col: 4, offset: 19847}, val: "byte", ignoreCase: true, }, ¬Expr{ - pos: position{line: 821, col: 12, offset: 19917}, + pos: position{line: 821, col: 12, offset: 19855}, expr: &ruleRefExpr{ - pos: position{line: 821, col: 13, offset: 19918}, + pos: position{line: 821, col: 13, offset: 19856}, name: "NormalIdentifierRest", }, }, @@ -3228,59 +3228,59 @@ var g = &grammar{ }, { name: "DynamicBytesType", - pos: position{line: 830, col: 1, offset: 20089}, + pos: position{line: 830, col: 1, offset: 20027}, expr: &actionExpr{ - pos: position{line: 831, col: 4, offset: 20109}, + pos: position{line: 831, col: 4, offset: 20047}, run: (*parser).callonDynamicBytesType1, expr: &choiceExpr{ - pos: position{line: 831, col: 6, offset: 20111}, + pos: position{line: 831, col: 6, offset: 20049}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 831, col: 6, offset: 20111}, + pos: position{line: 831, col: 6, offset: 20049}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 831, col: 6, offset: 20111}, + pos: position{line: 831, col: 6, offset: 20049}, val: "bytes", ignoreCase: true, }, ¬Expr{ - pos: position{line: 831, col: 15, offset: 20120}, + pos: position{line: 831, col: 15, offset: 20058}, expr: &ruleRefExpr{ - pos: position{line: 831, col: 16, offset: 20121}, + pos: position{line: 831, col: 16, offset: 20059}, name: "NormalIdentifierRest", }, }, }, }, &seqExpr{ - pos: position{line: 832, col: 5, offset: 20146}, + pos: position{line: 832, col: 5, offset: 20084}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 832, col: 5, offset: 20146}, + pos: position{line: 832, col: 5, offset: 20084}, val: "string", ignoreCase: true, }, ¬Expr{ - pos: position{line: 832, col: 15, offset: 20156}, + pos: position{line: 832, col: 15, offset: 20094}, expr: &ruleRefExpr{ - pos: position{line: 832, col: 16, offset: 20157}, + pos: position{line: 832, col: 16, offset: 20095}, name: "NormalIdentifierRest", }, }, }, }, &seqExpr{ - pos: position{line: 833, col: 5, offset: 20182}, + pos: position{line: 833, col: 5, offset: 20120}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 833, col: 5, offset: 20182}, + pos: position{line: 833, col: 5, offset: 20120}, val: "text", ignoreCase: true, }, ¬Expr{ - pos: position{line: 833, col: 13, offset: 20190}, + pos: position{line: 833, col: 13, offset: 20128}, expr: &ruleRefExpr{ - pos: position{line: 833, col: 14, offset: 20191}, + pos: position{line: 833, col: 14, offset: 20129}, name: "NormalIdentifierRest", }, }, @@ -3292,22 +3292,22 @@ var g = &grammar{ }, { name: "AddressType", - pos: position{line: 842, col: 1, offset: 20352}, + pos: position{line: 842, col: 1, offset: 20290}, expr: &actionExpr{ - pos: position{line: 843, col: 4, offset: 20367}, + pos: position{line: 843, col: 4, offset: 20305}, run: (*parser).callonAddressType1, expr: &seqExpr{ - pos: position{line: 843, col: 4, offset: 20367}, + pos: position{line: 843, col: 4, offset: 20305}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 843, col: 4, offset: 20367}, + pos: position{line: 843, col: 4, offset: 20305}, val: "address", ignoreCase: true, }, ¬Expr{ - pos: position{line: 843, col: 15, offset: 20378}, + pos: position{line: 843, col: 15, offset: 20316}, expr: &ruleRefExpr{ - pos: position{line: 843, col: 16, offset: 20379}, + pos: position{line: 843, col: 16, offset: 20317}, name: "NormalIdentifierRest", }, }, @@ -3317,42 +3317,42 @@ var g = &grammar{ }, { name: "BoolType", - pos: position{line: 851, col: 1, offset: 20532}, + pos: position{line: 851, col: 1, offset: 20470}, expr: &actionExpr{ - pos: position{line: 852, col: 4, offset: 20544}, + pos: position{line: 852, col: 4, offset: 20482}, run: (*parser).callonBoolType1, expr: &choiceExpr{ - pos: position{line: 852, col: 6, offset: 20546}, + pos: position{line: 852, col: 6, offset: 20484}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 852, col: 6, offset: 20546}, + pos: position{line: 852, col: 6, offset: 20484}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 852, col: 6, offset: 20546}, + pos: position{line: 852, col: 6, offset: 20484}, val: "bool", ignoreCase: true, }, ¬Expr{ - pos: position{line: 852, col: 14, offset: 20554}, + pos: position{line: 852, col: 14, offset: 20492}, expr: &ruleRefExpr{ - pos: position{line: 852, col: 15, offset: 20555}, + pos: position{line: 852, col: 15, offset: 20493}, name: "NormalIdentifierRest", }, }, }, }, &seqExpr{ - pos: position{line: 853, col: 5, offset: 20580}, + pos: position{line: 853, col: 5, offset: 20518}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 853, col: 5, offset: 20580}, + pos: position{line: 853, col: 5, offset: 20518}, val: "boolean", ignoreCase: true, }, ¬Expr{ - pos: position{line: 853, col: 16, offset: 20591}, + pos: position{line: 853, col: 16, offset: 20529}, expr: &ruleRefExpr{ - pos: position{line: 853, col: 17, offset: 20592}, + pos: position{line: 853, col: 17, offset: 20530}, name: "NormalIdentifierRest", }, }, @@ -3364,24 +3364,24 @@ var g = &grammar{ }, { name: "Value", - pos: position{line: 863, col: 1, offset: 20758}, + pos: position{line: 863, col: 1, offset: 20696}, expr: &choiceExpr{ - pos: position{line: 864, col: 4, offset: 20767}, + pos: position{line: 864, col: 4, offset: 20705}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 864, col: 4, offset: 20767}, + pos: position{line: 864, col: 4, offset: 20705}, name: "NumberLiteral", }, &ruleRefExpr{ - pos: position{line: 865, col: 4, offset: 20784}, + pos: position{line: 865, col: 4, offset: 20722}, name: "StringLiteral", }, &ruleRefExpr{ - pos: position{line: 866, col: 4, offset: 20801}, + pos: position{line: 866, col: 4, offset: 20739}, name: "BoolLiteral", }, &ruleRefExpr{ - pos: position{line: 867, col: 4, offset: 20816}, + pos: position{line: 867, col: 4, offset: 20754}, name: "NullLiteral", }, }, @@ -3389,46 +3389,46 @@ var g = &grammar{ }, { name: "AnyLiteral", - pos: position{line: 869, col: 1, offset: 20829}, + pos: position{line: 869, col: 1, offset: 20767}, expr: &actionExpr{ - pos: position{line: 870, col: 4, offset: 20843}, + pos: position{line: 870, col: 4, offset: 20781}, run: (*parser).callonAnyLiteral1, expr: &ruleRefExpr{ - pos: position{line: 870, col: 4, offset: 20843}, + pos: position{line: 870, col: 4, offset: 20781}, name: "AnyToken", }, }, }, { name: "DefaultLiteral", - pos: position{line: 878, col: 1, offset: 20981}, + pos: position{line: 878, col: 1, offset: 20919}, expr: &actionExpr{ - pos: position{line: 879, col: 4, offset: 20999}, + pos: position{line: 879, col: 4, offset: 20937}, run: (*parser).callonDefaultLiteral1, expr: &ruleRefExpr{ - pos: position{line: 879, col: 4, offset: 20999}, + pos: position{line: 879, col: 4, offset: 20937}, name: "DefaultToken", }, }, }, { name: "BoolLiteral", - pos: position{line: 887, col: 1, offset: 21145}, + pos: position{line: 887, col: 1, offset: 21083}, expr: &actionExpr{ - pos: position{line: 888, col: 4, offset: 21160}, + pos: position{line: 888, col: 4, offset: 21098}, run: (*parser).callonBoolLiteral1, expr: &labeledExpr{ - pos: position{line: 888, col: 4, offset: 21160}, + pos: position{line: 888, col: 4, offset: 21098}, label: "b", expr: &choiceExpr{ - pos: position{line: 888, col: 8, offset: 21164}, + pos: position{line: 888, col: 8, offset: 21102}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 888, col: 8, offset: 21164}, + pos: position{line: 888, col: 8, offset: 21102}, name: "TrueToken", }, &ruleRefExpr{ - pos: position{line: 888, col: 20, offset: 21176}, + pos: position{line: 888, col: 20, offset: 21114}, name: "FalseToken", }, }, @@ -3438,40 +3438,40 @@ var g = &grammar{ }, { name: "NullLiteral", - pos: position{line: 897, col: 1, offset: 21358}, + pos: position{line: 897, col: 1, offset: 21296}, expr: &actionExpr{ - pos: position{line: 898, col: 4, offset: 21373}, + pos: position{line: 898, col: 4, offset: 21311}, run: (*parser).callonNullLiteral1, expr: &ruleRefExpr{ - pos: position{line: 898, col: 4, offset: 21373}, + pos: position{line: 898, col: 4, offset: 21311}, name: "NullToken", }, }, }, { name: "NumberLiteral", - pos: position{line: 906, col: 1, offset: 21513}, + pos: position{line: 906, col: 1, offset: 21451}, expr: &choiceExpr{ - pos: position{line: 907, col: 4, offset: 21530}, + pos: position{line: 907, col: 4, offset: 21468}, alternatives: []interface{}{ &actionExpr{ - pos: position{line: 907, col: 4, offset: 21530}, + pos: position{line: 907, col: 4, offset: 21468}, run: (*parser).callonNumberLiteral2, expr: &seqExpr{ - pos: position{line: 907, col: 4, offset: 21530}, + pos: position{line: 907, col: 4, offset: 21468}, exprs: []interface{}{ &andExpr{ - pos: position{line: 907, col: 4, offset: 21530}, + pos: position{line: 907, col: 4, offset: 21468}, expr: &seqExpr{ - pos: position{line: 907, col: 6, offset: 21532}, + pos: position{line: 907, col: 6, offset: 21470}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 907, col: 6, offset: 21532}, + pos: position{line: 907, col: 6, offset: 21470}, val: "0", ignoreCase: false, }, &litMatcher{ - pos: position{line: 907, col: 10, offset: 21536}, + pos: position{line: 907, col: 10, offset: 21474}, val: "x", ignoreCase: true, }, @@ -3479,10 +3479,10 @@ var g = &grammar{ }, }, &labeledExpr{ - pos: position{line: 907, col: 16, offset: 21542}, + pos: position{line: 907, col: 16, offset: 21480}, label: "h", expr: &ruleRefExpr{ - pos: position{line: 907, col: 18, offset: 21544}, + pos: position{line: 907, col: 18, offset: 21482}, name: "Hex", }, }, @@ -3490,7 +3490,7 @@ var g = &grammar{ }, }, &ruleRefExpr{ - pos: position{line: 908, col: 4, offset: 21569}, + pos: position{line: 908, col: 4, offset: 21507}, name: "Decimal", }, }, @@ -3498,9 +3498,9 @@ var g = &grammar{ }, { name: "Sign", - pos: position{line: 910, col: 1, offset: 21578}, + pos: position{line: 910, col: 1, offset: 21516}, expr: &charClassMatcher{ - pos: position{line: 911, col: 4, offset: 21586}, + pos: position{line: 911, col: 4, offset: 21524}, val: "[-+]", chars: []rune{'-', '+'}, ignoreCase: false, @@ -3509,14 +3509,14 @@ var g = &grammar{ }, { name: "Integer", - pos: position{line: 913, col: 1, offset: 21592}, + pos: position{line: 913, col: 1, offset: 21530}, expr: &actionExpr{ - pos: position{line: 914, col: 4, offset: 21603}, + pos: position{line: 914, col: 4, offset: 21541}, run: (*parser).callonInteger1, expr: &oneOrMoreExpr{ - pos: position{line: 914, col: 4, offset: 21603}, + pos: position{line: 914, col: 4, offset: 21541}, expr: &charClassMatcher{ - pos: position{line: 914, col: 4, offset: 21603}, + pos: position{line: 914, col: 4, offset: 21541}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -3527,32 +3527,32 @@ var g = &grammar{ }, { name: "NonZeroLeadingInteger", - pos: position{line: 936, col: 1, offset: 22115}, + pos: position{line: 936, col: 1, offset: 22041}, expr: &actionExpr{ - pos: position{line: 937, col: 4, offset: 22140}, + pos: position{line: 937, col: 4, offset: 22066}, run: (*parser).callonNonZeroLeadingInteger1, expr: &choiceExpr{ - pos: position{line: 937, col: 6, offset: 22142}, + pos: position{line: 937, col: 6, offset: 22068}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 937, col: 6, offset: 22142}, + pos: position{line: 937, col: 6, offset: 22068}, val: "0", ignoreCase: false, }, &seqExpr{ - pos: position{line: 937, col: 12, offset: 22148}, + pos: position{line: 937, col: 12, offset: 22074}, exprs: []interface{}{ &charClassMatcher{ - pos: position{line: 937, col: 12, offset: 22148}, + pos: position{line: 937, col: 12, offset: 22074}, val: "[1-9]", ranges: []rune{'1', '9'}, ignoreCase: false, inverted: false, }, &zeroOrMoreExpr{ - pos: position{line: 937, col: 17, offset: 22153}, + pos: position{line: 937, col: 17, offset: 22079}, expr: &charClassMatcher{ - pos: position{line: 937, col: 17, offset: 22153}, + pos: position{line: 937, col: 17, offset: 22079}, val: "[0-9]", ranges: []rune{'0', '9'}, ignoreCase: false, @@ -3567,39 +3567,39 @@ var g = &grammar{ }, { name: "Fixnum", - pos: position{line: 940, col: 1, offset: 22186}, + pos: position{line: 940, col: 1, offset: 22112}, expr: &choiceExpr{ - pos: position{line: 941, col: 4, offset: 22196}, + pos: position{line: 941, col: 4, offset: 22122}, alternatives: []interface{}{ &seqExpr{ - pos: position{line: 941, col: 4, offset: 22196}, + pos: position{line: 941, col: 4, offset: 22122}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 941, col: 4, offset: 22196}, + pos: position{line: 941, col: 4, offset: 22122}, name: "Integer", }, &litMatcher{ - pos: position{line: 941, col: 12, offset: 22204}, + pos: position{line: 941, col: 12, offset: 22130}, val: ".", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 941, col: 16, offset: 22208}, + pos: position{line: 941, col: 16, offset: 22134}, name: "Integer", }, }, }, &seqExpr{ - pos: position{line: 942, col: 4, offset: 22219}, + pos: position{line: 942, col: 4, offset: 22145}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 942, col: 4, offset: 22219}, + pos: position{line: 942, col: 4, offset: 22145}, name: "Integer", }, &zeroOrOneExpr{ - pos: position{line: 942, col: 12, offset: 22227}, + pos: position{line: 942, col: 12, offset: 22153}, expr: &litMatcher{ - pos: position{line: 942, col: 12, offset: 22227}, + pos: position{line: 942, col: 12, offset: 22153}, val: ".", ignoreCase: false, }, @@ -3607,15 +3607,15 @@ var g = &grammar{ }, }, &seqExpr{ - pos: position{line: 943, col: 4, offset: 22235}, + pos: position{line: 943, col: 4, offset: 22161}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 943, col: 4, offset: 22235}, + pos: position{line: 943, col: 4, offset: 22161}, val: ".", ignoreCase: false, }, &ruleRefExpr{ - pos: position{line: 943, col: 8, offset: 22239}, + pos: position{line: 943, col: 8, offset: 22165}, name: "Integer", }, }, @@ -3625,36 +3625,36 @@ var g = &grammar{ }, { name: "Decimal", - pos: position{line: 945, col: 1, offset: 22248}, + pos: position{line: 945, col: 1, offset: 22174}, expr: &actionExpr{ - pos: position{line: 946, col: 4, offset: 22259}, + pos: position{line: 946, col: 4, offset: 22185}, run: (*parser).callonDecimal1, expr: &seqExpr{ - pos: position{line: 946, col: 4, offset: 22259}, + pos: position{line: 946, col: 4, offset: 22185}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 946, col: 4, offset: 22259}, + pos: position{line: 946, col: 4, offset: 22185}, name: "Fixnum", }, &zeroOrOneExpr{ - pos: position{line: 946, col: 11, offset: 22266}, + pos: position{line: 946, col: 11, offset: 22192}, expr: &seqExpr{ - pos: position{line: 946, col: 13, offset: 22268}, + pos: position{line: 946, col: 13, offset: 22194}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 946, col: 13, offset: 22268}, + pos: position{line: 946, col: 13, offset: 22194}, val: "e", ignoreCase: true, }, &zeroOrOneExpr{ - pos: position{line: 946, col: 18, offset: 22273}, + pos: position{line: 946, col: 18, offset: 22199}, expr: &ruleRefExpr{ - pos: position{line: 946, col: 18, offset: 22273}, + pos: position{line: 946, col: 18, offset: 22199}, name: "Sign", }, }, &ruleRefExpr{ - pos: position{line: 946, col: 24, offset: 22279}, + pos: position{line: 946, col: 24, offset: 22205}, name: "Integer", }, }, @@ -3666,22 +3666,22 @@ var g = &grammar{ }, { name: "Hex", - pos: position{line: 967, col: 1, offset: 22771}, + pos: position{line: 967, col: 1, offset: 22685}, expr: &actionExpr{ - pos: position{line: 968, col: 4, offset: 22778}, + pos: position{line: 968, col: 4, offset: 22692}, run: (*parser).callonHex1, expr: &seqExpr{ - pos: position{line: 968, col: 4, offset: 22778}, + pos: position{line: 968, col: 4, offset: 22692}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 968, col: 4, offset: 22778}, + pos: position{line: 968, col: 4, offset: 22692}, val: "0x", ignoreCase: false, }, &oneOrMoreExpr{ - pos: position{line: 968, col: 9, offset: 22783}, + pos: position{line: 968, col: 9, offset: 22697}, expr: &charClassMatcher{ - pos: position{line: 968, col: 11, offset: 22785}, + pos: position{line: 968, col: 11, offset: 22699}, val: "[0-9A-Fa-f]", ranges: []rune{'0', '9', 'A', 'F', 'a', 'f'}, ignoreCase: false, @@ -3689,9 +3689,9 @@ var g = &grammar{ }, }, ¬Expr{ - pos: position{line: 968, col: 26, offset: 22800}, + pos: position{line: 968, col: 26, offset: 22714}, expr: &ruleRefExpr{ - pos: position{line: 968, col: 27, offset: 22801}, + pos: position{line: 968, col: 27, offset: 22715}, name: "NormalIdentifierRest", }, }, @@ -3701,16 +3701,16 @@ var g = &grammar{ }, { name: "StringLiteral", - pos: position{line: 976, col: 1, offset: 22952}, + pos: position{line: 976, col: 1, offset: 22866}, expr: &choiceExpr{ - pos: position{line: 977, col: 4, offset: 22969}, + pos: position{line: 977, col: 4, offset: 22883}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 977, col: 4, offset: 22969}, + pos: position{line: 977, col: 4, offset: 22883}, name: "HexString", }, &ruleRefExpr{ - pos: position{line: 978, col: 4, offset: 22982}, + pos: position{line: 978, col: 4, offset: 22896}, name: "NormalString", }, }, @@ -3718,53 +3718,53 @@ var g = &grammar{ }, { name: "HexString", - pos: position{line: 980, col: 1, offset: 22996}, + pos: position{line: 980, col: 1, offset: 22910}, expr: &actionExpr{ - pos: position{line: 981, col: 4, offset: 23009}, + pos: position{line: 981, col: 4, offset: 22923}, run: (*parser).callonHexString1, expr: &seqExpr{ - pos: position{line: 981, col: 4, offset: 23009}, + pos: position{line: 981, col: 4, offset: 22923}, exprs: []interface{}{ &choiceExpr{ - pos: position{line: 981, col: 6, offset: 23011}, + pos: position{line: 981, col: 6, offset: 22925}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 981, col: 6, offset: 23011}, + pos: position{line: 981, col: 6, offset: 22925}, val: "hex", ignoreCase: true, }, &litMatcher{ - pos: position{line: 981, col: 15, offset: 23020}, + pos: position{line: 981, col: 15, offset: 22934}, val: "x", ignoreCase: true, }, }, }, &litMatcher{ - pos: position{line: 981, col: 22, offset: 23027}, + pos: position{line: 981, col: 22, offset: 22941}, val: "'", ignoreCase: false, }, &labeledExpr{ - pos: position{line: 981, col: 26, offset: 23031}, + pos: position{line: 981, col: 26, offset: 22945}, label: "s", expr: &zeroOrMoreExpr{ - pos: position{line: 981, col: 28, offset: 23033}, + pos: position{line: 981, col: 28, offset: 22947}, expr: &actionExpr{ - pos: position{line: 981, col: 29, offset: 23034}, + pos: position{line: 981, col: 29, offset: 22948}, run: (*parser).callonHexString9, expr: &seqExpr{ - pos: position{line: 981, col: 29, offset: 23034}, + pos: position{line: 981, col: 29, offset: 22948}, exprs: []interface{}{ &charClassMatcher{ - pos: position{line: 981, col: 29, offset: 23034}, + pos: position{line: 981, col: 29, offset: 22948}, val: "[0-9a-fA-F]", ranges: []rune{'0', '9', 'a', 'f', 'A', 'F'}, ignoreCase: false, inverted: false, }, &charClassMatcher{ - pos: position{line: 981, col: 40, offset: 23045}, + pos: position{line: 981, col: 40, offset: 22959}, val: "[0-9a-fA-F]", ranges: []rune{'0', '9', 'a', 'f', 'A', 'F'}, ignoreCase: false, @@ -3776,7 +3776,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 981, col: 78, offset: 23083}, + pos: position{line: 981, col: 78, offset: 22997}, val: "'", ignoreCase: false, }, @@ -3786,46 +3786,46 @@ var g = &grammar{ }, { name: "NormalString", - pos: position{line: 990, col: 1, offset: 23266}, + pos: position{line: 990, col: 1, offset: 23180}, expr: &actionExpr{ - pos: position{line: 991, col: 4, offset: 23282}, + pos: position{line: 991, col: 4, offset: 23196}, run: (*parser).callonNormalString1, expr: &seqExpr{ - pos: position{line: 991, col: 4, offset: 23282}, + pos: position{line: 991, col: 4, offset: 23196}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 991, col: 4, offset: 23282}, + pos: position{line: 991, col: 4, offset: 23196}, val: "'", ignoreCase: false, }, &labeledExpr{ - pos: position{line: 991, col: 8, offset: 23286}, + pos: position{line: 991, col: 8, offset: 23200}, label: "s", expr: &zeroOrMoreExpr{ - pos: position{line: 991, col: 10, offset: 23288}, + pos: position{line: 991, col: 10, offset: 23202}, expr: &actionExpr{ - pos: position{line: 991, col: 12, offset: 23290}, + pos: position{line: 991, col: 12, offset: 23204}, run: (*parser).callonNormalString6, expr: &choiceExpr{ - pos: position{line: 991, col: 14, offset: 23292}, + pos: position{line: 991, col: 14, offset: 23206}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 991, col: 14, offset: 23292}, + pos: position{line: 991, col: 14, offset: 23206}, val: "[^'\\r\\n\\\\]", chars: []rune{'\'', '\r', '\n', '\\'}, ignoreCase: false, inverted: true, }, &seqExpr{ - pos: position{line: 991, col: 27, offset: 23305}, + pos: position{line: 991, col: 27, offset: 23219}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 991, col: 27, offset: 23305}, + pos: position{line: 991, col: 27, offset: 23219}, val: "\\", ignoreCase: false, }, &anyMatcher{ - line: 991, col: 32, offset: 23310, + line: 991, col: 32, offset: 23224, }, }, }, @@ -3835,7 +3835,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 991, col: 62, offset: 23340}, + pos: position{line: 991, col: 62, offset: 23254}, val: "'", ignoreCase: false, }, @@ -3845,19 +3845,19 @@ var g = &grammar{ }, { name: "SelectToken", - pos: position{line: 1016, col: 1, offset: 23920}, + pos: position{line: 1016, col: 1, offset: 23822}, expr: &seqExpr{ - pos: position{line: 1017, col: 4, offset: 23935}, + pos: position{line: 1017, col: 4, offset: 23837}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1017, col: 4, offset: 23935}, + pos: position{line: 1017, col: 4, offset: 23837}, val: "select", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1017, col: 14, offset: 23945}, + pos: position{line: 1017, col: 14, offset: 23847}, expr: &ruleRefExpr{ - pos: position{line: 1017, col: 15, offset: 23946}, + pos: position{line: 1017, col: 15, offset: 23848}, name: "NormalIdentifierRest", }, }, @@ -3866,19 +3866,19 @@ var g = &grammar{ }, { name: "FromToken", - pos: position{line: 1019, col: 1, offset: 23968}, + pos: position{line: 1019, col: 1, offset: 23870}, expr: &seqExpr{ - pos: position{line: 1020, col: 4, offset: 23981}, + pos: position{line: 1020, col: 4, offset: 23883}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1020, col: 4, offset: 23981}, + pos: position{line: 1020, col: 4, offset: 23883}, val: "from", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1020, col: 12, offset: 23989}, + pos: position{line: 1020, col: 12, offset: 23891}, expr: &ruleRefExpr{ - pos: position{line: 1020, col: 13, offset: 23990}, + pos: position{line: 1020, col: 13, offset: 23892}, name: "NormalIdentifierRest", }, }, @@ -3887,19 +3887,19 @@ var g = &grammar{ }, { name: "WhereToken", - pos: position{line: 1022, col: 1, offset: 24012}, + pos: position{line: 1022, col: 1, offset: 23914}, expr: &seqExpr{ - pos: position{line: 1023, col: 4, offset: 24026}, + pos: position{line: 1023, col: 4, offset: 23928}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1023, col: 4, offset: 24026}, + pos: position{line: 1023, col: 4, offset: 23928}, val: "where", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1023, col: 13, offset: 24035}, + pos: position{line: 1023, col: 13, offset: 23937}, expr: &ruleRefExpr{ - pos: position{line: 1023, col: 14, offset: 24036}, + pos: position{line: 1023, col: 14, offset: 23938}, name: "NormalIdentifierRest", }, }, @@ -3908,19 +3908,19 @@ var g = &grammar{ }, { name: "OrderToken", - pos: position{line: 1025, col: 1, offset: 24058}, + pos: position{line: 1025, col: 1, offset: 23960}, expr: &seqExpr{ - pos: position{line: 1026, col: 4, offset: 24072}, + pos: position{line: 1026, col: 4, offset: 23974}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1026, col: 4, offset: 24072}, + pos: position{line: 1026, col: 4, offset: 23974}, val: "order", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1026, col: 13, offset: 24081}, + pos: position{line: 1026, col: 13, offset: 23983}, expr: &ruleRefExpr{ - pos: position{line: 1026, col: 14, offset: 24082}, + pos: position{line: 1026, col: 14, offset: 23984}, name: "NormalIdentifierRest", }, }, @@ -3929,19 +3929,19 @@ var g = &grammar{ }, { name: "ByToken", - pos: position{line: 1028, col: 1, offset: 24104}, + pos: position{line: 1028, col: 1, offset: 24006}, expr: &seqExpr{ - pos: position{line: 1029, col: 4, offset: 24115}, + pos: position{line: 1029, col: 4, offset: 24017}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1029, col: 4, offset: 24115}, + pos: position{line: 1029, col: 4, offset: 24017}, val: "by", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1029, col: 10, offset: 24121}, + pos: position{line: 1029, col: 10, offset: 24023}, expr: &ruleRefExpr{ - pos: position{line: 1029, col: 11, offset: 24122}, + pos: position{line: 1029, col: 11, offset: 24024}, name: "NormalIdentifierRest", }, }, @@ -3950,19 +3950,19 @@ var g = &grammar{ }, { name: "GroupToken", - pos: position{line: 1031, col: 1, offset: 24144}, + pos: position{line: 1031, col: 1, offset: 24046}, expr: &seqExpr{ - pos: position{line: 1032, col: 4, offset: 24158}, + pos: position{line: 1032, col: 4, offset: 24060}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1032, col: 4, offset: 24158}, + pos: position{line: 1032, col: 4, offset: 24060}, val: "group", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1032, col: 13, offset: 24167}, + pos: position{line: 1032, col: 13, offset: 24069}, expr: &ruleRefExpr{ - pos: position{line: 1032, col: 14, offset: 24168}, + pos: position{line: 1032, col: 14, offset: 24070}, name: "NormalIdentifierRest", }, }, @@ -3971,19 +3971,19 @@ var g = &grammar{ }, { name: "LimitToken", - pos: position{line: 1034, col: 1, offset: 24190}, + pos: position{line: 1034, col: 1, offset: 24092}, expr: &seqExpr{ - pos: position{line: 1035, col: 4, offset: 24204}, + pos: position{line: 1035, col: 4, offset: 24106}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1035, col: 4, offset: 24204}, + pos: position{line: 1035, col: 4, offset: 24106}, val: "limit", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1035, col: 13, offset: 24213}, + pos: position{line: 1035, col: 13, offset: 24115}, expr: &ruleRefExpr{ - pos: position{line: 1035, col: 14, offset: 24214}, + pos: position{line: 1035, col: 14, offset: 24116}, name: "NormalIdentifierRest", }, }, @@ -3992,19 +3992,19 @@ var g = &grammar{ }, { name: "OffsetToken", - pos: position{line: 1037, col: 1, offset: 24236}, + pos: position{line: 1037, col: 1, offset: 24138}, expr: &seqExpr{ - pos: position{line: 1038, col: 4, offset: 24251}, + pos: position{line: 1038, col: 4, offset: 24153}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1038, col: 4, offset: 24251}, + pos: position{line: 1038, col: 4, offset: 24153}, val: "offset", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1038, col: 14, offset: 24261}, + pos: position{line: 1038, col: 14, offset: 24163}, expr: &ruleRefExpr{ - pos: position{line: 1038, col: 15, offset: 24262}, + pos: position{line: 1038, col: 15, offset: 24164}, name: "NormalIdentifierRest", }, }, @@ -4013,19 +4013,19 @@ var g = &grammar{ }, { name: "UpdateToken", - pos: position{line: 1040, col: 1, offset: 24284}, + pos: position{line: 1040, col: 1, offset: 24186}, expr: &seqExpr{ - pos: position{line: 1041, col: 4, offset: 24299}, + pos: position{line: 1041, col: 4, offset: 24201}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1041, col: 4, offset: 24299}, + pos: position{line: 1041, col: 4, offset: 24201}, val: "update", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1041, col: 14, offset: 24309}, + pos: position{line: 1041, col: 14, offset: 24211}, expr: &ruleRefExpr{ - pos: position{line: 1041, col: 15, offset: 24310}, + pos: position{line: 1041, col: 15, offset: 24212}, name: "NormalIdentifierRest", }, }, @@ -4034,19 +4034,19 @@ var g = &grammar{ }, { name: "SetToken", - pos: position{line: 1043, col: 1, offset: 24332}, + pos: position{line: 1043, col: 1, offset: 24234}, expr: &seqExpr{ - pos: position{line: 1044, col: 4, offset: 24344}, + pos: position{line: 1044, col: 4, offset: 24246}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1044, col: 4, offset: 24344}, + pos: position{line: 1044, col: 4, offset: 24246}, val: "set", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1044, col: 11, offset: 24351}, + pos: position{line: 1044, col: 11, offset: 24253}, expr: &ruleRefExpr{ - pos: position{line: 1044, col: 12, offset: 24352}, + pos: position{line: 1044, col: 12, offset: 24254}, name: "NormalIdentifierRest", }, }, @@ -4055,19 +4055,19 @@ var g = &grammar{ }, { name: "DeleteToken", - pos: position{line: 1046, col: 1, offset: 24374}, + pos: position{line: 1046, col: 1, offset: 24276}, expr: &seqExpr{ - pos: position{line: 1047, col: 4, offset: 24389}, + pos: position{line: 1047, col: 4, offset: 24291}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1047, col: 4, offset: 24389}, + pos: position{line: 1047, col: 4, offset: 24291}, val: "delete", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1047, col: 14, offset: 24399}, + pos: position{line: 1047, col: 14, offset: 24301}, expr: &ruleRefExpr{ - pos: position{line: 1047, col: 15, offset: 24400}, + pos: position{line: 1047, col: 15, offset: 24302}, name: "NormalIdentifierRest", }, }, @@ -4076,19 +4076,19 @@ var g = &grammar{ }, { name: "InsertToken", - pos: position{line: 1049, col: 1, offset: 24422}, + pos: position{line: 1049, col: 1, offset: 24324}, expr: &seqExpr{ - pos: position{line: 1050, col: 4, offset: 24437}, + pos: position{line: 1050, col: 4, offset: 24339}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1050, col: 4, offset: 24437}, + pos: position{line: 1050, col: 4, offset: 24339}, val: "insert", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1050, col: 14, offset: 24447}, + pos: position{line: 1050, col: 14, offset: 24349}, expr: &ruleRefExpr{ - pos: position{line: 1050, col: 15, offset: 24448}, + pos: position{line: 1050, col: 15, offset: 24350}, name: "NormalIdentifierRest", }, }, @@ -4097,19 +4097,19 @@ var g = &grammar{ }, { name: "IntoToken", - pos: position{line: 1052, col: 1, offset: 24470}, + pos: position{line: 1052, col: 1, offset: 24372}, expr: &seqExpr{ - pos: position{line: 1053, col: 4, offset: 24483}, + pos: position{line: 1053, col: 4, offset: 24385}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1053, col: 4, offset: 24483}, + pos: position{line: 1053, col: 4, offset: 24385}, val: "into", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1053, col: 12, offset: 24491}, + pos: position{line: 1053, col: 12, offset: 24393}, expr: &ruleRefExpr{ - pos: position{line: 1053, col: 13, offset: 24492}, + pos: position{line: 1053, col: 13, offset: 24394}, name: "NormalIdentifierRest", }, }, @@ -4118,19 +4118,19 @@ var g = &grammar{ }, { name: "ValuesToken", - pos: position{line: 1055, col: 1, offset: 24514}, + pos: position{line: 1055, col: 1, offset: 24416}, expr: &seqExpr{ - pos: position{line: 1056, col: 4, offset: 24529}, + pos: position{line: 1056, col: 4, offset: 24431}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1056, col: 4, offset: 24529}, + pos: position{line: 1056, col: 4, offset: 24431}, val: "values", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1056, col: 14, offset: 24539}, + pos: position{line: 1056, col: 14, offset: 24441}, expr: &ruleRefExpr{ - pos: position{line: 1056, col: 15, offset: 24540}, + pos: position{line: 1056, col: 15, offset: 24442}, name: "NormalIdentifierRest", }, }, @@ -4139,19 +4139,19 @@ var g = &grammar{ }, { name: "CreateToken", - pos: position{line: 1058, col: 1, offset: 24562}, + pos: position{line: 1058, col: 1, offset: 24464}, expr: &seqExpr{ - pos: position{line: 1059, col: 4, offset: 24577}, + pos: position{line: 1059, col: 4, offset: 24479}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1059, col: 4, offset: 24577}, + pos: position{line: 1059, col: 4, offset: 24479}, val: "create", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1059, col: 14, offset: 24587}, + pos: position{line: 1059, col: 14, offset: 24489}, expr: &ruleRefExpr{ - pos: position{line: 1059, col: 15, offset: 24588}, + pos: position{line: 1059, col: 15, offset: 24490}, name: "NormalIdentifierRest", }, }, @@ -4160,19 +4160,19 @@ var g = &grammar{ }, { name: "TableToken", - pos: position{line: 1061, col: 1, offset: 24610}, + pos: position{line: 1061, col: 1, offset: 24512}, expr: &seqExpr{ - pos: position{line: 1062, col: 4, offset: 24624}, + pos: position{line: 1062, col: 4, offset: 24526}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1062, col: 4, offset: 24624}, + pos: position{line: 1062, col: 4, offset: 24526}, val: "table", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1062, col: 13, offset: 24633}, + pos: position{line: 1062, col: 13, offset: 24535}, expr: &ruleRefExpr{ - pos: position{line: 1062, col: 14, offset: 24634}, + pos: position{line: 1062, col: 14, offset: 24536}, name: "NormalIdentifierRest", }, }, @@ -4181,19 +4181,19 @@ var g = &grammar{ }, { name: "IndexToken", - pos: position{line: 1064, col: 1, offset: 24656}, + pos: position{line: 1064, col: 1, offset: 24558}, expr: &seqExpr{ - pos: position{line: 1065, col: 4, offset: 24670}, + pos: position{line: 1065, col: 4, offset: 24572}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1065, col: 4, offset: 24670}, + pos: position{line: 1065, col: 4, offset: 24572}, val: "index", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1065, col: 13, offset: 24679}, + pos: position{line: 1065, col: 13, offset: 24581}, expr: &ruleRefExpr{ - pos: position{line: 1065, col: 14, offset: 24680}, + pos: position{line: 1065, col: 14, offset: 24582}, name: "NormalIdentifierRest", }, }, @@ -4202,19 +4202,19 @@ var g = &grammar{ }, { name: "UniqueToken", - pos: position{line: 1067, col: 1, offset: 24702}, + pos: position{line: 1067, col: 1, offset: 24604}, expr: &seqExpr{ - pos: position{line: 1068, col: 4, offset: 24717}, + pos: position{line: 1068, col: 4, offset: 24619}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1068, col: 4, offset: 24717}, + pos: position{line: 1068, col: 4, offset: 24619}, val: "unique", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1068, col: 14, offset: 24727}, + pos: position{line: 1068, col: 14, offset: 24629}, expr: &ruleRefExpr{ - pos: position{line: 1068, col: 15, offset: 24728}, + pos: position{line: 1068, col: 15, offset: 24630}, name: "NormalIdentifierRest", }, }, @@ -4223,19 +4223,19 @@ var g = &grammar{ }, { name: "DefaultToken", - pos: position{line: 1070, col: 1, offset: 24750}, + pos: position{line: 1070, col: 1, offset: 24652}, expr: &seqExpr{ - pos: position{line: 1071, col: 4, offset: 24766}, + pos: position{line: 1071, col: 4, offset: 24668}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1071, col: 4, offset: 24766}, + pos: position{line: 1071, col: 4, offset: 24668}, val: "default", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1071, col: 15, offset: 24777}, + pos: position{line: 1071, col: 15, offset: 24679}, expr: &ruleRefExpr{ - pos: position{line: 1071, col: 16, offset: 24778}, + pos: position{line: 1071, col: 16, offset: 24680}, name: "NormalIdentifierRest", }, }, @@ -4244,19 +4244,19 @@ var g = &grammar{ }, { name: "PrimaryToken", - pos: position{line: 1073, col: 1, offset: 24800}, + pos: position{line: 1073, col: 1, offset: 24702}, expr: &seqExpr{ - pos: position{line: 1074, col: 4, offset: 24816}, + pos: position{line: 1074, col: 4, offset: 24718}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1074, col: 4, offset: 24816}, + pos: position{line: 1074, col: 4, offset: 24718}, val: "primary", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1074, col: 15, offset: 24827}, + pos: position{line: 1074, col: 15, offset: 24729}, expr: &ruleRefExpr{ - pos: position{line: 1074, col: 16, offset: 24828}, + pos: position{line: 1074, col: 16, offset: 24730}, name: "NormalIdentifierRest", }, }, @@ -4265,19 +4265,19 @@ var g = &grammar{ }, { name: "KeyToken", - pos: position{line: 1076, col: 1, offset: 24850}, + pos: position{line: 1076, col: 1, offset: 24752}, expr: &seqExpr{ - pos: position{line: 1077, col: 4, offset: 24862}, + pos: position{line: 1077, col: 4, offset: 24764}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1077, col: 4, offset: 24862}, + pos: position{line: 1077, col: 4, offset: 24764}, val: "key", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1077, col: 11, offset: 24869}, + pos: position{line: 1077, col: 11, offset: 24771}, expr: &ruleRefExpr{ - pos: position{line: 1077, col: 12, offset: 24870}, + pos: position{line: 1077, col: 12, offset: 24772}, name: "NormalIdentifierRest", }, }, @@ -4286,19 +4286,19 @@ var g = &grammar{ }, { name: "ReferencesToken", - pos: position{line: 1079, col: 1, offset: 24892}, + pos: position{line: 1079, col: 1, offset: 24794}, expr: &seqExpr{ - pos: position{line: 1080, col: 4, offset: 24911}, + pos: position{line: 1080, col: 4, offset: 24813}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1080, col: 4, offset: 24911}, + pos: position{line: 1080, col: 4, offset: 24813}, val: "references", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1080, col: 18, offset: 24925}, + pos: position{line: 1080, col: 18, offset: 24827}, expr: &ruleRefExpr{ - pos: position{line: 1080, col: 19, offset: 24926}, + pos: position{line: 1080, col: 19, offset: 24828}, name: "NormalIdentifierRest", }, }, @@ -4307,19 +4307,19 @@ var g = &grammar{ }, { name: "AutoincrementToken", - pos: position{line: 1082, col: 1, offset: 24948}, + pos: position{line: 1082, col: 1, offset: 24850}, expr: &seqExpr{ - pos: position{line: 1083, col: 4, offset: 24970}, + pos: position{line: 1083, col: 4, offset: 24872}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1083, col: 4, offset: 24970}, + pos: position{line: 1083, col: 4, offset: 24872}, val: "autoincrement", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1083, col: 21, offset: 24987}, + pos: position{line: 1083, col: 21, offset: 24889}, expr: &ruleRefExpr{ - pos: position{line: 1083, col: 22, offset: 24988}, + pos: position{line: 1083, col: 22, offset: 24890}, name: "NormalIdentifierRest", }, }, @@ -4328,19 +4328,19 @@ var g = &grammar{ }, { name: "OnToken", - pos: position{line: 1085, col: 1, offset: 25010}, + pos: position{line: 1085, col: 1, offset: 24912}, expr: &seqExpr{ - pos: position{line: 1086, col: 4, offset: 25021}, + pos: position{line: 1086, col: 4, offset: 24923}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1086, col: 4, offset: 25021}, + pos: position{line: 1086, col: 4, offset: 24923}, val: "on", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1086, col: 10, offset: 25027}, + pos: position{line: 1086, col: 10, offset: 24929}, expr: &ruleRefExpr{ - pos: position{line: 1086, col: 11, offset: 25028}, + pos: position{line: 1086, col: 11, offset: 24930}, name: "NormalIdentifierRest", }, }, @@ -4349,22 +4349,22 @@ var g = &grammar{ }, { name: "TrueToken", - pos: position{line: 1088, col: 1, offset: 25050}, + pos: position{line: 1088, col: 1, offset: 24952}, expr: &actionExpr{ - pos: position{line: 1089, col: 4, offset: 25063}, + pos: position{line: 1089, col: 4, offset: 24965}, run: (*parser).callonTrueToken1, expr: &seqExpr{ - pos: position{line: 1089, col: 4, offset: 25063}, + pos: position{line: 1089, col: 4, offset: 24965}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1089, col: 4, offset: 25063}, + pos: position{line: 1089, col: 4, offset: 24965}, val: "true", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1089, col: 12, offset: 25071}, + pos: position{line: 1089, col: 12, offset: 24973}, expr: &ruleRefExpr{ - pos: position{line: 1089, col: 13, offset: 25072}, + pos: position{line: 1089, col: 13, offset: 24974}, name: "NormalIdentifierRest", }, }, @@ -4374,22 +4374,22 @@ var g = &grammar{ }, { name: "FalseToken", - pos: position{line: 1092, col: 1, offset: 25126}, + pos: position{line: 1092, col: 1, offset: 25028}, expr: &actionExpr{ - pos: position{line: 1093, col: 4, offset: 25140}, + pos: position{line: 1093, col: 4, offset: 25042}, run: (*parser).callonFalseToken1, expr: &seqExpr{ - pos: position{line: 1093, col: 4, offset: 25140}, + pos: position{line: 1093, col: 4, offset: 25042}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1093, col: 4, offset: 25140}, + pos: position{line: 1093, col: 4, offset: 25042}, val: "false", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1093, col: 13, offset: 25149}, + pos: position{line: 1093, col: 13, offset: 25051}, expr: &ruleRefExpr{ - pos: position{line: 1093, col: 14, offset: 25150}, + pos: position{line: 1093, col: 14, offset: 25052}, name: "NormalIdentifierRest", }, }, @@ -4399,19 +4399,19 @@ var g = &grammar{ }, { name: "NullToken", - pos: position{line: 1096, col: 1, offset: 25204}, + pos: position{line: 1096, col: 1, offset: 25106}, expr: &seqExpr{ - pos: position{line: 1097, col: 4, offset: 25217}, + pos: position{line: 1097, col: 4, offset: 25119}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1097, col: 4, offset: 25217}, + pos: position{line: 1097, col: 4, offset: 25119}, val: "null", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1097, col: 12, offset: 25225}, + pos: position{line: 1097, col: 12, offset: 25127}, expr: &ruleRefExpr{ - pos: position{line: 1097, col: 13, offset: 25226}, + pos: position{line: 1097, col: 13, offset: 25128}, name: "NormalIdentifierRest", }, }, @@ -4420,19 +4420,19 @@ var g = &grammar{ }, { name: "IsToken", - pos: position{line: 1099, col: 1, offset: 25248}, + pos: position{line: 1099, col: 1, offset: 25150}, expr: &seqExpr{ - pos: position{line: 1100, col: 4, offset: 25259}, + pos: position{line: 1100, col: 4, offset: 25161}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1100, col: 4, offset: 25259}, + pos: position{line: 1100, col: 4, offset: 25161}, val: "is", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1100, col: 10, offset: 25265}, + pos: position{line: 1100, col: 10, offset: 25167}, expr: &ruleRefExpr{ - pos: position{line: 1100, col: 11, offset: 25266}, + pos: position{line: 1100, col: 11, offset: 25168}, name: "NormalIdentifierRest", }, }, @@ -4441,19 +4441,19 @@ var g = &grammar{ }, { name: "NullsToken", - pos: position{line: 1102, col: 1, offset: 25288}, + pos: position{line: 1102, col: 1, offset: 25190}, expr: &seqExpr{ - pos: position{line: 1103, col: 4, offset: 25302}, + pos: position{line: 1103, col: 4, offset: 25204}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1103, col: 4, offset: 25302}, + pos: position{line: 1103, col: 4, offset: 25204}, val: "nulls", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1103, col: 13, offset: 25311}, + pos: position{line: 1103, col: 13, offset: 25213}, expr: &ruleRefExpr{ - pos: position{line: 1103, col: 14, offset: 25312}, + pos: position{line: 1103, col: 14, offset: 25214}, name: "NormalIdentifierRest", }, }, @@ -4462,22 +4462,22 @@ var g = &grammar{ }, { name: "LastToken", - pos: position{line: 1105, col: 1, offset: 25334}, + pos: position{line: 1105, col: 1, offset: 25236}, expr: &actionExpr{ - pos: position{line: 1106, col: 4, offset: 25347}, + pos: position{line: 1106, col: 4, offset: 25249}, run: (*parser).callonLastToken1, expr: &seqExpr{ - pos: position{line: 1106, col: 4, offset: 25347}, + pos: position{line: 1106, col: 4, offset: 25249}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1106, col: 4, offset: 25347}, + pos: position{line: 1106, col: 4, offset: 25249}, val: "last", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1106, col: 12, offset: 25355}, + pos: position{line: 1106, col: 12, offset: 25257}, expr: &ruleRefExpr{ - pos: position{line: 1106, col: 13, offset: 25356}, + pos: position{line: 1106, col: 13, offset: 25258}, name: "NormalIdentifierRest", }, }, @@ -4487,22 +4487,22 @@ var g = &grammar{ }, { name: "FirstToken", - pos: position{line: 1109, col: 1, offset: 25410}, + pos: position{line: 1109, col: 1, offset: 25312}, expr: &actionExpr{ - pos: position{line: 1110, col: 4, offset: 25424}, + pos: position{line: 1110, col: 4, offset: 25326}, run: (*parser).callonFirstToken1, expr: &seqExpr{ - pos: position{line: 1110, col: 4, offset: 25424}, + pos: position{line: 1110, col: 4, offset: 25326}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1110, col: 4, offset: 25424}, + pos: position{line: 1110, col: 4, offset: 25326}, val: "first", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1110, col: 13, offset: 25433}, + pos: position{line: 1110, col: 13, offset: 25335}, expr: &ruleRefExpr{ - pos: position{line: 1110, col: 14, offset: 25434}, + pos: position{line: 1110, col: 14, offset: 25336}, name: "NormalIdentifierRest", }, }, @@ -4512,19 +4512,19 @@ var g = &grammar{ }, { name: "AndToken", - pos: position{line: 1113, col: 1, offset: 25488}, + pos: position{line: 1113, col: 1, offset: 25390}, expr: &seqExpr{ - pos: position{line: 1114, col: 4, offset: 25500}, + pos: position{line: 1114, col: 4, offset: 25402}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1114, col: 4, offset: 25500}, + pos: position{line: 1114, col: 4, offset: 25402}, val: "and", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1114, col: 11, offset: 25507}, + pos: position{line: 1114, col: 11, offset: 25409}, expr: &ruleRefExpr{ - pos: position{line: 1114, col: 12, offset: 25508}, + pos: position{line: 1114, col: 12, offset: 25410}, name: "NormalIdentifierRest", }, }, @@ -4533,19 +4533,19 @@ var g = &grammar{ }, { name: "OrToken", - pos: position{line: 1116, col: 1, offset: 25530}, + pos: position{line: 1116, col: 1, offset: 25432}, expr: &seqExpr{ - pos: position{line: 1117, col: 4, offset: 25541}, + pos: position{line: 1117, col: 4, offset: 25443}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1117, col: 4, offset: 25541}, + pos: position{line: 1117, col: 4, offset: 25443}, val: "or", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1117, col: 10, offset: 25547}, + pos: position{line: 1117, col: 10, offset: 25449}, expr: &ruleRefExpr{ - pos: position{line: 1117, col: 11, offset: 25548}, + pos: position{line: 1117, col: 11, offset: 25450}, name: "NormalIdentifierRest", }, }, @@ -4554,19 +4554,19 @@ var g = &grammar{ }, { name: "NotToken", - pos: position{line: 1119, col: 1, offset: 25570}, + pos: position{line: 1119, col: 1, offset: 25472}, expr: &seqExpr{ - pos: position{line: 1120, col: 4, offset: 25582}, + pos: position{line: 1120, col: 4, offset: 25484}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1120, col: 4, offset: 25582}, + pos: position{line: 1120, col: 4, offset: 25484}, val: "not", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1120, col: 11, offset: 25589}, + pos: position{line: 1120, col: 11, offset: 25491}, expr: &ruleRefExpr{ - pos: position{line: 1120, col: 12, offset: 25590}, + pos: position{line: 1120, col: 12, offset: 25492}, name: "NormalIdentifierRest", }, }, @@ -4575,19 +4575,19 @@ var g = &grammar{ }, { name: "InToken", - pos: position{line: 1122, col: 1, offset: 25612}, + pos: position{line: 1122, col: 1, offset: 25514}, expr: &seqExpr{ - pos: position{line: 1123, col: 4, offset: 25623}, + pos: position{line: 1123, col: 4, offset: 25525}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1123, col: 4, offset: 25623}, + pos: position{line: 1123, col: 4, offset: 25525}, val: "in", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1123, col: 10, offset: 25629}, + pos: position{line: 1123, col: 10, offset: 25531}, expr: &ruleRefExpr{ - pos: position{line: 1123, col: 11, offset: 25630}, + pos: position{line: 1123, col: 11, offset: 25532}, name: "NormalIdentifierRest", }, }, @@ -4596,19 +4596,19 @@ var g = &grammar{ }, { name: "LikeToken", - pos: position{line: 1125, col: 1, offset: 25652}, + pos: position{line: 1125, col: 1, offset: 25554}, expr: &seqExpr{ - pos: position{line: 1126, col: 4, offset: 25665}, + pos: position{line: 1126, col: 4, offset: 25567}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1126, col: 4, offset: 25665}, + pos: position{line: 1126, col: 4, offset: 25567}, val: "like", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1126, col: 12, offset: 25673}, + pos: position{line: 1126, col: 12, offset: 25575}, expr: &ruleRefExpr{ - pos: position{line: 1126, col: 13, offset: 25674}, + pos: position{line: 1126, col: 13, offset: 25576}, name: "NormalIdentifierRest", }, }, @@ -4617,22 +4617,22 @@ var g = &grammar{ }, { name: "AscToken", - pos: position{line: 1128, col: 1, offset: 25696}, + pos: position{line: 1128, col: 1, offset: 25598}, expr: &actionExpr{ - pos: position{line: 1129, col: 4, offset: 25708}, + pos: position{line: 1129, col: 4, offset: 25610}, run: (*parser).callonAscToken1, expr: &seqExpr{ - pos: position{line: 1129, col: 4, offset: 25708}, + pos: position{line: 1129, col: 4, offset: 25610}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1129, col: 4, offset: 25708}, + pos: position{line: 1129, col: 4, offset: 25610}, val: "asc", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1129, col: 11, offset: 25715}, + pos: position{line: 1129, col: 11, offset: 25617}, expr: &ruleRefExpr{ - pos: position{line: 1129, col: 12, offset: 25716}, + pos: position{line: 1129, col: 12, offset: 25618}, name: "NormalIdentifierRest", }, }, @@ -4642,22 +4642,22 @@ var g = &grammar{ }, { name: "DescToken", - pos: position{line: 1132, col: 1, offset: 25770}, + pos: position{line: 1132, col: 1, offset: 25672}, expr: &actionExpr{ - pos: position{line: 1133, col: 4, offset: 25783}, + pos: position{line: 1133, col: 4, offset: 25685}, run: (*parser).callonDescToken1, expr: &seqExpr{ - pos: position{line: 1133, col: 4, offset: 25783}, + pos: position{line: 1133, col: 4, offset: 25685}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1133, col: 4, offset: 25783}, + pos: position{line: 1133, col: 4, offset: 25685}, val: "desc", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1133, col: 12, offset: 25791}, + pos: position{line: 1133, col: 12, offset: 25693}, expr: &ruleRefExpr{ - pos: position{line: 1133, col: 13, offset: 25792}, + pos: position{line: 1133, col: 13, offset: 25694}, name: "NormalIdentifierRest", }, }, @@ -4667,19 +4667,19 @@ var g = &grammar{ }, { name: "CastToken", - pos: position{line: 1136, col: 1, offset: 25846}, + pos: position{line: 1136, col: 1, offset: 25748}, expr: &seqExpr{ - pos: position{line: 1137, col: 4, offset: 25859}, + pos: position{line: 1137, col: 4, offset: 25761}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1137, col: 4, offset: 25859}, + pos: position{line: 1137, col: 4, offset: 25761}, val: "cast", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1137, col: 12, offset: 25867}, + pos: position{line: 1137, col: 12, offset: 25769}, expr: &ruleRefExpr{ - pos: position{line: 1137, col: 13, offset: 25868}, + pos: position{line: 1137, col: 13, offset: 25770}, name: "NormalIdentifierRest", }, }, @@ -4688,19 +4688,19 @@ var g = &grammar{ }, { name: "AsToken", - pos: position{line: 1139, col: 1, offset: 25890}, + pos: position{line: 1139, col: 1, offset: 25792}, expr: &seqExpr{ - pos: position{line: 1140, col: 4, offset: 25901}, + pos: position{line: 1140, col: 4, offset: 25803}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1140, col: 4, offset: 25901}, + pos: position{line: 1140, col: 4, offset: 25803}, val: "as", ignoreCase: true, }, ¬Expr{ - pos: position{line: 1140, col: 10, offset: 25907}, + pos: position{line: 1140, col: 10, offset: 25809}, expr: &ruleRefExpr{ - pos: position{line: 1140, col: 11, offset: 25908}, + pos: position{line: 1140, col: 11, offset: 25810}, name: "NormalIdentifierRest", }, }, @@ -4709,34 +4709,34 @@ var g = &grammar{ }, { name: "SeparatorToken", - pos: position{line: 1142, col: 1, offset: 25930}, + pos: position{line: 1142, col: 1, offset: 25832}, expr: &litMatcher{ - pos: position{line: 1143, col: 4, offset: 25948}, + pos: position{line: 1143, col: 4, offset: 25850}, val: ",", ignoreCase: false, }, }, { name: "AnyToken", - pos: position{line: 1145, col: 1, offset: 25953}, + pos: position{line: 1145, col: 1, offset: 25855}, expr: &litMatcher{ - pos: position{line: 1146, col: 4, offset: 25965}, + pos: position{line: 1146, col: 4, offset: 25867}, val: "*", ignoreCase: false, }, }, { name: "Identifier", - pos: position{line: 1149, col: 1, offset: 25988}, + pos: position{line: 1149, col: 1, offset: 25890}, expr: &choiceExpr{ - pos: position{line: 1150, col: 4, offset: 26002}, + pos: position{line: 1150, col: 4, offset: 25904}, alternatives: []interface{}{ &ruleRefExpr{ - pos: position{line: 1150, col: 4, offset: 26002}, + pos: position{line: 1150, col: 4, offset: 25904}, name: "NormalIdentifier", }, &ruleRefExpr{ - pos: position{line: 1151, col: 4, offset: 26022}, + pos: position{line: 1151, col: 4, offset: 25924}, name: "StringIdentifier", }, }, @@ -4744,21 +4744,21 @@ var g = &grammar{ }, { name: "NormalIdentifier", - pos: position{line: 1153, col: 1, offset: 26040}, + pos: position{line: 1153, col: 1, offset: 25942}, expr: &actionExpr{ - pos: position{line: 1154, col: 4, offset: 26060}, + pos: position{line: 1154, col: 4, offset: 25962}, run: (*parser).callonNormalIdentifier1, expr: &seqExpr{ - pos: position{line: 1154, col: 4, offset: 26060}, + pos: position{line: 1154, col: 4, offset: 25962}, exprs: []interface{}{ &ruleRefExpr{ - pos: position{line: 1154, col: 4, offset: 26060}, + pos: position{line: 1154, col: 4, offset: 25962}, name: "NormalIdentifierStart", }, &zeroOrMoreExpr{ - pos: position{line: 1154, col: 26, offset: 26082}, + pos: position{line: 1154, col: 26, offset: 25984}, expr: &ruleRefExpr{ - pos: position{line: 1154, col: 26, offset: 26082}, + pos: position{line: 1154, col: 26, offset: 25984}, name: "NormalIdentifierRest", }, }, @@ -4768,9 +4768,9 @@ var g = &grammar{ }, { name: "NormalIdentifierStart", - pos: position{line: 1163, col: 1, offset: 26269}, + pos: position{line: 1163, col: 1, offset: 26171}, expr: &charClassMatcher{ - pos: position{line: 1164, col: 4, offset: 26294}, + pos: position{line: 1164, col: 4, offset: 26196}, val: "[a-zA-Z\\x80-\\xff]", ranges: []rune{'a', 'z', 'A', 'Z', '\u0080', 'ÿ'}, ignoreCase: false, @@ -4779,9 +4779,9 @@ var g = &grammar{ }, { name: "NormalIdentifierRest", - pos: position{line: 1166, col: 1, offset: 26313}, + pos: position{line: 1166, col: 1, offset: 26215}, expr: &charClassMatcher{ - pos: position{line: 1167, col: 4, offset: 26337}, + pos: position{line: 1167, col: 4, offset: 26239}, val: "[a-zA-Z0-9_\\x80-\\xff]", chars: []rune{'_'}, ranges: []rune{'a', 'z', 'A', 'Z', '0', '9', '\u0080', 'ÿ'}, @@ -4791,46 +4791,46 @@ var g = &grammar{ }, { name: "StringIdentifier", - pos: position{line: 1169, col: 1, offset: 26360}, + pos: position{line: 1169, col: 1, offset: 26262}, expr: &actionExpr{ - pos: position{line: 1170, col: 4, offset: 26380}, + pos: position{line: 1170, col: 4, offset: 26282}, run: (*parser).callonStringIdentifier1, expr: &seqExpr{ - pos: position{line: 1170, col: 4, offset: 26380}, + pos: position{line: 1170, col: 4, offset: 26282}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1170, col: 4, offset: 26380}, + pos: position{line: 1170, col: 4, offset: 26282}, val: "\"", ignoreCase: false, }, &labeledExpr{ - pos: position{line: 1170, col: 9, offset: 26385}, + pos: position{line: 1170, col: 9, offset: 26287}, label: "s", expr: &zeroOrMoreExpr{ - pos: position{line: 1170, col: 11, offset: 26387}, + pos: position{line: 1170, col: 11, offset: 26289}, expr: &actionExpr{ - pos: position{line: 1170, col: 13, offset: 26389}, + pos: position{line: 1170, col: 13, offset: 26291}, run: (*parser).callonStringIdentifier6, expr: &choiceExpr{ - pos: position{line: 1170, col: 15, offset: 26391}, + pos: position{line: 1170, col: 15, offset: 26293}, alternatives: []interface{}{ &charClassMatcher{ - pos: position{line: 1170, col: 15, offset: 26391}, + pos: position{line: 1170, col: 15, offset: 26293}, val: "[^\"\\r\\n\\\\]", chars: []rune{'"', '\r', '\n', '\\'}, ignoreCase: false, inverted: true, }, &seqExpr{ - pos: position{line: 1170, col: 28, offset: 26404}, + pos: position{line: 1170, col: 28, offset: 26306}, exprs: []interface{}{ &litMatcher{ - pos: position{line: 1170, col: 28, offset: 26404}, + pos: position{line: 1170, col: 28, offset: 26306}, val: "\\", ignoreCase: false, }, &anyMatcher{ - line: 1170, col: 33, offset: 26409, + line: 1170, col: 33, offset: 26311, }, }, }, @@ -4840,7 +4840,7 @@ var g = &grammar{ }, }, &litMatcher{ - pos: position{line: 1170, col: 63, offset: 26439}, + pos: position{line: 1170, col: 63, offset: 26341}, val: "\"", ignoreCase: false, }, @@ -4850,48 +4850,48 @@ var g = &grammar{ }, { name: "_", - pos: position{line: 1195, col: 1, offset: 27031}, + pos: position{line: 1195, col: 1, offset: 26921}, expr: &zeroOrMoreExpr{ - pos: position{line: 1196, col: 4, offset: 27036}, + pos: position{line: 1196, col: 4, offset: 26926}, expr: &ruleRefExpr{ - pos: position{line: 1196, col: 4, offset: 27036}, + pos: position{line: 1196, col: 4, offset: 26926}, name: "Whitespace", }, }, }, { name: "Whitespace", - pos: position{line: 1198, col: 1, offset: 27049}, + pos: position{line: 1198, col: 1, offset: 26939}, expr: &choiceExpr{ - pos: position{line: 1199, col: 4, offset: 27063}, + pos: position{line: 1199, col: 4, offset: 26953}, alternatives: []interface{}{ &litMatcher{ - pos: position{line: 1199, col: 4, offset: 27063}, + pos: position{line: 1199, col: 4, offset: 26953}, val: "\t", ignoreCase: false, }, &litMatcher{ - pos: position{line: 1200, col: 4, offset: 27084}, + pos: position{line: 1200, col: 4, offset: 26974}, val: "\n", ignoreCase: false, }, &litMatcher{ - pos: position{line: 1201, col: 4, offset: 27105}, + pos: position{line: 1201, col: 4, offset: 26995}, val: "\v", ignoreCase: false, }, &litMatcher{ - pos: position{line: 1202, col: 4, offset: 27126}, + pos: position{line: 1202, col: 4, offset: 27016}, val: "\f", ignoreCase: false, }, &litMatcher{ - pos: position{line: 1203, col: 4, offset: 27147}, + pos: position{line: 1203, col: 4, offset: 27037}, val: "\r", ignoreCase: false, }, &litMatcher{ - pos: position{line: 1204, col: 4, offset: 27168}, + pos: position{line: 1204, col: 4, offset: 27058}, val: " ", ignoreCase: false, }, @@ -4900,11 +4900,11 @@ var g = &grammar{ }, { name: "EOF", - pos: position{line: 1206, col: 1, offset: 27190}, + pos: position{line: 1206, col: 1, offset: 27080}, expr: ¬Expr{ - pos: position{line: 1207, col: 4, offset: 27197}, + pos: position{line: 1207, col: 4, offset: 27087}, expr: &anyMatcher{ - line: 1207, col: 5, offset: 27198, + line: 1207, col: 5, offset: 27088, }, }, }, @@ -4922,7 +4922,7 @@ func (p *parser) callonS10() (interface{}, error) { } func (c *current) onS1(x, xs interface{}) (interface{}, error) { - return prepend(x, assertSlice(xs)), nil + return assertNodeSlice(prepend(x, assertSlice(xs))), nil } func (p *parser) callonS1() (interface{}, error) { @@ -6062,10 +6062,10 @@ func (c *current) onUIntType1(s interface{}) (interface{}, error) { node.SetLength(uint32(len(c.text))) node.Unsigned = true size, code := toUint(s.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "UIntType", @@ -6089,10 +6089,10 @@ func (c *current) onIntType1(s interface{}) (interface{}, error) { node.SetLength(uint32(len(c.text))) node.Unsigned = false size, code := toUint(s.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "IntType", @@ -6116,10 +6116,10 @@ func (c *current) onUFixedType1(s, t interface{}) (interface{}, error) { node.SetLength(uint32(len(c.text))) node.Unsigned = true size, code := toUint(s.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "UFixedType", @@ -6128,10 +6128,10 @@ func (c *current) onUFixedType1(s, t interface{}) (interface{}, error) { return node, err } fractionalDigits, code := toUint(t.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "UFixedType", @@ -6156,10 +6156,10 @@ func (c *current) onFixedType1(s, t interface{}) (interface{}, error) { node.SetLength(uint32(len(c.text))) node.Unsigned = false size, code := toUint(s.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "FixedType", @@ -6168,10 +6168,10 @@ func (c *current) onFixedType1(s, t interface{}) (interface{}, error) { return node, err } fractionalDigits, code := toUint(t.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "FixedType", @@ -6195,10 +6195,10 @@ func (c *current) onFixedBytesType2(s interface{}) (interface{}, error) { node.SetPosition(uint32(c.pos.offset)) node.SetLength(uint32(len(c.text))) size, code := toUint(s.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "FixedBytesType", @@ -6338,10 +6338,10 @@ func (c *current) onInteger1() (interface{}, error) { node.SetLength(uint32(len(c.text))) node.IsAddress = false v, code := toDecimal(c.text) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "Integer", @@ -6374,10 +6374,10 @@ func (c *current) onDecimal1() (interface{}, error) { node.SetPosition(uint32(c.pos.offset)) node.SetLength(uint32(len(c.text))) v, code := toDecimal(c.text) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "Decimal", @@ -6448,12 +6448,12 @@ func (c *current) onNormalString1(s interface{}) (interface{}, error) { node.SetLength(uint32(len(c.text))) bs := joinBytes(assertSlice(s)) v, bad, code := resolveString(bs) - if code != errors.ErrorCodeNil { + if code != se.ErrorCodeNil { msg := fmt.Sprintf("cannot resolve escape sequence '%s': %v", sanitizeBadEscape(bad), code) - err := errors.Error{ + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "NormalString", @@ -6561,12 +6561,12 @@ func (c *current) onStringIdentifier1(s interface{}) (interface{}, error) { node.SetLength(uint32(len(c.text))) bs := joinBytes(assertSlice(s)) name, bad, code := resolveString(bs) - if code != errors.ErrorCodeNil { + if code != se.ErrorCodeNil { msg := fmt.Sprintf("cannot resolve escape sequence '%s': %v", sanitizeBadEscape(bad), code) - err := errors.Error{ + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "StringIdentifier", @@ -6586,19 +6586,19 @@ func (p *parser) callonStringIdentifier1() (interface{}, error) { var ( // errNoRule is returned when the grammar to parse has no rule. - errNoRule = goerrors.New("grammar has no rule") + errNoRule = errors.New("grammar has no rule") // errInvalidEntrypoint is returned when the specified entrypoint rule // does not exit. - errInvalidEntrypoint = goerrors.New("invalid entrypoint") + errInvalidEntrypoint = errors.New("invalid entrypoint") // errInvalidEncoding is returned when the source is not properly // utf8-encoded. - errInvalidEncoding = goerrors.New("invalid encoding") + errInvalidEncoding = errors.New("invalid encoding") // errMaxExprCnt is used to signal that the maximum number of // expressions have been parsed. - errMaxExprCnt = goerrors.New("max number of expresssions parsed") + errMaxExprCnt = errors.New("max number of expresssions parsed") ) // Option is a function that can set an option on the parser. It returns @@ -6644,7 +6644,7 @@ func Entrypoint(ruleName string) Option { // // input := "input" // stats := Stats{} -// _, err := parse("input-file", []byte(input), Statistics(&stats, "no match")) +// _, err := Parse("input-file", []byte(input), Statistics(&stats, "no match")) // if err != nil { // log.Panicln(err) // } @@ -6741,8 +6741,8 @@ func InitState(key string, value interface{}) Option { } } -// parseFile parses the file identified by filename. -func parseFile(filename string, opts ...Option) (i interface{}, err error) { +// ParseFile parses the file identified by filename. +func ParseFile(filename string, opts ...Option) (i interface{}, err error) { f, err := os.Open(filename) if err != nil { return nil, err @@ -6752,23 +6752,23 @@ func parseFile(filename string, opts ...Option) (i interface{}, err error) { err = closeErr } }() - return parseReader(filename, f, opts...) + return ParseReader(filename, f, opts...) } -// parseReader parses the data from r using filename as information in the +// ParseReader parses the data from r using filename as information in the // error messages. -func parseReader(filename string, r io.Reader, opts ...Option) (interface{}, error) { +func ParseReader(filename string, r io.Reader, opts ...Option) (interface{}, error) { b, err := ioutil.ReadAll(r) if err != nil { return nil, err } - return parse(filename, b, opts...) + return Parse(filename, b, opts...) } -// parse parses the data from b using filename as information in the +// Parse parses the data from b using filename as information in the // error messages. -func parse(filename string, b []byte, opts ...Option) (interface{}, error) { +func Parse(filename string, b []byte, opts ...Option) (interface{}, error) { return newParser(filename, b, opts...).parse(g) } @@ -7362,7 +7362,7 @@ func (p *parser) parse(g *grammar) (val interface{}, err error) { if eof { expected = append(expected, "EOF") } - p.addErrAt(goerrors.New("no match found, expected: "+listJoin(expected, ", ", "or")), p.maxFailPos, expected) + p.addErrAt(errors.New("no match found, expected: "+listJoin(expected, ", ", "or")), p.maxFailPos, expected) } return nil, p.errs.err() diff --git a/core/vm/sqlvm/parser/grammar.peg b/core/vm/sqlvm/parser/internal/grammar.peg index 148dfaffb..c0a8b5e2c 100644 --- a/core/vm/sqlvm/parser/grammar.peg +++ b/core/vm/sqlvm/parser/internal/grammar.peg @@ -1,15 +1,15 @@ { -package parser +package internal import ( "github.com/dexon-foundation/dexon/core/vm/sqlvm/ast" - "github.com/dexon-foundation/dexon/core/vm/sqlvm/errors" + se "github.com/dexon-foundation/dexon/core/vm/sqlvm/errors" ) } S <- _ x:Stmt? _ xs:( ';' _ s:Stmt? _ { return s, nil } )* EOF -{ return prepend(x, assertSlice(xs)), nil } +{ return assertNodeSlice(prepend(x, assertSlice(xs))), nil } /* Statements */ Stmt @@ -687,10 +687,10 @@ UIntType node.SetLength(uint32(len(c.text))) node.Unsigned = true size, code := toUint(s.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "UIntType", @@ -710,10 +710,10 @@ IntType node.SetLength(uint32(len(c.text))) node.Unsigned = false size, code := toUint(s.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "IntType", @@ -733,10 +733,10 @@ UFixedType node.SetLength(uint32(len(c.text))) node.Unsigned = true size, code := toUint(s.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "UFixedType", @@ -745,10 +745,10 @@ UFixedType return node, err } fractionalDigits, code := toUint(t.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "UFixedType", @@ -769,10 +769,10 @@ FixedType node.SetLength(uint32(len(c.text))) node.Unsigned = false size, code := toUint(s.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "FixedType", @@ -781,10 +781,10 @@ FixedType return node, err } fractionalDigits, code := toUint(t.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "FixedType", @@ -804,10 +804,10 @@ FixedBytesType node.SetPosition(uint32(c.pos.offset)) node.SetLength(uint32(len(c.text))) size, code := toUint(s.([]byte)) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "FixedBytesType", @@ -918,10 +918,10 @@ Integer node.SetLength(uint32(len(c.text))) node.IsAddress = false v, code := toDecimal(c.text) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "Integer", @@ -949,10 +949,10 @@ Decimal node.SetPosition(uint32(c.pos.offset)) node.SetLength(uint32(len(c.text))) v, code := toDecimal(c.text) - if code != errors.ErrorCodeNil { - err := errors.Error{ + if code != se.ErrorCodeNil { + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "Decimal", @@ -995,12 +995,12 @@ NormalString node.SetLength(uint32(len(c.text))) bs := joinBytes(assertSlice(s)) v, bad, code := resolveString(bs) - if code != errors.ErrorCodeNil { + if code != se.ErrorCodeNil { msg := fmt.Sprintf("cannot resolve escape sequence '%s': %v", sanitizeBadEscape(bad), code) - err := errors.Error{ + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "NormalString", @@ -1174,12 +1174,12 @@ StringIdentifier node.SetLength(uint32(len(c.text))) bs := joinBytes(assertSlice(s)) name, bad, code := resolveString(bs) - if code != errors.ErrorCodeNil { + if code != se.ErrorCodeNil { msg := fmt.Sprintf("cannot resolve escape sequence '%s': %v", sanitizeBadEscape(bad), code) - err := errors.Error{ + err := se.Error{ Position: uint32(c.pos.offset), - Category: errors.ErrorCategoryGrammar, + Category: se.ErrorCategoryGrammar, Code: code, Token: string(c.text), Prefix: "StringIdentifier", diff --git a/core/vm/sqlvm/parser/internal/helpers.go b/core/vm/sqlvm/parser/internal/helpers.go new file mode 100644 index 000000000..9b65824a7 --- /dev/null +++ b/core/vm/sqlvm/parser/internal/helpers.go @@ -0,0 +1,317 @@ +package internal + +import ( + "bytes" + "encoding/hex" + "fmt" + "strconv" + "strings" + "unicode/utf8" + + "github.com/dexon-foundation/dexon/common" + "github.com/dexon-foundation/dexon/core/vm/sqlvm/ast" + "github.com/dexon-foundation/dexon/core/vm/sqlvm/errors" + "github.com/shopspring/decimal" +) + +// Parser was generated with pigeon v1.0.0-99-gbb0192c. +//go:generate pigeon -no-recover -o grammar.go grammar.peg + +func prepend(x interface{}, xs []interface{}) []interface{} { + return append([]interface{}{x}, xs...) +} + +func assertSlice(x interface{}) []interface{} { + if x == nil { + return nil + } + return x.([]interface{}) +} + +func assertNodeSlice(x interface{}) []ast.Node { + xs := assertSlice(x) + ns := make([]ast.Node, len(xs)) + for i := 0; i < len(xs); i++ { + if xs[i] != nil { + ns[i] = xs[i].(ast.Node) + } + } + return ns +} + +func assertExprSlice(x interface{}) []ast.ExprNode { + xs := assertSlice(x) + es := make([]ast.ExprNode, len(xs)) + for i := 0; i < len(xs); i++ { + if xs[i] != nil { + es[i] = xs[i].(ast.ExprNode) + } + } + return es +} + +func isAddress(h []byte) bool { + ma, err := common.NewMixedcaseAddressFromString(string(h)) + if err != nil { + return false + } + return ma.ValidChecksum() +} + +func hexToInteger(h []byte) *ast.IntegerValueNode { + d := decimal.Zero + x := h[2:] + l := len(x) + base := decimal.New(16, 0) + for idx, b := range x { + i, err := strconv.ParseInt(string([]byte{b}), 16, 32) + if err != nil { + panic(fmt.Sprintf("invalid hex digit %s: %v", []byte{b}, err)) + } + d = d.Add( + decimal.New(i, 0). + Mul(base.Pow(decimal.New(int64(l-idx-1), 0))), + ) + } + node := &ast.IntegerValueNode{} + node.IsAddress = isAddress(h) + node.V = d + return node +} + +func hexToBytes(h []byte) []byte { + bs := make([]byte, hex.DecodedLen(len(h))) + _, err := hex.Decode(bs, h) + if err != nil { + panic(fmt.Sprintf("invalid hex string %s: %v", h, err)) + } + return bs +} + +func convertNumError(err error) errors.ErrorCode { + if err == nil { + return errors.ErrorCodeNil + } + switch err.(*strconv.NumError).Err { + case strconv.ErrSyntax: + return errors.ErrorCodeInvalidIntegerSyntax + case strconv.ErrRange: + return errors.ErrorCodeIntegerOutOfRange + } + panic(fmt.Sprintf("unknown NumError: %v", err)) +} + +func convertDecimalError(err error) errors.ErrorCode { + if err == nil { + return errors.ErrorCodeNil + } + errStr := err.Error() + if strings.HasSuffix(errStr, "decimal: fractional part too long") { + return errors.ErrorCodeFractionalPartTooLong + } else if strings.HasSuffix(errStr, "decimal: exponent is not numeric") { + return errors.ErrorCodeInvalidNumberSyntax + } else if strings.HasSuffix(errStr, "decimal: too many .s") { + return errors.ErrorCodeInvalidNumberSyntax + } + panic(fmt.Sprintf("unknown decimal error: %v", err)) +} + +func toUint(b []byte) (uint32, errors.ErrorCode) { + i, err := strconv.ParseUint(string(b), 10, 32) + return uint32(i), convertNumError(err) +} + +func toDecimal(b []byte) (decimal.Decimal, errors.ErrorCode) { + if len(b) > 0 && b[0] == byte('.') { + b = append([]byte{'0'}, b...) + } + d, err := decimal.NewFromString(string(b)) + return d, convertDecimalError(err) +} + +func toLower(b []byte) []byte { + return bytes.ToLower(b) +} + +func joinBytes(x []interface{}) []byte { + bs := []byte{} + for _, b := range x { + bs = append(bs, b.([]byte)...) + } + return bs +} + +func opSetSubject(op ast.BinaryOperator, s ast.ExprNode) ast.BinaryOperator { + op.SetSubject(s) + return op +} + +func opSetObject(op ast.BinaryOperator, o ast.ExprNode) ast.BinaryOperator { + op.SetObject(o) + return op +} + +func opSetTarget(op ast.UnaryOperator, t ast.ExprNode) ast.UnaryOperator { + op.SetTarget(t) + return op +} + +func joinOperator(x ast.ExprNode, o ast.ExprNode) { + switch op := x.(type) { + case ast.UnaryOperator: + joinOperator(op.GetTarget(), o) + case ast.BinaryOperator: + opSetObject(op, o) + case *ast.InOperatorNode: + op.Left = o + default: + panic(fmt.Sprintf("unable to join operators %T and %T", x, o)) + } +} + +func rightJoinOperators(o ast.ExprNode, x []ast.ExprNode) ast.ExprNode { + if len(x) == 0 { + return o + } + l := len(x) + joinOperator(x[0], o) + for idx := 0; idx < l-1; idx++ { + joinOperator(x[idx+1], x[idx]) + } + return x[l-1] +} + +func sanitizeBadEscape(s []byte) []byte { + o := bytes.Buffer{} + for _, b := range s { + if b >= 0x20 && b <= 0x7e && b != '\'' { + o.WriteByte(b) + } else { + o.WriteString(fmt.Sprintf("<%02X>", b)) + } + } + return o.Bytes() +} + +func decodeString(s []byte) []byte { + o := bytes.Buffer{} + for r, i, size := rune(0), 0, 0; i < len(s); i += size { + r, size = utf8.DecodeRune(s[i:]) + if r > 0xff { + panic(fmt.Sprintf("invalid encoded rune U+%04X", r)) + } + o.WriteByte(byte(r)) + } + return o.Bytes() +} + +func resolveString(s []byte) ([]byte, []byte, errors.ErrorCode) { + s = decodeString(s) + o := bytes.Buffer{} + for i, size := 0, 0; i < len(s); i += size { + if s[i] == '\\' { + if i+1 >= len(s) { + panic("trailing backslash in string literal") + } + switch s[i+1] { + case '\n': + size = 2 + + case '\\': + o.WriteByte('\\') + size = 2 + case '\'': + o.WriteByte('\'') + size = 2 + case '"': + o.WriteByte('"') + size = 2 + case 'b': + o.WriteByte('\b') + size = 2 + case 'f': + o.WriteByte('\f') + size = 2 + case 'n': + o.WriteByte('\n') + size = 2 + case 'r': + o.WriteByte('\r') + size = 2 + case 't': + o.WriteByte('\t') + size = 2 + case 'v': + o.WriteByte('\v') + size = 2 + + case 'x': + if i+3 >= len(s) { + return nil, s[i:], errors.ErrorCodeEscapeSequenceTooShort + } + b, err := strconv.ParseUint(string(s[i+2:i+4]), 16, 8) + if err != nil { + return nil, s[i : i+4], convertNumError(err) + } + o.WriteByte(uint8(b)) + size = 4 + + case 'u': + if i+5 >= len(s) { + return nil, s[i:], errors.ErrorCodeEscapeSequenceTooShort + } + u, err := strconv.ParseUint(string(s[i+2:i+6]), 16, 16) + if err != nil { + return nil, s[i : i+6], convertNumError(err) + } + if u >= 0xd800 && u <= 0xdfff { + return nil, s[i : i+6], errors.ErrorCodeInvalidUnicodeCodePoint + } + o.WriteRune(rune(u)) + size = 6 + + case 'U': + if i+9 >= len(s) { + return nil, s[i:], errors.ErrorCodeEscapeSequenceTooShort + } + r, err := strconv.ParseUint(string(s[i+2:i+10]), 16, 32) + if err != nil { + return nil, s[i : i+10], convertNumError(err) + } + if r > 0x10ffff || (r >= 0xd800 && r <= 0xdfff) { + return nil, s[i : i+10], errors.ErrorCodeInvalidUnicodeCodePoint + } + o.WriteRune(rune(r)) + size = 10 + + default: + return nil, s[i : i+2], errors.ErrorCodeUnknownEscapeSequence + } + } else { + o.WriteByte(s[i]) + size = 1 + } + } + return o.Bytes(), nil, errors.ErrorCodeNil +} + +// ErrList exports pigeon errList for the parser package. +type ErrList = errList + +// ParserError exports pigeon parserError for parser package. +type ParserError = parserError + +// DecodeString exports helper decodeString for parser package. +var DecodeString = decodeString + +// SQLVMError converts a pigeon parserError to a SQLVM error. +func (p *parserError) SQLVMError() errors.Error { + return errors.Error{ + Position: uint32(p.pos.offset), + Category: errors.ErrorCategoryGrammar, + Code: errors.ErrorCodeParser, + Token: "", + Prefix: p.prefix, + Message: p.Inner.Error(), + } +} diff --git a/core/vm/sqlvm/parser/parser.go b/core/vm/sqlvm/parser/parser.go index e8aa49c89..a90fec71c 100644 --- a/core/vm/sqlvm/parser/parser.go +++ b/core/vm/sqlvm/parser/parser.go @@ -2,302 +2,13 @@ package parser import ( "bytes" - "encoding/hex" "fmt" - "strconv" - "strings" - "unicode/utf8" - "github.com/dexon-foundation/dexon/common" "github.com/dexon-foundation/dexon/core/vm/sqlvm/ast" "github.com/dexon-foundation/dexon/core/vm/sqlvm/errors" - "github.com/shopspring/decimal" + "github.com/dexon-foundation/dexon/core/vm/sqlvm/parser/internal" ) -// Parser was generated with pigeon v1.0.0-99-gbb0192c. -//go:generate pigeon -no-recover -o grammar.go grammar.peg -//go:generate sh -c "sed -f grammar.sed grammar.go > grammar_new.go" -//go:generate mv grammar_new.go grammar.go -//go:generate goimports -w grammar.go - -func prepend(x interface{}, xs []interface{}) []interface{} { - return append([]interface{}{x}, xs...) -} - -func assertSlice(x interface{}) []interface{} { - if x == nil { - return nil - } - return x.([]interface{}) -} - -func assertNodeSlice(x interface{}) []ast.Node { - xs := assertSlice(x) - ns := make([]ast.Node, len(xs)) - for i := 0; i < len(xs); i++ { - if xs[i] != nil { - ns[i] = xs[i].(ast.Node) - } - } - return ns -} - -func assertExprSlice(x interface{}) []ast.ExprNode { - xs := assertSlice(x) - es := make([]ast.ExprNode, len(xs)) - for i := 0; i < len(xs); i++ { - if xs[i] != nil { - es[i] = xs[i].(ast.ExprNode) - } - } - return es -} - -func isAddress(h []byte) bool { - ma, err := common.NewMixedcaseAddressFromString(string(h)) - if err != nil { - return false - } - return ma.ValidChecksum() -} - -func hexToInteger(h []byte) *ast.IntegerValueNode { - d := decimal.Zero - x := h[2:] - l := len(x) - base := decimal.New(16, 0) - for idx, b := range x { - i, err := strconv.ParseInt(string([]byte{b}), 16, 32) - if err != nil { - panic(fmt.Sprintf("invalid hex digit %s: %v", []byte{b}, err)) - } - d = d.Add( - decimal.New(i, 0). - Mul(base.Pow(decimal.New(int64(l-idx-1), 0))), - ) - } - node := &ast.IntegerValueNode{} - node.IsAddress = isAddress(h) - node.V = d - return node -} - -func hexToBytes(h []byte) []byte { - bs := make([]byte, hex.DecodedLen(len(h))) - _, err := hex.Decode(bs, h) - if err != nil { - panic(fmt.Sprintf("invalid hex string %s: %v", h, err)) - } - return bs -} - -func convertNumError(err error) errors.ErrorCode { - if err == nil { - return errors.ErrorCodeNil - } - switch err.(*strconv.NumError).Err { - case strconv.ErrSyntax: - return errors.ErrorCodeInvalidIntegerSyntax - case strconv.ErrRange: - return errors.ErrorCodeIntegerOutOfRange - } - panic(fmt.Sprintf("unknown NumError: %v", err)) -} - -func convertDecimalError(err error) errors.ErrorCode { - if err == nil { - return errors.ErrorCodeNil - } - errStr := err.Error() - if strings.HasSuffix(errStr, "decimal: fractional part too long") { - return errors.ErrorCodeFractionalPartTooLong - } else if strings.HasSuffix(errStr, "decimal: exponent is not numeric") { - return errors.ErrorCodeInvalidNumberSyntax - } else if strings.HasSuffix(errStr, "decimal: too many .s") { - return errors.ErrorCodeInvalidNumberSyntax - } - panic(fmt.Sprintf("unknown decimal error: %v", err)) -} - -func toUint(b []byte) (uint32, errors.ErrorCode) { - i, err := strconv.ParseUint(string(b), 10, 32) - return uint32(i), convertNumError(err) -} - -func toDecimal(b []byte) (decimal.Decimal, errors.ErrorCode) { - if len(b) > 0 && b[0] == byte('.') { - b = append([]byte{'0'}, b...) - } - d, err := decimal.NewFromString(string(b)) - return d, convertDecimalError(err) -} - -func toLower(b []byte) []byte { - return bytes.ToLower(b) -} - -func joinBytes(x []interface{}) []byte { - bs := []byte{} - for _, b := range x { - bs = append(bs, b.([]byte)...) - } - return bs -} - -func opSetSubject(op ast.BinaryOperator, s ast.ExprNode) ast.BinaryOperator { - op.SetSubject(s) - return op -} - -func opSetObject(op ast.BinaryOperator, o ast.ExprNode) ast.BinaryOperator { - op.SetObject(o) - return op -} - -func opSetTarget(op ast.UnaryOperator, t ast.ExprNode) ast.UnaryOperator { - op.SetTarget(t) - return op -} - -func joinOperator(x ast.ExprNode, o ast.ExprNode) { - switch op := x.(type) { - case ast.UnaryOperator: - joinOperator(op.GetTarget(), o) - case ast.BinaryOperator: - opSetObject(op, o) - case *ast.InOperatorNode: - op.Left = o - default: - panic(fmt.Sprintf("unable to join operators %T and %T", x, o)) - } -} - -func rightJoinOperators(o ast.ExprNode, x []ast.ExprNode) ast.ExprNode { - if len(x) == 0 { - return o - } - l := len(x) - joinOperator(x[0], o) - for idx := 0; idx < l-1; idx++ { - joinOperator(x[idx+1], x[idx]) - } - return x[l-1] -} - -func sanitizeBadEscape(s []byte) []byte { - o := bytes.Buffer{} - for _, b := range s { - if b >= 0x20 && b <= 0x7e && b != '\'' { - o.WriteByte(b) - } else { - o.WriteString(fmt.Sprintf("<%02X>", b)) - } - } - return o.Bytes() -} - -func decodeString(s []byte) []byte { - o := bytes.Buffer{} - for r, i, size := rune(0), 0, 0; i < len(s); i += size { - r, size = utf8.DecodeRune(s[i:]) - if r > 0xff { - panic(fmt.Sprintf("invalid encoded rune U+%04X", r)) - } - o.WriteByte(byte(r)) - } - return o.Bytes() -} - -func resolveString(s []byte) ([]byte, []byte, errors.ErrorCode) { - s = decodeString(s) - o := bytes.Buffer{} - for i, size := 0, 0; i < len(s); i += size { - if s[i] == '\\' { - if i+1 >= len(s) { - panic("trailing backslash in string literal") - } - switch s[i+1] { - case '\n': - size = 2 - - case '\\': - o.WriteByte('\\') - size = 2 - case '\'': - o.WriteByte('\'') - size = 2 - case '"': - o.WriteByte('"') - size = 2 - case 'b': - o.WriteByte('\b') - size = 2 - case 'f': - o.WriteByte('\f') - size = 2 - case 'n': - o.WriteByte('\n') - size = 2 - case 'r': - o.WriteByte('\r') - size = 2 - case 't': - o.WriteByte('\t') - size = 2 - case 'v': - o.WriteByte('\v') - size = 2 - - case 'x': - if i+3 >= len(s) { - return nil, s[i:], errors.ErrorCodeEscapeSequenceTooShort - } - b, err := strconv.ParseUint(string(s[i+2:i+4]), 16, 8) - if err != nil { - return nil, s[i : i+4], convertNumError(err) - } - o.WriteByte(uint8(b)) - size = 4 - - case 'u': - if i+5 >= len(s) { - return nil, s[i:], errors.ErrorCodeEscapeSequenceTooShort - } - u, err := strconv.ParseUint(string(s[i+2:i+6]), 16, 16) - if err != nil { - return nil, s[i : i+6], convertNumError(err) - } - if u >= 0xd800 && u <= 0xdfff { - return nil, s[i : i+6], errors.ErrorCodeInvalidUnicodeCodePoint - } - o.WriteRune(rune(u)) - size = 6 - - case 'U': - if i+9 >= len(s) { - return nil, s[i:], errors.ErrorCodeEscapeSequenceTooShort - } - r, err := strconv.ParseUint(string(s[i+2:i+10]), 16, 32) - if err != nil { - return nil, s[i : i+10], convertNumError(err) - } - if r > 0x10ffff || (r >= 0xd800 && r <= 0xdfff) { - return nil, s[i : i+10], errors.ErrorCodeInvalidUnicodeCodePoint - } - o.WriteRune(rune(r)) - size = 10 - - default: - return nil, s[i : i+2], errors.ErrorCodeUnknownEscapeSequence - } - } else { - o.WriteByte(s[i]) - size = 1 - } - } - return o.Bytes(), nil, errors.ErrorCodeNil -} - func walkSelfFirst(n ast.Node, v func(ast.Node, []ast.Node)) { c := n.GetChildren() v(n, c) @@ -315,7 +26,7 @@ func walkChildrenFirst(n ast.Node, v func(ast.Node, []ast.Node)) { } // Parse parses SQL commands text and return an AST. -func Parse(b []byte, o ...Option) ([]ast.Node, error) { +func Parse(b []byte) ([]ast.Node, error) { // The string sent from the caller is not guaranteed to be valid UTF-8. // We don't really care non-ASCII characters in the string because all // keywords and special symbols are defined in ASCII. Therefore, as long @@ -342,11 +53,14 @@ func Parse(b []byte, o ...Option) ([]ast.Node, error) { // Prepare arguments and call the parser. eb := encBuf.Bytes() - options := append([]Option{Recover(false)}, o...) - root, pigeonErr := parse("", eb, options...) - stmts := assertNodeSlice(root) + options := []internal.Option{internal.Recover(false)} + root, pigeonErr := internal.Parse("", eb, options...) // Process the AST. + var stmts []ast.Node + if root != nil { + stmts = root.([]ast.Node) + } for i := range stmts { if stmts[i] == nil { continue @@ -389,24 +103,17 @@ func Parse(b []byte, o ...Option) ([]ast.Node, error) { } // Process errors. - pigeonErrList := pigeonErr.(errList) + pigeonErrList := pigeonErr.(internal.ErrList) sqlvmErrList := make(errors.ErrorList, len(pigeonErrList)) for i := range pigeonErrList { - parserErr := pigeonErrList[i].(*parserError) + parserErr := pigeonErrList[i].(*internal.ParserError) if sqlvmErr, ok := parserErr.Inner.(errors.Error); ok { sqlvmErrList[i] = sqlvmErr } else { - sqlvmErrList[i] = errors.Error{ - Position: uint32(parserErr.pos.offset), - Category: errors.ErrorCategoryGrammar, - Code: errors.ErrorCodeParser, - Token: "", - Prefix: parserErr.prefix, - Message: parserErr.Inner.Error(), - } + sqlvmErrList[i] = parserErr.SQLVMError() } sqlvmErrList[i].Token = - string(decodeString([]byte(sqlvmErrList[i].Token))) + string(internal.DecodeString([]byte(sqlvmErrList[i].Token))) if offset, ok := encMap[sqlvmErrList[i].Position]; ok { sqlvmErrList[i].Position = offset } else { |