summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEli Bendersky <eliben@users.noreply.github.com>2015-12-15 05:47:47 -0800
committerEli Bendersky <eliben@users.noreply.github.com>2015-12-15 05:47:47 -0800
commitbf6aa16944ed88d6b9135a8b185e1bc31ad4c30b (patch)
tree981b53fac3d1a1866a5b05431724fe27046b3f76
parentaceb9c95bd2bf877e301208a34693516eea27850 (diff)
parent1188ae39dbf5e821a26522e804b24f2c99a36046 (diff)
downloadpycparser-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.py2
-rw-r--r--tests/test_c_generator.py13
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()