Class RunAutomaton

java.lang.Object
dk.brics.automaton.RunAutomaton
All Implemented Interfaces:
Serializable

public class RunAutomaton extends Object implements Serializable
Finite-state automaton with fast run operation.
Author:
Anders Møller <amoeller@cs.au.dk>
See Also:
  • Constructor Summary

    Constructors
    Constructor
    Description
    Constructs a new RunAutomaton from a deterministic Automaton.
    RunAutomaton(Automaton a, boolean tableize)
    Constructs a new RunAutomaton from a deterministic Automaton.
  • Method Summary

    Modifier and Type
    Method
    Description
    char[]
    Returns array of character class interval start points.
    int
    Returns initial state.
    int
    Returns number of states in automaton.
    boolean
    isAccept(int state)
    Returns acceptance status for given state.
    load(InputStream stream)
    Retrieves a serialized RunAutomaton from a stream.
    load(URL url)
    Retrieves a serialized RunAutomaton located by a URL.
    Creates a new automaton matcher for the given input.
    newMatcher(CharSequence s, int startOffset, int endOffset)
    Creates a new automaton matcher for the given input.
    boolean
    Returns true if the given string is accepted by this automaton.
    int
    run(String s, int offset)
    Returns the length of the longest accepted run of the given string starting at the given offset.
    int
    step(int state, char c)
    Returns the state obtained by reading the given char from the given state.
    void
    Writes this RunAutomaton to the given stream.
    Returns a string representation of this automaton.

    Methods inherited from class java.lang.Object

    clone, equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
  • Constructor Details

    • RunAutomaton

      public RunAutomaton(Automaton a)
      Constructs a new RunAutomaton from a deterministic Automaton. Same as RunAutomaton(a, true).
      Parameters:
      a - an automaton
    • RunAutomaton

      public RunAutomaton(Automaton a, boolean tableize)
      Constructs a new RunAutomaton from a deterministic Automaton. If the given automaton is not deterministic, it is determinized first.
      Parameters:
      a - an automaton
      tableize - if true, a transition table is created which makes the run method faster in return of a higher memory usage
  • Method Details

    • toString

      public String toString()
      Returns a string representation of this automaton.
      Overrides:
      toString in class Object
    • getSize

      public int getSize()
      Returns number of states in automaton.
    • isAccept

      public boolean isAccept(int state)
      Returns acceptance status for given state.
    • getInitialState

      public int getInitialState()
      Returns initial state.
    • getCharIntervals

      public char[] getCharIntervals()
      Returns array of character class interval start points. The array should not be modified by the caller.
    • load

      Retrieves a serialized RunAutomaton located by a URL.
      Parameters:
      url - URL of serialized automaton
      Throws:
      IOException - if input/output related exception occurs
      ClassCastException - if the data is not a serialized RunAutomaton
      ClassNotFoundException - if the class of the serialized object cannot be found
    • load

      Retrieves a serialized RunAutomaton from a stream.
      Parameters:
      stream - input stream with serialized automaton
      Throws:
      IOException - if input/output related exception occurs
      ClassCastException - if the data is not a serialized RunAutomaton
      ClassNotFoundException - if the class of the serialized object cannot be found
    • store

      public void store(OutputStream stream) throws IOException
      Writes this RunAutomaton to the given stream.
      Parameters:
      stream - output stream for serialized automaton
      Throws:
      IOException - if input/output related exception occurs
    • step

      public int step(int state, char c)
      Returns the state obtained by reading the given char from the given state. Returns -1 if not obtaining any such state. (If the original Automaton had no dead states, -1 is returned here if and only if a dead state is entered in an equivalent automaton with a total transition function.)
    • run

      public boolean run(String s)
      Returns true if the given string is accepted by this automaton.
    • run

      public int run(String s, int offset)
      Returns the length of the longest accepted run of the given string starting at the given offset.
      Parameters:
      s - the string
      offset - offset into s where the run starts
      Returns:
      length of the longest accepted run, -1 if no run is accepted
    • newMatcher

      public AutomatonMatcher newMatcher(CharSequence s)
      Creates a new automaton matcher for the given input.
      Parameters:
      s - the CharSequence to search
      Returns:
      A new automaton matcher for the given input
    • newMatcher

      public AutomatonMatcher newMatcher(CharSequence s, int startOffset, int endOffset)
      Creates a new automaton matcher for the given input.
      Parameters:
      s - the CharSequence to search
      startOffset - the starting offset of the given character sequence
      endOffset - the ending offset of the given character sequence
      Returns:
      A new automaton matcher for the given input