diff Implab/Parsing/EDFADefinition.cs @ 55:c0bf853aa04f

Added initial JSON support +JSONParser +JSONWriter
author cin
date Sun, 15 Jun 2014 19:39:11 +0400
parents
children 97fbbf816844
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Implab/Parsing/EDFADefinition.cs	Sun Jun 15 19:39:11 2014 +0400
@@ -0,0 +1,37 @@
+using Implab;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Implab.Parsing {
+    public class EDFADefinition<T> : DFADefinitionBase where T : struct, IConvertible {
+        EnumAlphabet<T> m_alphabet;
+
+        public EnumAlphabet<T> Alphabet { 
+            get { return m_alphabet; }
+        }
+
+        public EDFADefinition(EnumAlphabet<T> alphabet)
+            : base() {
+            Safe.ArgumentNotNull(alphabet, "alphabet");
+            m_alphabet = alphabet;
+        }
+
+        public override int AlphabetSize {
+            get { return m_alphabet.Count; }
+        }
+
+        public EDFADefinition<T> Optimize() {
+            var optimized = new EDFADefinition<T>(new EnumAlphabet<T>());
+            Optimize(optimized, m_alphabet, optimized.Alphabet);
+
+            return optimized;
+        }
+
+        public void PrintDFA() {
+            PrintDFA(m_alphabet);
+        }
+    }
+}