Package antlr

Class 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

      Constructors 
      Constructor Description
      InputBuffer()
      Create an input buffer
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      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.
      protected void syncConsume()
      Sync up deferred consumption
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • nMarkers

        protected int nMarkers
      • markerOffset

        protected int markerOffset
      • numToConsume

        protected int numToConsume
    • 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
      • getLAChars

        public java.lang.String getLAChars()
      • getMarkedChars

        public java.lang.String getMarkedChars()
      • isMarked

        public boolean isMarked()
      • 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
      • syncConsume

        protected void syncConsume()
        Sync up deferred consumption