MCPcopy Create free account
hub / github.com/microsoft/typescript-go / parseImportClause

Method parseImportClause

internal/parser/parser.go:2349–2376  ·  view source on GitHub ↗
(identifier *ast.Node, pos int, phaseModifier ast.Kind, skipJSDocLeadingAsterisks bool)

Source from the content-addressed store, hash-verified

2347}
2348
2349func (p *Parser) parseImportClause(identifier *ast.Node, pos int, phaseModifier ast.Kind, skipJSDocLeadingAsterisks bool) *ast.Node {
2350 // ImportClause:
2351 // ImportedDefaultBinding
2352 // NameSpaceImport
2353 // NamedImports
2354 // ImportedDefaultBinding, NameSpaceImport
2355 // ImportedDefaultBinding, NamedImports
2356 // If there was no default import or if there is comma token after default import
2357 // parse namespace or named imports
2358 var namedBindings *ast.Node
2359 saveHasAwaitIdentifier := p.statementHasAwaitIdentifier
2360 if identifier == nil || p.parseOptional(ast.KindCommaToken) {
2361 if skipJSDocLeadingAsterisks {
2362 p.scanner.SetSkipJSDocLeadingAsterisks(true)
2363 }
2364 if p.token == ast.KindAsteriskToken {
2365 namedBindings = p.parseNamespaceImport()
2366 } else {
2367 namedBindings = p.parseNamedImports()
2368 }
2369 if skipJSDocLeadingAsterisks {
2370 p.scanner.SetSkipJSDocLeadingAsterisks(false)
2371 }
2372 }
2373 result := p.finishNode(p.factory.NewImportClause(phaseModifier, identifier, namedBindings), pos)
2374 p.statementHasAwaitIdentifier = saveHasAwaitIdentifier
2375 return result
2376}
2377
2378func (p *Parser) parseNamespaceImport() *ast.Node {
2379 // NameSpaceImport:

Callers 1

tryParseImportClauseMethod · 0.95

Calls 6

parseOptionalMethod · 0.95
parseNamespaceImportMethod · 0.95
parseNamedImportsMethod · 0.95
finishNodeMethod · 0.95
NewImportClauseMethod · 0.80

Tested by

no test coverage detected