parser: token '()' returns error
This commit is contained in:
parent
116b54836f
commit
75a3f220df
22
parser.go
22
parser.go
@ -455,15 +455,6 @@ func (parser *parser) parseGeneral(scanner *scanner, ctx parserContext, termSymb
|
|||||||
//fmt.Println("Token:", tk)
|
//fmt.Println("Token:", tk)
|
||||||
if firstToken {
|
if firstToken {
|
||||||
changePrefix(tk)
|
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
|
firstToken = false
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -471,12 +462,13 @@ func (parser *parser) parseGeneral(scanner *scanner, ctx parserContext, termSymb
|
|||||||
case SymOpenRound:
|
case SymOpenRound:
|
||||||
var subTree *ast
|
var subTree *ast
|
||||||
if subTree, err = parser.parseGeneral(scanner, ctx, SymClosedRound); err == nil {
|
if subTree, err = parser.parseGeneral(scanner, ctx, SymClosedRound); err == nil {
|
||||||
exprTerm := newExprTerm(subTree.root)
|
if subTree.root == nil {
|
||||||
err = tree.addTerm(exprTerm)
|
err = tk.ErrorExpectedGotString("expression", "()")
|
||||||
currentTerm = exprTerm
|
} else {
|
||||||
// subTree.root.priority = priValue
|
exprTerm := newExprTerm(subTree.root)
|
||||||
// err = tree.addTerm(newExprTerm(subTree.root))
|
err = tree.addTerm(exprTerm)
|
||||||
// currentTerm = subTree.root
|
currentTerm = exprTerm
|
||||||
|
}
|
||||||
}
|
}
|
||||||
case SymFuncCall:
|
case SymFuncCall:
|
||||||
var funcCallTerm *term
|
var funcCallTerm *term
|
||||||
|
|||||||
@ -147,3 +147,15 @@ func TestGeneralParser(t *testing.T) {
|
|||||||
// runTestSuiteSpec(t, section, inputs, 114)
|
// runTestSuiteSpec(t, section, inputs, 114)
|
||||||
runTestSuite(t, section, inputs)
|
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)
|
||||||
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user