Closed jennalwise closed 2 years ago
I believe this a bug that happens when any spec statement (i.e. a //@
statement) occurs after a "regular" (non-spec) C0 statement and right before the close of a block.
Here is a minimal example that currently fails to parse:
void abc()
{
assert(true);
//@assert true;
}
Makes sense from my experience that this is the issue!
This lemma function in list.c0 is not parsing:
The parser outputs the following error:
Alternates that parse without error:
This also does not parse with a similar error:
Something weird is going on when parsing the else case of an if with the given program statements. I tried to debug it further, but I couldn't find any issues, not that I really have enough understanding of the parser implementation at this time to debug it that well. I will try to debug it some other time. But, right now I am moving forward with a version that parses and contains the semantics I am looking for.