aboutsummaryrefslogtreecommitdiffhomepage
path: root/vendor/github.com/tdewolff/parse/error.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/tdewolff/parse/error.go')
-rw-r--r--vendor/github.com/tdewolff/parse/error.go35
1 files changed, 35 insertions, 0 deletions
diff --git a/vendor/github.com/tdewolff/parse/error.go b/vendor/github.com/tdewolff/parse/error.go
new file mode 100644
index 0000000..1e85f9b
--- /dev/null
+++ b/vendor/github.com/tdewolff/parse/error.go
@@ -0,0 +1,35 @@
+package parse
+
+import (
+ "fmt"
+ "io"
+
+ "github.com/tdewolff/parse/buffer"
+)
+
+type Error struct {
+ Message string
+ Line int
+ Col int
+ Context string
+}
+
+func NewError(msg string, r io.Reader, offset int) *Error {
+ line, col, context, _ := Position(r, offset)
+ return &Error{
+ msg,
+ line,
+ col,
+ context,
+ }
+}
+
+func NewErrorLexer(msg string, l *buffer.Lexer) *Error {
+ r := buffer.NewReader(l.Bytes())
+ offset := l.Offset()
+ return NewError(msg, r, offset)
+}
+
+func (e *Error) Error() string {
+ return fmt.Sprintf("parse error:%d:%d: %s\n%s", e.Line, e.Col, e.Message, e.Context)
+}