diff options
author | Eli Bendersky <eliben@users.noreply.github.com> | 2015-12-15 05:47:47 -0800 |
---|---|---|
committer | Eli Bendersky <eliben@users.noreply.github.com> | 2015-12-15 05:47:47 -0800 |
commit | bf6aa16944ed88d6b9135a8b185e1bc31ad4c30b (patch) | |
tree | 981b53fac3d1a1866a5b05431724fe27046b3f76 | |
parent | aceb9c95bd2bf877e301208a34693516eea27850 (diff) | |
parent | 1188ae39dbf5e821a26522e804b24f2c99a36046 (diff) | |
download | pycparser-bf6aa16944ed88d6b9135a8b185e1bc31ad4c30b.tar.gz |
Merge pull request #109 from jamie-pate/master
Update c_generator to add {} around nested NamedInitializers
-rw-r--r-- | pycparser/c_generator.py | 2 | ||||
-rw-r--r-- | tests/test_c_generator.py | 13 |
2 files changed, 14 insertions, 1 deletions
diff --git a/pycparser/c_generator.py b/pycparser/c_generator.py index 4c53721..ad0e89d 100644 --- a/pycparser/c_generator.py +++ b/pycparser/c_generator.py @@ -279,7 +279,7 @@ class CGenerator(object): s += '.' + name.name elif isinstance(name, c_ast.Constant): s += '[' + name.value + ']' - s += ' = ' + self.visit(n.expr) + s += ' = ' + self._visit_expr(n.expr) return s def visit_FuncDecl(self, n): diff --git a/tests/test_c_generator.py b/tests/test_c_generator.py index edaced1..35afe17 100644 --- a/tests/test_c_generator.py +++ b/tests/test_c_generator.py @@ -172,6 +172,19 @@ class TestCtoC(unittest.TestCase): int i[1][1] = { { 1 } }; }''') + def test_nest_named_initializer(self): + self._assert_ctoc_correct(r'''struct test + { + int i; + struct test_i_t + { + int k; + } test_i; + int j; + }; + struct test test_var = {.i = 0, .test_i = {.k = 1}, .j = 2}; + ''') + def test_expr_list_in_initializer_list(self): self._assert_ctoc_correct(r''' int main() |