Class TemplateSource

java.lang.Object
io.pebbletemplates.pebble.lexer.TemplateSource
All Implemented Interfaces:
CharSequence

public class TemplateSource extends Object implements CharSequence
An implementation of CharSequence that is tuned to be used specifically by LexerImpl. It is possible to advance through the sequence without allocating a copy and it is possible to perform regex matches from the logical beginning of the remaining un-tokenized source. This class will also standardize newline characters from different architectures.
Author:
mbosecke
  • Constructor Details

    • TemplateSource

      public TemplateSource(Reader reader, String filename) throws IOException
      Constructor
      Parameters:
      reader - Reader provided by the Loader
      filename - Filename of the template
      Throws:
      IOException - Exceptions thrown from the reader
  • Method Details

    • advance

      public void advance(int amount)
      Moves the start index a certain amount. While traversing this amount we will count how many newlines have been encountered.
      Parameters:
      amount - Amount of characters to advance by
    • advanceThroughWhitespace

      public void advanceThroughWhitespace()
    • substring

      public String substring(int start, int end)
    • substring

      public String substring(int end)
    • length

      public int length()
      Specified by:
      length in interface CharSequence
    • charAt

      public char charAt(int index)
      Specified by:
      charAt in interface CharSequence
    • subSequence

      public CharSequence subSequence(int start, int end)
      Specified by:
      subSequence in interface CharSequence
    • toString

      public String toString()
      Specified by:
      toString in interface CharSequence
      Overrides:
      toString in class Object
    • getLineNumber

      public int getLineNumber()
    • getFilename

      public String getFilename()