Package org.codehaus.janino
package org.codehaus.janino
The classes in this package pose the core of the Janino JavaTM compiler.
The package comprises a scanner (Scanner
, a parser (Parser
)
and a class file library. The parser builds a syntax tree from the "Java.*" classes that represents the parsed code.
The UnitCompiler.compileUnit(boolean, boolean, boolean)
method compiles this syntax tree into a ClassFile
object, which can write JavaTM bytecode to an "OutputStream".
-
ClassDescriptionReturn value for
IClass.IMember.getAccess()
.A simpleorg.apache.tools.ant.taskdefs.compilers.CompilerAdapter
for the "ant" tool that silently ignores most of the configuration parameters and attempts to compile all given source files into class files.ThisClassLoader
allows for the loading of a set of Java™ classes provided in class file format.AJavaSourceClassLoader
that uses a resource storage provided by the application to cache compiled classes and thus saving unnecessary recompilations.TheoptionalClassLoader
serves two purposes: It is used to look for classes referenced by the class body.The context of the compilation of a function (constructor or method).A throw-in interface that marksCodeContext.Offset
s as "fix-ups": During the execution ofCodeContext.fixUp()
, all "fix-ups" are invoked and can do last touches to the code attribute.A simplified substitute for the javac tool.The JANINO implementation ofICompilerFactory
.Helper class that defines useful methods for handling "field descriptors" (JVMS 4.3.2) and "method descriptors" (JVMS 4.3.3).ThisIExpressionEvaluator
is implemented by creating and compiling a temporary compilation unit defining one class with one static method with one RETURN statement.Invokes a delegate iff the handle of the warning matches one or more of a set ofStringPattern
s.A simplified equivalent to "java.lang.reflect".Loads anIClass
by type name.All Janino components that throwRuntimeException
throw this subclass to allow for client libraries to intercept them more easily.This wrapper class defines classes that represent the elements of the Java™ programming language.This class is special: It does not extend/implement the Atom subclasses, but overrides Atom's "to...()" methods.This class implements an array access.Represents a Java™ array initializer (JLS 10.6).Representation of a Java™ array type (JLS 10.1).Representation of a Java™ "basic type" (obviously equaivalent to a "primitive type") (JLS 4.2).Representation of all non-operand-modifying Java™ binary operations.Representation of a Java™ "block" (JLS 14.2).Everything that can be compiled to code, e.g.Base class forJava.Rvalue
s that compile better as conditional branches.Base class for statements that can be terminated abnormally with a "break" statement.Representation of the Java™ "break" statement (JLS 14.14).Holds the result ofParser.parseCompilationUnit()
.Represents a single static import declaration likeRepresents a single type import declaration likeRepresents a static-import-on-demand declaration likeRepresents a type-import-on-demand declaration likeRepresentation of the Java™ "continue" statement (JLS 14.15).Objects of this class represent represent one pre- or post-increment or decrement.Represents the "empty statement", i.e.Lazily determines and returns the enclosingJava.Scope
of the givenJava.TypeDeclaration
.Representation of an access to a field of a class or an interface.This class implements class or interface field access, and also the "array length" expression "xy.length".This class is derived from "Statement", because it provides for the initialization of the field.Abstract base class forJava.ConstructorDeclarator
andJava.MethodDeclarator
.Representation of an instance (JLS2 8.6) or static initializer (JLS2 8.7).Used during resolution.Representation of a local variable access -- used during compilation.All local variables have a slot number, local variables that get written into the localvariabletable also have a start and end offset that defines the variable's extent in the bytecode.This interface is implemented by objects which are associated with a location in the source code.Representation of an "lvalue", i.e.Represents a class or interface declaration where the immediately enclosing scope is another class or interface declaration.Represents the declaration of a class or an interface that has a name.Represents a package declaration likeRepresents a class or interface declaration on compilation unit level.Representation of an access to the current object or an enclosing instance.Representation of an "rvalue", i.e.Everything that can occur in the body of a method or in a block.Representation of "super.fld" and "Type.super.fld".14.10 The "switch" StatementRepresentation of an access to the innermost enclosing instance.Representation of a Java™ type.Representation of a "ClassBodyDeclaration" or an "InterfaceMemberDeclaration".This class implements the unary operators "+", "-", "~" and "!".Used by FieldDeclaration and LocalVariableDeclarationStatement.AClassLoader
that, unlike usualClassLoader
s, does not load byte code, but reads Java™ source code and then scans, parses, compiles and loads it into the virtual machine.ThisIClassLoader
finds, scans and parses compilation units.Representation of a "method descriptor" (JVMS 4.3.3).This class defines constants and convenience methods for the handling of modifiers as defined by the JVM.A parser for the Java™ programming language.Splits up a character stream into tokens and returns them asString
objects.A number of "convenience constructors" exist that execute the setup steps instantly.To set up aSimpleCompiler
object, proceed as described forISimpleCompiler
.Represents a problem that occurred while unescaping a unicode escape sequence through aUnicodeUnescapeReader
.AFilterReader
that unescapes the "Unicode Escapes" as described in the Java Language Specification, 2nd edition.This class actually implements the Java™ compiler.Short-hand implementation ofIClass.IField
that implements a non-constant, non-static, package-accessible field.A visitor that unparses (un-compiles) an AST to aWriter
.Basis for the "visitor" pattern as described in "Gamma, Helm, Johnson, Vlissides: Design Patterns".The visitor for all kinds of block statements (statements that may appear with a block).The visitor for all kinds of IMPORT declarations.The visitor for all kinds of type body declarations (declarations that may appear in the body of a type declaration).The visitor for all kinds of type declarations.Interface type forUnitCompiler.setWarningHandler(WarningHandler)
.