diff options
author | Eli Bendersky <eliben@gmail.com> | 2015-04-20 05:39:21 -0700 |
---|---|---|
committer | Eli Bendersky <eliben@gmail.com> | 2015-04-20 05:39:21 -0700 |
commit | 75ff8f894fcf3ead2d1c0b3deecad55cb362850c (patch) | |
tree | 8832b134423ee2e31356d6544f4efb629eb0df3b | |
parent | ad1ce208819b0380eed1e0d92b2cf8c694e5b54c (diff) | |
download | pycparser-75ff8f894fcf3ead2d1c0b3deecad55cb362850c.tar.gz |
Fix parsing of array decls
After qualifiers were added, some problems seeped in assigning dimensions
properly.
-rw-r--r-- | pycparser/c_parser.py | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/pycparser/c_parser.py b/pycparser/c_parser.py index 4273051..cd8fafb 100644 --- a/pycparser/c_parser.py +++ b/pycparser/c_parser.py @@ -984,13 +984,14 @@ class CParser(PLYParser): def p_direct_declarator_3(self, p): """ direct_declarator : direct_declarator LBRACKET type_qualifier_list_opt assignment_expression_opt RBRACKET - """ + """ + quals = (p[3] if len(p) > 5 else []) or [] # Accept dimension qualifiers # Per C99 6.7.5.3 p7 arr = c_ast.ArrayDecl( type=None, - dim=p[4], - dim_quals=p[3] if p[3] != None else [], + dim=p[4] if len(p) > 5 else p[3], + dim_quals=quals, coord=p[1].coord) p[0] = self._type_modify_decl(decl=p[1], modifier=arr) |