antlr

Class Tool


public class Tool
extends Object

Field Summary

(package private) ToolErrorHandler
errorHandler
Object that handles analysis errors
(package private) Reader
f
(package private) boolean
genDiagnostics
Generate diagnostics? (vs code)
(package private) boolean
genDocBook
Generate DocBook vs code?
(package private) boolean
genHTML
Generate HTML vs code?
protected boolean
genHashLines
protected String
grammarFile
protected boolean
hasError
Was there an error during parsing or analysis?
protected static String
literalsPrefix
protected NameSpace
nameSpace
C++ file level options
protected String
namespaceAntlr
protected String
namespaceStd
protected boolean
noConstructors
protected static String
outputDir
Current output directory for generated files
protected static boolean
upperCaseMangledLiterals
static String
version

Constructor Summary

Tool()
Construct a new Tool.

Method Summary

protected void
checkForInvalidArguments(String[] args, BitSet cmdLineArgValid)
void
copyFile(String source_name, String dest_name)
This example is from the book _Java in a Nutshell_ by David Flanagan.
int
doEverything(String[] args)
Process args and have ANTLR do it's stuff without calling System.exit.
void
doEverythingWrapper(String[] args)
Perform processing on the grammar file.
void
error(String s)
Issue an error
void
error(String s, String file, int line, int column)
Issue an error with line number information
Object
factory(String p)
When we are 1.1 compatible...
void
fatalError(String message)
An error occured that should stop the Tool from doing any work.
String
fileMinusPath(String f)
boolean
getGenHashLines()
String
getGrammarFile()
Reader
getGrammarReader()
String
getLanguage(MakeGrammar behavior)
Determine the language used for this run of ANTLR This was made a method so the subclass can override it
String
getLiteralsPrefix()
NameSpace
getNameSpace()
String
getNamespaceAntlr()
String
getNamespaceStd()
String
getOutputDirectory()
boolean
getUpperCaseMangledLiterals()
boolean
hasError()
static void
main(String[] args)
PrintWriter
openOutputFile(String f)
This method is used by all code generators to create new output files.
void
panic()
Deprecated. as of 2.7.2 use fatalError(String).
void
panic(String s)
Deprecated. as of 2.7.2 use fatalError(String).
File
parent(File f)
static Vector
parseSeparatedList(String list, char separator)
Parse a list such as "f1.g;f2.g;..." and return a Vector of the elements.
String
pathToFile(String f)
given a filename, strip off the directory prefix (if any) and return it.
protected void
processArguments(String[] args)
Process the command-line arguments.
void
reportException(Exception e, String message)
void
reportProgress(String message)
void
setArgOK(int i)
void
setFileLineFormatter(FileLineFormatter formatter)
void
setNameSpace(String name)
Support C++ & C# namespaces (for now).
void
setOutputDirectory(String o)
void
toolError(String s)
Issue an error; used for general tool errors not for grammar stuff
void
warning(String s)
Issue a warning
void
warning(String s, String file, int line, int column)
Issue a warning with line number information
void
warning(String[] s, String file, int line, int column)
Issue a warning with line number information

Field Details

errorHandler

(package private)  ToolErrorHandler errorHandler
Object that handles analysis errors

f

(package private)  Reader f

genDiagnostics

(package private)  boolean genDiagnostics
Generate diagnostics? (vs code)

genDocBook

(package private)  boolean genDocBook
Generate DocBook vs code?

genHTML

(package private)  boolean genHTML
Generate HTML vs code?

genHashLines

protected boolean genHashLines

grammarFile

protected String grammarFile

hasError

protected boolean hasError
Was there an error during parsing or analysis?

literalsPrefix

protected static String literalsPrefix

nameSpace

protected NameSpace nameSpace
C++ file level options

namespaceAntlr

protected String namespaceAntlr

namespaceStd

protected String namespaceStd

noConstructors

protected boolean noConstructors

outputDir

protected static String outputDir
Current output directory for generated files

upperCaseMangledLiterals

protected static boolean upperCaseMangledLiterals

version

public static String version

Constructor Details

Tool

public Tool()
Construct a new Tool.

Method Details

checkForInvalidArguments

protected void checkForInvalidArguments(String[] args,
                                        BitSet cmdLineArgValid)

copyFile

public void copyFile(String source_name,
                     String dest_name)
            throws IOException
This example is from the book _Java in a Nutshell_ by David Flanagan. Written by David Flanagan. Copyright (c) 1996 O'Reilly & Associates. You may study, use, modify, and distribute this example for any purpose. This example is provided WITHOUT WARRANTY either expressed or implied.

doEverything

public int doEverything(String[] args)
Process args and have ANTLR do it's stuff without calling System.exit. Just return the result code. Makes it easy for ANT build tool.

doEverythingWrapper

public void doEverythingWrapper(String[] args)
Perform processing on the grammar file. Can only be called from main() @param args The command-line arguments passed to main(). This wrapper does the System.exit for use with command-line.

error

public void error(String s)
Issue an error
Parameters:
s - The message

error

public void error(String s,
                  String file,
                  int line,
                  int column)
Issue an error with line number information
Parameters:
s - The message
file - The file that has the error (or null)
line - The grammar file line number on which the error occured (or -1)
column - The grammar file column number on which the error occured (or -1)

factory

public Object factory(String p)
When we are 1.1 compatible... public static Object factory2 (String p, Object[] initargs) { Class c; Object o = null; try { int argslen = initargs.length; Class cl[] = new Class[argslen]; for (int i=0;i<argslen;i++) { cl[i] = Class.forName(initargs[i].getClass().getName()); } c = Class.forName (p); Constructor con = c.getConstructor (cl); o = con.newInstance (initargs); } catch (Exception e) { System.err.println ("Can't make a " + p); } return o; }

fatalError

public void fatalError(String message)
An error occured that should stop the Tool from doing any work. The default implementation currently exits (via System.exit(int) after printing an error message to stderr. However, the tools should expect that a subclass will override this to throw an unchecked exception such as IllegalStateException or another subclass of RuntimeException. If this method is overriden, it must never return normally; i.e. it must always throw an exception or call System.exit.
Parameters:
Since:
2.7.2

fileMinusPath

public String fileMinusPath(String f)

getGenHashLines

public boolean getGenHashLines()

getGrammarFile

public String getGrammarFile()

getGrammarReader

public Reader getGrammarReader()

getLanguage

public String getLanguage(MakeGrammar behavior)
Determine the language used for this run of ANTLR This was made a method so the subclass can override it

getLiteralsPrefix

public String getLiteralsPrefix()

getNameSpace

public NameSpace getNameSpace()

getNamespaceAntlr

public String getNamespaceAntlr()

getNamespaceStd

public String getNamespaceStd()

getOutputDirectory

public String getOutputDirectory()

getUpperCaseMangledLiterals

public boolean getUpperCaseMangledLiterals()

hasError

public boolean hasError()

main

public static void main(String[] args)

openOutputFile

public PrintWriter openOutputFile(String f)
            throws IOException
This method is used by all code generators to create new output files. If the outputDir set by -o is not present it will be created here.

panic

public void panic()

Deprecated. as of 2.7.2 use fatalError(String). By default this method executes fatalError("panic");.

Issue an unknown fatal error. If this method is overriden, it must never return normally; i.e. it must always throw an exception or call System.exit.

panic

public void panic(String s)

Deprecated. as of 2.7.2 use fatalError(String). By defaykt this method executes fatalError("panic: " + s);.

Issue a fatal error message. If this method is overriden, it must never return normally; i.e. it must always throw an exception or call System.exit.
Parameters:
s - The message

parent

public File parent(File f)

parseSeparatedList

public static Vector parseSeparatedList(String list,
                                        char separator)
Parse a list such as "f1.g;f2.g;..." and return a Vector of the elements.

pathToFile

public String pathToFile(String f)
given a filename, strip off the directory prefix (if any) and return it. Return "./" if f has no dir prefix.

processArguments

protected void processArguments(String[] args)
Process the command-line arguments. Can only be called by Tool. A bitset is collected of all correct arguments via setArgOk.
Parameters:
args - The command-line arguments passed to main()

reportException

public void reportException(Exception e,
                            String message)
Since:
2.7.2

reportProgress

public void reportProgress(String message)
Since:
2.7.2

setArgOK

public void setArgOK(int i)

setFileLineFormatter

public void setFileLineFormatter(FileLineFormatter formatter)

setNameSpace

public void setNameSpace(String name)
Support C++ & C# namespaces (for now). C++: Add a nested namespace name to the current namespace. C# : Specify an enclosing namespace for the generated code. DAW: David Wagner -- C# support by kunle odutola

setOutputDirectory

public void setOutputDirectory(String o)

toolError

public void toolError(String s)
Issue an error; used for general tool errors not for grammar stuff
Parameters:
s - The message

warning

public void warning(String s)
Issue a warning
Parameters:
s - the message

warning

public void warning(String s,
                    String file,
                    int line,
                    int column)
Issue a warning with line number information
Parameters:
s - The message
file - The file that has the warning (or null)
line - The grammar file line number on which the warning occured (or -1)
column - The grammar file line number on which the warning occured (or -1)

warning

public void warning(String[] s,
                    String file,
                    int line,
                    int column)
Issue a warning with line number information
Parameters:
s - The lines of the message
file - The file that has the warning
line - The grammar file line number on which the warning occured