about summary refs log tree commit diff
path: root/pkg/lang/compiler/compiler.go
diff options
context:
space:
mode:
Diffstat (limited to 'pkg/lang/compiler/compiler.go')
-rw-r--r--pkg/lang/compiler/compiler.go18
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
 	}