Web Site

org.codehaus.janino
Class Scanner

java.lang.Object
  extended by org.codehaus.janino.Scanner

public class Scanner
extends java.lang.Object

Splits up a character stream into tokens and returns them as String objects.

The optionalFileName parameter passed to many constructors should point


Nested Class Summary
 class Scanner.EOFToken
           
 class Scanner.IdentifierToken
           
 class Scanner.KeywordToken
           
 class Scanner.LiteralToken
          The type of the value parameter determines the type of the literal token: Type/value returned by Scanner.LiteralToken.getLiteralValue()Literal StringSTRING literal CharacterCHAR literal IntegerINT literal LongLONG literal FloatFLOAT literal DoubleDOUBLE literal BooleanBOOLEAN literal nullNULL literal
 class Scanner.OperatorToken
           
 class Scanner.ScanException
          An exception that reflects an error during parsing.
 class Scanner.Token
           
 
Field Summary
static java.lang.Integer MAGIC_INTEGER
          This value represents the "magic" literal "2147483648" which is only allowed in a negated context.
static java.lang.Long MAGIC_LONG
          This value represents the "magic" literal "9223372036854775808L" which is only allowed in a negated context.
 
Constructor Summary
Scanner(java.io.File file)
          Deprecated.  
Scanner(java.io.File file, java.lang.String optionalEncoding)
          Deprecated.  
Scanner(java.lang.String fileName)
          Deprecated.  
Scanner(java.lang.String optionalFileName, java.io.InputStream is)
          Set up a scanner that reads tokens from the given InputStream in the platform default encoding.
Scanner(java.lang.String optionalFileName, java.io.InputStream is, java.lang.String optionalEncoding)
          Set up a scanner that reads tokens from the given InputStream with the given optionalEncoding (null means platform default encoding).
Scanner(java.lang.String optionalFileName, java.io.Reader in)
          Set up a scanner that reads tokens from the given Reader.
Scanner(java.lang.String optionalFileName, java.io.Reader in, short initialLineNumber, short initialColumnNumber)
          Creates a Scanner that counts lines and columns from non-default initial values.
Scanner(java.lang.String fileName, java.lang.String encoding)
          Deprecated.  
 
Method Summary
 void close()
          Deprecated.  
 java.lang.String doc()
          Get the text of the doc comment (a.k.a.
 java.lang.String getFileName()
          Return the file name optionally passed to the constructor.
static java.lang.String literalValueToString(java.lang.Object v)
           
 Location location()
          Returns the Location of the next token.
 Scanner.Token peek()
          Peek the next token, but don't remove it from the input.
 Scanner.Token peekNextButOne()
          Peek the next but one token, neither remove the next nor the next but one token from the input.
 Scanner.Token read()
          Read the next token from the input.
 void setWarningHandler(WarningHandler optionalWarningHandler)
          By default, warnings are discarded, but an application my install a WarningHandler.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

MAGIC_INTEGER

public static final java.lang.Integer MAGIC_INTEGER
This value represents the "magic" literal "2147483648" which is only allowed in a negated context.


MAGIC_LONG

public static final java.lang.Long MAGIC_LONG
This value represents the "magic" literal "9223372036854775808L" which is only allowed in a negated context.

Constructor Detail

Scanner

public Scanner(java.lang.String fileName)
        throws Scanner.ScanException,
               java.io.IOException
Deprecated. 

Set up a scanner that reads tokens from the given file in the default charset.

This method is deprecated because it leaves the input file open.

Throws:
Scanner.ScanException
java.io.IOException

Scanner

public Scanner(java.lang.String fileName,
               java.lang.String encoding)
        throws Scanner.ScanException,
               java.io.IOException
Deprecated. 

Set up a scanner that reads tokens from the given file in the given encoding.

This method is deprecated because it leaves the input file open.

Throws:
Scanner.ScanException
java.io.IOException

Scanner

public Scanner(java.io.File file)
        throws Scanner.ScanException,
               java.io.IOException
Deprecated. 

Set up a scanner that reads tokens from the given file in the platform default encoding.

This method is deprecated because it leaves the input file open.

Throws:
Scanner.ScanException
java.io.IOException

Scanner

public Scanner(java.io.File file,
               java.lang.String optionalEncoding)
        throws Scanner.ScanException,
               java.io.IOException
Deprecated. 

Set up a scanner that reads tokens from the given file in the given encoding.

This method is deprecated because it leaves the input file open.

Throws:
Scanner.ScanException
java.io.IOException

Scanner

public Scanner(java.lang.String optionalFileName,
               java.io.InputStream is)
        throws Scanner.ScanException,
               java.io.IOException
Set up a scanner that reads tokens from the given InputStream in the platform default encoding.

The fileName is solely used for reporting in thrown exceptions.

Throws:
Scanner.ScanException
java.io.IOException

Scanner

public Scanner(java.lang.String optionalFileName,
               java.io.InputStream is,
               java.lang.String optionalEncoding)
        throws Scanner.ScanException,
               java.io.IOException
Set up a scanner that reads tokens from the given InputStream with the given optionalEncoding (null means platform default encoding).

The optionalFileName is used for reporting errors during compilation and for source level debugging, and should name an existing file. If null is passed, and the system property org.codehaus.janino.source_debugging.enable is set to "true", then a temporary file in org.codehaus.janino.source_debugging.dir or the system's default temp dir is created in order to make the source code available to a debugger.

Throws:
Scanner.ScanException
java.io.IOException

Scanner

public Scanner(java.lang.String optionalFileName,
               java.io.Reader in)
        throws Scanner.ScanException,
               java.io.IOException
Set up a scanner that reads tokens from the given Reader.

The optionalFileName is used for reporting errors during compilation and for source level debugging, and should name an existing file. If null is passed, and the system property org.codehaus.janino.source_debugging.enable is set to "true", then a temporary file in org.codehaus.janino.source_debugging.dir or the system's default temp dir is created in order to make the source code available to a debugger.

Throws:
Scanner.ScanException
java.io.IOException

Scanner

public Scanner(java.lang.String optionalFileName,
               java.io.Reader in,
               short initialLineNumber,
               short initialColumnNumber)
        throws Scanner.ScanException,
               java.io.IOException
Creates a Scanner that counts lines and columns from non-default initial values.

Throws:
Scanner.ScanException
java.io.IOException
Method Detail

getFileName

public java.lang.String getFileName()
Return the file name optionally passed to the constructor.


close

public void close()
           throws java.io.IOException
Deprecated. 

Closes the character source (file, InputStream, Reader) associated with this object. The results of future calls to peek() and read() are undefined.

This method is deprecated, because the concept described above is confusing. An application should close the underlying InputStream or Reader itself.

Throws:
java.io.IOException

read

public Scanner.Token read()
                   throws Scanner.ScanException,
                          java.io.IOException
Read the next token from the input.

Throws:
Scanner.ScanException
java.io.IOException

peek

public Scanner.Token peek()
Peek the next token, but don't remove it from the input.


peekNextButOne

public Scanner.Token peekNextButOne()
                             throws Scanner.ScanException,
                                    java.io.IOException
Peek the next but one token, neither remove the next nor the next but one token from the input.

This makes parsing so much easier, e.g. for class literals like Map.class.

Throws:
Scanner.ScanException
java.io.IOException

doc

public java.lang.String doc()
Get the text of the doc comment (a.k.a. "JAVADOC comment") preceeding the next token.

Returns:
null if the next token is not preceeded by a doc comment

location

public Location location()
Returns the Location of the next token.


literalValueToString

public static java.lang.String literalValueToString(java.lang.Object v)

setWarningHandler

public void setWarningHandler(WarningHandler optionalWarningHandler)
By default, warnings are discarded, but an application my install a WarningHandler.

Notice that there is no Scanner.setErrorHandler() method, but scan errors always throw a Scanner.ScanException. The reason being is that there is no reasonable way to recover from scan errors and continue scanning, so there is no need to install a custom scan error handler.

Parameters:
optionalWarningHandler - null to indicate that no warnings be issued

Web Site