From edd90054d7b6a934bf2c769a3323016371b59c84 Mon Sep 17 00:00:00 2001 From: Celestino Amoroso Date: Fri, 1 May 2026 07:23:27 +0200 Subject: [PATCH] parser.go: added recover from panic in parser.Parse() --- parser.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/parser.go b/parser.go index 0c7d5a5..f99823b 100644 --- a/parser.go +++ b/parser.go @@ -382,6 +382,16 @@ func (parser *parser) parseItem(scanner *scanner, ctx parserContext, termSymbols } func (parser *parser) Parse(scanner *scanner, termSymbols ...Symbol) (tree *ast, err error) { + defer func() { + if r := recover(); r != nil { + if errVal, ok := r.(error); ok { + err = errVal + } + } + if err == nil { + err = errors.New("unexpected error while parsing the expression") + } + }() termSymbols = append(termSymbols, SymEos) return parser.parseGeneral(scanner, allowMultiExpr, termSymbols...) }