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

Method _parseImportStatement

server/src/parser/parser.ts:961–990  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

959 // dotted_as_names: dotted_as_name (',' dotted_as_name)*
960 // dotted_as_name: dotted_name ['as' NAME]
961 private _parseImportStatement(): ImportNode {
962 let importToken = this._getKeywordToken(KeywordType.Import);
963
964 let importNode = new ImportNode(importToken);
965
966 while (true) {
967 let modName = this._parseDottedModuleName();
968 let importAsNode = new ImportAsNode(modName);
969
970 if (this._consumeTokenIfKeyword(KeywordType.As)) {
971 let aliasToken = this._getTokenIfIdentifier();
972 if (aliasToken) {
973 importAsNode.alias = new NameNode(aliasToken);
974 importAsNode.extend(importAsNode.alias);
975 } else {
976 this._addError('Expected identifier after "as"', this._peekToken());
977 }
978 }
979
980 importNode.list.push(importAsNode);
981
982 if (!this._consumeTokenIfType(TokenType.Comma)) {
983 break;
984 }
985 }
986
987 importNode.extend(importNode.list);
988
989 return importNode;
990 }
991
992 // ('.' | '...')* dotted_name | ('.' | '...')+
993 // dotted_name: NAME ('.' NAME)*

Callers 1

_parseSmallStatementMethod · 0.95

Calls 8

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

Tested by

no test coverage detected