Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions engine.go
Original file line number Diff line number Diff line change
Expand Up @@ -162,13 +162,6 @@ func (e *Expr) Eval(ctx *Ctx) (res Value, err error) {
if err != nil {
return
}
case selector:
res, err = ctx.Get(curt.selKey, curt.value.(string))
if err != nil {
return
}
case constant:
res = curt.value
case operator:
cCnt := int16(curt.childCnt)
osTop = osTop - cCnt
Expand All @@ -184,6 +177,13 @@ func (e *Expr) Eval(ctx *Ctx) (res Value, err error) {
if err != nil {
return
}
case selector:
res, err = ctx.Get(curt.selKey, curt.value.(string))
if err != nil {
return
}
case constant:
res = curt.value
case cond:
res, osTop = os[osTop], osTop-1
res, err = curt.operator(ctx, []Value{res})
Expand Down
4 changes: 2 additions & 2 deletions engine_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1126,11 +1126,11 @@ func TestExpr_TryEval(t *testing.T) {

func TestRandomExpressions(t *testing.T) {
const (
size = 30000
size = 4000000
level = 53
step = size / 100
showSample = false
printProgress = false
printProgress = true
)

const (
Expand Down
8 changes: 4 additions & 4 deletions operator.go
Original file line number Diff line number Diff line change
Expand Up @@ -295,14 +295,14 @@ func (c comparison) execute(_ *Ctx, params []Value) (Value, error) {
}

func comparisonEquals(_ *Ctx, params []Value) (Value, error) {
if len(params) < 2 {
return nil, errCnt2(equals, params)
}

if len(params) == 2 {
return params[0] == params[1], nil
}

if len(params) < 2 {
return nil, errCnt2(equals, params)
}

v := params[0]
for _, p := range params {
if v != p {
Expand Down
19 changes: 0 additions & 19 deletions util.go
Original file line number Diff line number Diff line change
Expand Up @@ -652,25 +652,6 @@ func DumpTable(expr *Expr, skipEventNode bool) string {
return sb.String()
}

type SelectorKeys struct {
SelKey SelectorKey
StrKey string
}

func GetSelectorKeys(e *Expr) []SelectorKeys {
res := make([]SelectorKeys, len(e.nodes)/2)

for _, n := range e.nodes {
if n.getNodeType() == selector {
res = append(res, SelectorKeys{
SelKey: n.selKey,
StrKey: n.value.(string),
})
}
}
return res
}

func HandleDebugEvent(e *Expr) {
go func() {
var prev LoopEventData
Expand Down