UNPKG

@imc-trading/svlangserver

Version:
189 lines (188 loc) 9.43 kB
import { TextDocument } from "vscode-languageserver/node"; import { SystemVerilogSymbol, SystemVerilogSymbolJSON } from "./svsymbol"; import { MacroInfo, PreprocCacheEntry, TokenOrderEntry } from "./svpreprocessor"; declare class ParseToken { text: string; scopes: string[]; startTokenIndex: number; endTokenIndex: number; } export declare class SystemVerilogParser { private _completionGrammarEngine; private _anonStructUnionCount; private _anonEnumCount; private _document; private _documentPath; private _preprocCache; private _fileSymbolsInfo; private _svtokens; private _tokenOrder; private _containerStack; private _currTokenNum; private _debugContainerInfo; private _debugFileInfo; tokenize(_text: string, includeFilePaths: string[], userDefinesMacroInfo: Map<string, MacroInfo>): [ParseToken[], TokenOrderEntry[], SystemVerilogSymbol[]]; private _getElem; private _getTokenOrderIndex; private _getEndPosition; private _getDefLocations; private _getDocumentFromTokenOrderIndex; private _createSymbol; private _pushSymbol; private _pushContainerSymbol; private _notIgnorableScope; private _nextNonIgnorableScope; private _printDebugInfo; private _processTypeReference; private _processGenericPortList; private _processParameterPortList; private _processPortList; private _processContainerHeader; private _processPackageHeader; private _processRoutineHeader; private _processEndIdentifier; private _processStartIdentifier; private _processDimension; private _processParamPortDeclaration; private _processRoutineVarDeclaration; private _processRoutineBody; private _processRoutine; private _processParamDeclaration; private _processModPortDeclaration; private _processStructUnionMemberList; private _processStructUnionDeclaration; private _processEnumList; private _processEnumDeclaration; private _processTypeDef; private _ignoreBlockStatement; private _ignoreParanthesizedExpression; private _ignoreTillSemiColon; private _ignoreTillColon; private _ignoreActionBlock; private _ignoreStatement; private _processPreprocessor; private _processAttributeInstance; private _processSimpleKeywords; private _processPortDeclaration; private _processParameterOverride; private _processCheckerDeclaration; private _processImportExport; private _processExternConstraintDeclaration; private _processClassDeclaration; private _processCoverGroupDeclaration; private _processPropertyDeclaration; private _processSequenceDeclaration; private _processLetDeclaration; private _processClockingDeclaration; private _processDefaultDisableItem; private _processAssertionStatement; private _processBindDirective; private _processContinuousAssign; private _processAlias; private _processSequentialBlock; private _processGenerateBlock; private _processLoopGenerateConstruct; private _processIfGenerateConstruct; private _processCaseGenerateConstruct; private _processEmptyStatement; private _processNonStandardBeginEndBlock; private _processExternTFDeclaration; private _printParsingFailedMessage; private _processGenerateRegion; private _processElaborationSystemTask; private _isDriveStrength; private _isInstance; private _processVarInstDeclaration; private _processModuleCommonItem; private _processGenerateItem; private _processSpecifyBlock; private _processSpecparamDeclaration; private _processTimeunitsDeclaration; parse(document: TextDocument, includeFilePaths: string[], preprocCache: Map<string, PreprocCacheEntry>, userDefinesMacroInfo: Map<string, MacroInfo>, _precision?: string, _maxDepth?: number, text?: string): [SystemVerilogParser.SystemVerilogFileSymbolsInfo, string[]]; static preprocCacheToJSON(preprocCache: Map<string, PreprocCacheEntry>): Map<any, any> | (string | (string | TextDocument | import("./svpreprocessor").PreprocIncInfoJSON)[])[][]; static preprocCacheFromJSON(preprocCacheJSON: any): Map<string, PreprocCacheEntry>; } export declare namespace SystemVerilogParser { enum ContainerInfoIndex { Symbols = 0, Imports = 1, Containers = 2, Exports = 3 } enum FileInfoIndex { Containers = 0, Includes = 1, Imports = 2, Exports = 3, Symbols = 4 } type SystemVerilogPosition = { file?: string; line: number; character: number; }; type SystemVerilogSymbolInfo = SystemVerilogSymbol; type SystemVerilogImportInfo = { pkg: string; symbolsText: string[]; }; type SystemVerilogExportInfo = { pkg: string; symbolsText: string[]; }; type SystemVerilogIncludeInfo = string; type SystemVerilogSymbolsInfo = SystemVerilogSymbolInfo[]; type SystemVerilogImportsInfo = SystemVerilogImportInfo[]; type SystemVerilogExportsInfo = SystemVerilogExportInfo[]; type SystemVerilogContainerSymbolsInfo = { symbolsInfo?: SystemVerilogSymbolsInfo; importsInfo?: SystemVerilogImportsInfo; containersInfo?: SystemVerilogContainersInfo; exportsInfo?: SystemVerilogExportsInfo; }; type SystemVerilogContainerInfo = { symbol: SystemVerilogSymbol; position: SystemVerilogPosition; info: SystemVerilogContainerSymbolsInfo; }; type SystemVerilogContainersInfo = SystemVerilogContainerInfo[]; type SystemVerilogIncludesInfo = SystemVerilogIncludeInfo[]; type SystemVerilogFileSymbolsInfo = { containersInfo?: SystemVerilogContainersInfo; includesInfo?: SystemVerilogIncludesInfo; symbolsInfo?: SystemVerilogSymbolsInfo; importsInfo?: SystemVerilogImportsInfo; exportsInfo?: SystemVerilogExportsInfo; }; type SystemVerilogPositionJSON = [number, number] | [string, [number, number]]; type SystemVerilogSymbolInfoJSON = SystemVerilogSymbolJSON; type SystemVerilogImportInfoJSON = [string, string[]]; type SystemVerilogExportInfoJSON = [string, string[]]; type SystemVerilogImportsInfoJSON = SystemVerilogImportInfoJSON[]; type SystemVerilogExportsInfoJSON = SystemVerilogExportInfoJSON[]; type SystemVerilogSymbolsInfoJSON = SystemVerilogSymbolInfoJSON[]; type SystemVerilogContainerSymbolsInfoJSON = (SystemVerilogSymbolsInfoJSON | SystemVerilogImportsInfoJSON | SystemVerilogContainersInfoJSON | SystemVerilogExportsInfoJSON)[]; type SystemVerilogContainerInfoJSON = [[SystemVerilogSymbolJSON, SystemVerilogPositionJSON], SystemVerilogContainerSymbolsInfoJSON]; type SystemVerilogContainersInfoJSON = SystemVerilogContainerInfoJSON[]; type SystemVerilogFileSymbolsInfoJSON = (SystemVerilogContainersInfoJSON | SystemVerilogIncludesInfo | SystemVerilogSymbolsInfoJSON | SystemVerilogImportsInfoJSON | SystemVerilogExportsInfoJSON)[]; function fileTopSymbols(fileSymbolsInfo: SystemVerilogFileSymbolsInfo, strict?: Boolean): SystemVerilogSymbol[]; function fileContainers(fileSymbolsInfo: SystemVerilogFileSymbolsInfo): SystemVerilogContainersInfo; function fileAllSymbols(fileSymbolsInfo: SystemVerilogFileSymbolsInfo, strict?: Boolean): SystemVerilogSymbol[]; function containerAllContainers(containerSymbolsInfo: SystemVerilogContainerSymbolsInfo): SystemVerilogSymbol[]; function containerContainers(containerInfo: SystemVerilogContainerInfo): SystemVerilogContainersInfo; function containerTopSymbols(containerInfo: SystemVerilogContainerInfo): SystemVerilogSymbol[]; function containerAllSymbols(containerInfo: SystemVerilogContainerInfo, topOnly?: boolean): SystemVerilogSymbol[]; function fileAllContainers(fileSymbolsInfo: SystemVerilogFileSymbolsInfo): SystemVerilogSymbol[]; function findFileContainer(fileSymbolsInfo: SystemVerilogFileSymbolsInfo, cntnrName: string): SystemVerilogContainerInfo; function findContainerSymbol(containerSymbolsInfo: SystemVerilogContainerSymbolsInfo, symbolName: string, findContainer: Boolean): SystemVerilogSymbol | SystemVerilogContainerInfo; function getInstSymbolsInContainer(containerSymbolsInfo: SystemVerilogContainerSymbolsInfo): SystemVerilogSymbol[]; function findSymbol(fileSymbolsInfo: SystemVerilogFileSymbolsInfo, symbolName: string, findContainer: Boolean): SystemVerilogSymbol | SystemVerilogContainerInfo; function jsonToPosition(jsonPosition: SystemVerilogParser.SystemVerilogPositionJSON): SystemVerilogPosition; function jsonToFileSymbolsInfo(file: string, jsonFileSymbolsInfo: SystemVerilogParser.SystemVerilogFileSymbolsInfoJSON): SystemVerilogFileSymbolsInfo; function fileSymbolsInfoToJson(fileSymbolsInfo: SystemVerilogParser.SystemVerilogFileSymbolsInfo): SystemVerilogFileSymbolsInfoJSON; function preprocToFileSymbolsInfo(symbols: SystemVerilogSymbol[], includes?: Set<string>): SystemVerilogFileSymbolsInfo; function containerImports(containerSymbolsInfo: SystemVerilogContainerSymbolsInfo, topOnly?: boolean): SystemVerilogImportsInfo; function fileAllImports(fileSymbolsInfo: SystemVerilogFileSymbolsInfo): SystemVerilogImportsInfo; function containerExports(containerSymbolsInfo: SystemVerilogContainerSymbolsInfo): SystemVerilogExportsInfo; } export {};