()
| 1239 | } |
| 1240 | |
| 1241 | func (p *Parser) parseIfStatement() *ast.Node { |
| 1242 | pos := p.nodePos() |
| 1243 | jsdoc := p.jsdocScannerInfo() |
| 1244 | p.parseExpected(ast.KindIfKeyword) |
| 1245 | openParenPosition := p.scanner.TokenStart() |
| 1246 | openParenParsed := p.parseExpected(ast.KindOpenParenToken) |
| 1247 | expression := p.parseExpressionAllowIn() |
| 1248 | p.parseExpectedMatchingBrackets(ast.KindOpenParenToken, ast.KindCloseParenToken, openParenParsed, openParenPosition) |
| 1249 | thenStatement := p.parseStatement() |
| 1250 | var elseStatement *ast.Statement |
| 1251 | if p.parseOptional(ast.KindElseKeyword) { |
| 1252 | elseStatement = p.parseStatement() |
| 1253 | } |
| 1254 | result := p.finishNode(p.factory.NewIfStatement(expression, thenStatement, elseStatement), pos) |
| 1255 | p.withJSDoc(result, jsdoc) |
| 1256 | return result |
| 1257 | } |
| 1258 | |
| 1259 | func (p *Parser) parseDoStatement() *ast.Node { |
| 1260 | pos := p.nodePos() |
no test coverage detected