コード例 #1
0
ファイル: GleeGraphCreator.cs プロジェクト: mpvyard/ORegex
        public Graph Create <TValue>(IFSA <TValue> fsa)
        {
            var graph = new Graph(fsa.Name);

            FillGraph(graph, fsa);
            return(graph);
        }
コード例 #2
0
ファイル: MainWindow.cs プロジェクト: mpvyard/ORegex
        private void DrawGraphCmdFsa(IFSA <char> fsa)
        {
            var graph = _graphCreator.Create(fsa);

            cmdFsaGraph.Graph = graph;
            cmdFsaGraph.Refresh();
        }
コード例 #3
0
ファイル: MainWindow.cs プロジェクト: mpvyard/ORegex
        private void DrawGraphFastFsa(IFSA <char> fsm)
        {
            var graph = _graphCreator.Create(fsm);

            fastFsaGraph.Graph = graph;
            fastFsaGraph.Refresh();
        }
コード例 #4
0
ファイル: GleeGraphCreator.cs プロジェクト: mpvyard/ORegex
        private static void FillGraph <TValue>(Graph graph, IFSA <TValue> fsa)
        {
            foreach (var look in fsa.Transitions.ToLookup(x => x.BeginState, x => x))
            {
                int i = 1;
                foreach (var t in look)
                {
                    Edge edge = graph.AddEdge("q" + t.BeginState, string.Format("[{0}]{1}", i++, t.Condition), "q" + t.EndState);

                    if (fsa.IsFinal(t.EndState))
                    {
                        edge.TargetNode.Attr.Fillcolor = Color.Gray;
                        edge.TargetNode.Attr.Shape     = Shape.DoubleCircle;
                    }
                }
            }
        }
コード例 #5
0
ファイル: MainWindow.cs プロジェクト: eocron/ORegex
 private void DrawGraphCmdFsa(IFSA<char> fsa)
 {
     var graph = _graphCreator.Create(fsa);
     cmdFsaGraph.Graph = graph;
     cmdFsaGraph.Refresh();
 }
コード例 #6
0
ファイル: MainWindow.cs プロジェクト: eocron/ORegex
 private void DrawGraphFastFsa(IFSA<char> fsm)
 {
     var graph = _graphCreator.Create(fsm);
     fastFsaGraph.Graph = graph;
     fastFsaGraph.Refresh();
 }
コード例 #7
0
 public FiniteAutomaton(IFSA <TValue> fastFsa, IFSA <TValue> cmdFsa)
 {
     FastFsa = fastFsa.ThrowIfNull();
     CmdFsa  = cmdFsa.ThrowIfNull();
 }
コード例 #8
0
ファイル: ORegex.cs プロジェクト: mpvyard/ORegex
 internal ORegex(IFSA <TValue> finiteAutomaton, ORegexOptions options)
 {
     _fa     = finiteAutomaton.ThrowIfNull();
     Options = options;
     Pattern = "#Internal pattern are not available by default.";
 }
コード例 #9
0
ファイル: ORegex.cs プロジェクト: mpvyard/ORegex
 public ORegex(string pattern, ORegexOptions options, PredicateTable <TValue> table)
 {
     _fa     = Compiler.Build(pattern, table, options);
     Options = options;
     Pattern = pattern;
 }