inducer / pycparserext

Extensions for Eli Bendersky's pycparser
http://pypi.python.org/pypi/pycparserext
Other
83 stars 29 forks source link

Fix GNU statement expression syntax and code generation #71

Open MartinSpiessl opened 1 year ago

MartinSpiessl commented 1 year ago

The statement expression itself is not allowed at places where an ordinary statement would stand. As with other expressions, this is only facilitated via the expression_statement rule that adds a semicolon after the expression. The reason why this bug was not discovered is probably because the code generator also drops the parentheses around the statement expression, turning it into a compound statement.

This commit fixes that by removing the faulty rule extension, introducing a CoumpoundExpression class, and making sure the parentheses are added when an object of this type is discovered during code generation.

inducer commented 1 year ago

Thanks! Could you add a test?