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) {
|
func (parser *parser) Parse(scanner *scanner, termSymbols ...Symbol) (tree *ast, err error) {
|
||||||
|
termSymbols = append(termSymbols, SymEos)
|
||||||
return parser.parseGeneral(scanner, true, false, termSymbols...)
|
return parser.parseGeneral(scanner, true, false, termSymbols...)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -487,6 +488,10 @@ func (parser *parser) parseGeneral(scanner *scanner, allowForest bool, allowVarR
|
|||||||
// lastSym = tk.Sym
|
// lastSym = tk.Sym
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err == nil && !tk.IsOneOf(termSymbols) {
|
||||||
|
err = tk.ErrorExpectedGotStringWithPrefix("expected one of", SymListToString(termSymbols, false), SymToString(tk.Sym))
|
||||||
|
}
|
||||||
|
|
||||||
if err == nil {
|
if err == nil {
|
||||||
err = tk.Error()
|
err = tk.Error()
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user