Package pl.edu.amu.wmi.daut.re

Source Code of pl.edu.amu.wmi.daut.re.AsciiCharacterClassOperator$Factory

package pl.edu.amu.wmi.daut.re;

import java.util.List;
import pl.edu.amu.wmi.daut.base.AutomatonSpecification;
import pl.edu.amu.wmi.daut.base.CharClassTransitionLabel;
import pl.edu.amu.wmi.daut.base.NaiveAutomatonSpecification;
import pl.edu.amu.wmi.daut.base.State;


class UnknownAsciiCharacterClassException extends RuntimeException {
}

/**
* ASCII character classes.
*/
public class AsciiCharacterClassOperator extends NullaryRegexpOperator {
    private String str;

    /**
     * Konstruktor ASCII character classes.
     */
    public AsciiCharacterClassOperator(String classString) {
        transformToClassString(classString);
    }


    private void transformToClassString(String a) {
        str = AsciiCharacterClasses.CLASS_MAP.get(a);
        if (str == null)
            throw new UnknownAsciiCharacterClassException();
    }

    /**
     * Generuje automat.
     */
    @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(str));

        return automaton;
    }

    /**
     * Fabryka operatora.
     */
    public static class Factory extends NullaryRegexpOperatorFactory {

        @Override
        protected RegexpOperator doCreateOperator(List<String> params) {
            return new AsciiCharacterClassOperator(params.get(0));
        }

        @Override
        public int numberOfParams() {
            return 1;
        }
    }

    /**
     * Metoda toString().
     */
    @Override
    public String toString() {
        return "ASCII";
    }
}
TOP

Related Classes of pl.edu.amu.wmi.daut.re.AsciiCharacterClassOperator$Factory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.