From fdc7dc0ad5a5b1d4151b881129f2828672847689 Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Mon, 4 Sep 2023 13:48:08 +0000 Subject: [PATCH] parser: introduce NewError() to create lexer.Error using lexer.Position Signed-off-by: Alejandro Mery --- parser/error.go | 16 ++++++++++++++++ parser/parser.go | 8 +------- 2 files changed, 17 insertions(+), 7 deletions(-) create mode 100644 parser/error.go 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() {