Class Tokenizer

java.lang.Object
pl.koder95.interpreter.Tokenizer

public abstract class Tokenizer extends Object
Definiuje sposób podziału danych wejściowych na tokeny. Korzysta ze źródła znaków, aby dostarczać ciąg odczytywanych znaków.
  • Constructor Details

    • Tokenizer

      public Tokenizer()
      Tworzy nową instancję klasy Tokenizer ustawiając źródło znaków na wartość null. Dla poprawnego funkcjonowania należy wywołać metodę setSource(Readable).
  • Method Details

    • setSource

      public void setSource(Readable source)
      Parameters:
      source - źródło znaków wczytywanych podczas procesu tokenizacji
    • getSource

      protected final Readable getSource()
      Metoda używana podczas procesu tworzenia tokenów w metodzie next().
      Returns:
      zwraca aktualnie ustawione źródło
    • enqueue

      public final Queue<NonTerminalExpression<?>> enqueue(Queue<NonTerminalExpression<?>> queue)
      Umieszcza w kolejce wszystkie możliwe do odczytania tokeny.
      Parameters:
      queue - kolejka wyrażeń nieterminalnych (tokenów)
      Returns:
      queue
      Throws:
      SyntaxException - w przypadku błędów składniowych w dostarczonych danych
    • enqueue

      public Queue<NonTerminalExpression<?>> enqueue()
      Tworzy nową kolejkę wyrażeń nieterminalnych (tokenów) i umieszcza w niej odczytane tokeny z wejścia.
      Returns:
      nowa instancja kolejki wyrażeń nieterminalnych (tokenów)
      Throws:
      SyntaxException - w przypadku błędów składniowych w dostarczonych danych
    • hasNext

      public abstract boolean hasNext()
      Sprawdza, czy istnieje możliwość pobrania następnego tokenu.
      Returns:
      true – jeśli istnieje następny token, false w przeciwnym razie
    • next

      public abstract NonTerminalExpression<?> next()
      Przetwarza dane wejściowe i zwraca je w postaci wyrażenia nieterminalnego, czyli tokenu.
      Returns:
      token typu NonTerminalExpression
      Throws:
      SyntaxException - w przypadku błędów składniowych w dostarczonych danych