
Security News
Meet Socket at Black Hat Europe and BSides London 2025
Socket is heading to London! Stop by our booth or schedule a meeting to see what we've been working on.
org.walkmod:javalang-compiler
Advanced tools
image:https://travis-ci.org/rpau/javalang-compiler.svg?branch=master["Build Status", link="https://travis-ci.org/rpau/javalang-compiler"] image:https://coveralls.io/repos/github/rpau/javalang-compiler/badge.svg?branch=master["Coverage Status", link="https://coveralls.io/repos/github/rpau/javalang-compiler?branch=master"]
Java 8 semantic analysis for the http://github.com/rpau/javalang[javalang] project. Therefore, the Java 8 AST is enriched with data calculated during the semantic analysis. Mainly, the calculated data is:
Symbols data types: In other words, what are the Java runtime classes, fields and methods that a given type or expression is referencing. For example, if the AST contains a MethodCallExpr node, the method getSymbolData() of this node returns the java.lang.Method that this node is referencing.
Definitions and usages: For those nodes that are subclass of SymbolDefinition (e.g declarations), the nodes contain which external references(getBodyReferences()) they have and which nodes reference them inside the same compilation unit (getUsages()).
== License
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
== Usage
If you are interested in creating a new http://www.walkmod.com[walkmod] plugin for Java code that requires this kind of information, you must add the following steps:
. Add the following dependency in your project.
org.walkmod javalang-compiler {last-version} ----. Annotate your code transformations (visitors) with the @RequiresSemanticAnalysis annotation. Walkmod (specifically the walkmod-javalang-plugin), will automatically run the org.walkmod.javalang.compiler.symbols.SymbolVisitorAdapter to enrich the nodes.
. Add a walkmod plugin in your walkmod.xml file that resolves your classpath and compiles your code (e.g walkmod-maven-plugin)
== Contributing
If you want to hack on this, fork it, improve it and send me a pull request.
To get started using it, just clone it and call mvn install.
FAQs
Library of compiler components to processs Java code.
We found that org.walkmod:javalang-compiler demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 0 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Socket is heading to London! Stop by our booth or schedule a meeting to see what we've been working on.

Security News
OWASP’s 2025 Top 10 introduces Software Supply Chain Failures as a new category, reflecting rising concern over dependency and build system risks.

Research
/Security News
Socket researchers discovered nine malicious NuGet packages that use time-delayed payloads to crash applications and corrupt industrial control systems.