From a28d24ba688681c6994ddcd47ac0d09cad9e6332 Mon Sep 17 00:00:00 2001 From: Celestino Amoroso Date: Sun, 13 Oct 2024 08:42:55 +0200 Subject: [PATCH] parser.go: improved terminal symbols thanks to new symbol-map.go functions --- parser.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/parser.go b/parser.go index a8368f4..eb5108e 100644 --- a/parser.go +++ b/parser.go @@ -336,6 +336,7 @@ func (parser *parser) parseItem(scanner *scanner, allowVarRef bool, termSymbols } func (parser *parser) Parse(scanner *scanner, termSymbols ...Symbol) (tree *ast, err error) { + termSymbols = append(termSymbols, SymEos) return parser.parseGeneral(scanner, true, false, termSymbols...) } @@ -487,6 +488,10 @@ func (parser *parser) parseGeneral(scanner *scanner, allowForest bool, allowVarR // lastSym = tk.Sym } + if err == nil && !tk.IsOneOf(termSymbols) { + err = tk.ErrorExpectedGotStringWithPrefix("expected one of", SymListToString(termSymbols, false), SymToString(tk.Sym)) + } + if err == nil { err = tk.Error() }