view Implab/Automaton/DFAStateDescriptor.cs @ 172:92d5278d1b10 ref20160224

Working on text scanner
author cin
date Mon, 14 Mar 2016 01:19:38 +0300
parents 54270c2f29f2
children
line wrap: on
line source

namespace Implab.Automaton {
    public struct DFAStateDescriptor {
        public readonly bool final;
        public readonly int[] transitions;


        public DFAStateDescriptor(int[] transitions, bool final) {
            this.transitions = transitions;
            this.final = final;
        }

        public DFAStateDescriptor(int[] transitions) : this(transitions, false) {
        }

        public DFAStateDescriptor(int size, bool final) {
            Safe.ArgumentInRange(size, 0, int.MaxValue, "size");

            this.final = final;

            transitions = new int[size];

            for (int i = 0; i < size; i++)
                transitions[i] = DFAConst.UNREACHABLE_STATE;
        }
    }
}