What syntactic ambiguities can arise in a language with optional semicolons for statement or expression separators?
Let's say that that the syntax for this language generally follows the C syntax and that it is composed of:
- keywords (that may or may not be reserved and be illegal identifiers) introducing special constructs like control flow constructs
- curly braces delimited blocks when a syntactic construct allows for more than one statement or expressions (like function definitions, if/else if /else bodies, loop bodies, switch statement bodies, etc..)
- generally non significant whitespace, whitespace would be only significant to delimit tokens. Statements and expressions could span several lines if need be.
- function calls with potentially optional parentheses around their argument lists
What syntactic ambiguities can arise in such a language with optional semicolons for statement or expression separators?