+MAYBE_EXPRPAIR_LIST : {$$=0;}
+MAYBE_EXPRPAIR_LIST : EXPRPAIR_LIST {$$=$1};
+
+EXPRPAIR_LIST : NONCOMMAEXPRESSION ':' NONCOMMAEXPRESSION {
+ typedcode_t*t1 = malloc(sizeof(typedcode_t));*t1 = $1;
+ typedcode_t*t2 = malloc(sizeof(typedcode_t));*t2 = $3;
+ $$ = 0;
+ list_append($$, t1);
+ list_append($$, t2);
+}
+EXPRPAIR_LIST : EXPRPAIR_LIST ',' NONCOMMAEXPRESSION ':' NONCOMMAEXPRESSION {
+ $$=$1;
+ typedcode_t*t1 = malloc(sizeof(typedcode_t));*t1 = $3;
+ typedcode_t*t2 = malloc(sizeof(typedcode_t));*t2 = $5;
+ list_append($$, t1);
+ list_append($$, t2);
+}
+//MAYBECOMMA: ','
+//MAYBECOMMA:
+
+E : '{' MAYBE_EXPRPAIR_LIST '}' {
+ $$.c = code_new();
+ typedcode_list_t*l = 0;
+ int len = 0;
+ for(l=$2;l;l=l->next) {
+ $$.c = code_append($$.c, l->typedcode->c);len++;
+ }
+ $$.c = abc_newobject($$.c, len/2);
+ $$.t = registry_getobjectclass();
+}
+