aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/sqlvm
diff options
context:
space:
mode:
authorTing-Wei Lan <tingwei.lan@cobinhood.com>2019-03-04 14:30:51 +0800
committerJhih-Ming Huang <jm.huang@cobinhood.com>2019-05-06 10:44:04 +0800
commitefabc336cf705aab463d81dd20e8d95df97e0965 (patch)
tree8ca0eb7e0879bf0dcb042ca8e7e8cfce121cc34d /core/vm/sqlvm
parent3092f54b1c16b45be4fb5e52574e4b9d7a9ebcb8 (diff)
downloaddexon-efabc336cf705aab463d81dd20e8d95df97e0965.tar
dexon-efabc336cf705aab463d81dd20e8d95df97e0965.tar.gz
dexon-efabc336cf705aab463d81dd20e8d95df97e0965.tar.bz2
dexon-efabc336cf705aab463d81dd20e8d95df97e0965.tar.lz
dexon-efabc336cf705aab463d81dd20e8d95df97e0965.tar.xz
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.
Diffstat (limited to 'core/vm/sqlvm')
-rw-r--r--core/vm/sqlvm/parser/grammar.sed4
-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.go317
-rw-r--r--core/vm/sqlvm/parser/parser.go317
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",
},
},
&notExpr{
- 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",
},
},
&notExpr{
- 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",
},
},
&notExpr{
- 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",
},
},
&notExpr{
- 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",
},
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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{
},
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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,
},
&notExpr{
- 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: &notExpr{
- 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 {