flush
[m6w6/ext-psi] / src / parser_proc.y
index 85fac69d8ac37e996d18edb06b7de72cee18db64..ed8b1b473f42cb763f6c1b7878c51fb177754cc8 100644 (file)
@@ -89,13 +89,23 @@ decl_abi(abi) ::= NAME(T). {
 
 %type decl_var {decl_var*}
 decl_var(var) ::= NAME(T). {
-       var = init_decl_var(T->text, 0);
+       var = init_decl_var(T->text, 0, 0);
        free(T);
 }
 decl_var(var) ::= pointers(p) NAME(T). {
-       var = init_decl_var(T->text, p);
+       var = init_decl_var(T->text, p, 0);
        free(T);
 }
+decl_var(var) ::= NAME(T) LBRACKET DIGITS(D) RBRACKET. {
+       var = init_decl_var(T->text, 1, atol(D->text));
+       free(T);
+       free(D);
+}
+decl_var(var) ::= pointers(p) NAME(T) LBRACKET DIGITS(D) RBRACKET. {
+       var = init_decl_var(T->text, p+1, atol(D->text));
+       free(T);
+       free(D);
+}
 
 %type decl_vars {decl_vars*}
 decl_vars(vars) ::= decl_var(var). {