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:
zik.saleeba 2013-03-16 05:49:01 +00:00
parent d74c7bba38
commit 37ada79ac9

View file

@ -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);