Home | Download | News | Wiki | About ANTLR | Feedback | Support | Bugs


Latest version is 2.7.7.
Download now! »

Download
» Home
» Download
» News
»Using ANTLR
» Documentation
» Wiki
» FAQ
» Articles
» Grammars
» File Sharing
» Code API
» Tech Support
» Bug Tracking
»About ANTLR
» What is ANTLR
» Why use ANTLR
» Showcase
» Testimonials
» Getting Started
» Software License
» ANTLR WebLogs
» ANTLR Workshops
»StringTemplate
»TML
»PCCTS
»Feedback
»Credits
»Contact


Support StringTemplate, ANTLR Project by making a donation! Terence often pays for things like the antlr.org server, conference travel, and this site design (that alone cost US$1000). Buy him a beer and pizza remotely ;)

Search



InputBuffer


antlr
Class InputBuffer

java.lang.Object
  extended byantlr.InputBuffer
Direct Known Subclasses:
ByteBuffer, CharBuffer, DebuggingInputBuffer

public abstract class InputBuffer
extends java.lang.Object

A Stream of characters fed to the lexer from a InputStream that can be rewound via mark()/rewind() methods.

A dynamic array is used to buffer up all the input characters. Normally, "k" characters are stored in the buffer. More characters may be stored during guess mode (testing syntactic predicate), or when LT(i>k) is referenced. Consumption of characters is deferred. In other words, reading the next character is not done by conume(), but deferred until needed by LA or LT.

See Also:
CharQueue

Constructor Summary
InputBuffer()
          Create an input buffer
 
Method Summary
 void commit()
          This method updates the state of the input buffer so that the text matched since the most recent mark() is no longer held by the buffer.
 void consume()
          Mark another character for deferred consumption
abstract  void fill(int amount)
          Ensure that the input buffer is sufficiently full
 java.lang.String getLAChars()
           
 java.lang.String getMarkedChars()
           
 boolean isMarked()
           
 char LA(int i)
          Get a lookahead character
 int mark()
          Return an integer marker that can be used to rewind the buffer to its current state.
 void reset()
          Reset the input buffer
 void rewind(int mark)
          Rewind the character buffer to a marker.
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

InputBuffer

public InputBuffer()
Create an input buffer

Method Detail

commit

public void commit()
This method updates the state of the input buffer so that the text matched since the most recent mark() is no longer held by the buffer. So, you either do a mark/rewind for failed predicate or mark/commit to keep on parsing without rewinding the input.


consume

public void consume()
Mark another character for deferred consumption


fill

public abstract void fill(int amount)
                   throws CharStreamException
Ensure that the input buffer is sufficiently full

Throws:
CharStreamException

getLAChars

public java.lang.String getLAChars()

getMarkedChars

public java.lang.String getMarkedChars()

isMarked

public boolean isMarked()

LA

public char LA(int i)
        throws CharStreamException
Get a lookahead character

Throws:
CharStreamException

mark

public int mark()
Return an integer marker that can be used to rewind the buffer to its current state.


rewind

public void rewind(int mark)
Rewind the character buffer to a marker.

Parameters:
mark - Marker returned previously from mark()

reset

public void reset()
Reset the input buffer