Package com.scriptbasic.readers
Class GenericHierarchicalSourceReader
- java.lang.Object
-
- com.scriptbasic.readers.GenericHierarchicalSourceReader
-
- All Implemented Interfaces:
SourceLocationBound,HierarchicalSourceReader,SourceReader
public class GenericHierarchicalSourceReader extends java.lang.Object implements HierarchicalSourceReader
-
-
Constructor Summary
Constructors Constructor Description GenericHierarchicalSourceReader(SourceReader reader)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.lang.Integerget()Get the next character from the input stream.java.lang.StringgetFileName()Get the name of the file to which the object is bound to.intgetLineNumber()Get the line number to which the object is bound to.intgetPosition()Get the position on the line to which the object is bound to.SourceProvidergetSourceProvider()Get the source provider that provided this reader.voidinclude(SourceReader reader)Include a new reader into the chain and start to use that child reader so long as long exhausts.voidunget(java.lang.Integer ch)Readers should support lexical analyzers offering the possibility to push some characters back to the input stream, when a lexical analyzer can not decide its selection only consuming extra characters.
-
-
-
Constructor Detail
-
GenericHierarchicalSourceReader
public GenericHierarchicalSourceReader(SourceReader reader)
-
-
Method Detail
-
include
public void include(SourceReader reader)
Include a new reader into the chain and start to use that child reader so long as long exhausts.- Specified by:
includein interfaceHierarchicalSourceReader- Parameters:
reader- parameter
-
getFileName
public java.lang.String getFileName()
Description copied from interface:SourceLocationBoundGet the name of the file to which the object is bound to.- Specified by:
getFileNamein interfaceSourceLocationBound- Returns:
- the name of the file
-
getLineNumber
public int getLineNumber()
Description copied from interface:SourceLocationBoundGet the line number to which the object is bound to.- Specified by:
getLineNumberin interfaceSourceLocationBound- Returns:
- the line number in the file
-
getPosition
public int getPosition()
Description copied from interface:SourceLocationBoundGet the position on the line to which the object is bound to.- Specified by:
getPositionin interfaceSourceLocationBound- Returns:
- the position within the line
-
unget
public void unget(java.lang.Integer ch)
Description copied from interface:SourceReaderReaders should support lexical analyzers offering the possibility to push some characters back to the input stream, when a lexical analyzer can not decide its selection only consuming extra characters.Some of the readers may limit the operation of this push back functionality not supporting tracking line numbers, position and file name when this method is used.
Lexical analyzers should push back the characters that were read from the reader the backward order as they were read. (Read last pushed back first.)
Implementation should ignore
nullparameter.- Specified by:
ungetin interfaceSourceReader- Parameters:
ch- the character to push back
-
get
public java.lang.Integer get()
Get the next character from the input stream.This version implements hierarchical reading. When a source finishes, it returns to the parent reader and continues reading from there.
- Specified by:
getin interfaceSourceReader- Returns:
- return value
-
getSourceProvider
public SourceProvider getSourceProvider()
Description copied from interface:SourceReaderGet the source provider that provided this reader.- Specified by:
getSourceProviderin interfaceSourceReader- Returns:
- the source provider object.
-
-