├── .ant-targets-build.xml
├── .classpath
├── .gitattributes
├── .github
└── workflows
│ └── ant.yml
├── .gitignore
├── .project
├── .travis.yml
├── LICENSE
├── README.md
├── boa-master.code-workspace
├── boa.bat
├── boa.sh
├── build.xml
├── checkstyle-suppress.xml
├── checkstyle.xml
├── compile.bat
├── compile.sh
├── conf
└── log4j.properties
├── dataset
├── .gitignore
├── large_sample
│ └── repos
│ │ ├── Thread-10-page-270.json
│ │ ├── Thread-10-page-271.json
│ │ ├── Thread-10-page-272.json
│ │ ├── Thread-10-page-273.json
│ │ ├── Thread-10-page-274.json
│ │ ├── Thread-10-page-275.json
│ │ ├── Thread-10-page-276.json
│ │ ├── Thread-10-page-277.json
│ │ ├── Thread-10-page-278.json
│ │ ├── Thread-10-page-279.json
│ │ ├── Thread-10-page-60.json
│ │ ├── Thread-10-page-61.json
│ │ ├── Thread-10-page-62.json
│ │ ├── Thread-10-page-63.json
│ │ ├── Thread-10-page-64.json
│ │ ├── Thread-10-page-65.json
│ │ ├── Thread-10-page-66.json
│ │ ├── Thread-10-page-67.json
│ │ ├── Thread-10-page-68.json
│ │ ├── Thread-10-page-69.json
│ │ ├── Thread-11-page-170.json
│ │ ├── Thread-11-page-171.json
│ │ ├── Thread-11-page-172.json
│ │ ├── Thread-11-page-173.json
│ │ ├── Thread-11-page-174.json
│ │ ├── Thread-11-page-175.json
│ │ ├── Thread-11-page-176.json
│ │ ├── Thread-11-page-177.json
│ │ ├── Thread-11-page-178.json
│ │ ├── Thread-11-page-179.json
│ │ ├── Thread-12-page-120.json
│ │ ├── Thread-12-page-121.json
│ │ ├── Thread-12-page-122.json
│ │ ├── Thread-12-page-123.json
│ │ ├── Thread-12-page-124.json
│ │ ├── Thread-12-page-125.json
│ │ ├── Thread-12-page-126.json
│ │ ├── Thread-12-page-127.json
│ │ ├── Thread-12-page-128.json
│ │ ├── Thread-12-page-129.json
│ │ ├── Thread-13-page-410.json
│ │ ├── Thread-13-page-411.json
│ │ ├── Thread-13-page-412.json
│ │ ├── Thread-13-page-413.json
│ │ ├── Thread-13-page-414.json
│ │ ├── Thread-13-page-415.json
│ │ ├── Thread-13-page-416.json
│ │ ├── Thread-13-page-417.json
│ │ ├── Thread-13-page-418.json
│ │ ├── Thread-13-page-419.json
│ │ ├── Thread-13-page-971.json
│ │ ├── Thread-14-page-300.json
│ │ ├── Thread-14-page-301.json
│ │ ├── Thread-14-page-302.json
│ │ ├── Thread-14-page-303.json
│ │ ├── Thread-14-page-304.json
│ │ ├── Thread-14-page-305.json
│ │ ├── Thread-14-page-306.json
│ │ ├── Thread-14-page-307.json
│ │ ├── Thread-14-page-308.json
│ │ ├── Thread-14-page-309.json
│ │ ├── Thread-14-page-415.json
│ │ ├── Thread-15-page-172.json
│ │ ├── Thread-16-page-220.json
│ │ ├── Thread-16-page-221.json
│ │ ├── Thread-16-page-222.json
│ │ ├── Thread-16-page-223.json
│ │ ├── Thread-16-page-224.json
│ │ ├── Thread-16-page-225.json
│ │ ├── Thread-16-page-226.json
│ │ ├── Thread-16-page-227.json
│ │ ├── Thread-16-page-228.json
│ │ ├── Thread-16-page-229.json
│ │ ├── Thread-17-page-222.json
│ │ ├── Thread-8-page-109.json
│ │ ├── Thread-8-page-11.json
│ │ ├── Thread-8-page-110.json
│ │ ├── Thread-8-page-111.json
│ │ ├── Thread-8-page-112.json
│ │ ├── Thread-8-page-113.json
│ │ ├── Thread-8-page-114.json
│ │ ├── Thread-8-page-115.json
│ │ ├── Thread-8-page-116.json
│ │ ├── Thread-8-page-117.json
│ │ ├── Thread-8-page-118.json
│ │ ├── Thread-8-page-275.json
│ │ ├── Thread-8-page-83.json
│ │ ├── Thread-9-page-17.json
│ │ ├── Thread-9-page-301.json
│ │ ├── Thread-9-page-54.json
│ │ ├── Thread-9-page-70.json
│ │ ├── Thread-9-page-71.json
│ │ ├── Thread-9-page-72.json
│ │ ├── Thread-9-page-73.json
│ │ ├── Thread-9-page-74.json
│ │ ├── Thread-9-page-75.json
│ │ ├── Thread-9-page-76.json
│ │ ├── Thread-9-page-77.json
│ │ ├── Thread-9-page-78.json
│ │ └── Thread-9-page-79.json
└── small_sample
│ └── repos
│ ├── Thread-13-page-971.json
│ ├── Thread-14-page-415.json
│ ├── Thread-15-page-172.json
│ ├── Thread-17-page-222.json
│ ├── Thread-8-page-11.json
│ ├── Thread-8-page-275.json
│ ├── Thread-8-page-83.json
│ ├── Thread-9-page-17.json
│ ├── Thread-9-page-301.json
│ └── Thread-9-page-54.json
├── doc
└── dev
│ ├── img
│ ├── boa_evaluator_output.png
│ ├── eclipse_library_tab.png
│ ├── eclipse_package_explorer_final.png
│ ├── eclipse_runconfig_arguments.png
│ ├── eclipse_runconfig_main.png
│ ├── eclipse_source_tab_final.png
│ ├── intellij_clone_repo.png
│ ├── intellij_dependencies_tab.png
│ ├── intellij_evaluator_output.png
│ ├── intellij_project_explorer_final.png
│ ├── intellij_runconfig_main.png
│ └── intellij_source_tab_final.png
│ └── setup.md
├── evaluate.bat
├── evaluate.sh
├── failingtest
├── codegen
│ ├── assign-func-params.boa
│ ├── curry.boa
│ └── quantified-func-call.boa
└── typecheck
│ ├── errors
│ └── quant-missing-use.boa
│ └── forward-declare-func.boa
├── lib
├── antlr-4.5-complete.jar
├── checkstyle-6.19-all.jar
├── commons-cli-1.2.jar
├── commons-lang-2.4.jar
├── commons-math-2.1.jar
├── datagen
│ ├── app-1.3.200-v20130910-1609-javadoc.jar
│ ├── app-1.3.200-v20130910-1609-sources.jar
│ ├── app-1.3.200-v20130910-1609.jar
│ ├── com.jcraft.jsch-all-1.0.1.release.jar
│ ├── commons-beanutils-1.8.3.jar
│ ├── commons-collections-3.2.1.jar
│ ├── commons-configuration-1.6.jar
│ ├── commons-io-2.4.jar
│ ├── commons-logging-1.1.1.jar
│ ├── cssparser-0.9.23-sources.jar
│ ├── cssparser-0.9.23.jar
│ ├── dom4j-2.0.2-sources.jar
│ ├── dom4j-2.0.2.jar
│ ├── eclipse.jdt.core.jar
│ ├── ezmorph-1.0.6.jar
│ ├── gson-2.7.jar
│ ├── gson-gson-parent-2.7.zip
│ ├── jena-core-2.7.3.jar
│ ├── jena-iri-0.9.3.jar
│ ├── jsoup-1.10.3-javadoc.jar
│ ├── jsoup-1.10.3-sources.jar
│ ├── jsoup-1.10.3.jar
│ ├── log4j-1.2.16.jar
│ ├── maven-model-3.0-sources.jar
│ ├── maven-model-3.0.jar
│ ├── org.eclipse.core.contenttype_3.4.100.dist.jar
│ ├── org.eclipse.core.filesystem_1.6.0.v20160503-1608.jar
│ ├── org.eclipse.core.jobs_3.5.101.dist.jar
│ ├── org.eclipse.core.resources_3.7.101.dist.jar
│ ├── org.eclipse.core.runtime_3.7.0.dist.jar
│ ├── org.eclipse.dltk.core_5.7.1.201703020501.jar
│ ├── org.eclipse.equinox.common_3.6.0.dist.jar
│ ├── org.eclipse.equinox.preferences_3.4.2.dist.jar
│ ├── org.eclipse.equinox.registry.source_3.5.100.v20110502.jar
│ ├── org.eclipse.equinox.registry_3.5.100.v20110502.jar
│ ├── org.eclipse.jgit-4.0.1.201506240215-r-javadoc.jar
│ ├── org.eclipse.jgit-4.0.1.201506240215-r-sources.jar
│ ├── org.eclipse.jgit-4.0.1.201506240215-r.jar
│ ├── org.eclipse.osgi.source_3.9.1.v20130814-1242.jar
│ ├── org.eclipse.osgi_3.9.1.v20130814-1242.jar
│ ├── org.eclipse.php.core.parser.source_4.3.1.201703301037.jar
│ ├── org.eclipse.php.core.parser_4.3.1.201703301037.jar
│ ├── org.eclipse.php.core.source_4.3.1.201703301037.jar
│ ├── org.eclipse.php.core_4.3.1.201703301037.jar
│ ├── org.eclipse.text-3.5.101-sources.jar
│ ├── org.eclipse.text-3.5.101.jar
│ ├── org.eclipse.wst.jsdt.core_1.3.1.v201401291437.jar
│ ├── plexus-utils-2.0.5-sources.jar
│ ├── plexus-utils-2.0.5.jar
│ ├── protobuf-2.5.0.zip
│ ├── protobuf-java-2.5.0.jar
│ ├── rhino-1.7.7.1-sources.zip
│ ├── rhino-1.7.7.1.jar
│ ├── sac.jar
│ ├── sacjavadoc-1.3.zip
│ ├── slf4j-api-1.4.3.jar
│ ├── slf4j-log4j12-1.4.3.jar
│ ├── svnkit-1.7.6.jar
│ ├── trove-3.0.3-src.jar
│ ├── trove-3.0.3.jar
│ ├── xercesImpl.jar
│ ├── xml-apis.jar
│ └── xml-security-impl-1.0.jar
├── evaluator
│ ├── com.springsource.org.codehaus.jackson-1.4.2.jar
│ ├── com.springsource.org.codehaus.jackson.mapper-1.4.2.jar
│ ├── commons-configuration-1.6.jar
│ ├── commons-httpclient-3.1.0.redhat-7.jar
│ ├── commons-io-2.4.jar
│ └── jackson-mapper-asl-1.9.13.jar
├── hadoop-core-1.0.4.jar
├── hadoop-release-1.0.4.zip
├── hamcrest-all-1.3-javadoc.jar
├── hamcrest-all-1.3-sources.jar
├── hamcrest-all-1.3.jar
├── hamcrest-core-1.3-javadoc.jar
├── hamcrest-core-1.3-sources.jar
├── hamcrest-core-1.3.jar
├── junit-4.11-javadoc.jar
├── junit-4.11-sources.jar
├── junit-4.11.jar
└── mrunit-0.9.0-incubating-hadoop1.jar
├── rtlib
├── ST-4.0.8.jar
├── antlr-runtime-4.5.jar
├── commons-cli-1.2.jar
├── log4j-1.2.15.jar
├── protobuf-java-2.5.0.jar
└── scannotation-1.0.3.jar
├── src
├── antlr
│ ├── Boa.g4
│ └── BoaNoActions.g4
├── compiled-proto
│ └── boa
│ │ └── types
│ │ ├── Ast.java
│ │ ├── Code.java
│ │ ├── Control.java
│ │ ├── Diff.java
│ │ ├── Graph.java
│ │ ├── Issues.java
│ │ ├── Shared.java
│ │ └── Toplevel.java
├── java
│ ├── boa
│ │ ├── BoaMain.java
│ │ ├── aggregators
│ │ │ ├── Aggregator.java
│ │ │ ├── AggregatorSpec.java
│ │ │ ├── BottomAggregator.java
│ │ │ ├── BottomOrTopAggregator.java
│ │ │ ├── CollectionAggregator.java
│ │ │ ├── ConfidenceIntervalAggregator.java
│ │ │ ├── CountingSet.java
│ │ │ ├── DistinctAggregator.java
│ │ │ ├── FinishedException.java
│ │ │ ├── FloatHistogramAggregator.java
│ │ │ ├── FloatMeanAggregator.java
│ │ │ ├── FloatQuantileAggregator.java
│ │ │ ├── FloatSumAggregator.java
│ │ │ ├── GraphAggregator.java
│ │ │ ├── GraphCSVAggregator.java
│ │ │ ├── GraphvizAggregator.java
│ │ │ ├── HistogramAggregator.java
│ │ │ ├── IntHistogramAggregator.java
│ │ │ ├── IntMeanAggregator.java
│ │ │ ├── IntQuantileAggregator.java
│ │ │ ├── IntSumAggregator.java
│ │ │ ├── KurtosisAggregator.java
│ │ │ ├── LogAggregator.java
│ │ │ ├── MaximumAggregator.java
│ │ │ ├── MeanAggregator.java
│ │ │ ├── MedianAggregator.java
│ │ │ ├── MinOrMaxAggregator.java
│ │ │ ├── MinimumAggregator.java
│ │ │ ├── Pair.java
│ │ │ ├── PreconditionAggregator.java
│ │ │ ├── QuantileAggregator.java
│ │ │ ├── SetAggregator.java
│ │ │ ├── SkewnessAggregator.java
│ │ │ ├── SortedCountingSet.java
│ │ │ ├── StDevAggregator.java
│ │ │ ├── StatisticsAggregator.java
│ │ │ ├── TopAggregator.java
│ │ │ ├── UniqueAggregator.java
│ │ │ ├── VarianceAggregator.java
│ │ │ └── WeightedString.java
│ │ ├── compiler
│ │ │ ├── BoaCompiler.java
│ │ │ ├── FunctionTrie.java
│ │ │ ├── SymbolTable.java
│ │ │ ├── TypeCheckException.java
│ │ │ ├── ast
│ │ │ │ ├── Call.java
│ │ │ │ ├── Comparison.java
│ │ │ │ ├── Component.java
│ │ │ │ ├── Composite.java
│ │ │ │ ├── Conjunction.java
│ │ │ │ ├── EnumBodyDeclaration.java
│ │ │ │ ├── Factor.java
│ │ │ │ ├── Identifier.java
│ │ │ │ ├── Index.java
│ │ │ │ ├── Node.java
│ │ │ │ ├── Operand.java
│ │ │ │ ├── Pair.java
│ │ │ │ ├── Program.java
│ │ │ │ ├── Selector.java
│ │ │ │ ├── Start.java
│ │ │ │ ├── Term.java
│ │ │ │ ├── UnaryFactor.java
│ │ │ │ ├── expressions
│ │ │ │ │ ├── Expression.java
│ │ │ │ │ ├── FixPExpression.java
│ │ │ │ │ ├── FunctionExpression.java
│ │ │ │ │ ├── ParenExpression.java
│ │ │ │ │ ├── SimpleExpr.java
│ │ │ │ │ ├── TraversalExpression.java
│ │ │ │ │ └── VisitorExpression.java
│ │ │ │ ├── literals
│ │ │ │ │ ├── CharLiteral.java
│ │ │ │ │ ├── FloatLiteral.java
│ │ │ │ │ ├── ILiteral.java
│ │ │ │ │ ├── IntegerLiteral.java
│ │ │ │ │ ├── StringLiteral.java
│ │ │ │ │ └── TimeLiteral.java
│ │ │ │ ├── statements
│ │ │ │ │ ├── AssignmentStatement.java
│ │ │ │ │ ├── Block.java
│ │ │ │ │ ├── BreakStatement.java
│ │ │ │ │ ├── ContinueStatement.java
│ │ │ │ │ ├── DoStatement.java
│ │ │ │ │ ├── EmitStatement.java
│ │ │ │ │ ├── ExistsStatement.java
│ │ │ │ │ ├── ExprStatement.java
│ │ │ │ │ ├── FixPStatement.java
│ │ │ │ │ ├── ForStatement.java
│ │ │ │ │ ├── ForeachStatement.java
│ │ │ │ │ ├── IfAllStatement.java
│ │ │ │ │ ├── IfStatement.java
│ │ │ │ │ ├── PostfixStatement.java
│ │ │ │ │ ├── ReturnStatement.java
│ │ │ │ │ ├── Statement.java
│ │ │ │ │ ├── StopStatement.java
│ │ │ │ │ ├── SwitchCase.java
│ │ │ │ │ ├── SwitchStatement.java
│ │ │ │ │ ├── TraverseStatement.java
│ │ │ │ │ ├── TypeDecl.java
│ │ │ │ │ ├── VarDeclStatement.java
│ │ │ │ │ ├── VisitStatement.java
│ │ │ │ │ └── WhileStatement.java
│ │ │ │ └── types
│ │ │ │ │ ├── AbstractType.java
│ │ │ │ │ ├── ArrayType.java
│ │ │ │ │ ├── EnumType.java
│ │ │ │ │ ├── FixPType.java
│ │ │ │ │ ├── FunctionType.java
│ │ │ │ │ ├── MapType.java
│ │ │ │ │ ├── OutputType.java
│ │ │ │ │ ├── QueueType.java
│ │ │ │ │ ├── SetType.java
│ │ │ │ │ ├── StackType.java
│ │ │ │ │ ├── TraversalType.java
│ │ │ │ │ ├── TupleType.java
│ │ │ │ │ └── VisitorType.java
│ │ │ ├── listeners
│ │ │ │ ├── BoaErrorListener.java
│ │ │ │ ├── LexerErrorListener.java
│ │ │ │ └── ParserErrorListener.java
│ │ │ ├── transforms
│ │ │ │ ├── ASTFactory.java
│ │ │ │ ├── InheritedAttributeTransformer.java
│ │ │ │ ├── LocalAggregationTransformer.java
│ │ │ │ ├── LocalArgumentTransformer.java
│ │ │ │ ├── RecursiveFunctionTransformer.java
│ │ │ │ ├── VariableDeclRenameTransformer.java
│ │ │ │ ├── VariableRenameTransformer.java
│ │ │ │ ├── VisitorDesugar.java
│ │ │ │ └── VisitorOptimizingTransformer.java
│ │ │ └── visitors
│ │ │ │ ├── ASTPrintingVisitor.java
│ │ │ │ ├── AbstractCodeGeneratingVisitor.java
│ │ │ │ ├── AbstractVisitor.java
│ │ │ │ ├── AbstractVisitorBase.java
│ │ │ │ ├── AbstractVisitorNoArgNoRet.java
│ │ │ │ ├── AbstractVisitorNoReturn.java
│ │ │ │ ├── CFGBuildingVisitor.java
│ │ │ │ ├── CallFindingVisitor.java
│ │ │ │ ├── CodeGeneratingVisitor.java
│ │ │ │ ├── IdentifierFindingVisitor.java
│ │ │ │ ├── IsFunctionVisitor.java
│ │ │ │ ├── PrettyPrintVisitor.java
│ │ │ │ ├── TaskClassifyingVisitor.java
│ │ │ │ ├── TypeCheckingVisitor.java
│ │ │ │ ├── VisitClassifier.java
│ │ │ │ └── analysis
│ │ │ │ ├── CallGraphAnalysis.java
│ │ │ │ ├── CreateNodeId.java
│ │ │ │ ├── DataFlowSensitivityAnalysis.java
│ │ │ │ ├── InformationAnalysis.java
│ │ │ │ ├── LocalMayAliasAnalysis.java
│ │ │ │ └── LoopSensitivityAnalysis.java
│ │ ├── datagen
│ │ │ ├── ASTSeqSort.java
│ │ │ ├── BoaGenerator.java
│ │ │ ├── CacheGithubIssues.java
│ │ │ ├── CacheGithubJSON.java
│ │ │ ├── CacheJSON.java
│ │ │ ├── DefaultProperties.java
│ │ │ ├── MapFileGen.java
│ │ │ ├── SeqCombiner.java
│ │ │ ├── SeqRepoImporter.java
│ │ │ ├── dependencies
│ │ │ │ ├── DependencyMangementUtil.java
│ │ │ │ ├── GradleFile.java
│ │ │ │ └── PomFile.java
│ │ │ ├── forges
│ │ │ │ ├── github
│ │ │ │ │ ├── Config.java
│ │ │ │ │ ├── DuplicateRepoRemover.java
│ │ │ │ │ ├── DuplicateRepoWorker.java
│ │ │ │ │ ├── GetGithubRepoByUser.java
│ │ │ │ │ ├── GetReposByLanguage.java
│ │ │ │ │ ├── GitHubIssuesDownloader.java
│ │ │ │ │ ├── GitHubJsonRetriever.java
│ │ │ │ │ ├── GitHubJsonRetrieverWorker.java
│ │ │ │ │ ├── GitHubRepoBareDownloader.java
│ │ │ │ │ ├── GitHubRepoDownloader.java
│ │ │ │ │ ├── GitHubRepoDownloaderWorker.java
│ │ │ │ │ ├── GithubLanguageDownloadMaster.java
│ │ │ │ │ ├── GithubRepositoryNameDownloader.java
│ │ │ │ │ ├── IssueDownloadWorker.java
│ │ │ │ │ ├── IssueMetaData.java
│ │ │ │ │ ├── JsonSplitter.java
│ │ │ │ │ ├── LanguageDownloadWorker.java
│ │ │ │ │ ├── ListSplitter.java
│ │ │ │ │ ├── LocalGitSequenceGenerator.java
│ │ │ │ │ ├── MetaDataDownLoader.java
│ │ │ │ │ ├── MetaDataDownloadWorker.java
│ │ │ │ │ ├── MetaDataMaster.java
│ │ │ │ │ ├── MetaDataWorker.java
│ │ │ │ │ ├── MetadataCacher.java
│ │ │ │ │ ├── MetadataLangCacher.java
│ │ │ │ │ ├── RepoMetadata.java
│ │ │ │ │ ├── RepositoryCloner.java
│ │ │ │ │ ├── RepositoryClonerWorker.java
│ │ │ │ │ ├── Token.java
│ │ │ │ │ ├── TokenList.java
│ │ │ │ │ └── TokenTest.java
│ │ │ │ └── sfnet
│ │ │ │ │ └── JSONProjectCacher.java
│ │ │ ├── scm
│ │ │ │ ├── AbstractCommit.java
│ │ │ │ ├── AbstractConnector.java
│ │ │ │ ├── GitCommit.java
│ │ │ │ └── GitConnector.java
│ │ │ ├── treed
│ │ │ │ ├── Pair.java
│ │ │ │ ├── PairDescendingOrder.java
│ │ │ │ ├── StringProcessor.java
│ │ │ │ ├── TreedBuilder.java
│ │ │ │ ├── TreedConstants.java
│ │ │ │ ├── TreedMapper.java
│ │ │ │ └── TreedUtils.java
│ │ │ └── util
│ │ │ │ ├── CssVisitor.java
│ │ │ │ ├── FileIO.java
│ │ │ │ ├── Forker.java
│ │ │ │ ├── ForkerWorker.java
│ │ │ │ ├── HtmlVisitor.java
│ │ │ │ ├── JavaASTUtil.java
│ │ │ │ ├── JavaErrorCheckVisitor.java
│ │ │ │ ├── JavaScriptErrorCheckVisitor.java
│ │ │ │ ├── JavaScriptVisitor.java
│ │ │ │ ├── JavaVisitor.java
│ │ │ │ ├── OutputStatusChecker.java
│ │ │ │ ├── PHPErrorCheckVisitor.java
│ │ │ │ ├── PHPVisitor.java
│ │ │ │ ├── Properties.java
│ │ │ │ └── XMLVisitor.java
│ │ ├── evaluator
│ │ │ └── BoaEvaluator.java
│ │ ├── functions
│ │ │ ├── BoaAstIntrinsics.java
│ │ │ ├── BoaCasts.java
│ │ │ ├── BoaCollectingVisitor.java
│ │ │ ├── BoaCountingVisitor.java
│ │ │ ├── BoaGraphIntrinsics.java
│ │ │ ├── BoaIntrinsics.java
│ │ │ ├── BoaMathIntrinsics.java
│ │ │ ├── BoaMetricIntrinsics.java
│ │ │ ├── BoaModifierIntrinsics.java
│ │ │ ├── BoaNormalFormIntrinsics.java
│ │ │ ├── BoaSortIntrinsics.java
│ │ │ ├── BoaSpecialIntrinsics.java
│ │ │ ├── BoaStringIntrinsics.java
│ │ │ ├── BoaTimeIntrinsics.java
│ │ │ ├── FunctionSpec.java
│ │ │ └── langmode
│ │ │ │ ├── JavaLangMode.java
│ │ │ │ └── LangMode.java
│ │ ├── graphs
│ │ │ ├── Edge.java
│ │ │ ├── Node.java
│ │ │ ├── cdg
│ │ │ │ ├── CDG.java
│ │ │ │ ├── CDGEdge.java
│ │ │ │ └── CDGNode.java
│ │ │ ├── cfg
│ │ │ │ ├── CFG.java
│ │ │ │ ├── CFGEdge.java
│ │ │ │ └── CFGNode.java
│ │ │ ├── ddg
│ │ │ │ ├── DDG.java
│ │ │ │ ├── DDGEdge.java
│ │ │ │ └── DDGNode.java
│ │ │ ├── pdg
│ │ │ │ ├── PDG.java
│ │ │ │ ├── PDGEdge.java
│ │ │ │ └── PDGNode.java
│ │ │ ├── slicers
│ │ │ │ ├── CFGSlicer.java
│ │ │ │ └── PDGSlicer.java
│ │ │ └── trees
│ │ │ │ ├── DTree.java
│ │ │ │ ├── PDTree.java
│ │ │ │ ├── TreeEdge.java
│ │ │ │ └── TreeNode.java
│ │ ├── io
│ │ │ ├── BoaOutputCommitter.java
│ │ │ ├── BoaOutputFormat.java
│ │ │ ├── EmitKey.java
│ │ │ └── EmitValue.java
│ │ ├── runtime
│ │ │ ├── BoaAbstractFixP.java
│ │ │ ├── BoaAbstractTraversal.java
│ │ │ ├── BoaAbstractVisitor.java
│ │ │ ├── BoaCombiner.java
│ │ │ ├── BoaMapper.java
│ │ │ ├── BoaPartitioner.java
│ │ │ ├── BoaReducer.java
│ │ │ └── BoaRunner.java
│ │ └── types
│ │ │ ├── BoaAny.java
│ │ │ ├── BoaArray.java
│ │ │ ├── BoaBool.java
│ │ │ ├── BoaEnum.java
│ │ │ ├── BoaFixP.java
│ │ │ ├── BoaFloat.java
│ │ │ ├── BoaFunction.java
│ │ │ ├── BoaInt.java
│ │ │ ├── BoaMap.java
│ │ │ ├── BoaName.java
│ │ │ ├── BoaProtoList.java
│ │ │ ├── BoaProtoMap.java
│ │ │ ├── BoaProtoTuple.java
│ │ │ ├── BoaQueue.java
│ │ │ ├── BoaScalar.java
│ │ │ ├── BoaSet.java
│ │ │ ├── BoaStack.java
│ │ │ ├── BoaString.java
│ │ │ ├── BoaTable.java
│ │ │ ├── BoaTime.java
│ │ │ ├── BoaTraversal.java
│ │ │ ├── BoaTuple.java
│ │ │ ├── BoaType.java
│ │ │ ├── BoaTypeVar.java
│ │ │ ├── BoaVarargs.java
│ │ │ ├── BoaVisitor.java
│ │ │ └── proto
│ │ │ ├── ASTRootProtoTuple.java
│ │ │ ├── AttachmentProtoTuple.java
│ │ │ ├── AttributeProtoTuple.java
│ │ │ ├── CDGEdgeProtoTuple.java
│ │ │ ├── CDGNodeProtoTuple.java
│ │ │ ├── CDGProtoTuple.java
│ │ │ ├── CFGEdgeProtoTuple.java
│ │ │ ├── CFGNodeProtoTuple.java
│ │ │ ├── CFGProtoTuple.java
│ │ │ ├── CFGSlicerProtoTuple.java
│ │ │ ├── ChangedFileProtoTuple.java
│ │ │ ├── CodeRepositoryProtoTuple.java
│ │ │ ├── CommentProtoTuple.java
│ │ │ ├── CommentsRootProtoTuple.java
│ │ │ ├── DDGEdgeProtoTuple.java
│ │ │ ├── DDGNodeProtoTuple.java
│ │ │ ├── DDGProtoTuple.java
│ │ │ ├── DTreeProtoTuple.java
│ │ │ ├── DeclarationProtoTuple.java
│ │ │ ├── DocumentProtoTuple.java
│ │ │ ├── ElementProtoTuple.java
│ │ │ ├── ExpressionProtoTuple.java
│ │ │ ├── IssueCommentProtoTuple.java
│ │ │ ├── IssueProtoTuple.java
│ │ │ ├── IssueRepositoryProtoTuple.java
│ │ │ ├── IssuesRootProtoTuple.java
│ │ │ ├── MethodProtoTuple.java
│ │ │ ├── ModifierProtoTuple.java
│ │ │ ├── NamespaceProtoTuple.java
│ │ │ ├── PDGEdgeProtoTuple.java
│ │ │ ├── PDGNodeProtoTuple.java
│ │ │ ├── PDGProtoTuple.java
│ │ │ ├── PDGSlicerProtoTuple.java
│ │ │ ├── PDTreeProtoTuple.java
│ │ │ ├── PersonProtoTuple.java
│ │ │ ├── PositionInfoProtoTuple.java
│ │ │ ├── ProjectProtoTuple.java
│ │ │ ├── RevisionProtoTuple.java
│ │ │ ├── StatementProtoTuple.java
│ │ │ ├── TreeNodeProtoTuple.java
│ │ │ ├── TypeProtoTuple.java
│ │ │ ├── VariableProtoTuple.java
│ │ │ └── enums
│ │ │ ├── ChangeKindProtoMap.java
│ │ │ ├── CommentKindProtoMap.java
│ │ │ ├── EdgeLabelProtoMap.java
│ │ │ ├── EdgeTypeProtoMap.java
│ │ │ ├── ElementKindProtoMap.java
│ │ │ ├── ExpressionKindProtoMap.java
│ │ │ ├── FileKindProtoMap.java
│ │ │ ├── ForgeKindProtoMap.java
│ │ │ ├── IssueLabelProtoMap.java
│ │ │ ├── IssuePriorityProtoMap.java
│ │ │ ├── IssueStatusProtoMap.java
│ │ │ ├── ModifierKindProtoMap.java
│ │ │ ├── NodeTypeProtoMap.java
│ │ │ ├── RepositoryKindProtoMap.java
│ │ │ ├── ScopeProtoMap.java
│ │ │ ├── StatementKindProtoMap.java
│ │ │ ├── TraversalDirectionProtoMap.java
│ │ │ ├── TraversalKindProtoMap.java
│ │ │ ├── TypeKindProtoMap.java
│ │ │ └── VisibilityProtoMap.java
│ └── com
│ │ └── googlecode
│ │ └── protobuf
│ │ └── format
│ │ ├── JsonFormat.java
│ │ └── JsonFormatMin.java
├── proto
│ ├── ast.proto
│ ├── code.proto
│ ├── control.proto
│ ├── diff.proto
│ ├── graph.proto
│ ├── issues.proto
│ ├── shared.proto
│ └── toplevel.proto
└── test
│ └── boa
│ └── test
│ ├── compiler
│ ├── BaseTest.java
│ ├── ProgramAnalysisGood.java
│ ├── TestCodegenGood.java
│ ├── TestGood.java
│ ├── TestInhAttr.java
│ ├── TestLexerBad.java
│ ├── TestLexerGood.java
│ ├── TestParserBad.java
│ ├── TestParserGood.java
│ ├── TestTraversalBad.java
│ ├── TestTraversalGood.java
│ ├── TestTypecheckBad.java
│ └── TestTypecheckGood.java
│ ├── datagen
│ ├── BuildSnapshotBase.java
│ ├── ProtoMessageVisitor.java
│ ├── TestBuildSnapshot1.java
│ ├── TestBuildSnapshot2.java
│ ├── TestBuildSnapshot3.java
│ ├── TestBuildSnapshot4.java
│ ├── TestBuildSnapshotFromSequenceFile.java
│ ├── TestCountChangedFiles.java
│ ├── TestGetSnapshot.java
│ ├── TestSequenceFile.java
│ ├── TestTypeFullyQualifiedName.java
│ ├── css
│ │ ├── CssBaseTest.java
│ │ ├── CssParseTest.java
│ │ └── TestStyleRule.java
│ ├── html
│ │ ├── HTMLBaseTest.java
│ │ ├── HTMLParseTest.java
│ │ ├── TestHTMLPitcureTag.java
│ │ ├── TestHtmlDocType.java
│ │ ├── TestHtmlEmbeddedWithJS.java
│ │ ├── TestHtmlFormTag.java
│ │ ├── TestHtmlTextAreaTag.java
│ │ ├── TestHtmlWithEmbeddedPHP.java
│ │ ├── TestStyleTag.java
│ │ └── TestXmlParse.java
│ ├── java
│ │ ├── ASTDumper.java
│ │ ├── DumpJava.java
│ │ ├── IASTPrinter.java
│ │ ├── ICommentsExtractor.java
│ │ ├── Indenter.java
│ │ ├── JSONStyleASTPrinter.java
│ │ ├── Java7BaseTest.java
│ │ ├── Java8BaseTest.java
│ │ ├── JavaToBoa.java
│ │ ├── TestJLSVersion.java
│ │ ├── TestJLSVersionOfChangedFile.java
│ │ ├── TestJava.java
│ │ └── UglyMathCommentsExtractor.java
│ ├── js
│ │ ├── JavaScriptBaseTest.java
│ │ ├── TestAssign.java
│ │ ├── TestDoLoop.java
│ │ ├── TestElelementGet.java
│ │ ├── TestForLoops.java
│ │ ├── TestFucntionNode.java
│ │ ├── TestInFixExpressions.java
│ │ ├── TestJavaScriptKeyWordLiteral.java
│ │ ├── TestJavaScriptSwitchStatement.java
│ │ ├── TestLabeledStatement.java
│ │ ├── TestLetNode.java
│ │ ├── TestNewExpression.java
│ │ ├── TestObjectLiteral.java
│ │ ├── TestParenthesizedExpression.java
│ │ ├── TestPropertyGet.java
│ │ ├── TestRegExpLiteral.java
│ │ ├── TestThrow.java
│ │ ├── TestTryCatch.java
│ │ ├── TestUnaryExpressions.java
│ │ ├── TestVariableDeclarationNode.java
│ │ ├── TestWhileLoop.java
│ │ ├── TestWithStatement.java
│ │ ├── TestXml.java
│ │ └── TestYield.java
│ ├── php
│ │ ├── PHPBaseTest.java
│ │ ├── PHPParseTest.java
│ │ ├── TestPHPArrayAccessNode.java
│ │ ├── TestPHPArrayCreationNode.java
│ │ ├── TestPHPAssign.java
│ │ ├── TestPHPBackTick.java
│ │ ├── TestPHPCloneExpressionNode.java
│ │ ├── TestPHPConstantDeclarationNode.java
│ │ ├── TestPHPDeclareStatementNode.java
│ │ ├── TestPHPEchoStatementNode.java
│ │ ├── TestPHPForEachStatementNode.java
│ │ ├── TestPHPFunctionDeclaration.java
│ │ ├── TestPHPGlobalStatementNode.java
│ │ ├── TestPHPGoto.java
│ │ ├── TestPHPInFixExpression.java
│ │ ├── TestPHPInclude.java
│ │ ├── TestPHPInlineHtml.java
│ │ ├── TestPHPList.java
│ │ ├── TestPHPNameSpaceDeclaration.java
│ │ ├── TestPHPParen.java
│ │ ├── TestPHPPrefixExpression.java
│ │ ├── TestPHPQuote.java
│ │ ├── TestPHPReference.java
│ │ ├── TestPHPReflectionVariable.java
│ │ ├── TestPHPStaticStatement.java
│ │ ├── TestPHPTraitNodes.java
│ │ ├── TestPHPTryCatch.java
│ │ ├── TestPHPUseStatement.java
│ │ └── TestPHPYield.java
│ ├── queries
│ │ └── TestQueries.java
│ └── xml
│ │ ├── TestAttribute.java
│ │ ├── TestNote.java
│ │ ├── TestProcessingInstructions.java
│ │ ├── TestXMLNamespace.java
│ │ └── XMLBaseTest.java
│ └── functions
│ ├── TestCdg.java
│ ├── TestCfg.java
│ ├── TestConvertToSymbolic.java
│ ├── TestDdg.java
│ ├── TestLiterals.java
│ ├── TestNormalForm.java
│ ├── TestNormalize.java
│ ├── TestPdg.java
│ ├── TestPrettyprint.java
│ └── TestReduce.java
├── templates
├── BoaJava.stg
└── BoaJavaHadoop.stg
├── test
├── cdg
│ ├── dot
│ │ ├── for-with-return
│ │ ├── if-with-return
│ │ ├── nest-for-if-with-return
│ │ ├── nest-if-with-return
│ │ ├── switch-with-return
│ │ ├── try-catch
│ │ └── while-with-return
│ └── src
│ │ ├── for-with-return
│ │ ├── if-with-return
│ │ ├── nest-for-if-with-return
│ │ ├── nest-if-with-return
│ │ ├── switch-with-return
│ │ ├── try-catch
│ │ └── while-with-return
├── cfg
│ ├── dot
│ │ ├── for
│ │ ├── for-break-at-end
│ │ ├── for-continue-at-end
│ │ ├── for-nested
│ │ ├── for-no-condition
│ │ ├── if-empty-false
│ │ ├── if-empty-true
│ │ ├── return-exp
│ │ ├── return-no-exp
│ │ ├── switch-fallthrough-complex
│ │ ├── switch-fallthrough-no-default-no-break
│ │ ├── switch-fallthrough-no-default-with-break
│ │ ├── switch-fallthrough-with-default-no-break
│ │ ├── switch-fallthrough-with-default-with-break
│ │ ├── switch-no-default-no-break
│ │ ├── switch-no-default-with-break
│ │ ├── switch-types
│ │ ├── switch-with-default-no-break
│ │ ├── switch-with-default-with-break
│ │ ├── try-no-body-no-catch-no-finally
│ │ ├── try-no-body-no-catch-with-finally
│ │ ├── try-no-body-only-catch
│ │ ├── try-no-body-only-finally
│ │ ├── try-no-body-with-catch-no-finally
│ │ ├── try-no-body-with-catch-with-finally
│ │ ├── try-with-body-no-catch-no-finally
│ │ ├── try-with-body-no-catch-with-finally
│ │ ├── try-with-body-only-catch
│ │ ├── try-with-body-only-finally
│ │ ├── try-with-body-with-catch-no-finally
│ │ ├── try-with-body-with-catch-with-finally
│ │ ├── while
│ │ └── while-conditional-break
│ └── src
│ │ ├── for
│ │ ├── for-break-at-end
│ │ ├── for-continue-at-end
│ │ ├── for-nested
│ │ ├── for-no-condition
│ │ ├── if-empty-false
│ │ ├── if-empty-true
│ │ ├── return-exp
│ │ ├── return-no-exp
│ │ ├── switch-fallthrough-complex
│ │ ├── switch-fallthrough-no-default-no-break
│ │ ├── switch-fallthrough-no-default-with-break
│ │ ├── switch-fallthrough-with-default-no-break
│ │ ├── switch-fallthrough-with-default-with-break
│ │ ├── switch-no-default-no-break
│ │ ├── switch-no-default-with-break
│ │ ├── switch-types
│ │ ├── switch-with-default-no-break
│ │ ├── switch-with-default-with-break
│ │ ├── try-no-body-no-catch-no-finally
│ │ ├── try-no-body-no-catch-with-finally
│ │ ├── try-no-body-only-catch
│ │ ├── try-no-body-only-finally
│ │ ├── try-no-body-with-catch-no-finally
│ │ ├── try-no-body-with-catch-with-finally
│ │ ├── try-with-body-no-catch-no-finally
│ │ ├── try-with-body-no-catch-with-finally
│ │ ├── try-with-body-only-catch
│ │ ├── try-with-body-only-finally
│ │ ├── try-with-body-with-catch-no-finally
│ │ ├── try-with-body-with-catch-with-finally
│ │ ├── while
│ │ └── while-conditional-break
├── codegen
│ ├── allowed-stops.boa
│ ├── array-as-map-key.boa
│ ├── arrays-non-scalar.boa
│ ├── arrays.boa
│ ├── boolean-outputs.boa
│ ├── declare-same-var.boa
│ ├── def.boa
│ ├── default-vals.boa
│ ├── div-equal.boa
│ ├── enum-use.boa
│ ├── func-return-inside-visit.boa
│ ├── func-returns-int.boa
│ ├── function-as-arg.boa
│ ├── function-calls.boa
│ ├── function-many-args.boa
│ ├── issue249.boa
│ ├── issue285.boa
│ ├── issue87.boa
│ ├── join.boa
│ ├── local.boa
│ ├── lshift-equal.boa
│ ├── map-int-index.boa
│ ├── maps.boa
│ ├── minus-equal.boa
│ ├── mod-equal.boa
│ ├── nested-func.boa
│ ├── nested-maps.boa
│ ├── no-weight.boa
│ ├── non-scalar-map.boa
│ ├── non-scalar-queue.boa
│ ├── non-scalar-set.boa
│ ├── non-scalar-stack.boa
│ ├── oneand-equal.boa
│ ├── oneor-equal.boa
│ ├── plus-equal.boa
│ ├── pp.boa
│ ├── proto-as-mapkey.boa
│ ├── random.boa
│ ├── recursive-funcs.boa
│ ├── regex.boa
│ ├── rshift-equal.boa
│ ├── same-var-names.boa
│ ├── select-from-func-return.boa
│ ├── sets.boa
│ ├── stacks.boa
│ ├── star-equal.boa
│ ├── sum-double.boa
│ ├── tuple.boa
│ ├── varswitch.boa
│ ├── while.boa
│ └── xor-equal.boa
├── datagen
│ ├── HTML
│ │ ├── DocType.HTML
│ │ ├── DocType.boa
│ │ ├── EmbeddedJavaScript.HTML
│ │ ├── EmbeddedJavaScript.boa
│ │ ├── EmbeddedPHP.HTML
│ │ ├── EmbeddedPHP.boa
│ │ ├── ExternalScript.HTML
│ │ ├── ExternalScript.boa
│ │ ├── FormTag.HTML
│ │ ├── FormTag.boa
│ │ ├── HtmlParseTest.dtd
│ │ ├── PictureTag.HTML
│ │ ├── PictureTag.boa
│ │ ├── StyleTag.HTML
│ │ ├── StyleTag.boa
│ │ ├── TextAreaTag.HTML
│ │ ├── TextAreaTag.boa
│ │ ├── xml.boa
│ │ └── xml.xml
│ ├── PHP
│ │ ├── ASSIGN_CONCATNode.boa
│ │ ├── ASSIGN_CONCATNode.php
│ │ ├── ASSIGN_POWNode.boa
│ │ ├── ASSIGN_POWNode.php
│ │ ├── ArrayAccessNode.boa
│ │ ├── ArrayAccessNode.php
│ │ ├── ArrayCreationNode.boa
│ │ ├── ArrayCreationNode.php
│ │ ├── ArrayCreationNode1.boa
│ │ ├── ArrayCreationNode1.php
│ │ ├── BackTickNode.boa
│ │ ├── BackTickNode.php
│ │ ├── CloneExpressionNode.boa
│ │ ├── CloneExpressionNode.php
│ │ ├── ConstantDeclarationNode.boa
│ │ ├── ConstantDeclarationNode.php
│ │ ├── DeclareStatementNode.boa
│ │ ├── DeclareStatementNode.php
│ │ ├── EchoStatementNode.boa
│ │ ├── EchoStatementNode.php
│ │ ├── ForEachStatementNode.boa
│ │ ├── ForEachStatementNode.php
│ │ ├── FormalParamaterNode.boa
│ │ ├── FormalParamaterNode.php
│ │ ├── FunctionDeclarationNode.boa
│ │ ├── FunctionDeclarationNode.php
│ │ ├── GlobalStatementNode.boa
│ │ ├── GlobalStatementNode.php
│ │ ├── GotoNodes.boa
│ │ ├── GotoNodes.php
│ │ ├── InFixExpressionConCat.boa
│ │ ├── InFixExpressionConCat.php
│ │ ├── InFixExpressionIdentical.boa
│ │ ├── InFixExpressionIdentical.php
│ │ ├── InFixExpressionNotIdentical.boa
│ │ ├── InFixExpressionNotIdentical.php
│ │ ├── InFixExpressionPower.boa
│ │ ├── InFixExpressionPower.php
│ │ ├── InFixExpressionSpaceShip.boa
│ │ ├── InFixExpressionSpaceShip.php
│ │ ├── InFixExpressionStringAnd.boa
│ │ ├── InFixExpressionStringAnd.php
│ │ ├── InFixExpressionStringOr.boa
│ │ ├── InFixExpressionStringOr.php
│ │ ├── InFixExpressionStringXor.boa
│ │ ├── InFixExpressionStringXor.php
│ │ ├── InLineHtml.boa
│ │ ├── InLineHtml.php
│ │ ├── Include.boa
│ │ ├── Include.php
│ │ ├── LambdaDeclarationNode.boa
│ │ ├── LambdaDeclarationNode.php
│ │ ├── List.boa
│ │ ├── List.php
│ │ ├── MethodDeclarationNode.boa
│ │ ├── MethodDeclarationNode.php
│ │ ├── NamespaceDeclarationNode.boa
│ │ ├── NamespaceDeclarationNode.php
│ │ ├── NamespaceDeclarationNode2.boa
│ │ ├── NamespaceDeclarationNode2.php
│ │ ├── NestedNamespaces.boa
│ │ ├── NestedNamespaces.php
│ │ ├── PHPParseTest.php
│ │ ├── Paren.boa
│ │ ├── Paren.php
│ │ ├── PreFixExpressionUnpack.boa
│ │ ├── PreFixExpressionUnpack.php
│ │ ├── QuoteNode.boa
│ │ ├── QuoteNode.php
│ │ ├── Reference.boa
│ │ ├── Reference.php
│ │ ├── ReflectionVariable.boa
│ │ ├── ReflectionVariable.php
│ │ ├── StaticStatementNode.boa
│ │ ├── StaticStatementNode.php
│ │ ├── TraitAliasNodes.boa
│ │ ├── TraitAliasNodes.php
│ │ ├── TraitAliasWithFullyQualifiedTraitMethodReference.boa
│ │ ├── TraitAliasWithFullyQualifiedTraitMethodReference.php
│ │ ├── TraitDeclarationNode.boa
│ │ ├── TraitDeclarationNode.php
│ │ ├── TraitPrecedenceNodes.boa
│ │ ├── TraitPrecedenceNodes.php
│ │ ├── TraitUseStatementNode.boa
│ │ ├── TraitUseStatementNode.php
│ │ ├── TryCatch.boa
│ │ ├── TryCatch.php
│ │ ├── UseStatementNode.boa
│ │ ├── UseStatementNode.php
│ │ ├── UseStatementWithAlias.boa
│ │ ├── UseStatementWithAlias.php
│ │ ├── Yield.boa
│ │ ├── Yield.php
│ │ ├── YieldFrom.boa
│ │ └── YieldFrom.php
│ ├── XML
│ │ ├── Attribute.boa
│ │ ├── Attribute.xml
│ │ ├── Namespace.boa
│ │ ├── Namespace.xml
│ │ ├── Note.boa
│ │ ├── Note.xml
│ │ ├── ProcessingInstructions.boa
│ │ └── ProcessingInstructions.xml
│ ├── css
│ │ ├── Media_Rule.boa
│ │ ├── Media_Rule.css
│ │ ├── ParseTest.css
│ │ ├── Style_Rule.boa
│ │ ├── Style_Rule.css
│ │ ├── Style_Rule1.boa
│ │ ├── Style_Rule1.css
│ │ ├── Style_Rule2.boa
│ │ ├── Style_Rule2.css
│ │ ├── Style_Rule3.boa
│ │ └── Style_Rule3.css
│ ├── expected
│ │ └── test
│ │ │ └── known-good
│ │ │ ├── annot-names.boa.txt
│ │ │ ├── annotations-define.boa.txt
│ │ │ ├── annotations-use.boa.txt
│ │ │ ├── assert.boa.txt
│ │ │ ├── binary-lit.boa.txt
│ │ │ ├── bug-fix.boa.txt
│ │ │ ├── catAp1.boa.txt
│ │ │ ├── catAp3.boa.txt
│ │ │ ├── catAp4.boa.txt
│ │ │ ├── catBp1.boa.txt
│ │ │ ├── catBp13.boa.txt
│ │ │ ├── catBp14.boa.txt
│ │ │ ├── catBp15.boa.txt
│ │ │ ├── catBp17.boa.txt
│ │ │ ├── catBp18.boa.txt
│ │ │ ├── catBp3.boa.txt
│ │ │ ├── catBp4.boa.txt
│ │ │ ├── counts.boa.txt
│ │ │ ├── counts2.boa.txt
│ │ │ ├── dead-code.boa.txt
│ │ │ ├── diamond.boa.txt
│ │ │ ├── dupe-types.boa.txt
│ │ │ ├── enhanced-for.boa.txt
│ │ │ ├── enums.boa.txt
│ │ │ ├── fields.boa.txt
│ │ │ ├── generics-define-field.boa.txt
│ │ │ ├── generics-define-method.boa.txt
│ │ │ ├── generics-define-type.boa.txt
│ │ │ ├── generics-wildcard-extends.boa.txt
│ │ │ ├── generics-wildcard-super.boa.txt
│ │ │ ├── generics-wildcard.boa.txt
│ │ │ ├── imports.boa.txt
│ │ │ ├── java-count.boa.txt
│ │ │ ├── len.boa.txt
│ │ │ └── multicatch.boa.txt
│ ├── java-wrapped
│ │ ├── AnonymousClassDeclaration.java
│ │ ├── AnonymousClassDeclaration.json
│ │ ├── ArrayAccess.java
│ │ ├── ArrayAccess.json
│ │ ├── ArrayCreation.java
│ │ ├── ArrayCreation.json
│ │ ├── ArrayInitializer.java
│ │ ├── ArrayInitializer.json
│ │ ├── Assert.java
│ │ ├── Assert.json
│ │ ├── Assignment.java
│ │ ├── Assignment.json
│ │ ├── BitAndAssignment.java
│ │ ├── BitAndAssignment.json
│ │ ├── BitOrAssignment.java
│ │ ├── BitOrAssignment.json
│ │ ├── BitXorAssignment.java
│ │ ├── BitXorAssignment.json
│ │ ├── BooleanLiteral.java
│ │ ├── BooleanLiteral.json
│ │ ├── CastExpression.java
│ │ ├── CastExpression.json
│ │ ├── CharacterLiteral.java
│ │ ├── CharacterLiteral.json
│ │ ├── ClassInstance.java
│ │ ├── ClassInstance.json
│ │ ├── ConditionalExpression.java
│ │ ├── ConditionalExpression.json
│ │ ├── DivideAssignment.java
│ │ ├── DivideAssignment.json
│ │ ├── DoStatement.java
│ │ ├── DoStatement.json
│ │ ├── DoStatementWithBreak.java
│ │ ├── DoStatementWithBreak.json
│ │ ├── DoStatementWithContinue.java
│ │ ├── DoStatementWithContinue.json
│ │ ├── EmptyStatement.java
│ │ ├── EmptyStatement.json
│ │ ├── EnhancedForStatement.java
│ │ ├── EnhancedForStatement.json
│ │ ├── ForStatement.java
│ │ ├── ForStatement.json
│ │ ├── IfStatement.java
│ │ ├── IfStatement.json
│ │ ├── InfixExpressionAnd.java
│ │ ├── InfixExpressionAnd.json
│ │ ├── InfixExpressionDivide.java
│ │ ├── InfixExpressionDivide.json
│ │ ├── InfixExpressionEquals.java
│ │ ├── InfixExpressionEquals.json
│ │ ├── InfixExpressionGreaterEqual.java
│ │ ├── InfixExpressionGreaterEqual.json
│ │ ├── InfixExpressionGreaterThen.java
│ │ ├── InfixExpressionGreaterThen.json
│ │ ├── InfixExpressionLeftShift.java
│ │ ├── InfixExpressionLeftShift.json
│ │ ├── InfixExpressionLessEqual.java
│ │ ├── InfixExpressionLessEqual.json
│ │ ├── InfixExpressionLessThen.java
│ │ ├── InfixExpressionLessThen.json
│ │ ├── InfixExpressionLogicalAnd.java
│ │ ├── InfixExpressionLogicalAnd.json
│ │ ├── InfixExpressionLogicalOr.java
│ │ ├── InfixExpressionLogicalOr.json
│ │ ├── InfixExpressionMinus.java
│ │ ├── InfixExpressionMinus.json
│ │ ├── InfixExpressionNotEqual.java
│ │ ├── InfixExpressionNotEqual.json
│ │ ├── InfixExpressionOr.java
│ │ ├── InfixExpressionOr.json
│ │ ├── InfixExpressionPlus.java
│ │ ├── InfixExpressionPlus.json
│ │ ├── InfixExpressionRemainder.java
│ │ ├── InfixExpressionRemainder.json
│ │ ├── InfixExpressionRightShiftSigned.java
│ │ ├── InfixExpressionRightShiftSigned.json
│ │ ├── InfixExpressionRightShiftUnsigned.java
│ │ ├── InfixExpressionRightShiftUnsigned.json
│ │ ├── InfixExpressionTimes.java
│ │ ├── InfixExpressionTimes.json
│ │ ├── InfixExpressionXor.java
│ │ ├── InfixExpressionXor.json
│ │ ├── InstanceOfExpression.java
│ │ ├── InstanceOfExpression.json
│ │ ├── LabeledStatement.java
│ │ ├── LabeledStatement.json
│ │ ├── LeftShiftAssignment.java
│ │ ├── LeftShiftAssignment.json
│ │ ├── MethodInvocation.java
│ │ ├── MethodInvocation.json
│ │ ├── MinusAssignment.java
│ │ ├── MinusAssignment.json
│ │ ├── ModAssignment.java
│ │ ├── ModAssignment.json
│ │ ├── ParanthesizedExpression.java
│ │ ├── ParanthesizedExpression.json
│ │ ├── PlusAssignment.java
│ │ ├── PlusAssignment.json
│ │ ├── PostFixDecExpression.java
│ │ ├── PostFixDecExpression.json
│ │ ├── PostFixIncExpression.java
│ │ ├── PostFixIncExpression.json
│ │ ├── PreFixComplimentExpression.java
│ │ ├── PreFixComplimentExpression.json
│ │ ├── PreFixDecExpression.java
│ │ ├── PreFixDecExpression.json
│ │ ├── PreFixIncExpression.java
│ │ ├── PreFixIncExpression.json
│ │ ├── PreFixLogicalNotExpression.java
│ │ ├── PreFixLogicalNotExpression.json
│ │ ├── PreFixPlusExpression.java
│ │ ├── PreFixPlusExpression.json
│ │ ├── PreFixSubExpression.java
│ │ ├── PreFixSubExpression.json
│ │ ├── QualifiedName.java
│ │ ├── QualifiedName.json
│ │ ├── ReturnNull.java
│ │ ├── ReturnNull.json
│ │ ├── ReturnNumberLiteral.java
│ │ ├── ReturnNumberLiteral.json
│ │ ├── RightShiftSignedAssignment.java
│ │ ├── RightShiftSignedAssignment.json
│ │ ├── RightShiftUnsignedAssignment.java
│ │ ├── RightShiftUnsignedAssignment.json
│ │ ├── StringLiteral.java
│ │ ├── StringLiteral.json
│ │ ├── SuperConstructorInvocation.java
│ │ ├── SuperConstructorInvocation.json
│ │ ├── SuperFieldAccess.java
│ │ ├── SuperFieldAccess.json
│ │ ├── SuperMethodInvocation.java
│ │ ├── SuperMethodInvocation.json
│ │ ├── SwitchCase.java
│ │ ├── SwitchCase.json
│ │ ├── SwitchStatement.java
│ │ ├── SwitchStatement.json
│ │ ├── SynchronizedStatement.java
│ │ ├── SynchronizedStatement.json
│ │ ├── ThisStatement.java
│ │ ├── ThisStatement.json
│ │ ├── ThrowStatement.java
│ │ ├── ThrowStatement.json
│ │ ├── TimesAssignment.java
│ │ ├── TimesAssignment.json
│ │ ├── TryStatement.java
│ │ ├── TryStatement.json
│ │ ├── TypeDeclarationStatement.java
│ │ ├── TypeDeclarationStatement.json
│ │ ├── TypeLiteral.java
│ │ ├── TypeLiteral.json
│ │ ├── VariableDeclarationStatement.java
│ │ ├── VariableDeclarationStatement.json
│ │ ├── WhileStatement.java
│ │ ├── WhileStatement.json
│ │ ├── inst-meth-ref.java
│ │ ├── inst-meth-ref.json
│ │ ├── lambda-noarg.java
│ │ ├── lambda-noarg.json
│ │ ├── lambda-noparen.java
│ │ ├── lambda-noparen.json
│ │ ├── lambda-noret.java
│ │ ├── lambda-noret.json
│ │ ├── lambda-notype.java
│ │ ├── lambda-notype.json
│ │ ├── lambda-ret.java
│ │ ├── lambda-ret.json
│ │ ├── lambda-withtype.java
│ │ ├── lambda-withtype.json
│ │ ├── lambda.java
│ │ ├── lambda.json
│ │ ├── lambda2.java
│ │ ├── lambda2.json
│ │ ├── new-meth-ref.java
│ │ ├── new-meth-ref.json
│ │ ├── obj-meth-ref.java
│ │ ├── obj-meth-ref.json
│ │ ├── static-meth-ref.java
│ │ ├── static-meth-ref.json
│ │ ├── super-meth-ref.java
│ │ └── super-meth-ref.json
│ ├── java
│ │ ├── AnnotationTypeDeclaration.java
│ │ ├── AnnotationTypeDeclaration.json
│ │ ├── AnnotationTypeMemberDeclaration.java
│ │ ├── AnnotationTypeMemberDeclaration.json
│ │ ├── EnumDeclaration.java
│ │ ├── EnumDeclaration.json
│ │ ├── FieldDeclaration.java
│ │ ├── FieldDeclaration.json
│ │ ├── Import.java
│ │ ├── Import.json
│ │ ├── JLS2
│ │ │ ├── AssertDemo
│ │ │ │ ├── v1
│ │ │ │ │ └── AssertDemo.java
│ │ │ │ ├── v2
│ │ │ │ │ └── AssertDemo.java
│ │ │ │ ├── v3
│ │ │ │ │ └── AssertDemo.java
│ │ │ │ └── v4
│ │ │ │ │ └── AssertDemo.java
│ │ │ └── Basic.java
│ │ ├── JLS3
│ │ │ ├── AnnDemo
│ │ │ │ ├── v1
│ │ │ │ │ ├── AnnDemo.java
│ │ │ │ │ └── ThreadSafe.java
│ │ │ │ ├── v2
│ │ │ │ │ ├── AnnDemo.java
│ │ │ │ │ └── ToDo.java
│ │ │ │ ├── v3
│ │ │ │ │ ├── AnnDemo.java
│ │ │ │ │ └── ToDo.java
│ │ │ │ ├── v4
│ │ │ │ │ ├── AnnDemo.java
│ │ │ │ │ └── ToDo.java
│ │ │ │ └── v5
│ │ │ │ │ ├── AnnDemo.java
│ │ │ │ │ └── ToDo.java
│ │ │ ├── AnnProcDemo
│ │ │ │ ├── AnnDemo.java
│ │ │ │ └── ToDo.java
│ │ │ ├── CovarDemo
│ │ │ │ └── v2
│ │ │ │ │ └── CovarDemo.java
│ │ │ ├── EnForLoopDemo
│ │ │ │ ├── v1
│ │ │ │ │ └── EnForLoopDemo.java
│ │ │ │ └── v2
│ │ │ │ │ └── EnForLoopDemo.java
│ │ │ ├── GenDemo
│ │ │ │ ├── v1
│ │ │ │ │ └── GenDemo.java
│ │ │ │ ├── v2
│ │ │ │ │ └── GenDemo.java
│ │ │ │ ├── v3
│ │ │ │ │ └── GenDemo.java
│ │ │ │ ├── v4
│ │ │ │ │ └── GenDemo.java
│ │ │ │ └── v5
│ │ │ │ │ └── GenDemo.java
│ │ │ ├── StaticImportsDemo
│ │ │ │ └── v2
│ │ │ │ │ └── foo
│ │ │ │ │ └── Light.java
│ │ │ ├── TEDemo
│ │ │ │ ├── v1
│ │ │ │ │ └── TEDemo.java
│ │ │ │ └── v2
│ │ │ │ │ └── TEDemo.java
│ │ │ └── VarargsDemo
│ │ │ │ └── VarargsDemo.java
│ │ ├── JLS4
│ │ │ ├── BinLitDemo
│ │ │ │ └── BinLitDemo.java
│ │ │ ├── BoxDemo
│ │ │ │ └── BoxDemo.java
│ │ │ ├── Copy
│ │ │ │ └── v2
│ │ │ │ │ └── Copy.java
│ │ │ ├── CopyToDatabaseOrFile
│ │ │ │ └── v2
│ │ │ │ │ └── CopyToDatabaseOrFile.java
│ │ │ ├── CustomARM
│ │ │ │ └── CustomARM.java
│ │ │ ├── SupExDemo
│ │ │ │ └── SupExDemo.java
│ │ │ ├── Touch
│ │ │ │ └── Touch.java
│ │ │ ├── UndLitDemo
│ │ │ │ └── UndLitDemo.java
│ │ │ └── UnsafeVarargsDemo
│ │ │ │ ├── UnsafeVarargsDemo.java
│ │ │ │ └── UnsafeVarargsDemo2.java
│ │ ├── JLS8
│ │ │ ├── DMDemo
│ │ │ │ ├── v2
│ │ │ │ │ └── Drivable.java
│ │ │ │ ├── v3
│ │ │ │ │ └── Drivable.java
│ │ │ │ └── v4
│ │ │ │ │ └── DMDemo.java
│ │ │ ├── LambdaDemo
│ │ │ │ ├── v1
│ │ │ │ │ └── LambdaDemo.java
│ │ │ │ ├── v10
│ │ │ │ │ └── LambdaDemo.java
│ │ │ │ ├── v3
│ │ │ │ │ └── LambdaDemo.java
│ │ │ │ ├── v4
│ │ │ │ │ └── LambdaDemo.java
│ │ │ │ ├── v5
│ │ │ │ │ └── LambdaDemo.java
│ │ │ │ ├── v6
│ │ │ │ │ └── LambdaDemo.java
│ │ │ │ ├── v7
│ │ │ │ │ └── LambdaDemo.java
│ │ │ │ ├── v8
│ │ │ │ │ └── LambdaDemo.java
│ │ │ │ └── v9
│ │ │ │ │ └── LambdaDemo.java
│ │ │ ├── MRDemo
│ │ │ │ ├── v1
│ │ │ │ │ └── MRDemo.java
│ │ │ │ ├── v2
│ │ │ │ │ └── MRDemo.java
│ │ │ │ ├── v3
│ │ │ │ │ └── MRDemo.java
│ │ │ │ ├── v4
│ │ │ │ │ └── MRDemo.java
│ │ │ │ ├── v5
│ │ │ │ │ └── MRDemo.java
│ │ │ │ └── v6
│ │ │ │ │ └── MRDemo.java
│ │ │ ├── RADemo
│ │ │ │ └── Account.java
│ │ │ └── SMDemo
│ │ │ │ └── Drawable.java
│ │ ├── MarkerAnnotation.java
│ │ ├── MarkerAnnotation.json
│ │ ├── MethodDeclaration.java
│ │ ├── MethodDeclaration.json
│ │ ├── MethodDeclaration2.java
│ │ ├── MethodDeclaration2.json
│ │ ├── SingleMemberAnnotation.java
│ │ ├── SingleMemberAnnotation.json
│ │ ├── default-method.java
│ │ ├── default-method.json
│ │ ├── rcv-param-inner.java
│ │ ├── rcv-param-inner.json
│ │ ├── rcv-param.java
│ │ ├── rcv-param.json
│ │ ├── repeating-annot.java
│ │ └── repeating-annot.json
│ ├── javascript
│ │ ├── ArrayLiteralNode.boa
│ │ ├── ArrayLiteralNode.js
│ │ ├── AssignAddNode.boa
│ │ ├── AssignAddNode.js
│ │ ├── AssignBitAndNode.boa
│ │ ├── AssignBitAndNode.js
│ │ ├── AssignDecNode.boa
│ │ ├── AssignDecNode.js
│ │ ├── AssignMultNode.boa
│ │ ├── AssignMultNode.js
│ │ ├── AssignNode.boa
│ │ ├── AssignNode.js
│ │ ├── ContinueStatementNode.boa
│ │ ├── ContinueStatementNode.js
│ │ ├── DebuggerKeyWordLiteralNode.boa
│ │ ├── DebuggerKeyWordLiteralNode.js
│ │ ├── DoLoopNode.boa
│ │ ├── DoLoopNode.js
│ │ ├── ElementGetNode.boa
│ │ ├── ElementGetNode.js
│ │ ├── ForEachNode.boa
│ │ ├── ForEachNode.js
│ │ ├── ForInLoopNode.boa
│ │ ├── ForInLoopNode.js
│ │ ├── ForLoopNode.boa
│ │ ├── ForLoopNode.js
│ │ ├── ForLoopWithBreakStatementNode.boa
│ │ ├── ForLoopWithBreakStatementNode.js
│ │ ├── FunctionCallWtihFunctionNodeAsArgument.boa
│ │ ├── FunctionCallWtihFunctionNodeAsArgument.js
│ │ ├── FunctionNode.boa
│ │ ├── FunctionNode.js
│ │ ├── FunctionNode2.boa
│ │ ├── FunctionNode2.js
│ │ ├── FunctionNode3.boa
│ │ ├── FunctionNode3.js
│ │ ├── InFixExpressionIN.boa
│ │ ├── InFixExpressionIN.js
│ │ ├── InFixExpressionSHEQ.boa
│ │ ├── InFixExpressionSHEQ.js
│ │ ├── InFixExpressionSHNEQ.boa
│ │ ├── InFixExpressionSHNEQ.js
│ │ ├── InFixExpressionTYPECOMPARE.boa
│ │ ├── InFixExpressionTYPECOMPARE.js
│ │ ├── LabeledStatementNode.boa
│ │ ├── LabeledStatementNode.js
│ │ ├── LabeledStatementNode2.boa
│ │ ├── LabeledStatementNode2.js
│ │ ├── LetNode.boa
│ │ ├── LetNode.js
│ │ ├── NewExpressionNode.boa
│ │ ├── NewExpressionNode.js
│ │ ├── ObjectLiteralNode.boa
│ │ ├── ObjectLiteralNode.js
│ │ ├── ObjectLiteralNode2.boa
│ │ ├── ObjectLiteralNode2.js
│ │ ├── ParenthesizedExpression.boa
│ │ ├── ParenthesizedExpression.js
│ │ ├── PropertyGetNode.boa
│ │ ├── PropertyGetNode.js
│ │ ├── RegExpLiteral.boa
│ │ ├── RegExpLiteral.js
│ │ ├── SwitchStatementNode.boa
│ │ ├── SwitchStatementNode.js
│ │ ├── ThisKeyWordLiteralNode.boa
│ │ ├── ThisKeyWordLiteralNode.js
│ │ ├── ThrowNode.boa
│ │ ├── ThrowNode.js
│ │ ├── TrueFalseKeyWordLiteralNodes.boa
│ │ ├── TrueFalseKeyWordLiteralNodes.js
│ │ ├── TryCatchNodes.boa
│ │ ├── TryCatchNodes.js
│ │ ├── UnaryExpressionDELETE.boa
│ │ ├── UnaryExpressionDELETE.js
│ │ ├── UnaryExpressionTYPEOF.boa
│ │ ├── UnaryExpressionTYPEOF.js
│ │ ├── UnaryExpressionVOID.boa
│ │ ├── UnaryExpressionVOID.js
│ │ ├── VariableDeclarationNode.boa
│ │ ├── VariableDeclarationNode.js
│ │ ├── VariableDeclarationNode2.boa
│ │ ├── VariableDeclarationNode2.js
│ │ ├── VariableDeclarationNode3.boa
│ │ ├── VariableDeclarationNode3.js
│ │ ├── VariableDeclarationNode4.boa
│ │ ├── VariableDeclarationNode4.js
│ │ ├── VariableDeclarationNode5.boa
│ │ ├── VariableDeclarationNode5.js
│ │ ├── WhileNode.boa
│ │ ├── WhileNode.js
│ │ ├── WithNode.boa
│ │ ├── WithNode.js
│ │ ├── XmlDotQueryNode.boa
│ │ ├── XmlDotQueryNode.js
│ │ ├── XmlElemRefNode.boa
│ │ ├── XmlElemRefNode.js
│ │ ├── XmlLiteralNode.boa
│ │ ├── XmlLiteralNode.js
│ │ ├── XmlPropRefNode.boa
│ │ ├── XmlPropRefNode.js
│ │ ├── YieldNode.boa
│ │ └── YieldNode.js
│ ├── jsons
│ │ └── repos.json
│ └── test_datagen
│ │ ├── ast
│ │ ├── data
│ │ └── index
│ │ ├── commit
│ │ ├── data
│ │ └── index
│ │ └── projects.seq
├── ddg
│ ├── dot
│ │ ├── loop-condition-use1
│ │ ├── loop-condition-use2
│ │ ├── loop-condition-use3
│ │ └── return-var
│ └── src
│ │ ├── loop-condition-use1
│ │ ├── loop-condition-use2
│ │ ├── loop-condition-use3
│ │ └── return-var
├── inhattr
│ ├── after-id.boa
│ ├── after.boa
│ ├── before-after.boa
│ ├── before-id.boa
│ ├── before.boa
│ ├── idlist.boa
│ ├── mult-current.boa
│ ├── mult-current2.boa
│ ├── mult-current3.boa
│ ├── mult-visitors.boa
│ ├── nested.boa
│ ├── same-visit.boa
│ ├── simple.boa
│ └── wildcard.boa
├── known-good
│ ├── all.boa
│ ├── annot-names.boa
│ ├── annotations-define.boa
│ ├── annotations-use.boa
│ ├── assert.boa
│ ├── ast-count.boa
│ ├── binary-lit.boa
│ ├── bug-fix.boa
│ ├── catAp1.boa
│ ├── catAp1b.boa
│ ├── catAp2.boa
│ ├── catAp3.boa
│ ├── catAp4.boa
│ ├── catBp1.boa
│ ├── catBp12.boa
│ ├── catBp13.boa
│ ├── catBp14.boa
│ ├── catBp15.boa
│ ├── catBp17.boa
│ ├── catBp18.boa
│ ├── catBp19.boa
│ ├── catBp2.boa
│ ├── catBp3.boa
│ ├── catBp4.boa
│ ├── catBp8.boa
│ ├── catDp1.boa
│ ├── catDp2.boa
│ ├── catEp1.boa
│ ├── catEp2.boa
│ ├── catEp3.boa
│ ├── catEp4.boa
│ ├── catEp5.boa
│ ├── catEp7.boa
│ ├── clonebug.boa
│ ├── combiner.boa
│ ├── concurrent-log.boa
│ ├── concurrent.boa
│ ├── counts.boa
│ ├── counts2.boa
│ ├── dead-code.boa
│ ├── diamond.boa
│ ├── dupe-types.boa
│ ├── enhanced-for.boa
│ ├── enum.boa
│ ├── enums.boa
│ ├── fields.boa
│ ├── generics-define-field.boa
│ ├── generics-define-method.boa
│ ├── generics-define-type.boa
│ ├── generics-wildcard-extends.boa
│ ├── generics-wildcard-super.boa
│ ├── generics-wildcard.boa
│ ├── imports.boa
│ ├── input.boa
│ ├── java-count.boa
│ ├── len.boa
│ ├── median.boa
│ ├── merge.boa
│ ├── multicatch.boa
│ ├── null-check.boa
│ ├── optimizerbug.boa
│ ├── potential.boa
│ ├── q1.boa
│ ├── q10.boa
│ ├── q12.boa
│ ├── q13.boa
│ ├── q14.boa
│ ├── q15.boa
│ ├── q16.boa
│ ├── q17.boa
│ ├── q18.boa
│ ├── q19.boa
│ ├── q2.boa
│ ├── q20.boa
│ ├── q21.boa
│ ├── q22.boa
│ ├── q23.boa
│ ├── q25.boa
│ ├── q26.boa
│ ├── q27.boa
│ ├── q28.boa
│ ├── q3.boa
│ ├── q4.boa
│ ├── q9.boa
│ ├── renamebug.boa
│ ├── safe-varargs.boa
│ ├── side-effects.boa
│ ├── stats.boa
│ ├── test.boa
│ ├── test2.boa
│ ├── thread-use.boa
│ ├── try-resources.boa
│ ├── types.boa
│ ├── underscore-lit.boa
│ ├── unreachable.boa
│ └── varargs.boa
├── lexing
│ ├── char-lit.boa
│ ├── comment-eof-no-eol.boa
│ ├── empty.boa
│ ├── errors
│ │ └── bad-comment.boa
│ ├── fp-lit.boa
│ ├── identifier-lit.boa
│ ├── int-lit.boa
│ ├── regex-lit.boa
│ ├── string-lit.boa
│ └── time-lit.boa
├── parsing
│ ├── comma.boa
│ ├── enums.boa
│ ├── errors
│ │ ├── assign-to-map.boa
│ │ ├── bad-emit-with-weight.boa
│ │ ├── bad-identifiers.boa
│ │ ├── empty.boa
│ │ ├── enum-extra-comma.boa
│ │ ├── foreach.boa
│ │ ├── keyword-as-id.boa
│ │ ├── output-var-equals.boa
│ │ └── visitor-missing-before.boa
│ ├── expr-numbers-with-space.boa
│ ├── ifelse-vardecl-no-braces.boa
│ └── multiline-strings.boa
├── pdg
│ ├── dot
│ │ ├── loop-condition-use1
│ │ ├── loop-condition-use2
│ │ ├── loop-condition-use3
│ │ └── return-var
│ └── src
│ │ ├── loop-condition-use1
│ │ ├── loop-condition-use2
│ │ ├── loop-condition-use3
│ │ └── return-var
├── program-analysis
│ ├── available-expression.boa
│ ├── common-expression-detection.boa
│ ├── copy-propogation.boa
│ ├── dead-code.boa
│ ├── dominator.boa
│ ├── file-status.boa
│ ├── live-variable.boa
│ ├── liveness.boa
│ ├── local-may-alais.boa
│ ├── local-must-not-alias.boa
│ ├── loop-invariant-code.boa
│ ├── nullness-analysis.boa
│ ├── post-dominator.boa
│ ├── print-names.boa
│ ├── reaching-def.boa
│ ├── upsafety-analysis.boa
│ ├── usedefvar.boa
│ ├── useless-increment-in-return.boa
│ ├── very-busy-expressions.boa
│ └── wait-not-inloop.boa
├── traversal
│ ├── backward-traversecall-withfixpoint.boa
│ ├── backward-traversecall-withnofixpoint.boa
│ ├── errors
│ │ ├── traversal-with-stop.boa
│ │ └── traverse-with-no-return-statement.boa
│ ├── fixpoint.boa
│ ├── forward-traversecall-withfixpoint.boa
│ ├── forward-traversecall-withnofixpoint.boa
│ ├── getValue-current-traversal.boa
│ ├── getValue-other-traversal.boa
│ ├── getcfg.boa
│ ├── multiple-traversal.boa
│ ├── traversal-with-returntype.boa
│ └── traversal-without-returntype.boa
└── typecheck
│ ├── agg-component.boa
│ ├── array-of-enum.boa
│ ├── arrays.boa
│ ├── comparisons.boa
│ ├── component-names.boa
│ ├── errors
│ ├── add-set-wrong-val.boa
│ ├── after-return.boa
│ ├── aggregator-in-emit.boa
│ ├── assign-func-no-ret.boa
│ ├── assign-type-to-var.boa
│ ├── assign-type-to-var2.boa
│ ├── assignoutput.boa
│ ├── before-return.boa
│ ├── builtin-method-no-call.boa
│ ├── cout.boa
│ ├── current-badtype.boa
│ ├── function-as-arg-bad.boa
│ ├── method-call-wrong-type.boa
│ ├── method-no-call.boa
│ ├── nested-return.boa
│ ├── re-decl-var.boa
│ ├── re-decl-var2.boa
│ ├── stop-in-after.boa
│ ├── tuple-redecl.boa
│ └── var-as-type.boa
│ ├── firstclass-funcs.boa
│ ├── functype-diff-argnames.boa
│ ├── no-weight.boa
│ ├── recursive-func.boa
│ ├── returns.boa
│ ├── self-cast.boa
│ ├── time-lit.boa
│ ├── tuple-access.boa
│ ├── tuple-copy.boa
│ ├── tuple-declare.boa
│ └── tuple-same-variable.boa
└── tutorial
├── img
├── after_config.png
├── datagen.png
├── datagenparam.png
├── evalparam.png
├── import.png
└── json_looklike.png
└── run_boa_locally.md
/.gitattributes:
--------------------------------------------------------------------------------
1 | *.proto linguist-detectable
2 | src/compiled-proto/** linguist-generated
3 | test/datagen/** -linguist-detectable
4 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | /build/
2 | /dist/
3 | /compile/
4 | /output/
5 | /.idea/
6 | /bin/
7 | /.settings/
8 | /junitvmwatcher*.properties
9 | .vscode/
10 | /src/antlr/.antlr
11 |
--------------------------------------------------------------------------------
/.travis.yml:
--------------------------------------------------------------------------------
1 | dist: xenial
2 | language: java
3 | jdk:
4 | - openjdk8
5 | addons:
6 | apt:
7 | packages:
8 | - junit4
9 | - ant
10 | - ant-optional
11 | script: ant -Dprotobuf.uptodate=true test checkstyle
12 | notifications:
13 | email:
14 | recipients:
15 | - hridesh@iastate.edu
16 | - rdyer@bgsu.edu
17 | on_success: change
18 | on_failure: always
19 |
--------------------------------------------------------------------------------
/boa.bat:
--------------------------------------------------------------------------------
1 | @ECHO OFF
2 |
3 | "%JAVA_HOME%"\bin\java -cp .;"%~dp0dist\boa-compiler.jar";"%~dp0lib\*";"%~dp0lib\evaluator\*";"%~dp0lib\datagen\*";"%~dp0compile" boa.BoaMain %*
4 | pause
5 |
--------------------------------------------------------------------------------
/boa.sh:
--------------------------------------------------------------------------------
1 | #!/bin/bash
2 |
3 | BASEDIR=$(dirname "$0")
4 |
5 | java -cp ".:$BASEDIR/dist/boa-compiler.jar:$BASEDIR/lib/*:$BASEDIR/lib/evaluator/*:$BASEDIR/lib/datagen/*:$BASEDIR/compile" boa.BoaMain $*
6 |
--------------------------------------------------------------------------------
/checkstyle-suppress.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
7 |
In JavaScript the = operator is used to assign values to variables.
8 | 9 | 10 | 11 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /test/datagen/HTML/EmbeddedPHP.HTML: -------------------------------------------------------------------------------- 1 | 2 | 3 | Hello, today is . 4 | 5 |