<commit_before>(function() {

    /**
     *
     * This class represents a Deterministic Finite State Automaton (DFA). For more information
     * consult the wikipedia article at {@link http://en.wikipedia.org/wiki/Deterministic_finite_automaton}
     * and also suggestions for fruther reading.
     *
     * @class FSA Finite State Automaton
     * @constructor
     * @memberof Machine
     * @param {Object} attribs A configuration
    
     **/
    Machine.FSA = function(attribs) {
        this._init(attributes);
    };



    Machine.FSA.prototype = {

        // Private Methods
        _init: function(attribs) {
            this.validate = attribs.validate;
            this.setAlphabet(attribs.alphabet);
            this.stateTable = new Machine.StateTable();

            this.stateTable.add(attribs.initialState);
            this.setInitialState(attribs.initialState);
            this.currentState = attribs.initialState;
            this.inputString = "";
            this.inputIndex = 0;

            this.tape = new Machine.Tape({
                alphabet: attribs.alphabet,
                chars: ""
            });

            this.transitionFunction = new Machine.TransitionFunction({
                alphabet: this.alphabet,
                stateTable: this.stateTable
            });
        },

        //Public Methods

        /** @method **/
        getAlphabet: function() {
            return this.alphabet;
        },

        /** @method **/
        setAlphabet: function(alphabet) {<commit_msg>Creating another pass at a production version<commit_after>(function() {

    /**
     *
     * This class represents a Deterministic Finite  Automaton (DFA). For more information
     * consult the wikipedia article at {@link http://en.wikipedia.org/wiki/Deterministic_finite_automaton}
     * and also suggestions for fruther reading.
     *
     * @class FSA Finite State Automaton
     * @constructor
     * @memberof Machine
     * @param {Object} attribs A configuration
     * 
    
     **/
    Machine.FSA = function(attribs) {
        this._init(attributes);
    };



    Machine.FSA.prototype = {

        // Private Methods
        _init: function(attribs) {
            if(attribs.hasOwnProperty("alphabet")){
                this.setAlphabet(attribs.alphabet);
            } else { 
                this.setAlphabet(Machiine.Alphabet.UNRESTRICTED);
            }

            // create an empty state table
            // we'll add to it later
            this.stateTable = new Machine.StateTable();

            this.currentState = null; 
            this.is = false; 
            this.hasHalted = false; 

            this.inputString = "";
            this.inputIndex = 0;

            this.tape = new Machine.Tape({
                alphabet: attribs.alphabet,
                chars: ""
            });

            this.transitionFunction = new Machine.TransitionFunction({
                alphabet: this.alphabet,
                stateTable: this.stateTable
            });
        },

        //Public Methods

        /** @method **/
        getAlphabet: function() {
            return this.alphabet;
        },

        /** @method **/
        setAlphabet: function(alphabet) {
{'fraction_non_alphanumeric': 0.10179455445544554, 'fraction_numerical': 0.0006188118811881188, 'mean_word_length': 1.687448046550291, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2422697', 'n_tokens_mistral': 901, 'n_tokens_neox': 844, 'n_words': 184}