MCPcopy Index your code
hub / github.com/microsoft/typescript-go / parseBlock

Method parseBlock

internal/parser/parser.go:1209–1230  ·  view source on GitHub ↗
(ignoreMissingOpenBrace bool, diagnosticMessage *diagnostics.Message)

Source from the content-addressed store, hash-verified

1207}
1208
1209func (p *Parser) parseBlock(ignoreMissingOpenBrace bool, diagnosticMessage *diagnostics.Message) *ast.Node {
1210 pos := p.nodePos()
1211 jsdoc := p.jsdocScannerInfo()
1212 openBracePosition := p.scanner.TokenStart()
1213 openBraceParsed := p.parseExpectedWithDiagnostic(ast.KindOpenBraceToken, diagnosticMessage, true /*shouldAdvance*/)
1214 multiline := false
1215 if openBraceParsed || ignoreMissingOpenBrace {
1216 multiline = p.hasPrecedingLineBreak()
1217 statements := p.parseList(PCBlockStatements, (*Parser).parseStatement)
1218 p.parseExpectedMatchingBrackets(ast.KindOpenBraceToken, ast.KindCloseBraceToken, openBraceParsed, openBracePosition)
1219 result := p.finishNode(p.factory.NewBlock(statements, multiline), pos)
1220 p.withJSDoc(result, jsdoc)
1221 if p.token == ast.KindEqualsToken {
1222 p.parseErrorAtCurrentToken(diagnostics.Declaration_or_statement_expected_This_follows_a_block_of_statements_so_if_you_intended_to_write_a_destructuring_assignment_you_might_need_to_wrap_the_whole_assignment_in_parentheses)
1223 p.nextToken()
1224 }
1225 return result
1226 }
1227 result := p.finishNode(p.factory.NewBlock(p.createMissingList(), multiline), pos)
1228 p.withJSDoc(result, jsdoc)
1229 return result
1230}
1231
1232func (p *Parser) parseEmptyStatement() *ast.Node {
1233 pos := p.nodePos()

Callers 5

parseStatementMethod · 0.95
parseTryStatementMethod · 0.95
parseCatchClauseMethod · 0.95
parseFunctionBlockMethod · 0.95

Calls 13

nodePosMethod · 0.95
jsdocScannerInfoMethod · 0.95
hasPrecedingLineBreakMethod · 0.95
parseListMethod · 0.95
finishNodeMethod · 0.95
withJSDocMethod · 0.95
nextTokenMethod · 0.95
createMissingListMethod · 0.95
TokenStartMethod · 0.80

Tested by

no test coverage detected