parser: token '()' returns error

This commit is contained in:
Celestino Amoroso 2026-04-30 07:03:28 +02:00
parent 116b54836f
commit 75a3f220df
2 changed files with 19 additions and 15 deletions

View File

@ -455,15 +455,6 @@ func (parser *parser) parseGeneral(scanner *scanner, ctx parserContext, termSymb
//fmt.Println("Token:", tk)
if firstToken {
changePrefix(tk)
// if tk.Sym == SymMinus {
// tk.Sym = SymChangeSign
// } else if tk.Sym == SymPlus {
// tk.Sym = SymUnchangeSign
// } else if tk.IsSymbol(SymStar) {
// tk.SetSymbol(SymDereference)
// } else if tk.IsSymbol(SymExclamation) {
// tk.SetSymbol(SymNot)
// }
firstToken = false
}
@ -471,12 +462,13 @@ func (parser *parser) parseGeneral(scanner *scanner, ctx parserContext, termSymb
case SymOpenRound:
var subTree *ast
if subTree, err = parser.parseGeneral(scanner, ctx, SymClosedRound); err == nil {
exprTerm := newExprTerm(subTree.root)
err = tree.addTerm(exprTerm)
currentTerm = exprTerm
// subTree.root.priority = priValue
// err = tree.addTerm(newExprTerm(subTree.root))
// currentTerm = subTree.root
if subTree.root == nil {
err = tk.ErrorExpectedGotString("expression", "()")
} else {
exprTerm := newExprTerm(subTree.root)
err = tree.addTerm(exprTerm)
currentTerm = exprTerm
}
}
case SymFuncCall:
var funcCallTerm *term

View File

@ -147,3 +147,15 @@ func TestGeneralParser(t *testing.T) {
// runTestSuiteSpec(t, section, inputs, 114)
runTestSuite(t, section, inputs)
}
func TestSpecialParser(t *testing.T) {
section := "Parser"
inputs := []inputType{
/* 1 */ {`()`, nil, `[1:2] expected expression, got "()"`},
}
// t.Setenv("EXPR_PATH", ".")
// runTestSuiteSpec(t, section, inputs, 114)
runTestSuite(t, section, inputs)
}