From 8e98b927dd4e2eb1457ca87e3381a2f3206a5c89 Mon Sep 17 00:00:00 2001 From: Alejandro Mery Date: Wed, 30 Aug 2023 02:29:51 +0100 Subject: [PATCH] parser: emitError Signed-off-by: Alejandro Mery --- parser/lexer.go | 3 +-- parser/lexer_error.go | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 2 deletions(-) create mode 100644 parser/lexer_error.go diff --git a/parser/lexer.go b/parser/lexer.go index 2db36e9..5ee901e 100644 --- a/parser/lexer.go +++ b/parser/lexer.go @@ -20,8 +20,7 @@ func (p *Parser) lexStart() (lexer.StateFn, error) { switch { case err != nil: // read error - log.Printf("%s: %s: %s", p.pos, "error", err) - return nil, err + return p.emitError("", err) case IsNewLine(r): // new line p.lexNewLine(r) diff --git a/parser/lexer_error.go b/parser/lexer_error.go new file mode 100644 index 0000000..9eaa98b --- /dev/null +++ b/parser/lexer_error.go @@ -0,0 +1,15 @@ +package parser + +import "asciigoat.org/core/lexer" + +func (p *Parser) emitError(content string, err error) (lexer.StateFn, error) { + err2 := p.OnError(p.pos, content, err) + switch { + case err2 != nil: + // return wrapped error + return nil, err2 + default: + // return original error + return nil, err + } +}