1/* 2 * Copyright (c) 2024-2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16// callgraph/algorithm 17export { AbstractAnalysis } from './callgraph/algorithm/AbstractAnalysis'; 18export { ClassHierarchyAnalysis } from './callgraph/algorithm/ClassHierarchyAnalysis'; 19export { RapidTypeAnalysis } from './callgraph/algorithm/RapidTypeAnalysis'; 20 21// callgraph/common 22export { PTAStat, PAGStat, CGStat } from './callgraph/common/Statistics'; 23 24// callgraph/model 25export * from './callgraph/model/CallGraph'; 26export { CallGraphBuilder } from './callgraph/model/builder/CallGraphBuilder'; 27 28// callgraph/pointerAnalysis 29export { KLimitedContextSensitive } from './callgraph/pointerAnalysis/Context'; 30export { DummyCallCreator } from './callgraph/pointerAnalysis/DummyCallCreator'; 31export * from './callgraph/pointerAnalysis/Pag'; 32export { CSFuncID, PagBuilder } from './callgraph/pointerAnalysis/PagBuilder'; 33export { PointerAnalysis } from './callgraph/pointerAnalysis/PointerAnalysis'; 34export { PointerAnalysisConfig } from './callgraph/pointerAnalysis/PointerAnalysisConfig'; 35export { PtsSet, DiffPTData } from './callgraph/pointerAnalysis/PtsDS'; 36 37export { DVFG } from './VFG/DVFG'; 38export { DVFGBuilder } from './VFG/builder/DVFGBuilder'; 39 40// core/base 41export { Constant } from './core/base/Constant'; 42export { Decorator } from './core/base/Decorator'; 43export { DefUseChain } from './core/base/DefUseChain'; 44export * from './core/base/Expr'; 45export { Local } from './core/base/Local'; 46export { LineColPosition, FullPosition } from './core/base/Position'; 47export * from './core/base/Ref'; 48export * from './core/base/Stmt'; 49export * from './core/base/Type'; 50export { Value } from './core/base/Value'; 51 52// core/common 53export { ModelUtils } from './core/common/ModelUtils'; 54export * from './core/common/Const'; 55export { DummyMainCreater } from './core/common/DummyMainCreater'; 56export * from './core/common/EtsConst'; 57export { ExprUseReplacer } from './core/common/ExprUseReplacer'; 58export { IRUtils } from './core/common/IRUtils'; 59export { RefUseReplacer } from './core/common/RefUseReplacer'; 60export { StmtUseReplacer } from './core/common/StmtUseReplacer'; 61export * from './core/common/TSConst'; 62export { TypeInference } from './core/common/TypeInference'; 63export { ValueUtil } from './core/common/ValueUtil'; 64export { VisibleValue, Scope } from './core/common/VisibleValue'; 65 66// core/dataflow 67export { DataflowProblem, FlowFunction } from './core/dataflow/DataflowProblem'; 68export { DataflowResult } from './core/dataflow/DataflowResult'; 69export { DataflowSolver } from './core/dataflow/DataflowSolver'; 70export { PathEdgePoint, PathEdge } from './core/dataflow/Edge'; 71export { Fact } from './core/dataflow/Fact'; 72export { UndefinedVariableChecker, UndefinedVariableSolver } from './core/dataflow/UndefinedVariable'; 73 74// core/graph 75export { BasicBlock } from './core/graph/BasicBlock'; 76export { Cfg } from './core/graph/Cfg'; 77export { ViewTree, ViewTreeNode } from './core/graph/ViewTree'; 78export { DominanceFinder } from './core/graph/DominanceFinder'; 79export { DominanceTree } from './core/graph/DominanceTree'; 80export { NodeID, Kind, BaseEdge, BaseNode, BaseExplicitGraph } from './core/graph/BaseExplicitGraph'; 81export { SCCDetection } from './core/graph/Scc'; 82 83// core/model 84export { ArkFile } from './core/model/ArkFile'; 85export { ArkNamespace } from './core/model/ArkNamespace'; 86export { ArkClass } from './core/model/ArkClass'; 87export { ArkMethod } from './core/model/ArkMethod'; 88export { ArkField } from './core/model/ArkField'; 89export { ExportInfo } from './core/model/ArkExport'; 90export { ImportInfo } from './core/model/ArkImport'; 91export { ArkBody } from './core/model/ArkBody'; 92export * from './core/model/ArkSignature'; 93export * from './core/model/builder/ArkSignatureBuilder'; 94 95export { SceneConfig } from './Config'; 96export { Scene } from './Scene'; 97 98// save 99export { Printer } from './save/Printer'; 100export { PrinterBuilder } from './save/PrinterBuilder'; 101export { DotMethodPrinter, DotClassPrinter, DotNamespacePrinter, DotFilePrinter } from './save/DotPrinter'; 102export { SourceMethod as SourceMethodPrinter } from './save/source/SourceMethod'; 103export { SourceClass as SourceClassPrinter } from './save/source/SourceClass'; 104export { SourceNamespace as SourceNamespacePrinter } from './save/source/SourceNamespace'; 105export { SourceFilePrinter } from './save/source/SourceFilePrinter'; 106export { JsonPrinter } from './save/JsonPrinter'; 107export { GraphPrinter } from './save/GraphPrinter'; 108export { ViewTreePrinter } from './save/ViewTreePrinter'; 109 110// transformer 111export * from './transformer/StaticSingleAssignmentFormer'; 112 113// utils 114export * from './utils/callGraphUtils'; 115export * from './utils/entryMethodUtils'; 116export * from './utils/FileUtils'; 117export * from './utils/getAllFiles'; 118export * from './utils/json5parser'; 119export * from './utils/pathTransfer'; 120export * from './utils/AstTreeUtils'; 121export { LOG_LEVEL, LOG_MODULE_TYPE } from './utils/logger'; 122export { default as Logger } from './utils/logger'; 123 124//ohos-typescript 125import ts from 'ohos-typescript'; 126export { ts }; 127