aboutsummaryrefslogtreecommitdiffstats
path: root/core/vm/sqlvm/parser/internal/grammar.peg
diff options
context:
space:
mode:
authorTing-Wei Lan <tingwei.lan@cobinhood.com>2019-03-04 18:10:25 +0800
committerJhih-Ming Huang <jm.huang@cobinhood.com>2019-05-06 10:44:04 +0800
commit698e83b3cc39737a45244ac2d47595964f6e468c (patch)
tree6af5b16f7e3914987aeb914fc78e261433cf47cc /core/vm/sqlvm/parser/internal/grammar.peg
parent126145a7eca2c054367abc65291ab1c90c51b998 (diff)
downloaddexon-698e83b3cc39737a45244ac2d47595964f6e468c.tar
dexon-698e83b3cc39737a45244ac2d47595964f6e468c.tar.gz
dexon-698e83b3cc39737a45244ac2d47595964f6e468c.tar.bz2
dexon-698e83b3cc39737a45244ac2d47595964f6e468c.tar.lz
dexon-698e83b3cc39737a45244ac2d47595964f6e468c.tar.xz
dexon-698e83b3cc39737a45244ac2d47595964f6e468c.tar.zst
dexon-698e83b3cc39737a45244ac2d47595964f6e468c.zip
core: vm: sqlvm: errors: add length field
When an error corresponds to a source code token, it should be able to report the length of the token in addition to the position.
Diffstat (limited to 'core/vm/sqlvm/parser/internal/grammar.peg')
-rw-r--r--core/vm/sqlvm/parser/internal/grammar.peg11
1 files changed, 11 insertions, 0 deletions
diff --git a/core/vm/sqlvm/parser/internal/grammar.peg b/core/vm/sqlvm/parser/internal/grammar.peg
index c0a8b5e2c..cf3a9ef5e 100644
--- a/core/vm/sqlvm/parser/internal/grammar.peg
+++ b/core/vm/sqlvm/parser/internal/grammar.peg
@@ -690,6 +690,7 @@ UIntType
if code != se.ErrorCodeNil {
err := se.Error{
Position: uint32(c.pos.offset),
+ Length: uint32(len(c.text)),
Category: se.ErrorCategoryGrammar,
Code: code,
Token: string(c.text),
@@ -713,6 +714,7 @@ IntType
if code != se.ErrorCodeNil {
err := se.Error{
Position: uint32(c.pos.offset),
+ Length: uint32(len(c.text)),
Category: se.ErrorCategoryGrammar,
Code: code,
Token: string(c.text),
@@ -736,6 +738,7 @@ UFixedType
if code != se.ErrorCodeNil {
err := se.Error{
Position: uint32(c.pos.offset),
+ Length: uint32(len(c.text)),
Category: se.ErrorCategoryGrammar,
Code: code,
Token: string(c.text),
@@ -748,6 +751,7 @@ UFixedType
if code != se.ErrorCodeNil {
err := se.Error{
Position: uint32(c.pos.offset),
+ Length: uint32(len(c.text)),
Category: se.ErrorCategoryGrammar,
Code: code,
Token: string(c.text),
@@ -772,6 +776,7 @@ FixedType
if code != se.ErrorCodeNil {
err := se.Error{
Position: uint32(c.pos.offset),
+ Length: uint32(len(c.text)),
Category: se.ErrorCategoryGrammar,
Code: code,
Token: string(c.text),
@@ -784,6 +789,7 @@ FixedType
if code != se.ErrorCodeNil {
err := se.Error{
Position: uint32(c.pos.offset),
+ Length: uint32(len(c.text)),
Category: se.ErrorCategoryGrammar,
Code: code,
Token: string(c.text),
@@ -807,6 +813,7 @@ FixedBytesType
if code != se.ErrorCodeNil {
err := se.Error{
Position: uint32(c.pos.offset),
+ Length: uint32(len(c.text)),
Category: se.ErrorCategoryGrammar,
Code: code,
Token: string(c.text),
@@ -921,6 +928,7 @@ Integer
if code != se.ErrorCodeNil {
err := se.Error{
Position: uint32(c.pos.offset),
+ Length: uint32(len(c.text)),
Category: se.ErrorCategoryGrammar,
Code: code,
Token: string(c.text),
@@ -952,6 +960,7 @@ Decimal
if code != se.ErrorCodeNil {
err := se.Error{
Position: uint32(c.pos.offset),
+ Length: uint32(len(c.text)),
Category: se.ErrorCategoryGrammar,
Code: code,
Token: string(c.text),
@@ -1000,6 +1009,7 @@ NormalString
sanitizeBadEscape(bad), code)
err := se.Error{
Position: uint32(c.pos.offset),
+ Length: uint32(len(c.text)),
Category: se.ErrorCategoryGrammar,
Code: code,
Token: string(c.text),
@@ -1179,6 +1189,7 @@ StringIdentifier
sanitizeBadEscape(bad), code)
err := se.Error{
Position: uint32(c.pos.offset),
+ Length: uint32(len(c.text)),
Category: se.ErrorCategoryGrammar,
Code: code,
Token: string(c.text),