Added support for commas in for loop initialiser statement
This commit is contained in:
parent
7b43483f68
commit
9d2327b8be
|
@ -1,10 +1,10 @@
|
|||
int main(void)
|
||||
{
|
||||
int i = 0;
|
||||
int j = 0;
|
||||
int i = 123;
|
||||
int j = 456;
|
||||
int k = 0;
|
||||
|
||||
for (i = 0; i < 2; i++, j++) {
|
||||
for (i = 0, j = 0; i < 2; i++, j++) {
|
||||
k += 2;
|
||||
}
|
||||
|
||||
|
|
12
parse.c
12
parse.c
|
@ -495,8 +495,18 @@ void ParseFor(struct ParseState *Parser)
|
|||
if (LexGetToken(Parser, NULL, true) != TokenOpenBracket)
|
||||
ProgramFail(Parser, "'(' expected");
|
||||
|
||||
if (ParseStatement(Parser, true) != ParseResultOk)
|
||||
if (LexGetToken(Parser, NULL, false) != TokenSemicolon) {
|
||||
if (ParseStatement(Parser, false) != ParseResultOk)
|
||||
ProgramFail(Parser, "statement expected");
|
||||
while (LexGetToken(Parser, NULL, false) == TokenComma) {
|
||||
LexGetToken(Parser, NULL, true);
|
||||
if (ParseStatement(Parser, false) != ParseResultOk)
|
||||
ProgramFail(Parser, "statement expected");
|
||||
}
|
||||
}
|
||||
|
||||
if (LexGetToken(Parser, NULL, true) != TokenSemicolon)
|
||||
ProgramFail(Parser, "';' expected");
|
||||
|
||||
ParserCopyPos(&PreConditional, Parser);
|
||||
if (LexGetToken(Parser, NULL, false) == TokenSemicolon)
|
||||
|
|
Loading…
Reference in a new issue