├── .gitignore ├── LICENSE ├── README.md ├── com.ibm.wala.cast.java ├── .classpath ├── .gitignore ├── .launchConfigurations │ └── WALA-CAst-Java-Library-Downloads.launch ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ ├── org.eclipse.jdt.launching.prefs │ └── org.eclipse.jdt.ui.prefs ├── META-INF │ └── MANIFEST.MF ├── build.properties ├── pom.xml └── src │ └── com │ └── ibm │ └── wala │ └── cast │ └── java │ ├── JavaSourcePlugin.java │ ├── analysis │ └── typeInference │ │ └── AstJavaTypeInference.java │ ├── client │ ├── JavaSourceAnalysisEngine.java │ └── impl │ │ ├── ZeroCFABuilderFactory.java │ │ └── ZeroOneContainerCFABuilderFactory.java │ ├── examples │ └── ast │ │ └── SynchronizedBlockDuplicator.java │ ├── ipa │ ├── callgraph │ │ ├── AstJavaCFABuilder.java │ │ ├── AstJavaSSAPropagationCallGraphBuilder.java │ │ ├── AstJavaZeroOneContainerCFABuilder.java │ │ ├── AstJavaZeroXCFABuilder.java │ │ ├── JavaScopeMappingInstanceKeys.java │ │ ├── JavaSourceAnalysisScope.java │ │ └── ZeroXCFAJavaBuilder.java │ ├── modref │ │ └── AstJavaModRef.java │ └── slicer │ │ └── AstJavaSlicer.java │ ├── loader │ ├── JavaSourceLoaderImpl.java │ └── Util.java │ ├── ssa │ ├── AstJavaAbstractInstructionVisitor.java │ ├── AstJavaInstructionFactory.java │ ├── AstJavaInstructionVisitor.java │ ├── AstJavaInvokeInstruction.java │ ├── AstJavaNewEnclosingInstruction.java │ └── EnclosingObjectReference.java │ ├── translator │ ├── Java2IRTranslator.java │ ├── JavaCAst2IRTranslator.java │ ├── JavaProcedureEntity.java │ └── SourceModuleTranslator.java │ └── types │ ├── JavaPrimitiveTypeMap.java │ └── JavaType.java ├── com.ibm.wala.cast ├── .classpath ├── .externalToolBuilders │ └── make WALA.CAst.launch ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ ├── org.eclipse.jdt.launching.prefs │ └── org.eclipse.jdt.ui.prefs ├── META-INF │ └── MANIFEST.MF ├── build.properties ├── build.xml ├── data │ ├── the-cast-system.eps │ ├── the-cast-system.jpeg │ └── the-cast-system.xcf ├── lib │ └── commons-io-2.4.jar ├── pom.xml └── source │ ├── c │ ├── Makefile │ ├── Makefile.configuration.sample │ ├── cbuild.sh │ ├── include │ │ ├── CAstWrapper.h │ │ ├── Exceptions.h │ │ ├── cast_constants.h │ │ ├── cast_control_flow_map.h │ │ ├── cast_operators.h │ │ └── cast_qualifiers.h │ └── jni │ │ ├── CAstWrapper.cpp │ │ ├── Exceptions.cpp │ │ └── Java_com_ibm_wala_cast_ir_translator_NativeBridge.cpp │ └── java │ └── com │ └── ibm │ └── wala │ └── cast │ ├── analysis │ └── typeInference │ │ └── AstTypeInference.java │ ├── ipa │ ├── callgraph │ │ ├── ArgumentInstanceContext.java │ │ ├── AstCFAPointerKeys.java │ │ ├── AstCallGraph.java │ │ ├── AstContextInsensitiveSSAContextInterpreter.java │ │ ├── AstGlobalPointerKey.java │ │ ├── AstHeapModel.java │ │ ├── AstPointerKeyFactory.java │ │ ├── AstSSAPropagationCallGraphBuilder.java │ │ ├── CAstAnalysisScope.java │ │ ├── CAstCallGraphUtil.java │ │ ├── CrossLanguageCallGraph.java │ │ ├── CrossLanguageClassTargetSelector.java │ │ ├── CrossLanguageContextSelector.java │ │ ├── CrossLanguageInstanceKeys.java │ │ ├── CrossLanguageMethodTargetSelector.java │ │ ├── CrossLanguageSSAPropagationCallGraphBuilder.java │ │ ├── DelegatingAstPointerKeys.java │ │ ├── MiscellaneousHacksContextSelector.java │ │ ├── ObjectPropertyCatalogKey.java │ │ ├── OneLevelForLexicalAccessFunctions.java │ │ ├── ReflectedFieldPointerKey.java │ │ ├── ScopeMappingInstanceKeys.java │ │ ├── ScriptEntryPoints.java │ │ └── StandardFunctionTargetSelector.java │ ├── cha │ │ └── CrossLanguageClassHierarchy.java │ ├── lexical │ │ └── LexicalModRef.java │ └── modref │ │ └── AstModRef.java │ ├── ir │ ├── cfg │ │ ├── AstInducedCFG.java │ │ ├── DelegatingCFG.java │ │ └── Util.java │ ├── ssa │ │ ├── AbstractReflectiveGet.java │ │ ├── AbstractReflectivePut.java │ │ ├── AbstractSSAConversion.java │ │ ├── AssignInstruction.java │ │ ├── AstAbstractInstructionVisitor.java │ │ ├── AstAssertInstruction.java │ │ ├── AstConstants.java │ │ ├── AstEchoInstruction.java │ │ ├── AstGlobalRead.java │ │ ├── AstGlobalWrite.java │ │ ├── AstIRFactory.java │ │ ├── AstInstructionFactory.java │ │ ├── AstInstructionVisitor.java │ │ ├── AstIsDefinedInstruction.java │ │ ├── AstLexicalAccess.java │ │ ├── AstLexicalRead.java │ │ ├── AstLexicalWrite.java │ │ ├── AstPreInstructionVisitor.java │ │ ├── EachElementGetInstruction.java │ │ ├── EachElementHasNextInstruction.java │ │ ├── FixedParametersInvokeInstruction.java │ │ ├── MultiReturnValueInvokeInstruction.java │ │ ├── SSAConversion.java │ │ └── analysis │ │ │ └── LiveAnalysis.java │ └── translator │ │ ├── AbstractClassEntity.java │ │ ├── AbstractCodeEntity.java │ │ ├── AbstractDataEntity.java │ │ ├── AbstractEntity.java │ │ ├── AbstractFieldEntity.java │ │ ├── AbstractGlobalEntity.java │ │ ├── AbstractScriptEntity.java │ │ ├── ArrayOpHandler.java │ │ ├── AstTranslator.java │ │ ├── ConstantFoldingRewriter.java │ │ ├── ExposedNamesCollector.java │ │ ├── TranslatorToCAst.java │ │ └── TranslatorToIR.java │ ├── loader │ ├── AstClass.java │ ├── AstDynamicField.java │ ├── AstDynamicPropertyClass.java │ ├── AstField.java │ ├── AstFunctionClass.java │ ├── AstMethod.java │ ├── CAstAbstractLoader.java │ ├── CAstAbstractModuleLoader.java │ └── SingleClassLoaderFactory.java │ ├── plugin │ └── AstPlugin.java │ ├── tree │ ├── AstPlugin.java │ ├── CAst.java │ ├── CAstAnnotation.java │ ├── CAstControlFlowMap.java │ ├── CAstEntity.java │ ├── CAstMemberReference.java │ ├── CAstNode.java │ ├── CAstNodeTypeMap.java │ ├── CAstQualifier.java │ ├── CAstReference.java │ ├── CAstSourcePositionMap.java │ ├── CAstSymbol.java │ ├── CAstType.java │ ├── CAstTypeDictionary.java │ ├── impl │ │ ├── AbstractSourcePosition.java │ │ ├── CAstControlFlowRecorder.java │ │ ├── CAstImpl.java │ │ ├── CAstNodeTypeMapRecorder.java │ │ ├── CAstOperator.java │ │ ├── CAstSourcePositionRecorder.java │ │ ├── CAstSymbolImpl.java │ │ ├── CAstSymbolImplBase.java │ │ ├── CAstTypeDictionaryImpl.java │ │ ├── CAstValueImpl.java │ │ ├── DelegatingEntity.java │ │ └── LineNumberPosition.java │ ├── pattern │ │ ├── Alt.java │ │ ├── AnyNode.java │ │ ├── NodeOfKind.java │ │ ├── NodePattern.java │ │ ├── SomeConstant.java │ │ └── SubtreeOfKind.java │ ├── rewrite │ │ ├── AstLoopUnwinder.java │ │ ├── CAstBasicRewriter.java │ │ ├── CAstCloner.java │ │ ├── CAstRewriter.java │ │ └── CAstRewriterFactory.java │ └── visit │ │ ├── CAstVisitor.java │ │ └── DelegatingCAstVisitor.java │ ├── types │ ├── AstMethodReference.java │ └── AstTypeReference.java │ └── util │ ├── CAstFunctions.java │ ├── CAstPattern.java │ ├── CAstPrinter.java │ ├── CAstToDOM.java │ ├── SourceBuffer.java │ └── TargetLanguageSelector.java ├── com.ibm.wala.core ├── .classpath ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ ├── org.eclipse.jdt.launching.prefs │ └── org.eclipse.jdt.ui.prefs ├── META-INF │ └── MANIFEST.MF ├── akka-actor-2.0.2.jar ├── akka-actor_2.12-2.4.16.jar ├── antbuild.properties ├── build.properties ├── build.xml ├── config-1.3.1.jar ├── dat │ ├── J2SEClassHierarchyExclusions.txt │ ├── SyntheticJ2SEModel.txt │ ├── WalaUtilMessages.properties │ ├── codetemplates.xml │ ├── dictionary.txt │ ├── formatter.xml │ ├── log.properties │ ├── natives.xml │ ├── natives_no_model.xml │ ├── primordial.txt │ ├── wala.properties │ └── wala.properties.sample ├── javaCompiler...args ├── lib │ ├── poi-3.14-20160307.jar │ ├── poi-ooxml-3.9.jar │ └── primordial.jar.model ├── plugin.properties ├── pom.xml ├── scala-java8-compat_2.12-0.8.0.jar ├── scala-library-2.12.1.jar ├── scala-library-2.9.2.jar └── src │ └── com │ └── ibm │ └── wala │ ├── akkaTaskScheduler │ ├── PTAHub.java │ ├── PTAWorker.java │ ├── ResultFromRR.java │ ├── ResultFromSpecial.java │ ├── SchedulerForResetSetAndRecompute.java │ ├── SchedulerForSpecial.java │ ├── WorkContentForCheckChange.java │ └── WorkContentForSpecial.java │ ├── analysis │ ├── pointers │ │ ├── BasicHeapGraph.java │ │ ├── HeapGraph.java │ │ ├── HeapGraphImpl.java │ │ └── package.html │ ├── reflection │ │ ├── AbstractReflectionInterpreter.java │ │ ├── ClassFactoryContextInterpreter.java │ │ ├── ClassFactoryContextSelector.java │ │ ├── ClassNewInstanceContextInterpreter.java │ │ ├── ClassNewInstanceContextSelector.java │ │ ├── CloneInterpreter.java │ │ ├── FactoryBypassInterpreter.java │ │ ├── FactoryContextSelector.java │ │ ├── GetClassContextInterpeter.java │ │ ├── GetClassContextSelector.java │ │ ├── GetMethodContext.java │ │ ├── GetMethodContextInterpreter.java │ │ ├── GetMethodContextSelector.java │ │ ├── IllegalArgumentExceptionContext.java │ │ ├── InstanceKeyWithNode.java │ │ ├── JavaLangClassContextInterpreter.java │ │ ├── JavaLangClassContextSelector.java │ │ ├── JavaTypeContext.java │ │ ├── ReflectionContextInterpreter.java │ │ ├── ReflectionContextSelector.java │ │ ├── ReflectiveInvocationInterpreter.java │ │ ├── ReflectiveInvocationSelector.java │ │ ├── java7 │ │ │ └── MethodHandles.java │ │ └── package.html │ ├── stackMachine │ │ ├── AbstractIntStackMachine.java │ │ └── package.html │ └── typeInference │ │ ├── ConeType.java │ │ ├── JavaPrimitiveType.java │ │ ├── PointType.java │ │ ├── PrimitiveType.java │ │ ├── SetType.java │ │ ├── TypeAbstraction.java │ │ ├── TypeInference.java │ │ ├── TypeVariable.java │ │ └── package.html │ ├── cfg │ ├── AbstractCFG.java │ ├── BytecodeCFG.java │ ├── CFGSanitizer.java │ ├── ControlFlowGraph.java │ ├── IBasicBlock.java │ ├── InducedCFG.java │ ├── ShrikeCFG.java │ ├── Util.java │ ├── cdg │ │ ├── ControlDependenceGraph.java │ │ └── package.html │ ├── exc │ │ ├── ExceptionPruningAnalysis.java │ │ ├── InterprocAnalysisResult.java │ │ ├── NullPointerAnalysis.java │ │ ├── inter │ │ │ ├── AnalysisUtil.java │ │ │ ├── DelegatingMethodState.java │ │ │ ├── InterprocAnalysisResultWrapper.java │ │ │ ├── InterprocMethodState.java │ │ │ ├── InterprocNullPointerAnalysis.java │ │ │ └── IntraprocAnalysisState.java │ │ └── intra │ │ │ ├── ExplodedCFGNullPointerAnalysis.java │ │ │ ├── IntraprocNullPointerAnalysis.java │ │ │ ├── MethodState.java │ │ │ ├── MutableCFG.java │ │ │ ├── NegativeGraphFilter.java │ │ │ ├── NullPointerFrameWork.java │ │ │ ├── NullPointerState.java │ │ │ ├── NullPointerTransferFunctionProvider.java │ │ │ ├── ParameterState.java │ │ │ └── SSACFGNullPointerAnalysis.java │ └── package.html │ ├── classLoader │ ├── AbstractNestedJarFileModule.java │ ├── AbstractURLModule.java │ ├── ArrayClass.java │ ├── ArrayClassLoader.java │ ├── BinaryDirectoryTreeModule.java │ ├── BytecodeClass.java │ ├── BytecodeLanguage.java │ ├── CallSiteReference.java │ ├── ClassFileModule.java │ ├── ClassLoaderFactory.java │ ├── ClassLoaderFactoryImpl.java │ ├── ClassLoaderImpl.java │ ├── CodeScanner.java │ ├── CompoundModule.java │ ├── DirectoryTreeModule.java │ ├── FieldImpl.java │ ├── FileModule.java │ ├── IBytecodeMethod.java │ ├── IClass.java │ ├── IClassLoader.java │ ├── IField.java │ ├── IMember.java │ ├── IMethod.java │ ├── JVMClass.java │ ├── JarFileEntry.java │ ├── JarFileModule.java │ ├── JarStreamModule.java │ ├── JavaLanguage.java │ ├── Language.java │ ├── LanguageImpl.java │ ├── Module.java │ ├── ModuleEntry.java │ ├── NestedJarFileModule.java │ ├── NewSiteReference.java │ ├── ProgramCounter.java │ ├── ResourceJarFileModule.java │ ├── ShrikeBTMethod.java │ ├── ShrikeCTMethod.java │ ├── ShrikeClass.java │ ├── ShrikeIRFactory.java │ ├── SourceDirectoryTreeModule.java │ ├── SourceFileModule.java │ ├── SourceModule.java │ ├── SourceURLModule.java │ ├── SyntheticClass.java │ ├── SyntheticMethod.java │ └── package.html │ ├── client │ ├── AbstractAnalysisEngine.java │ ├── AbstractEngineStopwatch.java │ ├── AnalysisEngine.java │ ├── EngineStopwatch.java │ └── package.html │ ├── core │ └── plugin │ │ └── package.html │ ├── dataflow │ ├── IFDS │ │ ├── BackwardsSupergraph.java │ │ ├── BoundedPartiallyBalancedSolver.java │ │ ├── BoundedTabulationSolver.java │ │ ├── CallFlowEdges.java │ │ ├── IBinaryReturnFlowFunction.java │ │ ├── ICFGSupergraph.java │ │ ├── IFlowFunction.java │ │ ├── IFlowFunctionMap.java │ │ ├── IMergeFunction.java │ │ ├── IPartiallyBalancedFlowFunctions.java │ │ ├── IReversibleFlowFunction.java │ │ ├── ISupergraph.java │ │ ├── ITabulationWorklist.java │ │ ├── IUnaryFlowFunction.java │ │ ├── IdentityFlowFunction.java │ │ ├── IdentityFlowFunctions.java │ │ ├── KillEverything.java │ │ ├── LocalPathEdges.java │ │ ├── LocalSummaryEdges.java │ │ ├── PartiallyBalancedTabulationProblem.java │ │ ├── PartiallyBalancedTabulationSolver.java │ │ ├── PathEdge.java │ │ ├── SingletonFlowFunction.java │ │ ├── TabulationCancelException.java │ │ ├── TabulationDomain.java │ │ ├── TabulationProblem.java │ │ ├── TabulationResult.java │ │ ├── TabulationSolver.java │ │ ├── UnorderedDomain.java │ │ ├── VectorGenFlowFunction.java │ │ ├── VectorKillFlowFunction.java │ │ └── package.html │ └── ssa │ │ └── SSAInference.java │ ├── demandpa │ ├── alg │ │ ├── AbstractDemandPointsTo.java │ │ ├── BudgetExceededException.java │ │ ├── CallStack.java │ │ ├── ContextSensitiveStateMachine.java │ │ ├── DemandRefinementPointsTo.java │ │ ├── IDemandPointerAnalysis.java │ │ ├── InstanceFieldKeyAndState.java │ │ ├── InstanceKeyAndState.java │ │ ├── IntraProcFilter.java │ │ ├── PointerKeyAndState.java │ │ ├── SimpleDemandPointsTo.java │ │ ├── ThisFilteringHeapModel.java │ │ ├── WithState.java │ │ ├── refinepolicy │ │ │ ├── AbstractRefinementPolicy.java │ │ │ ├── AlwaysRefineCGPolicy.java │ │ │ ├── AlwaysRefineFieldsPolicy.java │ │ │ ├── CallGraphRefinePolicy.java │ │ │ ├── ContainersFieldPolicy.java │ │ │ ├── DelegatingFieldRefinePolicy.java │ │ │ ├── FieldRefinePolicy.java │ │ │ ├── ManualCGRefinePolicy.java │ │ │ ├── ManualFieldPolicy.java │ │ │ ├── ManualRefinementPolicy.java │ │ │ ├── NeverRefineCGPolicy.java │ │ │ ├── NeverRefineFieldsPolicy.java │ │ │ ├── OnlyArraysPolicy.java │ │ │ ├── RefinementPolicy.java │ │ │ ├── RefinementPolicyFactory.java │ │ │ ├── SinglePassRefinementPolicy.java │ │ │ ├── TunedFieldRefinementPolicy.java │ │ │ └── TunedRefinementPolicy.java │ │ └── statemachine │ │ │ ├── DummyStateMachine.java │ │ │ ├── StateMachine.java │ │ │ ├── StateMachineFactory.java │ │ │ └── StatesMergedException.java │ ├── flowgraph │ │ ├── AbstractDemandFlowGraph.java │ │ ├── AbstractFlowGraph.java │ │ ├── AbstractFlowLabelVisitor.java │ │ ├── AssignBarLabel.java │ │ ├── AssignGlobalBarLabel.java │ │ ├── AssignGlobalLabel.java │ │ ├── AssignLabel.java │ │ ├── CallLabel.java │ │ ├── DemandPointerFlowGraph.java │ │ ├── DemandValueFlowGraph.java │ │ ├── GetFieldBarLabel.java │ │ ├── GetFieldLabel.java │ │ ├── IFlowGraph.java │ │ ├── IFlowLabel.java │ │ ├── IFlowLabelWithFilter.java │ │ ├── MatchBarLabel.java │ │ ├── MatchLabel.java │ │ ├── NewBarLabel.java │ │ ├── NewLabel.java │ │ ├── ParamBarLabel.java │ │ ├── ParamLabel.java │ │ ├── PointerKeyAndCallSite.java │ │ ├── PutFieldBarLabel.java │ │ ├── PutFieldLabel.java │ │ ├── ReturnBarLabel.java │ │ ├── ReturnLabel.java │ │ └── SimpleDemandPointerFlowGraph.java │ └── util │ │ ├── ArrayContents.java │ │ ├── CallGraphMapUtil.java │ │ ├── MemoryAccess.java │ │ ├── MemoryAccessMap.java │ │ ├── PABasedMemoryAccessMap.java │ │ ├── PointerParamValueNumIterator.java │ │ └── SimpleMemoryAccessMap.java │ ├── escape │ ├── FILiveObjectAnalysis.java │ ├── ILiveObjectAnalysis.java │ ├── IMethodEscapeAnalysis.java │ ├── INodeEscapeAnalysis.java │ ├── LocalLiveRangeAnalysis.java │ └── TrivialMethodEscape.java │ ├── ipa │ ├── callgraph │ │ ├── AnalysisCache.java │ │ ├── AnalysisOptions.java │ │ ├── AnalysisScope.java │ │ ├── CGNode.java │ │ ├── CallGraph.java │ │ ├── CallGraphBuilder.java │ │ ├── CallGraphBuilderCancelException.java │ │ ├── CallGraphStats.java │ │ ├── CallGraphTransitiveClosure.java │ │ ├── ClassTargetSelector.java │ │ ├── Context.java │ │ ├── ContextItem.java │ │ ├── ContextKey.java │ │ ├── ContextSelector.java │ │ ├── ContextUtil.java │ │ ├── DelegatingContext.java │ │ ├── Entrypoint.java │ │ ├── MethodTargetSelector.java │ │ ├── ShallowAnalysisScope.java │ │ ├── cha │ │ │ ├── CHACallGraph.java │ │ │ ├── CHAContextInterpreter.java │ │ │ └── ContextInsensitiveCHAContextInterpreter.java │ │ ├── impl │ │ │ ├── AbstractRootMethod.java │ │ │ ├── AllApplicationEntrypoints.java │ │ │ ├── ArgumentTypeEntrypoint.java │ │ │ ├── BasicCallGraph.java │ │ │ ├── ClassHierarchyClassTargetSelector.java │ │ │ ├── ClassHierarchyMethodTargetSelector.java │ │ │ ├── ComposedEntrypoints.java │ │ │ ├── ContextInsensitiveSelector.java │ │ │ ├── DefaultContextSelector.java │ │ │ ├── DefaultEntrypoint.java │ │ │ ├── DelegatingContextSelector.java │ │ │ ├── Everywhere.java │ │ │ ├── ExplicitCallGraph.java │ │ │ ├── FakeRootClass.java │ │ │ ├── FakeRootMethod.java │ │ │ ├── FakeWorldClinitMethod.java │ │ │ ├── PartialCallGraph.java │ │ │ ├── SubtypesEntrypoint.java │ │ │ ├── UnionContextSelector.java │ │ │ ├── Util.java │ │ │ └── package.html │ │ ├── package.html │ │ ├── propagation │ │ │ ├── AbstractFieldPointerKey.java │ │ │ ├── AbstractLocalPointerKey.java │ │ │ ├── AbstractPointerAnalysis.java │ │ │ ├── AbstractPointerKey.java │ │ │ ├── AbstractPointsToSolver.java │ │ │ ├── AbstractTypeInNode.java │ │ │ ├── AllocationSite.java │ │ │ ├── AllocationSiteInNode.java │ │ │ ├── AllocationSiteInNodeFactory.java │ │ │ ├── ArrayContentsKey.java │ │ │ ├── AssignEquation.java │ │ │ ├── AssignOperator.java │ │ │ ├── ClassBasedInstanceKeys.java │ │ │ ├── CloneContextSelector.java │ │ │ ├── ConcreteTypeKey.java │ │ │ ├── ConstantKey.java │ │ │ ├── ContainerUtil.java │ │ │ ├── FilteredPointerKey.java │ │ │ ├── HeapModel.java │ │ │ ├── IPointerOperator.java │ │ │ ├── IPointsToSolver.java │ │ │ ├── InstanceFieldKey.java │ │ │ ├── InstanceFieldKeyWithFilter.java │ │ │ ├── InstanceFieldPointerKey.java │ │ │ ├── InstanceKey.java │ │ │ ├── InstanceKeyFactory.java │ │ │ ├── LocalPointerKey.java │ │ │ ├── LocalPointerKeyWithFilter.java │ │ │ ├── MultiNewArrayInNode.java │ │ │ ├── NodeKey.java │ │ │ ├── NormalAllocationInNode.java │ │ │ ├── PointerAnalysis.java │ │ │ ├── PointerAnalysisImpl.java │ │ │ ├── PointerKey.java │ │ │ ├── PointerKeyComparator.java │ │ │ ├── PointerKeyFactory.java │ │ │ ├── PointsToMap.java │ │ │ ├── PointsToSetVariable.java │ │ │ ├── PropagationCallGraphBuilder.java │ │ │ ├── PropagationGraph.java │ │ │ ├── PropagationSystem.java │ │ │ ├── ReceiverInstanceContext.java │ │ │ ├── ReceiverTypeContextSelector.java │ │ │ ├── ReflectionHandler.java │ │ │ ├── ReturnValueKey.java │ │ │ ├── ReturnValueKeyWithFilter.java │ │ │ ├── SSAContextInterpreter.java │ │ │ ├── SSAPropagationCallGraphBuilder.java │ │ │ ├── SelectiveCPAContext.java │ │ │ ├── SmushedAllocationSiteInNode.java │ │ │ ├── SmushedAllocationSiteInstanceKeys.java │ │ │ ├── StandardSolver.java │ │ │ ├── StaticFieldKey.java │ │ │ ├── StringConstantCharArray.java │ │ │ ├── TargetMethodContextSelector.java │ │ │ ├── UnarySideEffect.java │ │ │ ├── ZeroLengthArrayInNode.java │ │ │ ├── cfa │ │ │ │ ├── CallString.java │ │ │ │ ├── CallStringContext.java │ │ │ │ ├── CallStringContextSelector.java │ │ │ │ ├── CallerContext.java │ │ │ │ ├── CallerContextPair.java │ │ │ │ ├── CallerSiteContext.java │ │ │ │ ├── CallerSiteContextPair.java │ │ │ │ ├── ContainerContextSelector.java │ │ │ │ ├── ContextInsensitiveSSAInterpreter.java │ │ │ │ ├── DefaultPointerKeyFactory.java │ │ │ │ ├── DefaultSSAInterpreter.java │ │ │ │ ├── DelegatingSSAContextInterpreter.java │ │ │ │ ├── ExceptionReturnValueKey.java │ │ │ │ ├── FallbackContextInterpreter.java │ │ │ │ ├── OneLevelSiteContextSelector.java │ │ │ │ ├── ZeroXCFABuilder.java │ │ │ │ ├── ZeroXContainerCFABuilder.java │ │ │ │ ├── ZeroXInstanceKeys.java │ │ │ │ ├── nCFABuilder.java │ │ │ │ ├── nCFAContextSelector.java │ │ │ │ └── package.html │ │ │ ├── package.html │ │ │ └── rta │ │ │ │ ├── AbstractRTABuilder.java │ │ │ │ ├── BasicRTABuilder.java │ │ │ │ ├── CallSite.java │ │ │ │ ├── ContextInsensitiveRTAInterpreter.java │ │ │ │ ├── DefaultRTAInterpreter.java │ │ │ │ ├── DelegatingExplicitCallGraph.java │ │ │ │ ├── DelegatingRTAContextInterpreter.java │ │ │ │ ├── RTAContextInterpreter.java │ │ │ │ ├── RTASelectorKey.java │ │ │ │ ├── TypeBasedHeapModel.java │ │ │ │ ├── TypeBasedPointerAnalysis.java │ │ │ │ └── package.html │ │ ├── pruned │ │ │ ├── ApplicationLoaderPolicy.java │ │ │ ├── CallGraphPruning.java │ │ │ ├── DoNotPrune.java │ │ │ ├── PrunedCallGraph.java │ │ │ └── PruningPolicy.java │ │ └── threadpool │ │ │ └── ThreadHub.java │ ├── cfg │ │ ├── AbstractInterproceduralCFG.java │ │ ├── BasicBlockInContext.java │ │ ├── EdgeFilter.java │ │ ├── ExceptionPrunedCFG.java │ │ ├── ExplodedInterproceduralCFG.java │ │ ├── InterproceduralCFG.java │ │ ├── PrunedCFG.java │ │ └── package.html │ ├── cha │ │ ├── CancelCHAConstructionException.java │ │ ├── ClassHierarchy.java │ │ ├── ClassHierarchyException.java │ │ ├── ClassHierarchyStats.java │ │ ├── ClassHierarchyUtil.java │ │ ├── ClassHierarchyWarning.java │ │ ├── IClassHierarchy.java │ │ ├── IClassHierarchyDweller.java │ │ └── package.html │ ├── modref │ │ ├── ArrayLengthKey.java │ │ ├── DelegatingExtendedHeapModel.java │ │ ├── ExtendedHeapModel.java │ │ ├── GenReach.java │ │ ├── ModRef.java │ │ └── ModRefFieldAccess.java │ ├── slicer │ │ ├── ExceptionalReturnCallee.java │ │ ├── ExceptionalReturnCaller.java │ │ ├── GetCaughtExceptionStatement.java │ │ ├── HeapExclusions.java │ │ ├── HeapReachingDefs.java │ │ ├── HeapStatement.java │ │ ├── ISDG.java │ │ ├── MethodEntryStatement.java │ │ ├── MethodExitStatement.java │ │ ├── NormalReturnCallee.java │ │ ├── NormalReturnCaller.java │ │ ├── NormalStatement.java │ │ ├── PDG.java │ │ ├── ParamCallee.java │ │ ├── ParamCaller.java │ │ ├── PhiStatement.java │ │ ├── PiStatement.java │ │ ├── ReachabilityFunctions.java │ │ ├── SDG.java │ │ ├── SDGSupergraph.java │ │ ├── SliceFunctions.java │ │ ├── Slicer.java │ │ ├── Statement.java │ │ ├── StatementWithInstructionIndex.java │ │ ├── ValueNumberCarrier.java │ │ └── thin │ │ │ ├── CISDG.java │ │ │ ├── CISlicer.java │ │ │ └── ThinSlicer.java │ └── summaries │ │ ├── BypassClassTargetSelector.java │ │ ├── BypassMethodTargetSelector.java │ │ ├── BypassSyntheticClass.java │ │ ├── BypassSyntheticClassLoader.java │ │ ├── MethodBypass.java │ │ ├── MethodSummary.java │ │ ├── ReflectionSummary.java │ │ ├── SummarizedMethod.java │ │ ├── SummarizedMethodWithNames.java │ │ ├── SyntheticIR.java │ │ ├── SyntheticIRFactory.java │ │ ├── VolatileMethodSummary.java │ │ ├── XMLMethodSummaryReader.java │ │ └── package.html │ ├── model │ ├── SyntheticFactory.java │ └── java │ │ └── lang │ │ ├── System.java │ │ ├── Thread.java │ │ └── reflect │ │ └── Array.java │ ├── properties │ ├── DefaultPropertiesValues.java │ └── WalaProperties.java │ ├── scc │ ├── Bag.java │ ├── Digraph.java │ ├── DirectedDFS.java │ ├── In.java │ ├── TarjanSCC.java │ └── TransitiveClosure.java │ ├── ssa │ ├── AuxiliaryCache.java │ ├── CompoundPiPolicy.java │ ├── ConstantValue.java │ ├── DefUse.java │ ├── DefaultIRFactory.java │ ├── IR.java │ ├── IRFactory.java │ ├── ISSABasicBlock.java │ ├── IVisitorWithAddresses.java │ ├── InstanceOfPiPolicy.java │ ├── NullTestPiPolicy.java │ ├── PhiValue.java │ ├── ReflectiveMemberAccess.java │ ├── SSAAbstractInvokeInstruction.java │ ├── SSAAbstractThrowInstruction.java │ ├── SSAAbstractUnaryInstruction.java │ ├── SSAAddressOfInstruction.java │ ├── SSAArrayLengthInstruction.java │ ├── SSAArrayLoadInstruction.java │ ├── SSAArrayReferenceInstruction.java │ ├── SSAArrayStoreInstruction.java │ ├── SSABinaryOpInstruction.java │ ├── SSABuilder.java │ ├── SSACFG.java │ ├── SSACache.java │ ├── SSACheckCastInstruction.java │ ├── SSAComparisonInstruction.java │ ├── SSAConditionalBranchInstruction.java │ ├── SSAConversionInstruction.java │ ├── SSAFieldAccessInstruction.java │ ├── SSAGetCaughtExceptionInstruction.java │ ├── SSAGetInstruction.java │ ├── SSAGotoInstruction.java │ ├── SSAIndirectionData.java │ ├── SSAInstanceofInstruction.java │ ├── SSAInstruction.java │ ├── SSAInstructionFactory.java │ ├── SSAInvokeDynamicInstruction.java │ ├── SSAInvokeInstruction.java │ ├── SSALoadIndirectInstruction.java │ ├── SSALoadMetadataInstruction.java │ ├── SSAMonitorInstruction.java │ ├── SSANewInstruction.java │ ├── SSAOptions.java │ ├── SSAPhiInstruction.java │ ├── SSAPiInstruction.java │ ├── SSAPiNodePolicy.java │ ├── SSAPutInstruction.java │ ├── SSAReturnInstruction.java │ ├── SSAStoreIndirectInstruction.java │ ├── SSASwitchInstruction.java │ ├── SSAThrowInstruction.java │ ├── SSAUnaryOpInstruction.java │ ├── ShrikeIndirectionData.java │ ├── SymbolTable.java │ ├── Value.java │ ├── analysis │ │ ├── DeadAssignmentElimination.java │ │ ├── ExplodedControlFlowGraph.java │ │ ├── IExplodedBasicBlock.java │ │ └── package.html │ └── package.html │ ├── types │ ├── ClassLoaderReference.java │ ├── Descriptor.java │ ├── FieldReference.java │ ├── MemberReference.java │ ├── MethodReference.java │ ├── Selector.java │ ├── TypeName.java │ ├── TypeReference.java │ ├── annotations │ │ ├── Annotation.java │ │ └── Annotations.java │ ├── generics │ │ ├── ArrayTypeSignature.java │ │ ├── BaseType.java │ │ ├── ClassSignature.java │ │ ├── ClassTypeSignature.java │ │ ├── FormalTypeParameter.java │ │ ├── MethodTypeSignature.java │ │ ├── Signature.java │ │ ├── TypeArgument.java │ │ ├── TypeSignature.java │ │ └── TypeVariableSignature.java │ └── package.html │ ├── util │ ├── CancelRuntimeException.java │ ├── PrimitiveAssignability.java │ ├── ProgressMaster.java │ ├── bytecode │ │ ├── BytecodeStream.java │ │ └── package.html │ ├── config │ │ ├── AnalysisScopeReader.java │ │ └── package.html │ ├── io │ │ ├── FileProvider.java │ │ └── FileSuffixes.java │ ├── package.html │ ├── ref │ │ ├── CacheReference.java │ │ └── ReferenceCleanser.java │ ├── scope │ │ └── JUnitEntryPoints.java │ ├── shrike │ │ ├── Exceptions.java │ │ ├── ShrikeClassReaderHandle.java │ │ └── ShrikeUtil.java │ ├── ssa │ │ ├── ClassLookupException.java │ │ ├── IInstantiator.java │ │ ├── ParameterAccessor.java │ │ ├── SSAValue.java │ │ ├── SSAValueManager.java │ │ ├── TypeSafeInstructionFactory.java │ │ └── package-info.java │ ├── strings │ │ ├── Atom.java │ │ ├── ImmutableByteArray.java │ │ ├── StringStuff.java │ │ └── UTF8Convert.java │ └── warnings │ │ ├── Warning.java │ │ ├── Warnings.java │ │ └── package.html │ └── viz │ ├── PDFViewUtil.java │ └── viewer │ ├── CgPanel.java │ ├── ChaPanel.java │ ├── DualTreeCellRenderer.java │ ├── IrAndSourceViewer.java │ ├── IrViewer.java │ ├── PaPanel.java │ ├── SourceViewer.java │ ├── WalaViewer.java │ └── images │ ├── ik_closed.png │ ├── ik_leaf.png │ ├── ik_open.png │ ├── pk_closed.png │ ├── pk_leaf.png │ └── pk_open.png ├── com.ibm.wala.eclipse ├── .classpath ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ └── org.eclipse.jdt.ui.prefs ├── META-INF │ └── MANIFEST.MF ├── build.properties ├── build.xml ├── data │ └── EclipseDefaultExclusions.txt ├── icons │ └── Wala-icon.jpg ├── javaCompiler...args ├── plugin.xml └── src │ └── com │ └── ibm │ └── wala │ └── eclipse │ ├── Activator.java │ ├── cg │ ├── model │ │ ├── AnalysisUtils.java │ │ ├── KObjectSensitiveContextSelector.java │ │ ├── ReceiverString.java │ │ ├── ReceiverStringContext.java │ │ ├── WalaCGModel.java │ │ ├── WalaJarFileCGModel.java │ │ ├── WalaJarFileCGModelWithMain.java │ │ ├── WalaProjectCGModel.java │ │ ├── WalaProjectCGModelWithMain.java │ │ ├── WalaProjectCGModelWithType.java │ │ └── WalaWebPageCGModel.java │ └── views │ │ ├── CGContentProvider.java │ │ ├── CGJavaLabelProvider.java │ │ ├── CGView.java │ │ └── SelectWalaCGAction.java │ └── util │ └── WalaToJavaEltConverter.java ├── com.ibm.wala.ide.jdt ├── .classpath ├── .gitignore ├── .project ├── .settings │ └── org.eclipse.jdt.core.prefs ├── META-INF │ └── MANIFEST.MF ├── build.properties ├── pom.xml └── source │ └── com │ └── ibm │ └── wala │ ├── cast │ └── java │ │ ├── client │ │ └── JDTJavaSourceAnalysisEngine.java │ │ └── translator │ │ └── jdt │ │ ├── FakeExceptionTypeBinding.java │ │ ├── JDT2CAstUtils.java │ │ ├── JDTClassLoaderFactory.java │ │ ├── JDTIdentityMapper.java │ │ ├── JDTJava2CAstTranslator.java │ │ ├── JDTSourceLoaderImpl.java │ │ ├── JDTSourceModuleTranslator.java │ │ └── JDTTypeDictionary.java │ ├── eclipse │ └── headless │ │ └── Main.java │ └── ide │ ├── AbstractJavaAnalysisAction.java │ ├── jdt │ └── Activator.java │ └── util │ ├── ASTNodeFinder.java │ ├── JavaEclipseProjectPath.java │ ├── JdtPosition.java │ └── JdtUtil.java ├── com.ibm.wala.ide ├── .classpath ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ ├── org.eclipse.jdt.launching.prefs │ └── org.eclipse.jdt.ui.prefs ├── META-INF │ └── MANIFEST.MF ├── build.properties ├── plugin.properties ├── pom.xml └── src │ └── com │ └── ibm │ └── wala │ └── ide │ ├── classloader │ ├── EclipseSourceDirectoryTreeModule.java │ └── EclipseSourceFileModule.java │ ├── client │ ├── EclipseProjectAnalysisEngine.java │ └── EclipseProjectSourceAnalysisEngine.java │ ├── plugin │ └── CorePlugin.java │ ├── ui │ ├── AbstractJFaceRunner.java │ ├── IFDSExplorer.java │ ├── SWTTreeViewer.java │ ├── ViewIFDSLocalAction.java │ └── ViewIRAction.java │ └── util │ ├── EclipseAnalysisScopeReader.java │ ├── EclipseFileProvider.java │ ├── EclipseProjectPath.java │ ├── HeadlessUtil.java │ └── ProgressMonitorDelegate.java ├── com.ibm.wala.shrike ├── .classpath ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ ├── org.eclipse.jdt.launching.prefs │ └── org.eclipse.jdt.ui.prefs ├── META-INF │ └── MANIFEST.MF ├── build.properties ├── build.xml ├── exportPlugin.xml ├── javaCompiler...args ├── plugin.properties ├── pom.xml ├── releng │ └── versionMap-1.0.0.txt └── src │ └── com │ └── ibm │ └── wala │ ├── shrike │ ├── bench │ │ ├── AddBytecodeDebug.java │ │ ├── Bench.java │ │ ├── InterfaceAnalyzer.java │ │ ├── Mangler.java │ │ ├── Slots.java │ │ └── Statistics.java │ ├── cg │ │ ├── DynamicCallGraph.java │ │ └── Runtime.java │ └── copywriter │ │ └── CopyWriter.java │ ├── shrikeBT │ ├── ArrayLengthInstruction.java │ ├── ArrayLoadInstruction.java │ ├── ArrayStoreInstruction.java │ ├── BinaryOpInstruction.java │ ├── BytecodeConstants.java │ ├── CheckCastInstruction.java │ ├── ComparisonInstruction.java │ ├── Compiler.java │ ├── ConditionalBranchInstruction.java │ ├── ConstantInstruction.java │ ├── ConstantPoolReader.java │ ├── Constants.java │ ├── ConversionInstruction.java │ ├── Decoder.java │ ├── Disassembler.java │ ├── DupInstruction.java │ ├── ExceptionHandler.java │ ├── GetInstruction.java │ ├── GotoInstruction.java │ ├── IArrayLoadInstruction.java │ ├── IArrayStoreInstruction.java │ ├── IBinaryOpInstruction.java │ ├── IComparisonInstruction.java │ ├── IConditionalBranchInstruction.java │ ├── IConversionInstruction.java │ ├── IGetInstruction.java │ ├── IInstanceofInstruction.java │ ├── IInstruction.java │ ├── IInvokeInstruction.java │ ├── ILoadIndirectInstruction.java │ ├── ILoadInstruction.java │ ├── IMemoryOperation.java │ ├── IPutInstruction.java │ ├── IShiftInstruction.java │ ├── IStoreIndirectInstruction.java │ ├── IStoreInstruction.java │ ├── ITypeTestInstruction.java │ ├── IUnaryOpInstruction.java │ ├── IndirectionData.java │ ├── InstanceofInstruction.java │ ├── Instruction.java │ ├── InvokeDynamicInstruction.java │ ├── InvokeInstruction.java │ ├── LoadInstruction.java │ ├── MethodData.java │ ├── MethodEditor.java │ ├── MonitorInstruction.java │ ├── NewInstruction.java │ ├── PopInstruction.java │ ├── PutInstruction.java │ ├── ReturnInstruction.java │ ├── ShiftInstruction.java │ ├── StoreInstruction.java │ ├── SwapInstruction.java │ ├── SwitchInstruction.java │ ├── ThrowInstruction.java │ ├── UnaryOpInstruction.java │ ├── Util.java │ ├── analysis │ │ ├── Analyzer.java │ │ ├── ClassHierarchy.java │ │ ├── ClassHierarchyProvider.java │ │ ├── ClassHierarchyStore.java │ │ └── Verifier.java │ ├── info │ │ ├── InstructionTypeCounter.java │ │ ├── LocalAllocator.java │ │ └── ThisAssignmentChecker.java │ ├── shrikeCT │ │ ├── CTCompiler.java │ │ ├── CTDecoder.java │ │ ├── CTUtils.java │ │ ├── ClassInstrumenter.java │ │ ├── OfflineInstrumenter.java │ │ └── tools │ │ │ ├── AddSerialVersion.java │ │ │ ├── BatchVerifier.java │ │ │ ├── BootstrapDumper.java │ │ │ ├── ClassPrinter.java │ │ │ ├── ClassSearcher.java │ │ │ └── MethodTracer.java │ └── tools │ │ ├── MethodOptimizer.java │ │ └── OfflineInstrumenterBase.java │ ├── shrikeCT │ ├── AnnotationsReader.java │ ├── AttributeReader.java │ ├── BootstrapMethodsReader.java │ ├── ClassConstants.java │ ├── ClassReader.java │ ├── ClassWriter.java │ ├── CodeReader.java │ ├── CodeWriter.java │ ├── ConstantPoolParser.java │ ├── ConstantValueReader.java │ ├── ConstantValueWriter.java │ ├── ExceptionsReader.java │ ├── ExceptionsWriter.java │ ├── InnerClassesReader.java │ ├── InnerClassesWriter.java │ ├── InvalidClassFileException.java │ ├── LineNumberTableReader.java │ ├── LineNumberTableWriter.java │ ├── LocalVariableTableReader.java │ ├── LocalVariableTableWriter.java │ ├── SignatureReader.java │ ├── SourceDebugExtensionReader.java │ ├── SourceDebugExtensionWriter.java │ ├── SourceFileReader.java │ ├── SourceFileWriter.java │ ├── SourcePositionTableReader.java │ ├── StackMapConstants.java │ ├── StackMapTableReader.java │ └── StackMapTableWriter.java │ └── sourcepos │ ├── CRTData.java │ ├── CRTFlags.java │ ├── CRTable.java │ ├── Debug.java │ ├── InvalidCRTDataException.java │ ├── InvalidPositionException.java │ ├── InvalidRangeException.java │ ├── InvalidSourceInfoException.java │ ├── MethodPositions.java │ ├── Position.java │ ├── PositionsAttribute.java │ └── Range.java ├── com.ibm.wala.util ├── .classpath ├── .gitignore ├── .project ├── .settings │ ├── org.eclipse.jdt.core.prefs │ ├── org.eclipse.jdt.launching.prefs │ └── org.eclipse.jdt.ui.prefs ├── META-INF │ └── MANIFEST.MF ├── build.properties ├── mvncentral.xml ├── pom.xml └── src │ └── com │ └── ibm │ └── wala │ ├── dataflow │ └── graph │ │ ├── AbstractMeetOperator.java │ │ ├── BasicFramework.java │ │ ├── BitVectorFilter.java │ │ ├── BitVectorFramework.java │ │ ├── BitVectorIdentity.java │ │ ├── BitVectorIntersection.java │ │ ├── BitVectorKillAll.java │ │ ├── BitVectorKillGen.java │ │ ├── BitVectorMinusVector.java │ │ ├── BitVectorOr.java │ │ ├── BitVectorSolver.java │ │ ├── BitVectorUnion.java │ │ ├── BitVectorUnionConstant.java │ │ ├── BitVectorUnionVector.java │ │ ├── BooleanIdentity.java │ │ ├── BooleanSolver.java │ │ ├── BooleanUnion.java │ │ ├── DataflowSolver.java │ │ ├── IKilldallFramework.java │ │ ├── ITransferFunctionProvider.java │ │ ├── UnaryBitVectorUnion.java │ │ └── package.html │ ├── fixedpoint │ └── impl │ │ ├── AbstractFixedPointSolver.java │ │ ├── BasicNullaryStatement.java │ │ ├── DefaultFixedPointSolver.java │ │ ├── DefaultFixedPointSystem.java │ │ ├── GeneralStatement.java │ │ ├── NullaryOperator.java │ │ ├── NullaryStatement.java │ │ └── Worklist.java │ ├── fixpoint │ ├── AbstractOperator.java │ ├── AbstractStatement.java │ ├── AbstractVariable.java │ ├── BasicUnaryStatement.java │ ├── BitVectorVariable.java │ ├── BooleanVariable.java │ ├── FixedPointConstants.java │ ├── IFixedPointSolver.java │ ├── IFixedPointStatement.java │ ├── IFixedPointSystem.java │ ├── IVariable.java │ ├── IntSetVariable.java │ ├── TrueOperator.java │ ├── UnaryOperator.java │ ├── UnaryOr.java │ ├── UnaryStatement.java │ └── package.html │ ├── util │ ├── CancelException.java │ ├── MonitorUtil.java │ ├── NullProgressMonitor.java │ ├── PlatformUtil.java │ ├── Predicate.java │ ├── WalaException.java │ ├── WalaRuntimeException.java │ ├── collections │ │ ├── AbstractMultiMap.java │ │ ├── ArrayIterator.java │ │ ├── ArrayNonNullIterator.java │ │ ├── ArraySet.java │ │ ├── ArraySetMultiMap.java │ │ ├── BimodalMap.java │ │ ├── CollectionFilter.java │ │ ├── ComposedIterator.java │ │ ├── CompoundIntIterator.java │ │ ├── CompoundIterator.java │ │ ├── EmptyIntIterator.java │ │ ├── EmptyIterator.java │ │ ├── Factory.java │ │ ├── FifoQueue.java │ │ ├── FifoQueueNoDuplicates.java │ │ ├── Filter.java │ │ ├── FilterIterator.java │ │ ├── FilterPredicate.java │ │ ├── Filtersection.java │ │ ├── HashCodeComparator.java │ │ ├── HashMapFactory.java │ │ ├── HashSetFactory.java │ │ ├── HashSetMultiMap.java │ │ ├── Heap.java │ │ ├── IVector.java │ │ ├── ImmutableStack.java │ │ ├── IndiscriminateFilter.java │ │ ├── IntMapIterator.java │ │ ├── IntStack.java │ │ ├── Iterator2Collection.java │ │ ├── Iterator2Iterable.java │ │ ├── Iterator2List.java │ │ ├── Iterator2Set.java │ │ ├── IteratorPlusOne.java │ │ ├── IteratorPlusTwo.java │ │ ├── IteratorUtil.java │ │ ├── MapIterator.java │ │ ├── MapUtil.java │ │ ├── MultiMap.java │ │ ├── NonNullSingletonIterator.java │ │ ├── ObjectArrayMapping.java │ │ ├── ObjectVisitor.java │ │ ├── OrFilter.java │ │ ├── Pair.java │ │ ├── ParanoidHashMap.java │ │ ├── ParanoidHashSet.java │ │ ├── ReverseIterator.java │ │ ├── SimpleVector.java │ │ ├── SmallMap.java │ │ ├── SparseVector.java │ │ ├── ToStringComparator.java │ │ ├── TwoLevelVector.java │ │ ├── Util.java │ │ └── package.html │ ├── config │ │ ├── FileOfClasses.java │ │ └── SetOfClasses.java │ ├── debug │ │ ├── Assertions.java │ │ ├── LoggingStopwatch.java │ │ ├── UnimplementedError.java │ │ ├── VerboseAction.java │ │ └── package.html │ ├── functions │ │ ├── Function.java │ │ ├── IntFunction.java │ │ └── VoidFunction.java │ ├── graph │ │ ├── AbstractGraph.java │ │ ├── AbstractNumberedGraph.java │ │ ├── Acyclic.java │ │ ├── BasicTree.java │ │ ├── EdgeFilteredNumberedGraph.java │ │ ├── EdgeManager.java │ │ ├── GXL.java │ │ ├── Graph.java │ │ ├── GraphIntegrity.java │ │ ├── GraphPrint.java │ │ ├── GraphReachability.java │ │ ├── GraphSlicer.java │ │ ├── GraphUtil.java │ │ ├── INodeWithNumber.java │ │ ├── INodeWithNumberedEdges.java │ │ ├── InferGraphRoots.java │ │ ├── NodeManager.java │ │ ├── NumberedEdgeManager.java │ │ ├── NumberedGraph.java │ │ ├── NumberedNodeManager.java │ │ ├── OrderedMultiGraph.java │ │ ├── Path.java │ │ ├── dominators │ │ │ ├── DominanceFrontiers.java │ │ │ ├── Dominators.java │ │ │ ├── GenericDominators.java │ │ │ └── NumberedDominators.java │ │ ├── impl │ │ │ ├── BasicNodeManager.java │ │ │ ├── BasicOrderedMultiGraph.java │ │ │ ├── DelegatingGraph.java │ │ │ ├── DelegatingNumberedEdgeManager.java │ │ │ ├── DelegatingNumberedGraph.java │ │ │ ├── DelegatingNumberedNodeManager.java │ │ │ ├── ExtensionGraph.java │ │ │ ├── GraphInverter.java │ │ │ ├── InvertedGraph.java │ │ │ ├── InvertedNumberedGraph.java │ │ │ ├── InvertingEdgeManager.java │ │ │ ├── InvertingNumberedEdgeManager.java │ │ │ ├── NodeWithNumber.java │ │ │ ├── NodeWithNumberedEdges.java │ │ │ ├── NumberedNodeIterator.java │ │ │ ├── SlowNumberedNodeManager.java │ │ │ ├── SlowSparseNumberedGraph.java │ │ │ ├── SparseNumberedEdgeManager.java │ │ │ ├── SparseNumberedGraph.java │ │ │ └── package.html │ │ ├── labeled │ │ │ ├── AbstractLabeledGraph.java │ │ │ ├── AbstractNumberedLabeledGraph.java │ │ │ ├── LabeledEdgeManager.java │ │ │ ├── LabeledGraph.java │ │ │ ├── NumberedLabeledEdgeManager.java │ │ │ ├── SlowSparseNumberedLabeledGraph.java │ │ │ └── SparseNumberedLabeledEdgeManager.java │ │ ├── package.html │ │ └── traverse │ │ │ ├── BFSIterator.java │ │ │ ├── BFSPathFinder.java │ │ │ ├── BoundedBFSIterator.java │ │ │ ├── DFS.java │ │ │ ├── DFSAllPathsFinder.java │ │ │ ├── DFSDiscoverTimeIterator.java │ │ │ ├── DFSFinishTimeIterator.java │ │ │ ├── DFSPathFinder.java │ │ │ ├── FloydWarshall.java │ │ │ ├── GraphDFSDiscoverTimeIterator.java │ │ │ ├── NumberedDFSDiscoverTimeIterator.java │ │ │ ├── NumberedDFSFinishTimeIterator.java │ │ │ ├── SCCIterator.java │ │ │ ├── SlowDFSDiscoverTimeIterator.java │ │ │ ├── SlowDFSFinishTimeIterator.java │ │ │ ├── Topological.java │ │ │ ├── WelshPowell.java │ │ │ └── package.html │ ├── heapTrace │ │ ├── HeapTracer.java │ │ └── package.html │ ├── intset │ │ ├── BasicNaturalRelation.java │ │ ├── BimodalMutableIntSet.java │ │ ├── BimodalMutableIntSetFactory.java │ │ ├── BitSet.java │ │ ├── BitVector.java │ │ ├── BitVectorBase.java │ │ ├── BitVectorIntSet.java │ │ ├── BitVectorIntSetFactory.java │ │ ├── BitVectorRepository.java │ │ ├── Bits.java │ │ ├── DebuggingMutableIntSet.java │ │ ├── DebuggingMutableIntSetFactory.java │ │ ├── EmptyIntSet.java │ │ ├── FixedSizeBitVector.java │ │ ├── IBinaryNaturalRelation.java │ │ ├── IntIterator.java │ │ ├── IntPair.java │ │ ├── IntSet.java │ │ ├── IntSetAction.java │ │ ├── IntSetUtil.java │ │ ├── IntVector.java │ │ ├── IntegerUnionFind.java │ │ ├── LongIterator.java │ │ ├── LongSet.java │ │ ├── LongSetAction.java │ │ ├── LongSetUtil.java │ │ ├── MultiModalIntVector.java │ │ ├── MutableIntSet.java │ │ ├── MutableIntSetFactory.java │ │ ├── MutableLongSet.java │ │ ├── MutableLongSetFactory.java │ │ ├── MutableMapping.java │ │ ├── MutableSharedBitVectorIntSet.java │ │ ├── MutableSharedBitVectorIntSetFactory.java │ │ ├── MutableSparseIntSet.java │ │ ├── MutableSparseIntSetFactory.java │ │ ├── MutableSparseLongSet.java │ │ ├── MutableSparseLongSetFactory.java │ │ ├── NumberUtility.java │ │ ├── OffsetBitVector.java │ │ ├── OffsetOrdinalSetMapping.java │ │ ├── OrdinalSet.java │ │ ├── OrdinalSetMapping.java │ │ ├── SemiSparseMutableIntSet.java │ │ ├── SemiSparseMutableIntSetFactory.java │ │ ├── SimpleIntVector.java │ │ ├── SparseIntSet.java │ │ ├── SparseIntVector.java │ │ ├── SparseLongIntVector.java │ │ ├── SparseLongSet.java │ │ ├── TunedMutableSparseIntSet.java │ │ ├── TunedSimpleIntVector.java │ │ ├── TwoLevelIntVector.java │ │ └── package.html │ ├── io │ │ ├── CommandLine.java │ │ ├── FileUtil.java │ │ ├── Streams.java │ │ └── TemporaryFile.java │ ├── math │ │ ├── Factorial.java │ │ ├── Logs.java │ │ ├── LongUtil.java │ │ └── package.html │ ├── perf │ │ ├── Stopwatch.java │ │ └── StopwatchGC.java │ ├── processes │ │ ├── BasicLauncher.java │ │ ├── JavaLauncher.java │ │ └── Launcher.java │ └── tables │ │ ├── Query.java │ │ ├── StringTable.java │ │ └── Table.java │ └── viz │ ├── DotUtil.java │ ├── NodeDecorator.java │ └── PDFViewLauncher.java └── edu.tamu.cse.aser.sword ├── .classpath ├── .project ├── .settings ├── org.eclipse.jdt.core.prefs └── org.eclipse.m2e.core.prefs ├── META-INF └── MANIFEST.MF ├── akka-actor_2.12-2.4.16.jar ├── avrora_report ├── avrora_traver_cls ├── bin ├── .gitignore ├── EclipseDefaultExclusions.backup.txt ├── EclipseDefaultExclusions.txt ├── entries.txt ├── hello.txt ├── test.txt └── test2.txt ├── build.properties ├── commons-cli-1.4.jar ├── config-1.3.1.jar ├── data ├── EclipseDefaultExclusions.backup.txt ├── EclipseDefaultExclusions.txt ├── entries.txt ├── hello.txt ├── test.txt └── test2.txt ├── elevator_report ├── elevator_traver_cls ├── icons ├── Lock-icon.png ├── annotationsView.png ├── arrow.gif ├── blank.gif ├── bug.gif ├── buggy-tiny-blue.png ├── buggy-tiny-gray.png ├── buggy-tiny-green.png ├── buggy-tiny-orange.png ├── buggy-tiny-yellow.png ├── buggy-tiny-yellow2.png ├── buggy-tiny.png ├── buggy-tiny.xcf ├── bugview.gif ├── circle-running-icon.png ├── confidence-high.png ├── confidence-ignore.png ├── confidence-low.png ├── confidence-normal.png ├── datasheet.gif ├── detailsView.png ├── doc_icon.png ├── export_bugs.png ├── file_icon.png ├── folder_icon.gif ├── folder_icon.png ├── forward_nav.gif ├── parallel.png ├── read-icon.png ├── refresh.gif ├── runFindbugs.png ├── shuffle.png ├── treeView.png ├── warning.png └── write-icon.png ├── jface-3.6.1.M20100825-0800.jar ├── log_d4_tradesoap ├── log_sword_sunflow ├── lusearch_report ├── lusearch_traver_cls ├── org.eclipse.jface-3.1.0.jar ├── plugin.xml ├── pom.xml ├── scala-java8-compat_2.12-0.8.0.jar ├── scala-library-2.12.1.jar ├── sor_report ├── sor_traver_cls ├── src └── edu │ └── tamu │ └── aser │ └── tide │ ├── akkasys │ ├── BugHub.java │ ├── BugWorker.java │ ├── CheckDatarace.java │ ├── CheckDeadlock.java │ ├── DistributeDatarace.java │ ├── DistributeDeadlock.java │ ├── FindSharedVarJob.java │ ├── FindSharedVariable.java │ ├── RemoveLocalJob.java │ ├── RemoveLocalVar.java │ └── ReturnResult.java │ ├── cli │ └── Main.java │ ├── engine │ ├── AnalysisUtils.java │ ├── AstCGNodeEcho.java │ ├── BugResolutionGenerator.java │ ├── ITIDEBug.java │ ├── Loop.java │ ├── TIDECGModel.java │ ├── TIDEDeadlock.java │ ├── TIDEEngine.java │ └── TIDERace.java │ ├── marker │ ├── BugMarker.java │ ├── DLMarkerUpdater.java │ └── RaceMarkerUpdater.java │ ├── nodes │ ├── DLPair.java │ ├── DLockNode.java │ ├── DUnlockNode.java │ ├── INode.java │ ├── JoinNode.java │ ├── LockPair.java │ ├── MemNode.java │ ├── MethodNode.java │ ├── ReadNode.java │ ├── StartNode.java │ ├── SyncNode.java │ └── WriteNode.java │ ├── plugin │ ├── Activator.java │ ├── ChangedItem.java │ ├── MyJavaElementChangeReporter.java │ ├── MyPropTester.java │ └── handlers │ │ └── ConvertHandler.java │ ├── shb │ ├── SHBEdge.java │ ├── SHBGraph.java │ ├── SHBGraph_bakup.java │ └── Trace.java │ ├── tests │ ├── Data.java │ ├── Data_init.java │ └── Test.java │ └── views │ ├── BugContentProvider.java │ ├── BugDetail.java │ ├── BugLabelProvider.java │ ├── CReadNode.java │ ├── CSuperWriteNode.java │ ├── CWriteNode.java │ ├── ConcurrentRWList.java │ ├── ConcurrentReadList.java │ ├── ConcurrentRelation.java │ ├── ConcurrentWriteList.java │ ├── DeadlockDetail.java │ ├── DeadlockNode.java │ ├── EchoDLView.java │ ├── EchoRaceView.java │ ├── EchoReadWriteView.java │ ├── EventNode.java │ ├── FixNode.java │ ├── ITreeNode.java │ ├── NewestBugLabelProvider.java │ ├── RWRelationNode.java │ ├── RaceDetail.java │ ├── RaceNode.java │ ├── RelationDetail.java │ ├── SaveExcludeAction.java │ ├── SubTraceNode.java │ ├── TraceNode.java │ └── TreeNode.java ├── sunflow_report ├── sunflow_traver_cls ├── swt.jar ├── tsp_report ├── tsp_traver_cls └── weblech_traver_cls /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | *.metadata 3 | *.class 4 | .metadata/* 5 | .recommenders/* 6 | pta-each-iter 7 | pta-origin-each-iter 8 | traces.txt 9 | com.ibm.wala.cast.test/ 10 | com.ibm.wala.core.tests/ 11 | com.ibm.wala.core.testdata/ 12 | edu.tamu.cse.aser.echo/bin/ 13 | com.ibm.wala.cast/bin/ 14 | com.ibm.wala.cast.java/bin/ 15 | com.ibm.wala.cast.test/bin/ 16 | com.ibm.wala.core/bin/ 17 | com.ibm.wala.core.tests/bin/ 18 | com.ibm.wala.core.testdata/bin/ 19 | com.ibm.wala.eclipse/bin/ 20 | com.ibm.wala.ide/bin/ 21 | com.ibm.wala.ide.jdt/bin/ 22 | com.ibm.wala.shrike/bin/ 23 | com.ibm.wala.util/bin/ 24 | edu.tamu.cse.aser.echo/.DS_Store 25 | RemoteSystemsTempFiles/ 26 | Eclipse.app/ 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 parasol-aser 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/.launchConfigurations/WALA-CAst-Java-Library-Downloads.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.ibm.wala.cast.java 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.pde.ManifestBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.pde.SchemaBuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.pde.PluginNature 26 | org.eclipse.jdt.core.javanature 27 | 28 | 29 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/.settings/org.eclipse.jdt.launching.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore 3 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | #Thu Jan 03 11:24:43 EST 2008 2 | eclipse.preferences.version=1 3 | formatter_profile=_WALA 4 | formatter_settings_version=11 5 | instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true 6 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Bundle-ManifestVersion: 2 3 | Bundle-Name: Java Source WALA Front End 4 | Bundle-SymbolicName: com.ibm.wala.cast.java 5 | Bundle-Version: 1.3.4.qualifier 6 | Bundle-Activator: com.ibm.wala.cast.java.JavaSourcePlugin 7 | Bundle-Vendor: rfuhrer@watson.ibm.com 8 | Require-Bundle: com.ibm.wala.cast, 9 | com.ibm.wala.core, 10 | com.ibm.wala.shrike, 11 | org.eclipse.core.runtime 12 | Bundle-ActivationPolicy: lazy 13 | Export-Package: com.ibm.wala.cast.java, 14 | com.ibm.wala.cast.java.analysis.typeInference, 15 | com.ibm.wala.cast.java.client, 16 | com.ibm.wala.cast.java.client.impl, 17 | com.ibm.wala.cast.java.examples.ast, 18 | com.ibm.wala.cast.java.ipa.callgraph, 19 | com.ibm.wala.cast.java.ipa.modref, 20 | com.ibm.wala.cast.java.ipa.slicer, 21 | com.ibm.wala.cast.java.loader, 22 | com.ibm.wala.cast.java.ssa, 23 | com.ibm.wala.cast.java.translator, 24 | com.ibm.wala.cast.java.types 25 | Bundle-ClassPath: . 26 | Bundle-RequiredExecutionEnvironment: JavaSE-1.7 27 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/build.properties: -------------------------------------------------------------------------------- 1 | source.. = src/ 2 | output.. = bin/ 3 | bin.includes = META-INF/,\ 4 | . 5 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | WALA 7 | com.ibm.wala 8 | 1.3.4-SNAPSHOT 9 | 10 | com.ibm.wala.cast.java 11 | eclipse-plugin 12 | 13 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ssa/AstJavaAbstractInstructionVisitor.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | package com.ibm.wala.cast.java.ssa; 12 | 13 | import com.ibm.wala.cast.ir.ssa.AstAbstractInstructionVisitor; 14 | 15 | public class AstJavaAbstractInstructionVisitor 16 | extends AstAbstractInstructionVisitor 17 | implements AstJavaInstructionVisitor 18 | { 19 | 20 | @Override 21 | public void visitJavaInvoke(AstJavaInvokeInstruction instruction) { 22 | 23 | } 24 | 25 | @Override 26 | public void visitEnclosingObjectReference(EnclosingObjectReference inst) { 27 | 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/ssa/AstJavaInstructionVisitor.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | package com.ibm.wala.cast.java.ssa; 12 | 13 | import com.ibm.wala.cast.ir.ssa.AstInstructionVisitor; 14 | 15 | public interface AstJavaInstructionVisitor extends AstInstructionVisitor { 16 | 17 | public void visitJavaInvoke(AstJavaInvokeInstruction instruction); 18 | 19 | public void visitEnclosingObjectReference(EnclosingObjectReference inst); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/translator/JavaProcedureEntity.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | package com.ibm.wala.cast.java.translator; 12 | 13 | import com.ibm.wala.cast.tree.CAstEntity; 14 | 15 | public interface JavaProcedureEntity extends CAstEntity { 16 | 17 | @Override 18 | public String getSignature(); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/translator/SourceModuleTranslator.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | /* 12 | * Created on Oct 6, 2005 13 | */ 14 | package com.ibm.wala.cast.java.translator; 15 | 16 | import java.util.Set; 17 | 18 | import com.ibm.wala.classLoader.ModuleEntry; 19 | 20 | /** 21 | * An interface used by the JavaSourceLoaderImpl to encapsulate the loading of source 22 | * entities on the compile-time classpath into the DOMO analysis infrastructure. 23 | * @author rfuhrer 24 | */ 25 | public interface SourceModuleTranslator { 26 | void loadAllSources(Set modules); 27 | } 28 | -------------------------------------------------------------------------------- /com.ibm.wala.cast.java/src/com/ibm/wala/cast/java/types/JavaType.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | /* 12 | * Created on Sep 21, 2005 13 | */ 14 | package com.ibm.wala.cast.java.types; 15 | 16 | import com.ibm.wala.cast.tree.CAstType; 17 | 18 | public interface JavaType extends CAstType.Class { 19 | @Override 20 | boolean isInterface(); 21 | } 22 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/.externalToolBuilders/make WALA.CAst.launch: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.ibm.wala.cast 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.pde.ManifestBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.pde.SchemaBuilder 20 | 21 | 22 | 23 | 24 | org.eclipse.ui.externaltools.ExternalToolBuilder 25 | full,incremental, 26 | 27 | 28 | LaunchConfigHandle 29 | <project>/.externalToolBuilders/make WALA.CAst.launch 30 | 31 | 32 | 33 | 34 | 35 | org.eclipse.pde.PluginNature 36 | org.eclipse.jdt.core.javanature 37 | 38 | 39 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/.settings/org.eclipse.jdt.launching.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore 3 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | #Thu Jan 03 11:24:41 EST 2008 2 | eclipse.preferences.version=1 3 | formatter_profile=_WALA 4 | formatter_settings_version=11 5 | instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true 6 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Bundle-ManifestVersion: 2 3 | Bundle-Name: WALA CAst core Plug-in 4 | Bundle-SymbolicName: com.ibm.wala.cast 5 | Bundle-Version: 1.3.4.qualifier 6 | Bundle-Activator: com.ibm.wala.cast.plugin.AstPlugin 7 | Bundle-Vendor: IBM 8 | Require-Bundle: com.ibm.wala.core, 9 | com.ibm.wala.shrike, 10 | org.eclipse.core.runtime 11 | Bundle-ActivationPolicy: lazy 12 | Bundle-ClassPath: ., 13 | lib/commons-io-2.4.jar 14 | Export-Package: com.ibm.wala.cast.analysis.typeInference, 15 | com.ibm.wala.cast.ipa.callgraph, 16 | com.ibm.wala.cast.ipa.cha, 17 | com.ibm.wala.cast.ipa.lexical, 18 | com.ibm.wala.cast.ipa.modref, 19 | com.ibm.wala.cast.ir.cfg, 20 | com.ibm.wala.cast.ir.ssa, 21 | com.ibm.wala.cast.ir.ssa.analysis, 22 | com.ibm.wala.cast.ir.translator, 23 | com.ibm.wala.cast.loader, 24 | com.ibm.wala.cast.plugin, 25 | com.ibm.wala.cast.tree, 26 | com.ibm.wala.cast.tree.impl, 27 | com.ibm.wala.cast.tree.pattern, 28 | com.ibm.wala.cast.tree.rewrite, 29 | com.ibm.wala.cast.tree.visit, 30 | com.ibm.wala.cast.types, 31 | com.ibm.wala.cast.util, 32 | org.apache.commons.io, 33 | org.apache.commons.io.input 34 | Bundle-RequiredExecutionEnvironment: JavaSE-1.7 35 | 36 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/build.properties: -------------------------------------------------------------------------------- 1 | source.. = source/java/ 2 | output.. = bin/ 3 | bin.includes = META-INF/,\ 4 | lib/commons-io-2.4.jar,\ 5 | . 6 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/data/the-cast-system.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.cast/data/the-cast-system.jpeg -------------------------------------------------------------------------------- /com.ibm.wala.cast/data/the-cast-system.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.cast/data/the-cast-system.xcf -------------------------------------------------------------------------------- /com.ibm.wala.cast/lib/commons-io-2.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.cast/lib/commons-io-2.4.jar -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/c/Makefile.configuration.sample: -------------------------------------------------------------------------------- 1 | # 2 | # global configuration. adjust for your system. 3 | # 4 | 5 | # The root of the java SDK to use (must end in /) 6 | JAVA_SDK = /System/Library/Frameworks/JavaVM.framework/Home/ 7 | 8 | # Path .class files of the com.ibm.domo.ast Java code (must end in /) 9 | DOMO_AST_BIN = /com.ibm.wala.cast/bin/ 10 | 11 | # Extra stuff needed in the classpath of javah (must start with path separator) 12 | JAVAH_CLASS_PATH = :/com.ibm.wala.cast/bin/ 13 | 14 | # enable debugging flags 15 | TRACE = 16 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/c/cbuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | if (uname | grep -i "cygwin"); then 4 | # This should be the default for most of cases; 5 | # adjust to your environment if necessary. 6 | MSVC="C:\Program Files\Microsoft Visual Studio 8\VC" 7 | ARCH=x86 8 | 9 | cmd.exe /c "call \"$MSVC\\vcvarsall.bat\" $ARCH && make" 10 | else 11 | make 12 | fi 13 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/c/include/cast_control_flow_map.h: -------------------------------------------------------------------------------- 1 | #if defined( _INCLUDE_CFM ) 2 | #define _CAstControlFlowMap( __id, __type ) static jobject __id; 3 | 4 | #elif defined( _CPP_CFM ) 5 | #define _CAstControlFlowMap( __id, __type ) jobject CAstWrapper::__id; 6 | 7 | #elif defined( _CODE_CFM ) 8 | #define _CAstControlFlowMap( __id, __type ) \ 9 | { \ 10 | jfieldID f##__id = env->GetStaticFieldID(CAstControlFlowMap, #__id, __type); \ 11 | THROW_ANY_EXCEPTION(exp); \ 12 | jobject o##__id = env->GetStaticObjectField(CAstControlFlowMap, f##__id); \ 13 | CAstWrapper::__id = env->NewGlobalRef(o##__id); \ 14 | THROW_ANY_EXCEPTION(exp); \ 15 | } 16 | 17 | #else 18 | #error "bad use of CAst control flow map" 19 | 20 | #endif 21 | 22 | _CAstControlFlowMap(SWITCH_DEFAULT, "Ljava/lang/Object;") 23 | _CAstControlFlowMap(EXCEPTION_TO_EXIT, "Lcom/ibm/wala/cast/tree/CAstNode;") 24 | 25 | #undef _CODE_CFM 26 | #undef _CPP_CFM 27 | #undef _INCLUDE_CFM 28 | #undef _CAstControlFlowMap 29 | 30 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/c/include/cast_qualifiers.h: -------------------------------------------------------------------------------- 1 | #if defined( _INCLUDE_QUALIFIERS ) 2 | #define _CAstQualifier( __id ) static jobject __id; 3 | 4 | #elif defined( _CPP_QUALIFIERS ) 5 | #define _CAstQualifier( __id ) jobject CAstWrapper::__id; 6 | 7 | #elif defined( _CODE_QUALIFIERS ) 8 | #define _CAstQualifier( __id ) \ 9 | { \ 10 | jfieldID f##__id = env->GetStaticFieldID(CAstQualifier, #__id, "Lcom/ibm/wala/cast/tree/CAstQualifier;"); \ 11 | jobject o##__id = env->GetStaticObjectField(CAstQualifier, f##__id); \ 12 | CAstWrapper::__id = env->NewGlobalRef(o##__id); \ 13 | THROW_ANY_EXCEPTION(exp); \ 14 | } 15 | 16 | #else 17 | #error "bad use of CAst qualifiers" 18 | 19 | #endif 20 | 21 | _CAstQualifier(STRICTFP) 22 | _CAstQualifier(VOLATILE) 23 | _CAstQualifier(ABSTRACT) 24 | _CAstQualifier(INTERFACE) 25 | _CAstQualifier(NATIVE) 26 | _CAstQualifier(TRANSIENT) 27 | _CAstQualifier(SYNCHRONIZED) 28 | _CAstQualifier(FINAL) 29 | _CAstQualifier(STATIC) 30 | _CAstQualifier(PRIVATE) 31 | _CAstQualifier(PROTECTED) 32 | _CAstQualifier(PUBLIC) 33 | _CAstQualifier(CONST) 34 | 35 | #undef _CODE_QUALIFIERS 36 | #undef _CPP_QUALIFIERS 37 | #undef _INCLUDE_QUALIFIERS 38 | #undef _CAstQualifier 39 | 40 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/c/jni/Java_com_ibm_wala_cast_ir_translator_NativeBridge.cpp: -------------------------------------------------------------------------------- 1 | 2 | #include 3 | 4 | #include "CAstWrapper.h" 5 | #include "Exceptions.h" 6 | #include "com_ibm_wala_cast_ir_translator_NativeBridge.h" 7 | 8 | extern "C" { 9 | 10 | JNIEXPORT void JNICALL 11 | Java_com_ibm_wala_cast_ir_translator_NativeBridge_initialize( 12 | JNIEnv *env, 13 | jclass cls) 14 | { 15 | TRY(exp, env) 16 | 17 | jclass CAstNode = env->FindClass( "com/ibm/wala/cast/tree/CAstNode" ); 18 | THROW_ANY_EXCEPTION(exp); 19 | jclass CAstOperator = env->FindClass( "com/ibm/wala/cast/tree/impl/CAstOperator" ); 20 | THROW_ANY_EXCEPTION(exp); 21 | jclass CAstQualifier = env->FindClass( "com/ibm/wala/cast/tree/CAstQualifier" ); 22 | THROW_ANY_EXCEPTION(exp); 23 | jclass CAstControlFlowMap = env->FindClass( "com/ibm/wala/cast/tree/CAstControlFlowMap" ); 24 | THROW_ANY_EXCEPTION(exp); 25 | 26 | #define _CODE_CONSTANTS 27 | #include "cast_constants.h" 28 | 29 | #define _CODE_OPERATORS 30 | #include "cast_operators.h" 31 | 32 | #define _CODE_QUALIFIERS 33 | #include "cast_qualifiers.h" 34 | 35 | #define _CODE_CFM 36 | #include "cast_control_flow_map.h" 37 | 38 | CATCH() 39 | } 40 | 41 | } 42 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstCFAPointerKeys.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | package com.ibm.wala.cast.ipa.callgraph; 12 | 13 | import com.ibm.wala.ipa.callgraph.propagation.cfa.DefaultPointerKeyFactory; 14 | 15 | public class AstCFAPointerKeys extends DelegatingAstPointerKeys { 16 | 17 | public AstCFAPointerKeys() { 18 | super(new DefaultPointerKeyFactory()); 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/ipa/callgraph/AstHeapModel.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2014 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | 12 | package com.ibm.wala.cast.ipa.callgraph; 13 | 14 | import com.ibm.wala.ipa.modref.ExtendedHeapModel; 15 | 16 | public interface AstHeapModel extends ExtendedHeapModel, AstPointerKeyFactory { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/cfg/Util.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | package com.ibm.wala.cast.ir.cfg; 12 | 13 | import java.util.Iterator; 14 | 15 | import com.ibm.wala.cfg.ControlFlowGraph; 16 | import com.ibm.wala.cfg.IBasicBlock; 17 | import com.ibm.wala.util.debug.Assertions; 18 | 19 | public class Util { 20 | 21 | public static > int whichPred(ControlFlowGraph CFG, T Y, T X) { 22 | int i = 0; 23 | for (Iterator N = CFG.getPredNodes(Y); N.hasNext(); i++) 24 | if (N.next() == X) 25 | return i; 26 | 27 | Assertions.UNREACHABLE(); 28 | return -1; 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/ssa/AstPreInstructionVisitor.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | package com.ibm.wala.cast.ir.ssa; 12 | 13 | public interface AstPreInstructionVisitor extends AstInstructionVisitor { 14 | 15 | public void visitAssign(AssignInstruction inst); 16 | 17 | } 18 | 19 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/ir/translator/ArrayOpHandler.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.cast.ir.translator; 12 | 13 | import com.ibm.wala.cast.ir.translator.AstTranslator.WalkContext; 14 | import com.ibm.wala.cast.tree.CAstNode; 15 | 16 | public interface ArrayOpHandler { 17 | void doArrayRead(WalkContext context, int result, int arrayValue, CAstNode arrayRef, int[] dimValues); 18 | 19 | void doArrayWrite(WalkContext context, int arrayValue, CAstNode arrayRef, int[] dimValues, int rval); 20 | } 21 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstAnnotation.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.cast.tree; 12 | 13 | import java.util.Map; 14 | 15 | public interface CAstAnnotation { 16 | 17 | CAstType getType(); 18 | 19 | Map getArguments(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstNodeTypeMap.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | /* 12 | * Created on Aug 30, 2005 13 | */ 14 | package com.ibm.wala.cast.tree; 15 | 16 | import java.util.Collection; 17 | 18 | public interface CAstNodeTypeMap { 19 | 20 | Collection getMappedNodes(); 21 | 22 | CAstType getNodeType(CAstNode node); 23 | } 24 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstReference.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | package com.ibm.wala.cast.tree; 12 | 13 | /** 14 | * This interface is used to denote various kinds of references in 15 | * CAst structures. It can be used to denote types for languages like 16 | * Java and PHP that have non-trivial mappings from names to actual 17 | * entities. 18 | * 19 | * @author Julian Dolby (dolby@us.ibm.com) 20 | */ 21 | public interface CAstReference { 22 | 23 | CAstType type(); 24 | 25 | }; 26 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstSymbol.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.cast.tree; 12 | 13 | public interface CAstSymbol { 14 | 15 | public static Object NULL_DEFAULT_VALUE = new Object() { 16 | @Override 17 | public String toString() { 18 | return "NULL DEFAULT VALUE"; 19 | } 20 | }; 21 | 22 | public String name(); 23 | 24 | /** 25 | * like final in Java; can only be declared / assigned once 26 | */ 27 | public boolean isFinal(); 28 | 29 | public boolean isCaseInsensitive(); 30 | 31 | public Object defaultInitValue(); 32 | 33 | public boolean isInternalName(); 34 | 35 | public CAstType type(); 36 | } 37 | 38 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/CAstTypeDictionary.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | /* 12 | * Created on Aug 31, 2005 13 | */ 14 | package com.ibm.wala.cast.tree; 15 | 16 | import java.util.Iterator; 17 | 18 | public interface CAstTypeDictionary/**/ extends Iterable { 19 | 20 | CAstType getCAstTypeFor(Object/*ASTType*/ type); 21 | 22 | CAstReference resolveReference(CAstReference ref); 23 | 24 | @Override 25 | Iterator iterator(); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/Alt.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.cast.tree.pattern; 12 | 13 | import com.ibm.wala.cast.tree.CAstNode; 14 | 15 | /** 16 | * Pattern to match one of two alternatives. 17 | * 18 | * @author mschaefer 19 | * 20 | */ 21 | public class Alt implements NodePattern { 22 | private final NodePattern left, right; 23 | 24 | public Alt(NodePattern left, NodePattern right) { 25 | this.left = left; 26 | this.right = right; 27 | } 28 | 29 | @Override 30 | public boolean matches(CAstNode node) { 31 | return left.matches(node) || right.matches(node); 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/AnyNode.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2011 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | 12 | package com.ibm.wala.cast.tree.pattern; 13 | 14 | import com.ibm.wala.cast.tree.CAstNode; 15 | 16 | /** 17 | * A node pattern that matches any AST node. 18 | * 19 | * @author mschaefer 20 | * 21 | */ 22 | public class AnyNode implements NodePattern { 23 | @Override 24 | public boolean matches(CAstNode node) { 25 | return true; 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/NodePattern.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2011 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | 12 | package com.ibm.wala.cast.tree.pattern; 13 | 14 | import com.ibm.wala.cast.tree.CAstNode; 15 | 16 | /** 17 | * Interface for lightweight AST patterns. 18 | * 19 | * @author mschaefer 20 | * 21 | */ 22 | public interface NodePattern { 23 | public abstract boolean matches(CAstNode node); 24 | } -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/pattern/SubtreeOfKind.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2011 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | 12 | package com.ibm.wala.cast.tree.pattern; 13 | 14 | import com.ibm.wala.cast.tree.CAstNode; 15 | 16 | /** 17 | * A node pattern matching a node of a given kind, without regard to its children. 18 | * 19 | * @author mschaefer 20 | * 21 | */ 22 | public class SubtreeOfKind extends NodeOfKind { 23 | public SubtreeOfKind(int kind) { 24 | super(kind); 25 | } 26 | 27 | @Override 28 | public boolean matches(CAstNode node) { 29 | return node != null && node.getKind() == this.kind; 30 | } 31 | } -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/tree/rewrite/CAstRewriterFactory.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.cast.tree.rewrite; 12 | 13 | import com.ibm.wala.cast.tree.CAst; 14 | 15 | public interface 16 | CAstRewriterFactory, 17 | K extends CAstRewriter.CopyKey> 18 | { 19 | 20 | public CAstRewriter createCAstRewriter(CAst ast); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /com.ibm.wala.cast/source/java/com/ibm/wala/cast/util/TargetLanguageSelector.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.cast.util; 12 | 13 | import com.ibm.wala.util.strings.Atom; 14 | 15 | public interface TargetLanguageSelector { 16 | 17 | T get(Atom language, C construct); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /com.ibm.wala.core/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /com.ibm.wala.core/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /com.ibm.wala.core/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.ibm.wala.core 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.pde.ManifestBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.pde.SchemaBuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.pde.PluginNature 26 | org.eclipse.jdt.core.javanature 27 | 28 | 29 | -------------------------------------------------------------------------------- /com.ibm.wala.core/.settings/org.eclipse.jdt.launching.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore 3 | -------------------------------------------------------------------------------- /com.ibm.wala.core/akka-actor-2.0.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/akka-actor-2.0.2.jar -------------------------------------------------------------------------------- /com.ibm.wala.core/akka-actor_2.12-2.4.16.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/akka-actor_2.12-2.4.16.jar -------------------------------------------------------------------------------- /com.ibm.wala.core/antbuild.properties: -------------------------------------------------------------------------------- 1 | # Where Shrike is located 2 | shrike.root=../com.ibm.wala.shrike 3 | 4 | # Where Eclipse 3.5 is located 5 | eclipse35.root=../../../eclipse -------------------------------------------------------------------------------- /com.ibm.wala.core/build.properties: -------------------------------------------------------------------------------- 1 | bin.includes = plugin.properties,\ 2 | dat/natives.xml,\ 3 | META-INF/,\ 4 | .,\ 5 | akka-actor_2.12-2.4.16.jar,\ 6 | scala-java8-compat_2.12-0.8.0.jar,\ 7 | scala-library-2.12.1.jar,\ 8 | config-1.3.1.jar 9 | jars.compile.order = . 10 | output.. = bin/ 11 | source.. = dat/,\ 12 | src/,\ 13 | lib/ 14 | -------------------------------------------------------------------------------- /com.ibm.wala.core/config-1.3.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/config-1.3.1.jar -------------------------------------------------------------------------------- /com.ibm.wala.core/dat/J2SEClassHierarchyExclusions.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/dat/J2SEClassHierarchyExclusions.txt -------------------------------------------------------------------------------- /com.ibm.wala.core/dat/SyntheticJ2SEModel.txt: -------------------------------------------------------------------------------- 1 | Primordial,Java,jarFile,primordial.jar.model 2 | -------------------------------------------------------------------------------- /com.ibm.wala.core/dat/WalaUtilMessages.properties: -------------------------------------------------------------------------------- 1 | ########## General messages 2 | 3 | ########## Error messages 4 | 5 | AbstractPropertyReader.invalid_property_value=Value for property ''{0}'' is invalid. 6 | AbstractPropertyReader.location_error=Path for file ''{0}'' do not exist and can''t be constructed. 7 | AbstractPropertyReader.no_string_value=Property ''{0}'' is not mapped to a string as expected. 8 | AbstractPropertyReader.incorrect_boolean_value=Boolean property ''{0}'' should not be mapped to a string. 9 | AbstractPropertyReader.incorrect_int_value=Integer property ''{0}'' should be mapped to an Integer object. 10 | AbstractPropertyReader.int_conversion_failed=Integer property ''{0}'' cannot convert ''{1}'' to an integer. 11 | 12 | CancelCHAConstructionException.cancelation_message=ClassHierarchy construction has been cancelled by progress monitor. 13 | 14 | PersistentPropertiesManager.property_file_unreadable=Unable to read property file named ''{0}''. 15 | PersistentPropertiesManager.reading_failure=Failed to load ''{0}''. -------------------------------------------------------------------------------- /com.ibm.wala.core/dat/log.properties: -------------------------------------------------------------------------------- 1 | # Handlers installed for the root logger 2 | handlers= java.util.logging.ConsoleHandler java.util.logging.FileHandler 3 | 4 | ### Configure FileHandler 5 | # Logging file name in temporary directory of the machine. 6 | java.util.logging.FileHandler.pattern = %t/safeLogFile%g.log 7 | # Write 100 kbytes before rotating this file 8 | java.util.logging.FileHandler.limit = 100000 9 | # Number of rotating files to be used 10 | java.util.logging.FileHandler.count = 3 11 | # Formatter to be used with this FileHandler 12 | java.util.logging.FileHandler.formatter = com.ibm.wala.util.logging.SimplifiedFormatter 13 | 14 | # Configure ConsoleHandler 15 | java.util.logging.ConsoleHandler.level = WARNING 16 | java.util.logging.ConsoleHandler.formatter = com.ibm.wala.util.logging.SimplifiedFormatter -------------------------------------------------------------------------------- /com.ibm.wala.core/dat/primordial.txt: -------------------------------------------------------------------------------- 1 | Primordial,Java,stdlib,none 2 | Primordial,Java,jarFile,primordial.jar.model 3 | -------------------------------------------------------------------------------- /com.ibm.wala.core/lib/poi-3.14-20160307.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/lib/poi-3.14-20160307.jar -------------------------------------------------------------------------------- /com.ibm.wala.core/lib/poi-ooxml-3.9.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/lib/poi-ooxml-3.9.jar -------------------------------------------------------------------------------- /com.ibm.wala.core/lib/primordial.jar.model: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/lib/primordial.jar.model -------------------------------------------------------------------------------- /com.ibm.wala.core/plugin.properties: -------------------------------------------------------------------------------- 1 | PLUGINNAME=core WALA analysis engine 2 | VENDORNAME=IBM 3 | providerName =IBM 4 | 5 | # ==================================================================== 6 | 7 | 8 | -------------------------------------------------------------------------------- /com.ibm.wala.core/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | WALA 7 | com.ibm.wala 8 | 1.3.4-SNAPSHOT 9 | 10 | com.ibm.wala.core 11 | eclipse-plugin 12 | 13 | -------------------------------------------------------------------------------- /com.ibm.wala.core/scala-java8-compat_2.12-0.8.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/scala-java8-compat_2.12-0.8.0.jar -------------------------------------------------------------------------------- /com.ibm.wala.core/scala-library-2.12.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/scala-library-2.12.1.jar -------------------------------------------------------------------------------- /com.ibm.wala.core/scala-library-2.9.2.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/scala-library-2.9.2.jar -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/analysis/pointers/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package defines utilities to help navigate pointer analysis results. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/IllegalArgumentExceptionContext.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.analysis.reflection; 12 | 13 | import com.ibm.wala.ipa.callgraph.Context; 14 | import com.ibm.wala.ipa.callgraph.ContextItem; 15 | import com.ibm.wala.ipa.callgraph.ContextKey; 16 | 17 | 18 | public class IllegalArgumentExceptionContext implements Context { 19 | 20 | @Override 21 | public ContextItem get(ContextKey name) { 22 | return null; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/InstanceKeyWithNode.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.analysis.reflection; 12 | 13 | import com.ibm.wala.ipa.callgraph.CGNode; 14 | import com.ibm.wala.ipa.callgraph.propagation.InstanceKey; 15 | 16 | /** 17 | * An instance key which has an associated {@link CGNode}. 18 | */ 19 | public interface InstanceKeyWithNode extends InstanceKey { 20 | 21 | /** 22 | * @return the node which created this instance. 23 | */ 24 | CGNode getNode(); 25 | } 26 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/analysis/reflection/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides functions to deal with reflection. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/analysis/stackMachine/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides a layer to perform abstract interpretation over 4 | the JVM stack machine. 5 | 6 | 7 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/analysis/typeInference/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides intraprocedural type inference over the SSA form. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/cfg/BytecodeCFG.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.cfg; 12 | 13 | import java.util.Set; 14 | 15 | import com.ibm.wala.shrikeBT.ExceptionHandler; 16 | 17 | public interface BytecodeCFG { 18 | 19 | public Set getExceptionHandlers(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/cfg/cdg/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package supports a control-dependence graph. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/cfg/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides control-flow graph utilities. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/classLoader/BytecodeLanguage.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.classLoader; 12 | 13 | import java.util.Collection; 14 | 15 | import com.ibm.wala.shrikeBT.IInstruction; 16 | import com.ibm.wala.types.TypeReference; 17 | 18 | public interface BytecodeLanguage extends Language { 19 | 20 | Collection getImplicitExceptionTypes(IInstruction pei); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/classLoader/Module.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | 12 | package com.ibm.wala.classLoader; 13 | 14 | import java.util.Iterator; 15 | 16 | /** 17 | * A {@link Module} represents a set of files to analyze. eg., a Jar file. 18 | * These are persistent (hung onto by {@link ClassLoaderImpl}) .. so, 19 | * a Module should not hold onto a lot of data. 20 | */ 21 | public interface Module { 22 | 23 | /** 24 | * @return an Iterator of the ModuleEntries in this Module. 25 | */ 26 | Iterator getEntries(); 27 | } 28 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/classLoader/ResourceJarFileModule.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.classLoader; 12 | 13 | import java.io.IOException; 14 | import java.io.InputStream; 15 | import java.net.URL; 16 | 17 | public class ResourceJarFileModule extends AbstractNestedJarFileModule { 18 | 19 | private final URL resourceURL; 20 | 21 | public ResourceJarFileModule(URL resourceURL) { 22 | super(new SourceURLModule(resourceURL)); 23 | this.resourceURL = resourceURL; 24 | } 25 | 26 | 27 | @Override 28 | protected InputStream getNestedContents() throws IOException { 29 | return resourceURL.openConnection().getInputStream(); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/classLoader/SourceModule.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.classLoader; 12 | 13 | import java.io.Reader; 14 | import java.net.URL; 15 | 16 | public interface SourceModule extends Module, ModuleEntry { 17 | 18 | Reader getInputReader(); 19 | 20 | URL getURL(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/classLoader/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides functionality related to class loading and 4 | management of loaded classes. 5 | 6 | 7 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/client/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides interfaces for some base utilities for use by WALA clients. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/core/plugin/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides a plugin class for Eclipse integration. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/IFlowFunction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.dataflow.IFDS; 12 | 13 | /** 14 | * A flow function corresponding to an edge in the supergraph. 15 | * 16 | * This function should be distributive for use with the Tabulation algorithm. 17 | */ 18 | public interface IFlowFunction { 19 | } 20 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/ITabulationWorklist.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2008 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.dataflow.IFDS; 12 | 13 | /** 14 | * @param represents type of nodes in the supergraph. 15 | */ 16 | public interface ITabulationWorklist { 17 | 18 | /** 19 | * @return the first object in the priority queue 20 | */ 21 | PathEdge take(); 22 | 23 | public void insert(PathEdge elt); 24 | 25 | int size(); 26 | } 27 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/IUnaryFlowFunction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.dataflow.IFDS; 12 | 13 | import com.ibm.wala.util.intset.IntSet; 14 | 15 | /** 16 | * A flow function corresponding to an edge in the supergraph. 17 | * 18 | * This function should be distributive for use with the Tabulation algorithm. 19 | */ 20 | public interface IUnaryFlowFunction extends IFlowFunction { 21 | 22 | /** 23 | * @param d1 24 | * @return set of d2 such that (d1,d2) is an edge in this distributive function's graph representation, or null if there are none 25 | */ 26 | public IntSet getTargets(int d1); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/UnorderedDomain.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.dataflow.IFDS; 12 | 13 | import com.ibm.wala.util.intset.MutableMapping; 14 | 15 | /** 16 | * A {@link TabulationDomain} with no build-in partial order defining priority. 17 | */ 18 | public class UnorderedDomain extends MutableMapping implements TabulationDomain { 19 | 20 | /* 21 | * @see com.ibm.wala.dataflow.IFDS.TabulationDomain#isWeakerThan(int, int) 22 | */ 23 | @Override 24 | public boolean hasPriorityOver(PathEdge p1, PathEdge p2) { 25 | return false; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/dataflow/IFDS/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides an RHS solver for IFDS problems. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/demandpa/alg/refinepolicy/ContainersFieldPolicy.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.demandpa.alg.refinepolicy; 12 | 13 | import java.util.regex.Pattern; 14 | 15 | import com.ibm.wala.ipa.cha.IClassHierarchy; 16 | 17 | public class ContainersFieldPolicy extends ManualFieldPolicy { 18 | 19 | public ContainersFieldPolicy(IClassHierarchy cha) { 20 | super(cha, Pattern.compile("Ljava/util(?!(/logging)).*")); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/demandpa/flowgraph/IFlowLabelWithFilter.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.demandpa.flowgraph; 12 | 13 | import com.ibm.wala.ipa.callgraph.propagation.FilteredPointerKey.TypeFilter; 14 | 15 | public interface IFlowLabelWithFilter extends IFlowLabel { 16 | 17 | public TypeFilter getFilter(); 18 | } 19 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/impl/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides some implementations of basic functions needed for 4 | various call graph construction algorithms. 5 | 6 | 7 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides basic interfaces and functions for call graph 4 | construction. 5 | 6 | 7 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/AbstractLocalPointerKey.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.ipa.callgraph.propagation; 12 | 13 | import com.ibm.wala.ipa.callgraph.CGNode; 14 | 15 | /** 16 | * A {@link PointerKey} representing a local variable must carry at least a {@link CGNode}. 17 | * 18 | */ 19 | public abstract class AbstractLocalPointerKey extends AbstractPointerKey { 20 | 21 | abstract public CGNode getNode(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/AbstractPointerKey.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.ipa.callgraph.propagation; 12 | 13 | /** 14 | * This class exists to force {@link PointerKey} implementations to implement equals() and hashCode()s. 15 | * 16 | */ 17 | public abstract class AbstractPointerKey implements PointerKey { 18 | @Override 19 | public abstract boolean equals(Object obj); 20 | 21 | @Override 22 | public abstract int hashCode(); 23 | } 24 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/IPointerOperator.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.ipa.callgraph.propagation; 12 | 13 | /** 14 | * An operator in pointer analysis constraints. 15 | */ 16 | public interface IPointerOperator { 17 | 18 | /** 19 | * Is the operator complex; i.e., might it give rise to new constraints? 20 | */ 21 | boolean isComplex(); 22 | 23 | } -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/IPointsToSolver.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.ipa.callgraph.propagation; 12 | 13 | 14 | import java.util.Map; 15 | 16 | import com.ibm.wala.ipa.callgraph.CGNode; 17 | import com.ibm.wala.util.CancelException; 18 | import com.ibm.wala.util.MonitorUtil.IProgressMonitor; 19 | 20 | /** 21 | * Basic interface for a pointer analysis solver. 22 | */ 23 | public interface IPointsToSolver { 24 | 25 | public void solve(IProgressMonitor monitor) throws IllegalArgumentException, CancelException; 26 | public void solve(CGNode node, Map added, Map deleted); 27 | } 28 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/InstanceFieldPointerKey.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.ipa.callgraph.propagation; 12 | 13 | public interface InstanceFieldPointerKey extends PointerKey { 14 | 15 | /** 16 | * @return the instance key which is the "container" for this pointer 17 | */ 18 | InstanceKey getInstanceKey(); 19 | 20 | } 21 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/cfa/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides RTA call graph 4 | construction. 5 | 6 | 7 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides the base layer for propagation-based call graph 4 | construction and pointer analysis. 5 | 6 | 7 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/propagation/rta/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides CFA-style call graph 4 | construction and pointer analysis. 5 | 6 | 7 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/DoNotPrune.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2014 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | 12 | package com.ibm.wala.ipa.callgraph.pruned; 13 | 14 | import com.ibm.wala.ipa.callgraph.CGNode; 15 | 16 | public class DoNotPrune implements PruningPolicy { 17 | 18 | public static DoNotPrune INSTANCE = new DoNotPrune(); 19 | @Override 20 | public boolean check(CGNode n) { 21 | return true; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/callgraph/pruned/PruningPolicy.java: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Copyright (c) 2002 - 2014 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *****************************************************************************/ 11 | 12 | package com.ibm.wala.ipa.callgraph.pruned; 13 | 14 | import com.ibm.wala.ipa.callgraph.CGNode; 15 | 16 | /** 17 | * Policy which decides which branch of a call graph is going to be pruned. 18 | * @author Martin Mohr 19 | * 20 | */ 21 | public interface PruningPolicy { 22 | /** 23 | * Returns whether the given node shall be kept. 24 | * @param n node to be checked 25 | * @return {@code true}, if this node shall be kept, {@code false} otherwise 26 | */ 27 | boolean check(CGNode n); 28 | } 29 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/cfg/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package supports interprocedural control-flow graphs, and control-flow 4 | graphs specialized for context. 5 | 6 | 7 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/cha/CancelCHAConstructionException.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | 12 | package com.ibm.wala.ipa.cha; 13 | 14 | /** 15 | * Exception class that indicates that construction of class hierarchy has been cancelled by a progress monitor. 16 | */ 17 | public final class CancelCHAConstructionException extends ClassHierarchyException { 18 | 19 | private static final long serialVersionUID = -1987107302523285889L; 20 | 21 | public CancelCHAConstructionException() { 22 | super("class hierarchy construction was cancelled"); 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/cha/ClassHierarchyException.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.ipa.cha; 12 | 13 | import com.ibm.wala.util.WalaException; 14 | 15 | /** 16 | * An exception that means something went wrong when constructing a {@link ClassHierarchy}. 17 | */ 18 | public class ClassHierarchyException extends WalaException { 19 | public static final long serialVersionUID = 381093189198391L; 20 | 21 | 22 | public ClassHierarchyException(String string) { 23 | super(string); 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/cha/IClassHierarchyDweller.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.ipa.cha; 12 | 13 | /** 14 | * Something that lives in a class hierarchy 15 | */ 16 | public interface IClassHierarchyDweller { 17 | public IClassHierarchy getClassHierarchy(); 18 | } 19 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/cha/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides functionality related to class hierarchies. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ExceptionalReturnCallee.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.ipa.slicer; 12 | 13 | import com.ibm.wala.ipa.callgraph.CGNode; 14 | 15 | /** 16 | * A {@link Statement} representing the exceptional return value in a callee, 17 | * immediately before returning to the caller. 18 | */ 19 | public class ExceptionalReturnCallee extends Statement { 20 | 21 | public ExceptionalReturnCallee(CGNode node) { 22 | super(node); 23 | } 24 | 25 | @Override 26 | public Kind getKind() { 27 | return Kind.EXC_RET_CALLEE; 28 | } 29 | } -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/NormalReturnCallee.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.ipa.slicer; 12 | 13 | import com.ibm.wala.ipa.callgraph.CGNode; 14 | 15 | /** 16 | * A {@link Statement} representing the normal return value in a callee, 17 | * immediately before returning to the caller. 18 | */ 19 | public class NormalReturnCallee extends Statement { 20 | 21 | public NormalReturnCallee(CGNode node) { 22 | super(node); 23 | } 24 | 25 | @Override 26 | public Kind getKind() { 27 | return Kind.NORMAL_RET_CALLEE; 28 | } 29 | } -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/slicer/ValueNumberCarrier.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.ipa.slicer; 12 | 13 | public interface ValueNumberCarrier { 14 | int getValueNumber(); 15 | 16 | } 17 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ipa/summaries/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides class hierarchy analysis. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/model/SyntheticFactory.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.model; 12 | 13 | /** 14 | * A bogus class to support returning "unknown" objects 15 | */ 16 | public class SyntheticFactory { 17 | 18 | /** 19 | * This method should be hijacked. 20 | * @return some object by reflection 21 | */ 22 | public static native Object getObject(); 23 | 24 | } 25 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/model/java/lang/Thread.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2008 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.model.java.lang; 12 | 13 | 14 | /** 15 | * A synthetic model of single-threaded behavior 16 | */ 17 | public class Thread { 18 | 19 | static final java.lang.Thread singleThread = new java.lang.Thread(); 20 | 21 | public static java.lang.Thread currentThread() { 22 | return singleThread; 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/properties/DefaultPropertiesValues.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.properties; 12 | 13 | public final class DefaultPropertiesValues { 14 | 15 | //--- Common options 16 | 17 | public static final String DEFAULT_WALA_REPORT_FILENAME = "wala_report.txt"; //$NON-NLS-1$ 18 | public static final String DEFAULT_OUTPUT_DIR = "results"; //$NON-NLS-1$ 19 | 20 | } 21 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ssa/Value.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.ssa; 12 | 13 | /** 14 | * Representation of a particular value which appears in an SSA IR. 15 | * 16 | * Clients probably shouldn't use this; it's only public (for now) due to Java's package-based weak module system. 17 | */ 18 | public interface Value { 19 | 20 | /** 21 | * Is this value a string constant? 22 | */ 23 | public boolean isStringConstant(); 24 | 25 | /** 26 | * Is this value a null constant? 27 | */ 28 | public boolean isNullConstant(); 29 | 30 | } 31 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ssa/analysis/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides analyses over the WALA SSA IR. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/ssa/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides the WALA SSA IR. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/types/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides abstractions for the Java type system. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/util/bytecode/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides miscellaneous utilities for manipulating bytecode. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/util/config/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides miscellaneous utilities for configuration of the analysis. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/util/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides miscellaneous utilities. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/util/warnings/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides miscellaneous utilities for tracking analysis warnings. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/ik_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/ik_closed.png -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/ik_leaf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/ik_leaf.png -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/ik_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/ik_open.png -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/pk_closed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/pk_closed.png -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/pk_leaf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/pk_leaf.png -------------------------------------------------------------------------------- /com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/pk_open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.core/src/com/ibm/wala/viz/viewer/images/pk_open.png -------------------------------------------------------------------------------- /com.ibm.wala.eclipse/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /com.ibm.wala.eclipse/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /com.ibm.wala.eclipse/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.ibm.wala.eclipse 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.pde.ManifestBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.pde.SchemaBuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.pde.PluginNature 26 | org.eclipse.jdt.core.javanature 27 | 28 | 29 | -------------------------------------------------------------------------------- /com.ibm.wala.eclipse/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Bundle-ManifestVersion: 2 3 | Bundle-Name: Eclipse Plug-in 4 | Bundle-SymbolicName: com.ibm.wala.eclipse;singleton:=true 5 | Bundle-Version: 1.0.0 6 | Bundle-Activator: com.ibm.wala.eclipse.Activator 7 | Bundle-Vendor: IBM 8 | Require-Bundle: org.eclipse.jdt.ui, 9 | org.eclipse.jdt.core;visibility:=reexport, 10 | org.eclipse.ui, 11 | org.eclipse.core.resources, 12 | com.ibm.wala.cast.java;visibility:=reexport, 13 | com.ibm.wala.core, 14 | com.ibm.wala.cast;bundle-version="1.0.0", 15 | org.eclipse.core.runtime;bundle-version="3.4.0", 16 | com.ibm.wala.shrike;bundle-version="1.1.3", 17 | com.ibm.wala.ide;bundle-version="1.1.3", 18 | org.eclipse.jface.text, 19 | com.ibm.wala.ide.jdt 20 | Bundle-ActivationPolicy: lazy 21 | Export-Package: com.ibm.wala.eclipse.cg.model, 22 | com.ibm.wala.eclipse.cg.views, 23 | com.ibm.wala.eclipse.util 24 | Bundle-RequiredExecutionEnvironment: J2SE-1.5 25 | -------------------------------------------------------------------------------- /com.ibm.wala.eclipse/build.properties: -------------------------------------------------------------------------------- 1 | source.. = src/ 2 | output.. = bin/ 3 | bin.includes = META-INF/,\ 4 | .,\ 5 | plugin.xml 6 | -------------------------------------------------------------------------------- /com.ibm.wala.eclipse/data/EclipseDefaultExclusions.txt: -------------------------------------------------------------------------------- 1 | java\/awt\/.* 2 | javax\/swing\/.* 3 | sun\/awt\/.* 4 | sun\/swing\/.* 5 | com\/sun\/.* 6 | sun\/.* 7 | -------------------------------------------------------------------------------- /com.ibm.wala.eclipse/icons/Wala-icon.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/com.ibm.wala.eclipse/icons/Wala-icon.jpg -------------------------------------------------------------------------------- /com.ibm.wala.eclipse/src/com/ibm/wala/eclipse/cg/model/WalaCGModel.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.eclipse.cg.model; 12 | 13 | import java.util.Collection; 14 | 15 | import com.ibm.wala.ipa.callgraph.CallGraph; 16 | import com.ibm.wala.util.CancelException; 17 | import com.ibm.wala.util.WalaException; 18 | 19 | 20 | public interface WalaCGModel { 21 | 22 | void buildGraph() throws WalaException, CancelException; 23 | 24 | CallGraph getGraph(); 25 | 26 | Collection getRoots(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /com.ibm.wala.ide.jdt/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /com.ibm.wala.ide.jdt/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /com.ibm.wala.ide.jdt/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.ibm.wala.ide.jdt 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.pde.ManifestBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.pde.SchemaBuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.pde.PluginNature 26 | org.eclipse.jdt.core.javanature 27 | 28 | 29 | -------------------------------------------------------------------------------- /com.ibm.wala.ide.jdt/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Bundle-ManifestVersion: 2 3 | Bundle-Name: WALA IDE JDT components 4 | Bundle-SymbolicName: com.ibm.wala.ide.jdt 5 | Bundle-Version: 1.3.4.qualifier 6 | Bundle-Activator: com.ibm.wala.ide.jdt.Activator 7 | Bundle-Vendor: IBM 8 | Require-Bundle: org.eclipse.ui, 9 | org.eclipse.core.runtime, 10 | com.ibm.wala.cast, 11 | com.ibm.wala.cast.java, 12 | com.ibm.wala.core, 13 | com.ibm.wala.ide, 14 | com.ibm.wala.shrike, 15 | com.ibm.wala.util, 16 | org.eclipse.core.resources, 17 | org.eclipse.jdt.core, 18 | org.eclipse.pde.core, 19 | org.eclipse.ui.ide;bundle-version="3.8.2", 20 | org.eclipse.jdt.launching;bundle-version="3.6.101" 21 | Bundle-RequiredExecutionEnvironment: JavaSE-1.7 22 | Bundle-ActivationPolicy: lazy 23 | Export-Package: com.ibm.wala.cast.java.client, 24 | com.ibm.wala.cast.java.translator.jdt, 25 | com.ibm.wala.ide.jdt, 26 | com.ibm.wala.ide.util 27 | -------------------------------------------------------------------------------- /com.ibm.wala.ide.jdt/build.properties: -------------------------------------------------------------------------------- 1 | source.. = source/ 2 | output.. = bin/ 3 | bin.includes = META-INF/,\ 4 | . 5 | -------------------------------------------------------------------------------- /com.ibm.wala.ide.jdt/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | WALA 7 | com.ibm.wala 8 | 1.3.4-SNAPSHOT 9 | 10 | com.ibm.wala.ide.jdt 11 | eclipse-plugin 12 | 13 | -------------------------------------------------------------------------------- /com.ibm.wala.ide/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /com.ibm.wala.ide/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.ibm.wala.ide 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.pde.ManifestBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.pde.SchemaBuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.pde.PluginNature 26 | org.eclipse.jdt.core.javanature 27 | 28 | 29 | -------------------------------------------------------------------------------- /com.ibm.wala.ide/.settings/org.eclipse.jdt.launching.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore 3 | -------------------------------------------------------------------------------- /com.ibm.wala.ide/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | #Mon Jun 22 18:06:02 EDT 2009 2 | eclipse.preferences.version=1 3 | formatter_profile=_WALA 4 | formatter_settings_version=11 5 | org.eclipse.jdt.ui.text.custom_code_templates= 6 | -------------------------------------------------------------------------------- /com.ibm.wala.ide/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Bundle-ManifestVersion: 2 3 | Eclipse-LazyStart: true 4 | Bundle-Name: %pluginName 5 | Bundle-SymbolicName: com.ibm.wala.ide 6 | Bundle-Version: 1.3.4.qualifier 7 | Bundle-Activator: com.ibm.wala.ide.plugin.CorePlugin 8 | Bundle-Vendor: %providerName 9 | Bundle-Localization: plugin 10 | Require-Bundle: com.ibm.wala.core, 11 | com.ibm.wala.shrike, 12 | org.eclipse.pde.core, 13 | org.eclipse.jface, 14 | org.eclipse.ui, 15 | org.eclipse.core.resources, 16 | org.eclipse.core.runtime, 17 | org.eclipse.jdt.core, 18 | org.eclipse.ui.ide;bundle-version="3.8.2" 19 | Bundle-ActivationPolicy: lazy 20 | Bundle-RequiredExecutionEnvironment: JavaSE-1.7 21 | Export-Package: com.ibm.wala.ide.classloader, 22 | com.ibm.wala.ide.client, 23 | com.ibm.wala.ide.plugin, 24 | com.ibm.wala.ide.ui, 25 | com.ibm.wala.ide.util 26 | -------------------------------------------------------------------------------- /com.ibm.wala.ide/build.properties: -------------------------------------------------------------------------------- 1 | bin.includes = META-INF/,\ 2 | .,\ 3 | plugin.properties 4 | jars.compile.order = . 5 | source.. = src/ 6 | output.. = bin/ 7 | -------------------------------------------------------------------------------- /com.ibm.wala.ide/plugin.properties: -------------------------------------------------------------------------------- 1 | PLUGINNAME= WALA analysis engine - IDE support 2 | VENDORNAME=IBM 3 | providerName =IBM 4 | 5 | # ==================================================================== 6 | 7 | 8 | -------------------------------------------------------------------------------- /com.ibm.wala.ide/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | WALA 7 | com.ibm.wala 8 | 1.3.4-SNAPSHOT 9 | 10 | com.ibm.wala.ide 11 | eclipse-plugin 12 | 13 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/.gitignore: -------------------------------------------------------------------------------- 1 | /bin/ 2 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.ibm.wala.shrike 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.pde.ManifestBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.pde.SchemaBuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.pde.PluginNature 26 | org.eclipse.jdt.core.javanature 27 | 28 | 29 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/.settings/org.eclipse.jdt.launching.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore 3 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | #Thu Jan 03 11:24:41 EST 2008 2 | eclipse.preferences.version=1 3 | formatter_profile=_WALA 4 | formatter_settings_version=11 5 | instance/org.eclipse.core.net/org.eclipse.core.net.hasMigrated=true 6 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Bundle-ManifestVersion: 2 3 | Bundle-Name: %pluginName 4 | Bundle-SymbolicName: com.ibm.wala.shrike 5 | Bundle-Version: 1.3.4.qualifier 6 | Bundle-Vendor: %providerName 7 | Bundle-ActivationPolicy: lazy 8 | Bundle-Localization: plugin 9 | Export-Package: com.ibm.wala.shrike.bench, 10 | com.ibm.wala.shrike.cg, 11 | com.ibm.wala.shrike.copywriter, 12 | com.ibm.wala.shrikeBT, 13 | com.ibm.wala.shrikeBT.analysis, 14 | com.ibm.wala.shrikeBT.info, 15 | com.ibm.wala.shrikeBT.shrikeCT, 16 | com.ibm.wala.shrikeBT.shrikeCT.tools, 17 | com.ibm.wala.shrikeBT.tools, 18 | com.ibm.wala.shrikeCT 19 | Bundle-RequiredExecutionEnvironment: JavaSE-1.7 20 | Require-Bundle: com.ibm.wala.util 21 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/build.properties: -------------------------------------------------------------------------------- 1 | bin.includes = META-INF/,\ 2 | .,\ 3 | plugin.properties 4 | jars.compile.order = . 5 | source.. = src/ 6 | output.. = bin/ 7 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/plugin.properties: -------------------------------------------------------------------------------- 1 | pluginName = Wala Framework - J2EE Library 2 | providerName = WALA -------------------------------------------------------------------------------- /com.ibm.wala.shrike/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | WALA 7 | com.ibm.wala 8 | 1.3.4-SNAPSHOT 9 | 10 | com.ibm.wala.shrike 11 | eclipse-plugin 12 | 13 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/releng/versionMap-1.0.0.txt: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrike/bench/Slots.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002,2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrike.bench; 12 | 13 | /** 14 | * @author roca@us.ibm.com 15 | */ 16 | public class Slots { 17 | public static Object o; 18 | 19 | public static int i; 20 | } -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IArrayLoadInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IArrayLoadInstruction extends IInstruction, IMemoryOperation { 14 | 15 | String getType(); 16 | 17 | 18 | } 19 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IArrayStoreInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IArrayStoreInstruction extends IInstruction { 14 | 15 | String getType(); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IBinaryOpInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IBinaryOpInstruction extends IInstruction { 14 | 15 | public interface IOperator { 16 | } 17 | 18 | IBinaryOpInstruction.IOperator getOperator(); 19 | 20 | String getType(); 21 | 22 | public enum Operator implements IBinaryOpInstruction.IOperator { 23 | ADD, SUB, MUL, DIV, REM, AND, OR, XOR; 24 | 25 | @Override 26 | public String toString() { 27 | return super.toString().toLowerCase(); 28 | } 29 | } 30 | 31 | public boolean throwsExceptionOnOverflow(); 32 | 33 | public boolean isUnsigned(); 34 | 35 | } 36 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IComparisonInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IComparisonInstruction extends IInstruction { 14 | 15 | public enum Operator { 16 | CMP, CMPL, CMPG; 17 | 18 | @Override 19 | public String toString() { 20 | return super.toString().toLowerCase(); 21 | } 22 | } 23 | 24 | Operator getOperator(); 25 | 26 | String getType(); 27 | 28 | } -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IConditionalBranchInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IConditionalBranchInstruction extends IInstruction { 14 | 15 | public interface IOperator { 16 | } 17 | 18 | public enum Operator implements IConditionalBranchInstruction.IOperator { 19 | EQ, NE, LT, GE, GT, LE; 20 | 21 | @Override 22 | public String toString() { 23 | return super.toString().toLowerCase(); 24 | } 25 | } 26 | 27 | int getTarget(); 28 | 29 | IOperator getOperator(); 30 | 31 | String getType(); 32 | } 33 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IConversionInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IConversionInstruction extends IInstruction { 14 | 15 | String getFromType(); 16 | 17 | String getToType(); 18 | 19 | boolean throwsExceptionOnOverflow(); 20 | 21 | } 22 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IGetInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IGetInstruction extends IInstruction, IMemoryOperation { 14 | 15 | public String getClassType(); 16 | 17 | public String getFieldName(); 18 | 19 | public String getFieldType(); 20 | 21 | public boolean isStatic(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IInstanceofInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IInstanceofInstruction extends IInstruction { 14 | 15 | boolean firstClassType(); 16 | 17 | String getType(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ILoadIndirectInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface ILoadIndirectInstruction extends IInstruction { 14 | 15 | } 16 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ILoadInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface ILoadInstruction extends IInstruction, IMemoryOperation { 14 | 15 | int getVarIndex(); 16 | 17 | String getType(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IMemoryOperation.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IMemoryOperation { 14 | 15 | /** 16 | * Denotes whether this instruction is taking the address of whatever 17 | * location it refers to. 18 | * @return whether this instruction is taking the address of a location 19 | */ 20 | public boolean isAddressOf(); 21 | 22 | } 23 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IPutInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IPutInstruction extends IInstruction { 14 | 15 | public String getClassType(); 16 | 17 | public String getFieldType(); 18 | 19 | public String getFieldName(); 20 | 21 | public boolean isStatic(); 22 | 23 | } 24 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IShiftInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IShiftInstruction extends IInstruction { 14 | 15 | public enum Operator implements IBinaryOpInstruction.IOperator { 16 | SHL, SHR, USHR; 17 | } 18 | 19 | Operator getOperator(); 20 | 21 | String getType(); 22 | 23 | boolean isUnsigned(); 24 | 25 | } 26 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IStoreIndirectInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IStoreIndirectInstruction extends IInstruction { 14 | 15 | String getType(); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IStoreInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IStoreInstruction extends IInstruction { 14 | 15 | int getVarIndex(); 16 | 17 | String getType(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/ITypeTestInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface ITypeTestInstruction extends IInstruction { 14 | 15 | boolean firstClassTypes(); 16 | 17 | String[] getTypes(); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IUnaryOpInstruction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IUnaryOpInstruction extends IInstruction { 14 | 15 | public interface IOperator { 16 | } 17 | 18 | public static enum Operator implements IOperator { 19 | NEG; 20 | 21 | @Override 22 | public String toString() { 23 | return super.toString().toLowerCase(); 24 | } 25 | } 26 | 27 | IOperator getOperator(); 28 | 29 | String getType(); 30 | } 31 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeBT/IndirectionData.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeBT; 12 | 13 | public interface IndirectionData { 14 | 15 | int[] indirectlyReadLocals(int instructionIndex); 16 | 17 | int[] indirectlyWrittenLocals(int instructionIndex); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourceDebugExtensionReader.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002,2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeCT; 12 | 13 | public class SourceDebugExtensionReader extends AttributeReader { 14 | public SourceDebugExtensionReader(ClassReader.AttrIterator iter) throws InvalidClassFileException { 15 | super(iter, "SourceDebugExtension"); 16 | 17 | checkSize(attr, 6); 18 | 19 | } 20 | 21 | } 22 | -------------------------------------------------------------------------------- /com.ibm.wala.shrike/src/com/ibm/wala/shrikeCT/SourceFileReader.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002,2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.shrikeCT; 12 | 13 | /** 14 | * This class reads SourceFile attributes. 15 | */ 16 | public final class SourceFileReader extends AttributeReader { 17 | /** 18 | * Build a reader for the attribute 'iter'. 19 | */ 20 | public SourceFileReader(ClassReader.AttrIterator iter) throws InvalidClassFileException { 21 | super(iter, "SourceFile"); 22 | 23 | checkSizeEquals(attr + 6, 2); 24 | } 25 | 26 | /** 27 | * @return the index of the constant pool item holding the value 28 | */ 29 | public int getSourceFileCPIndex() { 30 | return cr.getUShort(attr + 6); 31 | } 32 | } -------------------------------------------------------------------------------- /com.ibm.wala.util/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /com.ibm.wala.util/.gitignore: -------------------------------------------------------------------------------- 1 | /walaUtil.jar 2 | /bin/ 3 | -------------------------------------------------------------------------------- /com.ibm.wala.util/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | com.ibm.wala.util 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.pde.ManifestBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.pde.SchemaBuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.jdt.core.javanature 26 | org.eclipse.pde.PluginNature 27 | 28 | 29 | -------------------------------------------------------------------------------- /com.ibm.wala.util/.settings/org.eclipse.jdt.launching.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=ignore 3 | -------------------------------------------------------------------------------- /com.ibm.wala.util/.settings/org.eclipse.jdt.ui.prefs: -------------------------------------------------------------------------------- 1 | #Thu Feb 03 10:11:52 EST 2011 2 | eclipse.preferences.version=1 3 | formatter_profile=_WALA 4 | formatter_settings_version=11 5 | -------------------------------------------------------------------------------- /com.ibm.wala.util/META-INF/MANIFEST.MF: -------------------------------------------------------------------------------- 1 | Manifest-Version: 1.0 2 | Bundle-ManifestVersion: 2 3 | Bundle-Name: WALA Util 4 | Bundle-SymbolicName: com.ibm.wala.util 5 | Bundle-Version: 1.3.4.qualifier 6 | Export-Package: com.ibm.wala.dataflow.graph, 7 | com.ibm.wala.fixedpoint.impl, 8 | com.ibm.wala.fixpoint, 9 | com.ibm.wala.util, 10 | com.ibm.wala.util.collections, 11 | com.ibm.wala.util.config, 12 | com.ibm.wala.util.debug, 13 | com.ibm.wala.util.functions, 14 | com.ibm.wala.util.graph, 15 | com.ibm.wala.util.graph.dominators, 16 | com.ibm.wala.util.graph.impl, 17 | com.ibm.wala.util.graph.labeled, 18 | com.ibm.wala.util.graph.traverse, 19 | com.ibm.wala.util.heapTrace, 20 | com.ibm.wala.util.intset, 21 | com.ibm.wala.util.io, 22 | com.ibm.wala.util.math, 23 | com.ibm.wala.util.perf, 24 | com.ibm.wala.util.processes, 25 | com.ibm.wala.util.tables, 26 | com.ibm.wala.viz 27 | Bundle-ClassPath: walaUtil.jar 28 | Bundle-Vendor: IBM 29 | Bundle-RequiredExecutionEnvironment: JavaSE-1.6 30 | -------------------------------------------------------------------------------- /com.ibm.wala.util/build.properties: -------------------------------------------------------------------------------- 1 | bin.includes = META-INF/,\ 2 | .,\ 3 | walaUtil.jar 4 | source.walaUtil.jar = src/ 5 | jars.compile.order = . 6 | source.. = src/ 7 | output.. = bin/ 8 | -------------------------------------------------------------------------------- /com.ibm.wala.util/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 4.0.0 5 | 6 | WALA 7 | com.ibm.wala 8 | 1.3.4-SNAPSHOT 9 | 10 | com.ibm.wala.util 11 | eclipse-plugin 12 | 13 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/AbstractMeetOperator.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.dataflow.graph; 12 | 13 | import com.ibm.wala.fixpoint.AbstractOperator; 14 | import com.ibm.wala.fixpoint.IVariable; 15 | 16 | /** 17 | * Abstract superclass for meet operators 18 | */ 19 | @SuppressWarnings("rawtypes") 20 | public abstract class AbstractMeetOperator extends AbstractOperator { 21 | 22 | /** 23 | * subclasses can override if needed 24 | * @return true iff this meet is a noop when applied to one argument 25 | */ 26 | public boolean isUnaryNoOp() { 27 | return true; 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/dataflow/graph/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides a Killdall-style dataflow layer for a system 4 | of equations induced over a graph. 5 | 6 | 7 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/fixpoint/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides general utilities for fixed-point solvers. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/CancelException.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util; 12 | 13 | /** 14 | * An exception for when work is canceled in eclipse. This version forces every API that uses it to declare it. Use 15 | * {@link CancelRuntimeException} to avoid the need to declare a cancel exception. 16 | */ 17 | public class CancelException extends Exception { 18 | 19 | protected CancelException(String msg) { 20 | super(msg); 21 | } 22 | 23 | public CancelException(Exception cause) { 24 | super(cause); 25 | } 26 | 27 | public static CancelException make(String msg) { 28 | return new CancelException(msg); 29 | } 30 | 31 | } 32 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/WalaException.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util; 12 | 13 | /** 14 | * An exception to raise for some WALA failure 15 | */ 16 | public class WalaException extends Exception { 17 | 18 | private static final long serialVersionUID = 3959226859263419122L; 19 | /** 20 | * @param s a message describing the failure 21 | */ 22 | public WalaException(String s, Throwable cause) { 23 | super(s, cause); 24 | } 25 | /** 26 | * @param string a message describing the failure 27 | */ 28 | public WalaException(String string) { 29 | super(string); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/WalaRuntimeException.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2008 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util; 12 | 13 | /** 14 | * Runtime exception for some WALA failure. 15 | * 16 | */ 17 | public class WalaRuntimeException extends RuntimeException { 18 | 19 | /** 20 | * @param s a message describing the failure 21 | */ 22 | public WalaRuntimeException(String s, Throwable cause) { 23 | super(s, cause); 24 | } 25 | /** 26 | * @param string a message describing the failure 27 | */ 28 | public WalaRuntimeException(String string) { 29 | super(string); 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/collections/Factory.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.collections; 12 | 13 | public interface Factory{ 14 | T make(); 15 | } -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/collections/Filter.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.collections; 12 | 13 | /** 14 | * Simple interface for an intensional set definition. 15 | */ 16 | @Deprecated 17 | public interface Filter { 18 | /** 19 | * @return true iff o is in the set defined by this filter 20 | */ 21 | public boolean accepts(T o); 22 | } 23 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/collections/FilterPredicate.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2011 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.collections; 12 | 13 | import com.ibm.wala.util.Predicate; 14 | 15 | /** 16 | * A migration aid, to move from Filter to Predicate 17 | */ 18 | @Deprecated 19 | public class FilterPredicate extends Predicate { 20 | 21 | public static FilterPredicate toPredicate(Filter f) { 22 | return new FilterPredicate(f); 23 | } 24 | 25 | private final Filter f; 26 | 27 | private FilterPredicate(Filter f) { 28 | this.f = f; 29 | } 30 | 31 | @Override 32 | public boolean test(T t) { 33 | return f.accepts(t); 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/collections/IndiscriminateFilter.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | 12 | package com.ibm.wala.util.collections; 13 | 14 | 15 | /** 16 | * A filter that accepts everything. 17 | */ 18 | public class IndiscriminateFilter implements Filter { 19 | 20 | public static IndiscriminateFilter singleton() { 21 | return new IndiscriminateFilter(); 22 | } 23 | 24 | /* 25 | * @see com.ibm.wala.util.Filter#accepts(java.lang.Object) 26 | */ 27 | @Override 28 | public boolean accepts(Object o) { 29 | return true; 30 | } 31 | 32 | } 33 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/collections/Iterator2Iterable.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.collections; 12 | 13 | import java.util.Iterator; 14 | 15 | /** 16 | * Converts an {@link Iterator} to an {@link Iterable}. 17 | */ 18 | public class Iterator2Iterable implements Iterable { 19 | 20 | private final Iterator iter; 21 | 22 | public static Iterator2Iterable make(Iterator iter) { 23 | return new Iterator2Iterable(iter); 24 | } 25 | 26 | public Iterator2Iterable(Iterator iter) { 27 | this.iter = iter; 28 | } 29 | 30 | @Override 31 | public Iterator iterator() { 32 | return iter; 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/collections/Iterator2Set.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.collections; 12 | 13 | import java.util.Collection; 14 | import java.util.Iterator; 15 | import java.util.Set; 16 | 17 | public class Iterator2Set extends Iterator2Collection implements Set { 18 | 19 | private final Set delegate; 20 | 21 | protected Iterator2Set(Iterator i, Set delegate) { 22 | this.delegate = delegate; 23 | while (i.hasNext()) { 24 | delegate.add(i.next()); 25 | } 26 | } 27 | 28 | @Override 29 | protected Collection getDelegate() { 30 | return delegate; 31 | } 32 | 33 | 34 | } 35 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/collections/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Sets and collections 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/config/SetOfClasses.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.config; 12 | 13 | import java.io.Serializable; 14 | import java.util.Set; 15 | 16 | /** 17 | * Logically, a set of {@link IClass}. 18 | * 19 | * TODO: why does this not extend {@link Set}? Is there a good reason anymore? 20 | */ 21 | public abstract class SetOfClasses implements Serializable { 22 | 23 | public abstract boolean contains(String klassName); 24 | 25 | public abstract void add(String klass); 26 | 27 | } 28 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/debug/UnimplementedError.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | 12 | package com.ibm.wala.util.debug; 13 | 14 | /** 15 | * Something that's not implemented yet. 16 | */ 17 | public class UnimplementedError extends Error { 18 | public static final long serialVersionUID = 20981098918191L; 19 | 20 | 21 | public UnimplementedError() { 22 | super(); 23 | } 24 | 25 | public UnimplementedError(String s) { 26 | super(s); 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/debug/VerboseAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.debug; 12 | 13 | /** 14 | * An optional interface for data structures that provide a 15 | * verbose option for debugging purposes. 16 | */ 17 | public interface VerboseAction { 18 | /** 19 | * optional method used for performance debugging 20 | */ 21 | void performVerboseAction(); 22 | } 23 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/debug/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Debugging utilities 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/functions/Function.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.functions; 12 | 13 | /** 14 | */ 15 | public interface Function { 16 | 17 | Y apply(X object); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/functions/IntFunction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.functions; 12 | 13 | /** 14 | */ 15 | public interface IntFunction { 16 | 17 | T apply(int i); 18 | 19 | } 20 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/functions/VoidFunction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2013 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.functions; 12 | 13 | public interface VoidFunction { 14 | 15 | void apply(T v); 16 | 17 | } 18 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/graph/GraphUtil.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.graph; 12 | 13 | 14 | /** 15 | * Utility methods for graphs. 16 | */ 17 | public class GraphUtil { 18 | 19 | /** 20 | * count the number of edges in g 21 | */ 22 | public static long countEdges(Graph g) { 23 | if (g == null) { 24 | throw new IllegalArgumentException("g is null"); 25 | } 26 | long edgeCount = 0; 27 | for (T t : g) { 28 | edgeCount += g.getSuccNodeCount(t); 29 | } 30 | return edgeCount; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/graph/NumberedEdgeManager.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.graph; 12 | 13 | import com.ibm.wala.util.intset.IntSet; 14 | 15 | 16 | /** 17 | * Additional functionality for edges in numbered graphs 18 | */ 19 | public interface NumberedEdgeManager extends EdgeManager { 20 | 21 | /** 22 | * @return the numbers identifying the immediate successors of node 23 | */ 24 | public IntSet getSuccNodeNumbers(T node); 25 | 26 | /** 27 | * @return the numbers identifying the immediate predecessors of node 28 | */ 29 | public IntSet getPredNodeNumbers(T node); 30 | } 31 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/graph/NumberedGraph.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.graph; 12 | 13 | /** 14 | * A numbered graph is a {@link Graph} where each node has a unique persistent non-negative integer id. 15 | */ 16 | public interface NumberedGraph extends Graph, NumberedNodeManager, NumberedEdgeManager { 17 | 18 | } 19 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/graph/NumberedNodeManager.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.graph; 12 | 13 | import java.util.Iterator; 14 | 15 | import com.ibm.wala.util.intset.IntSet; 16 | 17 | /** 18 | * An object which tracks nodes with numbers. 19 | */ 20 | public interface NumberedNodeManager extends NodeManager { 21 | 22 | public abstract int getNumber(T N); 23 | 24 | 25 | public abstract T getNode(int number); 26 | 27 | 28 | public abstract int getMaxNumber(); 29 | 30 | /** 31 | * @param s 32 | * @return iterator of nodes with the numbers in set s 33 | */ 34 | public abstract Iterator iterateNodes(IntSet s); 35 | 36 | } -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/graph/OrderedMultiGraph.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.graph; 12 | 13 | /** 14 | * 15 | */ 16 | public interface OrderedMultiGraph extends Graph { 17 | 18 | /** 19 | * get the ith successor of a node 20 | */ 21 | public T getSuccessor(T node, int i); 22 | 23 | /** 24 | * add an edge and record it so dst is the ith successor of src 25 | */ 26 | public void addEdge(int i, T src, T dst); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/graph/impl/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Graph implementations 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/graph/labeled/NumberedLabeledEdgeManager.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2007 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.graph.labeled; 12 | 13 | import com.ibm.wala.util.graph.NumberedEdgeManager; 14 | import com.ibm.wala.util.intset.IntSet; 15 | 16 | public interface NumberedLabeledEdgeManager extends LabeledEdgeManager, NumberedEdgeManager { 17 | 18 | public IntSet getPredNodeNumbers(T node, U label) throws IllegalArgumentException; 19 | 20 | public IntSet getSuccNodeNumbers(T node, U label) throws IllegalArgumentException; 21 | 22 | } 23 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/graph/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Graph interfaces 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/graph/traverse/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Graph traversal algorithms 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/heapTrace/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | This package provides a utility which analyzes heap usage by heap-walking via reflection. 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/intset/IntIterator.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.intset; 12 | 13 | 14 | /** 15 | * a more efficient iterator for sets of integers 16 | */ 17 | public interface IntIterator { 18 | 19 | /** 20 | * @return true iff this iterator has a next element 21 | */ 22 | public boolean hasNext(); 23 | 24 | /** 25 | * @return next integer in the iteration 26 | */ 27 | public int next(); 28 | } 29 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/intset/IntSetAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | 12 | package com.ibm.wala.util.intset; 13 | 14 | public interface IntSetAction { 15 | 16 | void act(int x); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/intset/IntVector.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.intset; 12 | 13 | 14 | /** 15 | * interface for array of integer 16 | */ 17 | public interface IntVector{ 18 | 19 | int get(int x); 20 | 21 | void set(int x, int value); 22 | 23 | /** 24 | * @return max i s.t set(i) was called. 25 | */ 26 | public abstract int getMaxIndex(); 27 | 28 | } 29 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/intset/LongIterator.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.intset; 12 | 13 | 14 | /** 15 | * a more efficient iterator for sets of longs 16 | */ 17 | public interface LongIterator { 18 | 19 | /** 20 | * @return true iff this iterator has a next element 21 | */ 22 | public boolean hasNext(); 23 | 24 | /** 25 | * @return next integer in the iteration 26 | */ 27 | public long next(); 28 | } 29 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/intset/LongSetAction.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | 12 | package com.ibm.wala.util.intset; 13 | 14 | public interface LongSetAction { 15 | 16 | void act(long x); 17 | 18 | } 19 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableIntSetFactory.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.intset; 12 | 13 | /** 14 | * An object that creates some flavor of mutable int set. 15 | */ 16 | public interface MutableIntSetFactory { 17 | /** 18 | * @param set 19 | */ 20 | public T make(int[] set); 21 | /** 22 | * @param string 23 | */ 24 | public T parse(String string); 25 | /** 26 | * @param x 27 | */ 28 | public T makeCopy(IntSet x); 29 | /** 30 | */ 31 | public T make(); 32 | } 33 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/intset/MutableLongSetFactory.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.intset; 12 | 13 | /** 14 | * An object that creates some flavor of mutable int set. 15 | */ 16 | public interface MutableLongSetFactory { 17 | 18 | public MutableLongSet make(long[] set); 19 | 20 | public MutableLongSet parse(String string); 21 | 22 | public MutableLongSet makeCopy(LongSet x); 23 | 24 | public MutableLongSet make(); 25 | } 26 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/intset/NumberUtility.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2009 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.intset; 12 | 13 | public class NumberUtility { 14 | 15 | static boolean isByte(int number){ 16 | if (number>=Byte.MIN_VALUE && number<=Byte.MAX_VALUE){ 17 | return true; 18 | } 19 | return false; 20 | } 21 | 22 | static boolean isShort(int number){ 23 | if (!isByte(number) && number>=Short.MIN_VALUE && number<=Short.MAX_VALUE){ 24 | return true; 25 | } 26 | return false; 27 | } 28 | 29 | 30 | } 31 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/intset/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | BitVector and vector utilities 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/math/LongUtil.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.util.math; 12 | 13 | /** 14 | */ 15 | public class LongUtil { 16 | 17 | public static long pack(int hi, int lo) { 18 | return ((long)hi << 32) | lo; 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/util/math/package.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | Math utilities 4 | 5 | 6 | -------------------------------------------------------------------------------- /com.ibm.wala.util/src/com/ibm/wala/viz/NodeDecorator.java: -------------------------------------------------------------------------------- 1 | /******************************************************************************* 2 | * Copyright (c) 2002 - 2006 IBM Corporation. 3 | * All rights reserved. This program and the accompanying materials 4 | * are made available under the terms of the Eclipse Public License v1.0 5 | * which accompanies this distribution, and is available at 6 | * http://www.eclipse.org/legal/epl-v10.html 7 | * 8 | * Contributors: 9 | * IBM Corporation - initial API and implementation 10 | *******************************************************************************/ 11 | package com.ibm.wala.viz; 12 | 13 | import com.ibm.wala.util.WalaException; 14 | 15 | /** 16 | * @param the node type 17 | */ 18 | public interface NodeDecorator { 19 | 20 | /** 21 | * @param n 22 | * @return the String label for node n 23 | */ 24 | String getLabel(T n) throws WalaException; 25 | 26 | } 27 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/.classpath: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/.project: -------------------------------------------------------------------------------- 1 | 2 | 3 | edu.tamu.cse.aser.sword 4 | 5 | 6 | 7 | 8 | 9 | org.eclipse.jdt.core.javabuilder 10 | 11 | 12 | 13 | 14 | org.eclipse.pde.ManifestBuilder 15 | 16 | 17 | 18 | 19 | org.eclipse.pde.SchemaBuilder 20 | 21 | 22 | 23 | 24 | 25 | org.eclipse.pde.PluginNature 26 | org.eclipse.jdt.core.javanature 27 | 28 | 29 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/.settings/org.eclipse.jdt.core.prefs: -------------------------------------------------------------------------------- 1 | eclipse.preferences.version=1 2 | org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled 3 | org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate 4 | org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8 5 | org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve 6 | org.eclipse.jdt.core.compiler.compliance=1.8 7 | org.eclipse.jdt.core.compiler.debug.lineNumber=generate 8 | org.eclipse.jdt.core.compiler.debug.localVariable=generate 9 | org.eclipse.jdt.core.compiler.debug.sourceFile=generate 10 | org.eclipse.jdt.core.compiler.problem.assertIdentifier=error 11 | org.eclipse.jdt.core.compiler.problem.enumIdentifier=error 12 | org.eclipse.jdt.core.compiler.source=1.8 13 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/.settings/org.eclipse.m2e.core.prefs: -------------------------------------------------------------------------------- 1 | activeProfiles= 2 | eclipse.preferences.version=1 3 | resolveWorkspaceProjects=true 4 | version=1 5 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/akka-actor_2.12-2.4.16.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/akka-actor_2.12-2.4.16.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/avrora_report: -------------------------------------------------------------------------------- 1 | avrora/stack/Analyzer$ContextSensitivePolicy:706 2 | avrora/Main:324 3 | avrora/Main:325 4 | avrora/stack/Analyzer$ContextSensitivePolicy:724 5 | avrora/stack/Analyzer$MonitorThread:197 6 | avrora/stack/Analyzer$MonitorThread:199 7 | cck/text/Terminal:221 8 | avrora/stack/Analyzer:234 9 | avrora/stack/StateTransitionGraph:269 10 | cck/text/Terminal:220 11 | avrora/stack/StateTransitionGraph:209 12 | avrora/stack/Analyzer:299 13 | avrora/stack/Analyzer:233 14 | avrora/stack/StateTransitionGraph:265 15 | avrora/stack/Analyzer:615 16 | avrora/stack/StateTransitionGraph:193 17 | avrora/stack/StateTransitionGraph:172 18 | avrora/stack/Analyzer:223 19 | avrora/stack/StateTransitionGraph:236 20 | avrora/stack/Analyzer:224 21 | avrora/stack/Analyzer:225 22 | avrora/stack/Analyzer:424 23 | avrora/stack/Analyzer:144 24 | avrora/stack/Analyzer:288 25 | avrora/stack/StateTransitionGraph:273 26 | avrora/stack/Analyzer:227 27 | avrora/stack/Analyzer:228 28 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/bin/.gitignore: -------------------------------------------------------------------------------- 1 | /EclipseDefaultExclusions.backup.txt 2 | /EclipseDefaultExclusions.txt 3 | /edu/ 4 | /entries.txt 5 | /hello.txt 6 | /test.txt 7 | /test2.txt 8 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/bin/EclipseDefaultExclusions.backup.txt: -------------------------------------------------------------------------------- 1 | java\/.* 2 | javax\/.* 3 | sun\/.* 4 | sunw\/.* 5 | com\/sun\/.* 6 | com\/ibm\/.* 7 | com\/apple\/.* 8 | com\/oracle\/.* 9 | com\/vividsolutions\/.* 10 | apple\/.* 11 | org\/xml\/.* 12 | org\/netbeans\/.* 13 | org\/openide\/.* 14 | org\/apache\/xerces\/.* 15 | jdbm\/.* 16 | com\/ibm\/wala\/.* 17 | 18 | org\/apache\/.* 19 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/bin/EclipseDefaultExclusions.txt: -------------------------------------------------------------------------------- 1 | java\/applet\/.* 2 | java\/awt\/.* 3 | java\/beans\/.* 4 | java\/io\/.* 5 | java\/math\/.* 6 | java\/net\/.* 7 | java\/nio\/.* 8 | java\/rmi\/.* 9 | java\/security\/.* 10 | java\/sql\/.* 11 | java\/text\/.* 12 | java\/util\/.* 13 | 14 | javax\/.* 15 | sun\/.* 16 | sunw\/.* 17 | com\/sun\/.* 18 | com\/ibm\/.* 19 | com\/apple\/.* 20 | com\/oracle\/.* 21 | apple\/.* 22 | org\/xml\/.* 23 | jdbm\/.* 24 | 25 | org\/netbeans\/.* 26 | org\/openide\/.* 27 | org\/apache\/xerces\/.* 28 | dalvik\/.* 29 | apple\/.* 30 | jdk\/.* 31 | org\/omg\/.* 32 | org\/w3c\/.* 33 | 34 | ///////////////// 35 | org\/apache\/.* 36 | cck\/test\/.* 37 | jintgen\/.* 38 | 39 | org\/codehaus\/janino\/.* 40 | extra166y\/.* 41 | jsr166y\/.* 42 | org\/jline\/.* 43 | junit\/.* 44 | org\/apache\/regexp\/.* -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/bin/entries.txt: -------------------------------------------------------------------------------- 1 | Entrypoint: < Application, Ljline/ConsoleRunner, main([Ljava/lang/String;)V >([]) 2 | Entrypoint: < Application, Ljline/UnsupportedTerminal$1, run()V >([]) 3 | Entrypoint: < Application, Ljline/ANSIBuffer, main([Ljava/lang/String;)V >([]) 4 | Entrypoint: < Application, Lcom/ziclix/python/sql/pipe/PipeRunner, run()V >([]) -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/bin/hello.txt: -------------------------------------------------------------------------------- 1 | Primordial,Java,stdlib,none 2 | Primordial,Java,jarFile,primordial.jar.model 3 | Application,Java,classFile,/Users/Bozhen/Documents/Eclipse/SvnCheckout/floodlight/target/bin/net/floodlightcontroller/core/Main.class -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/bin/test.txt: -------------------------------------------------------------------------------- 1 | Primordial,Java,stdlib,none 2 | Primordial,Java,jarFile,primordial.jar.model 3 | Application,Java,jarFile,/Users/Bozhen/Documents/Eclipse2/Test_both_copy/bankaccount.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/bin/test2.txt: -------------------------------------------------------------------------------- 1 | Primordial,Java,stdlib,none 2 | Primordial,Java,jarFile,primordial.jar.model 3 | Application,Java,jarFile,/Users/liyanze/java/benchmarks/jarfiles/tsp.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/build.properties: -------------------------------------------------------------------------------- 1 | source.. = src/ 2 | output.. = bin/ 3 | bin.includes = META-INF/,\ 4 | .,\ 5 | akka-actor_2.12-2.4.16.jar,\ 6 | config-1.3.1.jar,\ 7 | scala-java8-compat_2.12-0.8.0.jar,\ 8 | scala-library-2.12.1.jar 9 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/commons-cli-1.4.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/commons-cli-1.4.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/config-1.3.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/config-1.3.1.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/data/EclipseDefaultExclusions.backup.txt: -------------------------------------------------------------------------------- 1 | java\/.* 2 | javax\/.* 3 | sun\/.* 4 | sunw\/.* 5 | com\/sun\/.* 6 | com\/ibm\/.* 7 | com\/apple\/.* 8 | com\/oracle\/.* 9 | com\/vividsolutions\/.* 10 | apple\/.* 11 | org\/xml\/.* 12 | org\/netbeans\/.* 13 | org\/openide\/.* 14 | org\/apache\/xerces\/.* 15 | jdbm\/.* 16 | com\/ibm\/wala\/.* 17 | 18 | org\/apache\/.* 19 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/data/EclipseDefaultExclusions.txt: -------------------------------------------------------------------------------- 1 | java\/applet\/.* 2 | java\/awt\/.* 3 | java\/beans\/.* 4 | java\/io\/.* 5 | java\/math\/.* 6 | java\/net\/.* 7 | java\/nio\/.* 8 | java\/rmi\/.* 9 | java\/security\/.* 10 | java\/sql\/.* 11 | java\/text\/.* 12 | java\/util\/.* 13 | 14 | javax\/.* 15 | sun\/.* 16 | sunw\/.* 17 | com\/sun\/.* 18 | com\/ibm\/.* 19 | com\/apple\/.* 20 | com\/oracle\/.* 21 | apple\/.* 22 | org\/xml\/.* 23 | jdbm\/.* 24 | 25 | org\/netbeans\/.* 26 | org\/openide\/.* 27 | org\/apache\/xerces\/.* 28 | dalvik\/.* 29 | apple\/.* 30 | jdk\/.* 31 | org\/omg\/.* 32 | org\/w3c\/.* 33 | 34 | ///////////////// 35 | org\/apache\/.* 36 | cck\/test\/.* 37 | jintgen\/.* 38 | 39 | org\/codehaus\/janino\/.* 40 | extra166y\/.* 41 | jsr166y\/.* 42 | org\/jline\/.* 43 | junit\/.* 44 | org\/apache\/regexp\/.* -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/data/entries.txt: -------------------------------------------------------------------------------- 1 | Entrypoint: < Application, Ljline/ConsoleRunner, main([Ljava/lang/String;)V >([]) 2 | Entrypoint: < Application, Ljline/UnsupportedTerminal$1, run()V >([]) 3 | Entrypoint: < Application, Ljline/ANSIBuffer, main([Ljava/lang/String;)V >([]) 4 | Entrypoint: < Application, Lcom/ziclix/python/sql/pipe/PipeRunner, run()V >([]) -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/data/hello.txt: -------------------------------------------------------------------------------- 1 | Primordial,Java,stdlib,none 2 | Primordial,Java,jarFile,primordial.jar.model 3 | Application,Java,classFile,/Users/Bozhen/Documents/Eclipse/SvnCheckout/floodlight/target/bin/net/floodlightcontroller/core/Main.class -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/data/test.txt: -------------------------------------------------------------------------------- 1 | Primordial,Java,stdlib,none 2 | Primordial,Java,jarFile,primordial.jar.model 3 | Application,Java,jarFile,/Users/Bozhen/Documents/Eclipse2/Test_both_copy/bankaccount.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/data/test2.txt: -------------------------------------------------------------------------------- 1 | Primordial,Java,stdlib,none 2 | Primordial,Java,jarFile,primordial.jar.model 3 | Application,Java,jarFile,/Users/liyanze/java/benchmarks/jarfiles/tsp.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/elevator_report: -------------------------------------------------------------------------------- 1 | newSim/Person:114 2 | newSim/Elevator:190 3 | newSim/Person:37 4 | newSim/Elevator:175 5 | newSim/Elevator:152 6 | newSim/Elevator:128 7 | newSim/Person:70 8 | newSim/Elevator:127 9 | newSim/Floor:49 10 | newSim/Elevator:202 11 | newSim/Elevator:147 12 | newSim/Elevator:48 13 | newSim/Person:34 14 | newSim/ElevatorState:35 15 | newSim/ElevatorState:34 16 | newSim/Elevator:88 17 | newSim/ElevatorState:15 18 | newSim/Floor:40 19 | newSim/ElevatorState:14 20 | newSim/Person:180 21 | newSim/Floor:43 22 | newSim/Floor:20 23 | newSim/Floor:67 24 | newSim/Floor:23 25 | newSim/Elevator:93 26 | newSim/Person:268 27 | newSim/Person:245 28 | newSim/ElevatorState:43 29 | newSim/Elevator:142 30 | newSim/Elevator:146 31 | newSim/Elevator:145 32 | newSim/Elevator:144 33 | newSim/ElevatorController:194 34 | newSim/Elevator:143 35 | newSim/ElevatorController:172 36 | newSim/Person:247 37 | newSim/Elevator:215 38 | newSim/Floor:57 39 | newSim/Elevator:119 40 | newSim/ElevatorState:26 41 | newSim/Floor:52 42 | newSim/Person:43 43 | newSim/Person:64 44 | newSim/Elevator:74 45 | newSim/Person:40 46 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/elevator_traver_cls: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/Lock-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/Lock-icon.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/annotationsView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/annotationsView.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/arrow.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/arrow.gif -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/blank.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/blank.gif -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/bug.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/bug.gif -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/buggy-tiny-blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/buggy-tiny-blue.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/buggy-tiny-gray.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/buggy-tiny-gray.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/buggy-tiny-green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/buggy-tiny-green.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/buggy-tiny-orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/buggy-tiny-orange.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/buggy-tiny-yellow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/buggy-tiny-yellow.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/buggy-tiny-yellow2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/buggy-tiny-yellow2.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/buggy-tiny.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/buggy-tiny.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/buggy-tiny.xcf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/buggy-tiny.xcf -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/bugview.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/bugview.gif -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/circle-running-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/circle-running-icon.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/confidence-high.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/confidence-high.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/confidence-ignore.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/confidence-ignore.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/confidence-low.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/confidence-low.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/confidence-normal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/confidence-normal.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/datasheet.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/datasheet.gif -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/detailsView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/detailsView.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/doc_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/doc_icon.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/export_bugs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/export_bugs.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/file_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/file_icon.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/folder_icon.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/folder_icon.gif -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/folder_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/folder_icon.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/forward_nav.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/forward_nav.gif -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/parallel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/parallel.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/read-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/read-icon.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/refresh.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/refresh.gif -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/runFindbugs.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/runFindbugs.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/shuffle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/shuffle.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/treeView.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/treeView.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/warning.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/icons/write-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/icons/write-icon.png -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/jface-3.6.1.M20100825-0800.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/jface-3.6.1.M20100825-0800.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/log_d4_tradesoap: -------------------------------------------------------------------------------- 1 | Call Graph Construction Time: 331847 2 | Total Pointer Keys: 187173 3 | Total Instance Keys: 5480 4 | Total Pointer Edges: 22638520 5 | Total Classes: 8303 6 | Total Methods: 20224 7 | 8 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/org.eclipse.jface-3.1.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/org.eclipse.jface-3.1.0.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 4.0.0 3 | edu.tamu.cse.aser.echo 4 | edu.tamu.cse.aser.echo 5 | 0.0.1-SNAPSHOT 6 | pom 7 | parapta 8 | parallel and incremental pta in cluster 9 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/scala-java8-compat_2.12-0.8.0.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/scala-java8-compat_2.12-0.8.0.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/scala-library-2.12.1.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/scala-library-2.12.1.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/sor_report: -------------------------------------------------------------------------------- 1 | sor/sor_first_row_even:231 2 | sor/sor_first_row_odd:154 3 | sor/sor_first_row_odd:173 4 | sor/sor_first_row_even:219 5 | sor/sor_first_row_even:238 6 | sor/sor_first_row_odd:147 7 | sor/sor_first_row_odd:166 8 | sor/sor_first_row_even:212 9 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/sor_traver_cls: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/akkasys/CheckDatarace.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.akkasys; 2 | 3 | import java.util.HashSet; 4 | 5 | import edu.tamu.aser.tide.nodes.ReadNode; 6 | import edu.tamu.aser.tide.nodes.WriteNode; 7 | 8 | 9 | public class CheckDatarace{ 10 | 11 | HashSet writes; 12 | HashSet reads; 13 | String sig; 14 | 15 | public CheckDatarace(String sig, HashSet writes2, HashSet reads2) { 16 | this.sig = sig; 17 | this.reads = reads2; 18 | this.writes = writes2; 19 | } 20 | 21 | public HashSet getWrites(){ 22 | return writes; 23 | } 24 | 25 | public HashSet getReads(){ 26 | return reads; 27 | } 28 | 29 | public String getSig(){ 30 | return sig; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/akkasys/CheckDeadlock.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.akkasys; 2 | 3 | import java.util.ArrayList; 4 | import java.util.Set; 5 | 6 | import edu.tamu.aser.tide.nodes.DLPair; 7 | 8 | public class CheckDeadlock{ 9 | 10 | private ArrayList dLLockPairs; 11 | private int tid; 12 | private Set tids; 13 | 14 | public CheckDeadlock(Integer tid1, Set tids, ArrayList dLLockPairs2) { 15 | // TODO Auto-generated constructor stub 16 | this.tid = tid1; 17 | this.dLLockPairs = dLLockPairs2; 18 | this.tids = tids; 19 | } 20 | 21 | public ArrayList getPairs(){ 22 | return dLLockPairs; 23 | } 24 | 25 | public int getTid(){ 26 | return tid; 27 | } 28 | 29 | public Set getTids(){ 30 | return tids; 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/akkasys/DistributeDatarace.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.akkasys; 2 | 3 | public class DistributeDatarace { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/akkasys/DistributeDeadlock.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.akkasys; 2 | 3 | public class DistributeDeadlock { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/akkasys/FindSharedVarJob.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.akkasys; 2 | 3 | import java.util.HashMap; 4 | 5 | public class FindSharedVarJob { 6 | 7 | String sig; 8 | HashMap readMap; 9 | HashMap writeMap; 10 | 11 | public FindSharedVarJob(String sig, HashMap hashMap, HashMap hashMap2) { 12 | this.sig = sig; 13 | this.readMap = hashMap2; 14 | this.writeMap = hashMap; 15 | } 16 | 17 | public String getSig(){ 18 | return sig; 19 | } 20 | 21 | public HashMap getReadMap(){ 22 | return readMap; 23 | } 24 | 25 | public HashMap getWriteMap(){ 26 | return writeMap; 27 | } 28 | 29 | } 30 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/akkasys/FindSharedVariable.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.akkasys; 2 | 3 | import java.util.HashMap; 4 | 5 | public class FindSharedVariable { 6 | 7 | private HashMap> variableReadMap; 8 | private HashMap> variableWriteMap; 9 | 10 | public FindSharedVariable(HashMap> rsig_tid_num_map, 11 | HashMap> wsig_tid_num_map) { 12 | this.variableReadMap = rsig_tid_num_map; 13 | this.variableWriteMap = wsig_tid_num_map; 14 | } 15 | 16 | public HashMap> getVReadMap(){ 17 | return variableReadMap; 18 | } 19 | 20 | public HashMap> getVWriteMap() { 21 | return variableWriteMap; 22 | } 23 | 24 | } 25 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/akkasys/RemoveLocalJob.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.akkasys; 2 | 3 | import java.util.ArrayList; 4 | 5 | import edu.tamu.aser.tide.shb.Trace; 6 | 7 | public class RemoveLocalJob { 8 | 9 | ArrayList node; 10 | 11 | public RemoveLocalJob(ArrayList team1) { 12 | this.node = team1; 13 | } 14 | 15 | public ArrayList getTeam(){ 16 | return node; 17 | } 18 | 19 | } 20 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/akkasys/RemoveLocalVar.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.akkasys; 2 | 3 | public class RemoveLocalVar { 4 | 5 | public RemoveLocalVar() { 6 | } 7 | 8 | } 9 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/akkasys/ReturnResult.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.akkasys; 2 | 3 | public class ReturnResult { 4 | 5 | } 6 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/engine/ITIDEBug.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.engine; 2 | 3 | import java.util.HashMap; 4 | 5 | import org.eclipse.core.resources.IFile; 6 | 7 | public interface ITIDEBug { 8 | public abstract HashMap getEventIFileMap(); 9 | public abstract void addEventIFileToMap(String event, IFile ifile); 10 | public abstract HashMap getEventLineMap(); 11 | public abstract void addEventLineToMap(String event, int line); 12 | } 13 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/marker/DLMarkerUpdater.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.marker; 2 | 3 | import org.eclipse.core.resources.IMarker; 4 | import org.eclipse.jface.text.IDocument; 5 | import org.eclipse.jface.text.Position; 6 | import org.eclipse.ui.texteditor.IMarkerUpdater; 7 | 8 | public class DLMarkerUpdater implements IMarkerUpdater{ 9 | 10 | @Override 11 | public String[] getAttribute() { 12 | return null; 13 | } 14 | 15 | @Override 16 | public String getMarkerType() { 17 | return "edu.umd.cs.findbugs.plugin.eclipse.findbugsMarkerScary"; 18 | } 19 | 20 | @Override 21 | public boolean updateMarker(IMarker marker, IDocument doc, Position line) { 22 | if(marker instanceof BugMarker){ 23 | BugMarker bugMarker = (BugMarker) marker; 24 | } 25 | return true; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/marker/RaceMarkerUpdater.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.marker; 2 | 3 | import org.eclipse.core.resources.IMarker; 4 | import org.eclipse.jface.text.IDocument; 5 | import org.eclipse.jface.text.Position; 6 | import org.eclipse.ui.texteditor.IMarkerUpdater; 7 | 8 | public class RaceMarkerUpdater implements IMarkerUpdater{ 9 | 10 | @Override 11 | public String[] getAttribute() { 12 | return null; 13 | } 14 | 15 | @Override 16 | public String getMarkerType() { 17 | return "edu.umd.cs.findbugs.plugin.eclipse.findbugsMarkerScariest"; 18 | } 19 | 20 | @Override 21 | public boolean updateMarker(IMarker marker, IDocument doc, Position line) { 22 | if(marker instanceof BugMarker){ 23 | BugMarker bugMarker = (BugMarker) marker; 24 | } 25 | return true; 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/nodes/DLPair.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.nodes; 2 | 3 | public class DLPair { 4 | public DLockNode lock1; 5 | public DLockNode lock2; 6 | 7 | /** 8 | * lock1 -> lock2 9 | * @param lock1 10 | * @param lock2 11 | */ 12 | public DLPair(DLockNode lock1, DLockNode lock2){ 13 | this.lock1 = lock1; 14 | this.lock2 = lock2; 15 | } 16 | 17 | @Override 18 | public boolean equals(Object obj) { 19 | if(obj instanceof DLPair){ 20 | DLPair that = (DLPair) obj; 21 | if(this.lock1.equals(that.lock1) 22 | && this.lock2.equals(that.lock2)){ 23 | return true; 24 | } 25 | } 26 | return false; 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/nodes/INode.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.nodes; 2 | 3 | import com.ibm.wala.ipa.callgraph.CGNode; 4 | 5 | public interface INode { 6 | public int getTID(); 7 | public String toString(); 8 | public CGNode getBelonging(); 9 | 10 | } 11 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/nodes/SyncNode.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.nodes; 2 | 3 | import org.eclipse.core.resources.IFile; 4 | 5 | public abstract class SyncNode implements INode { 6 | public abstract String toString(); 7 | public abstract int getSelfTID() ; 8 | public abstract IFile getFile(); 9 | public abstract int getLine(); 10 | } 11 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/plugin/ChangedItem.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.plugin; 2 | 3 | public class ChangedItem 4 | { 5 | public String packageName=""; 6 | public String className=""; 7 | public String methodName=""; 8 | 9 | } -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/views/ConcurrentRelation.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.views; 2 | 3 | import java.util.HashSet; 4 | 5 | import edu.tamu.aser.tide.nodes.MemNode; 6 | import edu.tamu.aser.tide.nodes.ReadNode; 7 | import edu.tamu.aser.tide.nodes.WriteNode; 8 | 9 | public class ConcurrentRelation{ 10 | public WriteNode writeNode; 11 | public HashSet concurrentReads; 12 | public HashSet concurrentWrites; 13 | 14 | public ConcurrentRelation(WriteNode writeNode) { 15 | this.writeNode = writeNode; 16 | this.concurrentReads = new HashSet<>(); 17 | this.concurrentWrites = new HashSet<>(); 18 | } 19 | 20 | public void addConcurrentRW(MemNode node) { 21 | if (node instanceof ReadNode) { 22 | addConcurrentReads((ReadNode) node); 23 | } else { 24 | addConcurrentWrites((WriteNode) node); 25 | } 26 | } 27 | 28 | public void addConcurrentReads(ReadNode node) { 29 | concurrentReads.add(node); 30 | } 31 | 32 | public void addConcurrentWrites(WriteNode node) { 33 | concurrentWrites.add(node); 34 | } 35 | } -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/views/EventNode.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.views; 2 | 3 | import java.util.ArrayList; 4 | import java.util.LinkedList; 5 | 6 | import org.eclipse.jface.resource.ImageDescriptor; 7 | 8 | import edu.tamu.aser.tide.plugin.Activator; 9 | 10 | public class EventNode extends TreeNode{ 11 | protected String name; 12 | 13 | public EventNode(TreeNode parent, String event) { 14 | super(parent); 15 | this.name = event; 16 | } 17 | 18 | @Override 19 | public String getName() { 20 | return name; 21 | } 22 | 23 | @Override 24 | public ImageDescriptor getImage() { 25 | return Activator.getImageDescriptor("forward_nav.gif"); 26 | } 27 | 28 | @Override 29 | protected void createChildren(ArrayList> trace, String fix) { 30 | // no child 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/views/FixNode.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.views; 2 | 3 | import java.util.ArrayList; 4 | import java.util.LinkedList; 5 | 6 | import org.eclipse.jface.resource.ImageDescriptor; 7 | 8 | import edu.tamu.aser.tide.plugin.Activator; 9 | 10 | public class FixNode extends TreeNode{ 11 | protected String name; 12 | 13 | public FixNode(TreeNode parent, String fix) { 14 | super(parent); 15 | this.name = fix; 16 | } 17 | 18 | @Override 19 | public String getName() { 20 | return name; 21 | } 22 | 23 | @Override 24 | public ImageDescriptor getImage() { 25 | return Activator.getImageDescriptor("datasheet.gif"); 26 | } 27 | 28 | @Override 29 | protected void createChildren(ArrayList> trace, String fix) { 30 | // TODO Auto-generated method stub 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/views/ITreeNode.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.views; 2 | 3 | import java.util.ArrayList; 4 | 5 | import org.eclipse.jface.resource.ImageDescriptor; 6 | 7 | public interface ITreeNode { 8 | public String getName(); 9 | public ImageDescriptor getImage(); 10 | public ArrayList getChildren(); 11 | public boolean hasChildren(); 12 | public ITreeNode getParent(); 13 | } 14 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/views/NewestBugLabelProvider.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.views; 2 | 3 | import java.util.HashMap; 4 | 5 | import org.eclipse.jface.resource.ImageDescriptor; 6 | import org.eclipse.jface.viewers.CellLabelProvider; 7 | import org.eclipse.jface.viewers.ViewerCell; 8 | import org.eclipse.swt.graphics.Image; 9 | 10 | public class NewestBugLabelProvider extends CellLabelProvider{ 11 | private HashMap imageCache = new HashMap<>(11); 12 | 13 | @Override 14 | public void update(ViewerCell cell) { 15 | cell.setText(((ITreeNode)cell).getName()); 16 | cell.setImage(getImage(cell)); 17 | } 18 | 19 | public String getText(Object element) { 20 | return ((ITreeNode)element).getName(); 21 | } 22 | 23 | public Image getImage(Object element) { 24 | ImageDescriptor descriptor = ((ITreeNode)element).getImage(); 25 | //obtain the cached image corresponding to the descriptor 26 | Image image = (Image)imageCache.get(descriptor); 27 | if (image == null) { 28 | image = descriptor.createImage(); 29 | imageCache.put(descriptor, image); 30 | } 31 | return image; 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/views/SaveExcludeAction.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.views; 2 | 3 | import org.eclipse.jface.action.Action; 4 | import org.eclipse.jface.dialogs.MessageDialog; 5 | import org.eclipse.swt.widgets.Shell; 6 | import org.eclipse.ui.PlatformUI; 7 | import org.eclipse.ui.actions.ActionFactory.IWorkbenchAction; 8 | 9 | public class SaveExcludeAction extends Action implements IWorkbenchAction{ 10 | 11 | private static final String saveID = "edu.tamu.aser.tide.views.SaveExcludeAction"; 12 | 13 | public SaveExcludeAction() { 14 | setId(saveID); 15 | } 16 | 17 | public void run() { 18 | Shell shell = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getShell(); 19 | String dialogBoxTitle = "Message!"; 20 | String message = "You clicked something!"; 21 | MessageDialog.openInformation(shell, dialogBoxTitle, message); 22 | }; 23 | 24 | @Override 25 | public void dispose() { 26 | // TODO Auto-generated method stub 27 | 28 | } 29 | 30 | } 31 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/views/SubTraceNode.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.views; 2 | 3 | import java.util.ArrayList; 4 | import java.util.LinkedList; 5 | 6 | import org.eclipse.jface.resource.ImageDescriptor; 7 | 8 | public class SubTraceNode extends TreeNode{ 9 | protected String name; 10 | protected LinkedList events; 11 | 12 | public SubTraceNode(TreeNode parent, String name, LinkedList trace) { 13 | super(parent); 14 | this.name = name; 15 | this.events = trace; 16 | createEventChildren(events); 17 | } 18 | 19 | @SuppressWarnings("unchecked") 20 | private void createEventChildren(LinkedList events) { 21 | for (String event : events) { 22 | EventNode eventNode = new EventNode(this, event); 23 | super.children.add(eventNode); 24 | } 25 | 26 | } 27 | 28 | @Override 29 | public String getName() { 30 | return name; 31 | } 32 | 33 | @Override 34 | public ImageDescriptor getImage() { 35 | return null; 36 | } 37 | 38 | @Override 39 | protected void createChildren(ArrayList> events, String fix) { 40 | // TODO Auto-generated method stub 41 | } 42 | 43 | } 44 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/src/edu/tamu/aser/tide/views/TreeNode.java: -------------------------------------------------------------------------------- 1 | package edu.tamu.aser.tide.views; 2 | 3 | import java.util.ArrayList; 4 | import java.util.LinkedList; 5 | 6 | public abstract class TreeNode implements ITreeNode{ 7 | protected TreeNode parent; 8 | protected boolean isNewest = false; 9 | protected ArrayList children = new ArrayList<>(); 10 | 11 | public TreeNode(TreeNode parent) { 12 | this.parent = parent; 13 | } 14 | 15 | public boolean hasChildren() { 16 | return children.size() > 0; 17 | } 18 | 19 | public ITreeNode getParent() { 20 | return parent; 21 | } 22 | 23 | public ArrayList getChildren() { 24 | return children; 25 | } 26 | 27 | 28 | public boolean isNewest() { 29 | return this.isNewest; 30 | } 31 | 32 | /* subclasses should override this method and add the child nodes */ 33 | protected abstract void createChildren(ArrayList> trace, String fix); 34 | 35 | } -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/swt.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/funemy/SWORD/a6554fc5c266f4e360dbd2af340963f17ad4339c/edu.tamu.cse.aser.sword/swt.jar -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/tsp_report: -------------------------------------------------------------------------------- 1 | TspSolver:79 2 | TspSolver:506 3 | TspSolver:547 4 | TspSolver:526 5 | TspSolver:548 6 | TspSolver:204 7 | TspSolver:523 8 | TspSolver:546 9 | TspSolver:205 10 | TspSolver:532 11 | TspSolver:455 12 | TspSolver:478 13 | TspSolver:115 14 | TspSolver:530 15 | TspSolver:178 16 | TspSolver:497 17 | TspSolver:531 18 | TspSolver:110 19 | TspSolver:496 20 | TspSolver:493 21 | TspSolver:293 22 | TspSolver:69 23 | TspSolver:85 24 | TspSolver:84 25 | TspSolver:83 26 | TspSolver:538 27 | TspSolver:82 28 | TspSolver:537 29 | TspSolver:479 30 | TspSolver:534 31 | TspSolver:117 32 | TspSolver:488 33 | TspSolver:489 34 | TspSolver:104 35 | TspSolver:167 36 | TspSolver:520 37 | TspSolver:542 38 | TspSolver:168 39 | TspSolver:484 40 | TspSolver:440 41 | TspSolver:540 42 | TspSolver:485 43 | TspSolver:163 44 | TspSolver:483 45 | TspSolver:164 46 | TspSolver:481 47 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/tsp_traver_cls: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /edu.tamu.cse.aser.sword/weblech_traver_cls: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | --------------------------------------------------------------------------------