3368a8c3f5bb410ce662eacba8b09a375c37307f
diff --git a/ast.ml b/ast.ml
index fd758a2..aad6929 100644
--- a/ast.ml
+++ b/ast.ml
@@ -18,7 +18,7 @@ type expr = (* Expressions *)
     | BoolLiteral of bool (* true *)
     | DurConst of string (*mn whole, half, ... *)
     (*| ElemOp of string * expr (*a[5]*)*)
-    | Assign of string * expr (* x = y *)
+    | Assign of expr * expr (* x = y *)
     (*| TypeAssign of string * expr  (* Note a = .... *)*)
     | NoteExpr of string * int * expr (*mn x = (A#, 5>octave>-5, 4 + 1 ) *)
     | ChordExpr of expr list * expr (* chord =  *)
diff --git a/parser.mly b/parser.mly
index 74e4064..fd4eb53 100644
--- a/parser.mly
+++ b/parser.mly
@@ -163,7 +163,7 @@ expr:
 	| LEFTPAREN LBRAC generic_list RBRAC COMMA duration_expr RIGHTPAREN   { ChordExpr($3, $6) }
 	| LBRAC generic_list RBRAC { ListExpr($2) }
 	/* | generic_list COMMA ID TIMES INTLITERAL { BinOp(Id($1), IDTimes, IntLiteral($3))}   a, b, c*5, b  */
-    | ID ASSIGN expr 		{ Assign($1, $3) }									/* x = y 		*/
+    | expr ASSIGN expr 		{ Assign($1, $3) }									/* x = y 		*/
     | expr PLUSEQ expr { Assign($1, BinOp($1, Add, $3)) }				/* x += y		*/
 	| expr MINUSEQ expr { Assign($1, BinOp($1, Sub, $3)) }				/* x -= y		*/
 	| expr TIMESEQ expr { Assign($1, BinOp($1, Mult, $3)) }				/* x *= y		*/
