pycparserext icon indicating copy to clipboard operation
pycparserext copied to clipboard

Fix GNU statement expression syntax and code generation

Open MartinSpiessl opened this issue 3 years ago • 1 comments

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.

MartinSpiessl avatar Jan 02 '23 14:01 MartinSpiessl

Thanks! Could you add a test?

inducer avatar Jan 02 '23 19:01 inducer