aboutsummaryrefslogtreecommitdiff
path: root/compiler/parser/error.go
diff options
context:
space:
mode:
authorRyo Nihei <nihei.dev@gmail.com>2021-12-05 13:17:32 +0900
committerRyo Nihei <nihei.dev@gmail.com>2021-12-10 01:50:24 +0900
commit19b68a5ca013c1ff7562e608db7964973fd691b2 (patch)
treee43ac01d0d6f41b4d18e4adf357b3662517806f9 /compiler/parser/error.go
parentMove UTF8-related processes to utf8 package (diff)
downloadtre-19b68a5ca013c1ff7562e608db7964973fd691b2.tar.gz
tre-19b68a5ca013c1ff7562e608db7964973fd691b2.tar.xz
Add a new parser that constructs a tree representing characters as code points, not byte sequences
Diffstat (limited to 'compiler/parser/error.go')
-rw-r--r--compiler/parser/error.go33
1 files changed, 33 insertions, 0 deletions
diff --git a/compiler/parser/error.go b/compiler/parser/error.go
new file mode 100644
index 0000000..a90e3b3
--- /dev/null
+++ b/compiler/parser/error.go
@@ -0,0 +1,33 @@
+package parser
+
+import "fmt"
+
+var (
+ ParseErr = fmt.Errorf("parse error")
+
+ // lexical errors
+ synErrIncompletedEscSeq = fmt.Errorf("incompleted escape sequence; unexpected EOF following \\")
+ synErrInvalidEscSeq = fmt.Errorf("invalid escape sequence")
+ synErrInvalidCodePoint = fmt.Errorf("code points must consist of just 4 or 6 hex digits")
+ synErrCharPropInvalidSymbol = fmt.Errorf("invalid character property symbol")
+ SynErrFragmentInvalidSymbol = fmt.Errorf("invalid fragment symbol")
+
+ // syntax errors
+ synErrUnexpectedToken = fmt.Errorf("unexpected token")
+ synErrNullPattern = fmt.Errorf("a pattern must be a non-empty byte sequence")
+ synErrAltLackOfOperand = fmt.Errorf("an alternation expression must have operands")
+ synErrRepNoTarget = fmt.Errorf("a repeat expression must have an operand")
+ synErrGroupNoElem = fmt.Errorf("a grouping expression must include at least one character")
+ synErrGroupUnclosed = fmt.Errorf("unclosed grouping expression")
+ synErrGroupNoInitiator = fmt.Errorf(") needs preceding (")
+ synErrGroupInvalidForm = fmt.Errorf("invalid grouping expression")
+ synErrBExpNoElem = fmt.Errorf("a bracket expression must include at least one character")
+ synErrBExpUnclosed = fmt.Errorf("unclosed bracket expression")
+ synErrBExpInvalidForm = fmt.Errorf("invalid bracket expression")
+ synErrRangeInvalidOrder = fmt.Errorf("a range expression with invalid order")
+ synErrCPExpInvalidForm = fmt.Errorf("invalid code point expression")
+ synErrCPExpOutOfRange = fmt.Errorf("a code point must be between U+0000 to U+10FFFF")
+ synErrCharPropExpInvalidForm = fmt.Errorf("invalid character property expression")
+ synErrCharPropUnsupported = fmt.Errorf("unsupported character property")
+ synErrFragmentExpInvalidForm = fmt.Errorf("invalid fragment expression")
+)