| 164 | } |
| 165 | |
| 166 | bool ControlParser::parseName(const std::string& name, const TokenLoc& loc, Scanner& scanner) |
| 167 | { |
| 168 | if (mState == IfBodyState || mState == IfElseifBodyState || mState == IfElseBodyState |
| 169 | || mState == WhileBodyState) |
| 170 | { |
| 171 | scanner.putbackName(name, loc); |
| 172 | mLineParser.reset(); |
| 173 | scanner.scan(mLineParser); |
| 174 | return true; |
| 175 | } |
| 176 | else if (mState == IfElseJunkState) |
| 177 | { |
| 178 | getErrorHandler().warning("Extra text after else", loc); |
| 179 | SkipParser skip(getErrorHandler(), getContext()); |
| 180 | scanner.scan(skip); |
| 181 | mState = IfElseBodyState; |
| 182 | return true; |
| 183 | } |
| 184 | |
| 185 | return Parser::parseName(name, loc, scanner); |
| 186 | } |
| 187 | |
| 188 | bool ControlParser::parseKeyword(int keyword, const TokenLoc& loc, Scanner& scanner) |
| 189 | { |
nothing calls this directly
no test coverage detected