parser: introduce NewError() and ErrPlusPosition() #8
Merged
amery
merged 3 commits from pr-amery-error
into main
1 year ago
3 changed files with 31 additions and 21 deletions
@ -0,0 +1,27 @@
|
||||
package parser |
||||
|
||||
import ( |
||||
"asciigoat.org/core/lexer" |
||||
) |
||||
|
||||
// NewError creates a lexer.Error using a lexer.Position
|
||||
func NewError(pos lexer.Position, content, hint string, err error) *lexer.Error { |
||||
return &lexer.Error{ |
||||
Line: pos.Line, |
||||
Column: pos.Column, |
||||
Content: content, |
||||
Hint: hint, |
||||
Err: err, |
||||
} |
||||
} |
||||
|
||||
// ErrPlusPosition returns a copy of the given [lexer.Error]
|
||||
// offsetting the Line/Column information.
|
||||
func ErrPlusPosition(pos lexer.Position, e *lexer.Error) *lexer.Error { |
||||
pos.Add(lexer.Position{ |
||||
Line: e.Line, |
||||
Column: e.Column, |
||||
}) |
||||
|
||||
return NewError(pos, e.Content, e.Hint, e.Err) |
||||
} |
Loading…
Reference in new issue