From 18c7ab70ded45c76abb0b35c090b942a7bfcc3b4 Mon Sep 17 00:00:00 2001 From: Mel Date: Sun, 26 Jun 2022 21:54:38 +0200 Subject: Change arguments order in VM to match expectation --- pkg/lang/compiler/compiler.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) (limited to 'pkg/lang/compiler/compiler.go') 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 } -- cgit 1.4.1