diff options
Diffstat (limited to 'pkg/lang/compiler/compiler.go')
| -rw-r--r-- | pkg/lang/compiler/compiler.go | 18 |
1 files changed, 9 insertions, 9 deletions
diff --git a/pkg/lang/compiler/compiler.go b/pkg/lang/compiler/compiler.go index d2b332d..4d7f4a1 100644 --- a/pkg/lang/compiler/compiler.go +++ b/pkg/lang/compiler/compiler.go @@ -103,11 +103,11 @@ func (comp *Compiler) compileBinaryExpr(expr ast.ExprBinary) error { return comp.compileAssignExpr(expr) } - if err := comp.compileExpr(expr.Right); err != nil { + if err := comp.compileExpr(expr.Left); err != nil { return err } - if err := comp.compileExpr(expr.Left); err != nil { + if err := comp.compileExpr(expr.Right); err != nil { return err } @@ -189,16 +189,16 @@ func (comp *Compiler) compileUnaryExpr(expr ast.ExprUnary) error { } func (comp *Compiler) compileCallExpr(expr ast.ExprCall) error { - for i := len(expr.Args) - 1; i >= 0; i-- { + if err := comp.compileExpr(expr.Callee); err != nil { + return err + } + + for i := 0; i < len(expr.Args); i++ { if err := comp.compileExpr(expr.Args[i]); err != nil { return err } } - if err := comp.compileExpr(expr.Callee); err != nil { - return err - } - comp.builder.AppendOp(code.OpCall) comp.builder.AppendInt(int64(len(expr.Args))) @@ -206,11 +206,11 @@ func (comp *Compiler) compileCallExpr(expr ast.ExprCall) error { } func (comp *Compiler) compileSubscriptionExpr(expr ast.ExprSubscription) error { - if err := comp.compileExpr(expr.Key); err != nil { + if err := comp.compileExpr(expr.Obj); err != nil { return err } - if err := comp.compileExpr(expr.Obj); err != nil { + if err := comp.compileExpr(expr.Key); err != nil { return err } |
