org.quasiliteral.syntax
Interface LexerFace

All Superinterfaces:
Marker, PassByProxy
All Known Implementing Classes:
BaseLexer, ReplayLexer

public interface LexerFace
extends PassByProxy

Untamed:


Field Summary
static char EOFCHAR
          Enabled:
static short EOFTOK
          Enabled: Not provided for us by byaccj
 
Fields inherited from interface org.erights.e.elib.serial.PassByProxy
HONORARY, HONORED_NAMES
 
Method Summary
 Astro composite(short tagCode, Object data, SourceSpan optSpan)
          Enabled: XXX Making this public was convenient for ENodeBuilder.varName/1, but is it inappropriate?
 boolean isEndOfFile()
          Enabled: pretty self explanatory
 void needMore(String msg)
          Enabled: Called when input was otherwise well formed, but ran out, so more is needed.
 Astro nextToken()
          Enabled: @return :Leaf (see AstroBuilder)
 Astro[] nextTopLevelUnit()
          Enabled: @return :Leaf[] (see AstroBuilder)
 void reset()
          Enabled: Skip to the end of this line, so that the next character read will be from the next line, forget any token we may have been in the midst of, and reset our indentation tracker.
 void setSource(Twine newSource)
          Enabled: Does not affect the partial flag
 void syntaxError(String msg)
          Enabled: Throws a SyntaxException that also captures the current line and position as the position of the error.
 

Field Detail

EOFCHAR

public static final char EOFCHAR
Enabled:


EOFTOK

public static final short EOFTOK
Enabled: Not provided for us by byaccj

Method Detail

setSource

public void setSource(Twine newSource)
Enabled: Does not affect the partial flag


reset

public void reset()
Enabled: Skip to the end of this line, so that the next character read will be from the next line, forget any token we may have been in the midst of, and reset our indentation tracker.


composite

public Astro composite(short tagCode,
                       Object data,
                       SourceSpan optSpan)
Enabled: XXX Making this public was convenient for ENodeBuilder.varName/1, but is it inappropriate?


nextTopLevelUnit

public Astro[] nextTopLevelUnit()
                         throws IOException,
                                SyntaxException
Enabled: @return :Leaf[] (see AstroBuilder)

IOException
SyntaxException

nextToken

public Astro nextToken()
                throws IOException,
                       SyntaxException
Enabled: @return :Leaf (see AstroBuilder)

IOException
SyntaxException

syntaxError

public void syntaxError(String msg)
                 throws SyntaxException
Enabled: Throws a SyntaxException that also captures the current line and position as the position of the error.

SyntaxException

needMore

public void needMore(String msg)
              throws NeedMoreException,
                     SyntaxException
Enabled: Called when input was otherwise well formed, but ran out, so more is needed.

Normally, this just turns into an equivalent 'syntaxError(msg)'. But, if the partial flag is set, meaning that the client wants to prompt intelligently for more input, then this throws a NeedMoreException that explains at what indentation the next input is expected.

NeedMoreException
SyntaxException

isEndOfFile

public boolean isEndOfFile()
Enabled: pretty self explanatory



comments?