made some interfaces exportable and fixed/enhaaced some selector operator versions

This commit is contained in:
2024-04-08 23:17:56 +02:00
parent aa195b9a68
commit 9ac88bf446
29 changed files with 99 additions and 98 deletions
+7 -4
View File
@@ -12,10 +12,10 @@ import (
//-------- parser
type parser struct {
ctx exprContext
ctx ExprContext
}
func NewParser(ctx exprContext) (p *parser) {
func NewParser(ctx ExprContext) (p *parser) {
p = &parser{
ctx: ctx,
}
@@ -246,9 +246,9 @@ func (self *parser) parseGeneral(scanner *scanner, allowForest bool, allowVarRef
currentTerm, err = tree.addToken2(tk)
}
case SymQuestion:
if selectorTerm != nil {
/*if selectorTerm != nil {
err = tk.Errorf("nested selectors must be enclosed in parentheses")
} else if selectorTerm, err = self.parseSelector(scanner, tree, allowVarRef); err == nil {
} else*/if selectorTerm, err = self.parseSelector(scanner, tree, allowVarRef); err == nil {
currentTerm = selectorTerm
}
case SymColon, SymDoubleColon:
@@ -259,6 +259,9 @@ func (self *parser) parseGeneral(scanner *scanner, allowForest bool, allowVarRef
selectorTerm.children = append(selectorTerm.children, caseTerm)
caseTerm.parent = selectorTerm
currentTerm = caseTerm
if tk.Sym == SymDoubleColon {
selectorTerm = nil
}
}
//resetSelector = tk.Sym == SymDoubleColon
default: