parser.go: improved terminal symbols thanks to new symbol-map.go functions
This commit is contained in:
parent
523349a204
commit
a28d24ba68
@ -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()
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user