antlr
Class Tool

java.lang.Object
  |
  +--antlr.Tool

public class Tool
extends Object


Field Summary
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... 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; }
 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). By default this method executes fatalError("panic");.
 void panic(String s)
          Deprecated. as of 2.7.2 use fatalError(String). By defaykt this method executes fatalError("panic: " + s);.
 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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

version

public static String version

hasError

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


outputDir

protected static String outputDir
Current output directory for generated files


grammarFile

protected String grammarFile

literalsPrefix

protected static String literalsPrefix

upperCaseMangledLiterals

protected static boolean upperCaseMangledLiterals

nameSpace

protected NameSpace nameSpace
C++ file level options


namespaceAntlr

protected String namespaceAntlr

namespaceStd

protected String namespaceStd

genHashLines

protected boolean genHashLines

noConstructors

protected boolean noConstructors
Constructor Detail

Tool

public Tool()
Construct a new Tool.

Method Detail

getGrammarFile

public String getGrammarFile()

hasError

public boolean hasError()

getNameSpace

public NameSpace getNameSpace()

getNamespaceStd

public String getNamespaceStd()

getNamespaceAntlr

public String getNamespaceAntlr()

getGenHashLines

public boolean getGenHashLines()

getLiteralsPrefix

public String getLiteralsPrefix()

getUpperCaseMangledLiterals

public boolean getUpperCaseMangledLiterals()

setFileLineFormatter

public void setFileLineFormatter(FileLineFormatter formatter)

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.

IOException

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.


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.


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; }


fileMinusPath

public String fileMinusPath(String f)

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


getOutputDirectory

public String getOutputDirectory()

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.

IOException

getGrammarReader

public Reader getGrammarReader()

reportException

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

reportProgress

public void reportProgress(String message)
Since:
2.7.2

fatalError

public void fatalError(String message)
An error occured that should stop the Tool from doing any work. The default implementation currently exits (via java.lang.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.

Since:
2.7.2

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()

setArgOK

public void setArgOK(int i)

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

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



Copyright 1999-2003 Oliver Zeigermann. All Rights Reserved.