MCPcopy
hub / github.com/microsoft/pyright / _parseDottedModuleName

Method _parseDottedModuleName

server/src/parser/parser.ts:994–1025  ·  view source on GitHub ↗
(allowJustDots = false)

Source from the content-addressed store, hash-verified

992 // ('.' | '...')* dotted_name | ('.' | '...')+
993 // dotted_name: NAME ('.' NAME)*
994 private _parseDottedModuleName(allowJustDots = false): ModuleNameNode {
995 let moduleNameNode = new ModuleNameNode(this._peekToken());
996
997 while (true) {
998 if (this._consumeTokenIfType(TokenType.Ellipsis)) {
999 moduleNameNode.leadingDots += 3;
1000 } else if (this._consumeTokenIfType(TokenType.Dot)) {
1001 moduleNameNode.leadingDots++;
1002 } else {
1003 break;
1004 }
1005 }
1006
1007 while (true) {
1008 let identifier = this._getTokenIfIdentifier([KeywordType.Import]);
1009 if (!identifier) {
1010 if (!allowJustDots || moduleNameNode.leadingDots === 0) {
1011 this._addError('Expected module name', this._peekToken());
1012 }
1013 break;
1014 }
1015
1016 moduleNameNode.nameParts.push(new NameNode(identifier));
1017 moduleNameNode.extend(identifier);
1018
1019 if (!this._consumeTokenIfType(TokenType.Dot)) {
1020 break;
1021 }
1022 }
1023
1024 return moduleNameNode;
1025 }
1026
1027 private _parseGlobalStatement(): GlobalNode {
1028 let globalToken = this._getKeywordToken(KeywordType.Global);

Callers 2

_parseFromStatementMethod · 0.95
_parseImportStatementMethod · 0.95

Calls 5

_peekTokenMethod · 0.95
_consumeTokenIfTypeMethod · 0.95
_getTokenIfIdentifierMethod · 0.95
_addErrorMethod · 0.95
extendMethod · 0.80

Tested by

no test coverage detected