refactor assign ast.
diff --git a/eval.go b/eval.go
index 590a7ae..42aa35a 100644
--- a/eval.go
+++ b/eval.go
@@ -133,15 +133,7 @@
 	ev.lineno = ast.lineno
 
 	lhs := ev.evalExpr(ast.lhs)
-	var rhs string
-	switch ast.assign_type {
-	case ASSIGN_SIMPLE:
-		rhs = ev.evalExpr(ast.rhs)
-	case ASSIGN_RECURSIVE:
-		rhs = ast.rhs
-	default:
-		panic("TODO")
-	}
+	rhs := ast.evalRHS(ev)
 	Log("ASSIGN: %s=%s", lhs, rhs)
 	ev.outVars[lhs] = rhs
 }