NAME
B::JVM::Jasmin::CompileState - Internal package used by B::JVM::Jasmin to keep state of compilation
SYNOPSIS
use B::JVM::Jasmin::CompileState;
my $state = new B::JVM::Jasmin::CompileState([HASHREF]);
DESCRIPTION
This class is used to store the internal state of the compiler as it runs. Certain global information must be accounted for, and instead of making a bunch of global variables, I thought it would be better to keep track of this via a sub-package.
AUTHOR
Bradley M. Kuhn, bkuhn@ebb.org, http://www.ebb.org/bkuhn
COPYRIGHT
Copyright (C) 1999, Bradley M. Kuhn, All Rights Reserved.
LICENSE
You may distribute under the terms of either the GNU General Public License or the Artistic License, as specified in the LICENSE file that was shipped with this distribution.
SEE ALSO
perl(1), jasmin(1), B::JVM::Jasmin(3).
DETAILED DOCUMENTATION
B::JVM::Jasmin::CompileState Package Variables
- $VERSION
-
Version number of B::JVM::Jasmin::CompileState. It should always match the version of B::JVM::Jasmin
- @ISA
-
Canonical @ISA array, derives from nothing
Modules used by B::JVM::Jasmin::CompileState
- Carp
-
Used for error reporting
- File::Spec::Functions
-
Used to do some operations on files
- IO::File
-
used for creating lexically scoped file handles
- B::JVM::Jasmin::Emit
-
Needed for creating emitter objects for output
Methods in B::JVM::Jasmin::CompileState
- B::JVM::Jasmin::CompileState::new
-
usage: B::JVM::Jasmin::CompileState::new(HASHREF)
Creates a new object of the class. First, it checks for the validity of the keys of the given initialization package (valid keys are kept in @validUserParameters), and if everything checks out, it sets up a few defaults if none were given and returns the blessed object.
Accepted User Parameters:
- mainClassName
-
The name to be used for the Java class that will correspond to the "main::" package. Defaults to "Main" if none is given.
- currentPackage
-
This is the current package being compiled. Should be updated by the user using the setCurrentPackage method. There is really no need to initialize it until compilation starts. Consequently, the value defaults to undef.
- outputDirectory
-
A directory to use for creation of output files. Defaults to the current working directory.
- keepIntermediateFiles
-
If true, intermediate files that are generated during the compilation process are kept for user inspection.
- B::JVM::Jasmin::CompileState::createNewFile
-
usage: $obj->createNewFile($packageName, [$className])
Creates a new file entry in the compiler state object and opens a new file handle for use when writing out jasmin files. If the file has already been created, nothing is done. This is typically called whenever a new package is discovered, so that a seperate class file can be generated for that package (class) in True Java Style (TM) :)
- B::JVM::Jasmin::CompileState::emit
-
usage: $obj->emit([PACAKGE_NAME])
returns the emitter object associated with the given package, PACAKGE_NAME. If PACKAGE_NAME is missing, then the emitter object of the currentPackage is returned
- B::JVM::Jasmin::CompileState::setCurrentMethod
-
usage: $obj->setCurrentMethod($methodName)
Set the current method to be $methodName
- B::JVM::Jasmin::CompileState::setCurrentPackage
-
usage: $obj->setCurrentPackage($packageName)
Set the current package to be $packageName
- B::JVM::Jasmin::CompileState::clearCurrentMethod
-
usage: $obj->clearCurrentMethod()
Clear the current method name stored
- B::JVM::Jasmin::CompileState::getCurrentMethod
-
usage: $obj->getCurrentMethod()
Return the current method
- B::JVM::Jasmin::CompileState::DESTORY
-
usage: $obj->DESTROY()
Default destructor for the object