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

Method parseDeclarationWorker

internal/parser/parser.go:1152–1192  ·  view source on GitHub ↗
(pos int, jsdoc jsdocScannerInfo, modifiers *ast.ModifierList)

Source from the content-addressed store, hash-verified

1150}
1151
1152func (p *Parser) parseDeclarationWorker(pos int, jsdoc jsdocScannerInfo, modifiers *ast.ModifierList) *ast.Statement {
1153 switch p.token {
1154 case ast.KindVarKeyword, ast.KindLetKeyword, ast.KindConstKeyword, ast.KindUsingKeyword:
1155 return p.parseVariableStatement(pos, jsdoc, modifiers)
1156 case ast.KindAwaitKeyword:
1157 if p.isAwaitUsingDeclaration() {
1158 return p.parseVariableStatement(pos, jsdoc, modifiers)
1159 }
1160 case ast.KindFunctionKeyword:
1161 return p.parseFunctionDeclaration(pos, jsdoc, modifiers)
1162 case ast.KindClassKeyword:
1163 return p.parseClassDeclaration(pos, jsdoc, modifiers)
1164 case ast.KindInterfaceKeyword:
1165 return p.parseInterfaceDeclaration(pos, jsdoc, modifiers)
1166 case ast.KindTypeKeyword:
1167 return p.parseTypeAliasDeclaration(pos, jsdoc, modifiers)
1168 case ast.KindEnumKeyword:
1169 return p.parseEnumDeclaration(pos, jsdoc, modifiers)
1170 case ast.KindGlobalKeyword, ast.KindModuleKeyword, ast.KindNamespaceKeyword:
1171 return p.parseModuleDeclaration(pos, jsdoc, modifiers)
1172 case ast.KindImportKeyword:
1173 return p.parseImportDeclarationOrImportEqualsDeclaration(pos, jsdoc, modifiers)
1174 case ast.KindExportKeyword:
1175 p.nextToken()
1176 switch p.token {
1177 case ast.KindDefaultKeyword, ast.KindEqualsToken:
1178 return p.parseExportAssignment(pos, jsdoc, modifiers)
1179 case ast.KindAsKeyword:
1180 return p.parseNamespaceExportDeclaration(pos, jsdoc, modifiers)
1181 default:
1182 return p.parseExportDeclaration(pos, jsdoc, modifiers)
1183 }
1184 }
1185 if modifiers != nil {
1186 // We reached this point because we encountered decorators and/or modifiers and assumed a declaration
1187 // would follow. For recovery and error reporting purposes, return an incomplete declaration.
1188 p.parseErrorAt(p.nodePos(), p.nodePos(), diagnostics.Declaration_expected)
1189 return p.finishNode(p.factory.NewMissingDeclaration(modifiers), pos)
1190 }
1191 panic("Unhandled case in parseDeclarationWorker")
1192}
1193
1194func isDeclareModifier(modifier *ast.Node) bool {
1195 return modifier.Kind == ast.KindDeclareKeyword

Callers 1

parseDeclarationMethod · 0.95

Tested by

no test coverage detected