diff --git a/parser/error.go b/parser/error.go new file mode 100644 index 0000000..45aa254 --- /dev/null +++ b/parser/error.go @@ -0,0 +1,16 @@ +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, + } +} diff --git a/parser/parser.go b/parser/parser.go index 570e766..5e4c5b8 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -31,13 +31,7 @@ func defaultOnToken(pos lexer.Position, typ TokenType, value string) error { func defaultOnError(pos lexer.Position, content string, err error) error { log.Printf("%s:%v:%v: %q: %s", "error", pos.Line, pos.Column, content, err) - return lexer.Error{ - Line: pos.Line, - Column: pos.Column, - - Content: content, - Err: err, - } + return NewError(pos, content, "", err) } func (p *Parser) setDefaults() {