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
5
parse.c
5
parse.c
|
@ -393,7 +393,8 @@ void ParseFor(struct ParseState *Parser)
|
|||
struct ParseState PreIncrement;
|
||||
struct ParseState PreStatement;
|
||||
struct ParseState After;
|
||||
|
||||
enum RunMode OldMode = Parser->Mode;
|
||||
|
||||
if (LexGetToken(Parser, NULL, TRUE) != TokenOpenBracket)
|
||||
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;
|
||||
|
||||
ParserCopyPos(Parser, &After);
|
||||
|
|
Loading…
Reference in a new issue