view Implab/Parsing/CDFADefinition.cs @ 156:97fbbf816844 v2

Promises: SignalXXX methods merged into SignalHandler method. Components: RunnableComponent In progress
author cin
date Mon, 15 Feb 2016 04:22:15 +0300
parents c0bf853aa04f
children 130781364799
line wrap: on
line source

using Implab;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Implab.Parsing {
    public class CDFADefinition : DFADefinitionBase {
        readonly Alphabet m_alphabet;

        public Alphabet Alphabet {
            get { return m_alphabet; }
        }

        public override int AlphabetSize {
            get { return m_alphabet.Count; }
        }

        public CDFADefinition(Alphabet alphabet): base() {
            Safe.ArgumentNotNull(alphabet, "alphabet");
            m_alphabet = alphabet;
        }

        public CDFADefinition Optimize() {
            var optimized = new CDFADefinition(new Alphabet());

            Optimize(optimized, m_alphabet, optimized.Alphabet);
            return optimized;
        }

        public void PrintDFA() {
            PrintDFA(m_alphabet);
        }
    }
}