X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-psi;a=blobdiff_plain;f=src%2Fparser_proc.y;h=ed8b1b473f42cb763f6c1b7878c51fb177754cc8;hp=85fac69d8ac37e996d18edb06b7de72cee18db64;hb=6af43d341ce260ffd7d5d443bc0b535692d5f67e;hpb=7eb47ef2fc5655e7196e4e0fbf5104eed8274601 diff --git a/src/parser_proc.y b/src/parser_proc.y index 85fac69..ed8b1b4 100644 --- a/src/parser_proc.y +++ b/src/parser_proc.y @@ -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). {