package pl.edu.amu.wmi.daut.re; import pl.edu.amu.wmi.daut.base.AutomatonSpecification; import pl.edu.amu.wmi.daut.base.NaiveAutomatonSpecification; import pl.edu.amu.wmi.daut.base.State; import java.util.List; import pl.edu.amu.wmi.daut.base.CharClassTransitionLabel; /** * * @author cole1911 * * klasa reprezentujÄ…ca dowolny pusty znak. * */ public class WhitespaceOperator extends NullaryRegexpOperator { private static final String WHITESPACE_CHARS = "\t\n\f\r \u000B"; @Override public AutomatonSpecification createFixedAutomaton() { AutomatonSpecification automaton = new NaiveAutomatonSpecification(); State q0 = automaton.addState(); State q1 = automaton.addState(); automaton.markAsInitial(q0); automaton.markAsFinal(q1); automaton.addTransition(q0, q1, new CharClassTransitionLabel(WHITESPACE_CHARS)); return automaton; } /** * Fabryka operatora. */ public static class Factory extends BinaryRegexpOperatorFactory { @Override public int numberOfParams() { return 0; } @Override protected RegexpOperator doCreateOperator(List<String> params) { return new WhitespaceOperator(); } } @Override public String toString() { return "WHITESPACE"; } }