Class FiniteAutomaton

    • Constructor Detail

      • FiniteAutomaton

        public FiniteAutomaton()
      • FiniteAutomaton

        public FiniteAutomaton​(String regexp,
                               int min,
                               int max)
        Create a finite automaton based on a regular expression. The regexp accepts digits and numbers, in [0,65535]. However, to distinguish a number from a suite of digits, the former must be surrounded by '<' and '>'. For instance, "12<34>" stands for a '1' (digit), followed by a '2' (digit) followed by a '34' (number).
        Parameters:
        regexp - the regular expression
        min - an overall minimum value for transitions
        max - an overall maximum value for transitions
      • FiniteAutomaton

        public FiniteAutomaton​(String regexp)
        Create a finite automaton based on a regular expression. The regexp accepts digits and numbers, in [0,65535]. However, to distinguish a number from a suite of digits, the former must be surrounded by '<' and '>'. For instance, "12<34>" stands for a '1' (digit), followed by a '2' (digit) followed by a '34' (number).
        Parameters:
        regexp - the regular expression
    • Method Detail

      • getIntFromChar

        public static int getIntFromChar​(char c)
      • getCharFromInt

        public static char getCharFromInt​(int i)
      • max

        public static int max​(gnu.trove.set.hash.TIntHashSet hs)
      • fill

        public void fill​(dk.brics.automaton.Automaton a,
                         gnu.trove.set.hash.TIntHashSet alphabet)
      • getNbSymbols

        public int getNbSymbols()
      • addState

        public int addState()
      • removeSymbolFromAutomaton

        public void removeSymbolFromAutomaton​(int symbol)
      • addTransition

        public void addTransition​(int source,
                                  int destination,
                                  int... symbols)
      • deleteTransition

        public void deleteTransition​(int source,
                                     int destination,
                                     int symbol)
      • delta

        public void delta​(int source,
                          int symbol,
                          gnu.trove.set.hash.TIntHashSet states)
        Specified by:
        delta in interface IAutomaton
      • addToAlphabet

        public void addToAlphabet​(int a)
      • removeFromAlphabet

        public void removeFromAlphabet​(int a)
      • isFinal

        public boolean isFinal​(int state)
        Specified by:
        isFinal in interface IAutomaton
      • isNotFinal

        public boolean isNotFinal​(int state)
        Specified by:
        isNotFinal in interface IAutomaton
      • setInitialState

        public void setInitialState​(int state)
      • setFinal

        public void setFinal​(int state)
      • setFinal

        public void setFinal​(int... states)
      • setNonFinal

        public void setNonFinal​(int state)
      • setNonFInal

        public void setNonFInal​(int... states)
      • run

        public boolean run​(int[] word)
        Specified by:
        run in interface IAutomaton
      • makeBricsAutomaton

        public dk.brics.automaton.Automaton makeBricsAutomaton()
      • repeat

        public IAutomaton repeat​(int min,
                                 int max)
      • minimize

        public void minimize()
      • reduce

        public void reduce()
      • removeDeadTransitions

        public void removeDeadTransitions()
      • complement

        public FiniteAutomaton complement​(gnu.trove.set.hash.TIntHashSet alphabet)
      • addEpsilon

        public void addEpsilon​(int source,
                               int destination)
      • isDeterministic

        public boolean isDeterministic()
      • setDeterministic

        public void setDeterministic​(boolean deterministic)
      • getFinalStates

        public gnu.trove.set.hash.TIntHashSet getFinalStates()
      • toDotty

        public void toDotty​(String f)
      • toDot

        public String toDot()
      • getAlphabet

        public gnu.trove.set.hash.TIntHashSet getAlphabet()
      • _removeSymbolFromAutomaton

        public ArrayList<int[]> _removeSymbolFromAutomaton​(int alpha)