Fix for "Break statement not working correctly".
Issue #163 git-svn-id: http://picoc.googlecode.com/svn/trunk@594 21eae674-98b7-11dd-bd71-f92a316d2d60
This commit is contained in:
parent
d74c7bba38
commit
37ada79ac9
3
parse.c
3
parse.c
|
@ -393,6 +393,7 @@ void ParseFor(struct ParseState *Parser)
|
||||||
struct ParseState PreIncrement;
|
struct ParseState PreIncrement;
|
||||||
struct ParseState PreStatement;
|
struct ParseState PreStatement;
|
||||||
struct ParseState After;
|
struct ParseState After;
|
||||||
|
enum RunMode OldMode = Parser->Mode;
|
||||||
|
|
||||||
if (LexGetToken(Parser, NULL, TRUE) != TokenOpenBracket)
|
if (LexGetToken(Parser, NULL, TRUE) != TokenOpenBracket)
|
||||||
ProgramFail(Parser, "'(' expected");
|
ProgramFail(Parser, "'(' expected");
|
||||||
|
@ -445,7 +446,7 @@ void ParseFor(struct ParseState *Parser)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Parser->Mode == RunModeBreak)
|
if (Parser->Mode == RunModeBreak && OldMode == RunModeRun)
|
||||||
Parser->Mode = RunModeRun;
|
Parser->Mode = RunModeRun;
|
||||||
|
|
||||||
ParserCopyPos(Parser, &After);
|
ParserCopyPos(Parser, &After);
|
||||||
|
|
Loading…
Reference in a new issue