コード例 #1
0
        public static string Render(ReElement element)
        {
            var builder = new StringBuilder();

            Render(builder, 0, element);
            return(builder.ToString());
        }
コード例 #2
0
        static void Render(StringBuilder builder, int indent, ReElement element)
        {
            switch (element.Kind)
            {
            case ReElementKind.EmptyLanguage:
                RenderReEmptyLanguage(builder);
                break;

            case ReElementKind.EmptyString:
                RenderReEmptyString(builder);
                break;

            case ReElementKind.Singleton:
                RenderReSingleton(builder, indent, (ReSingleton)element);
                break;

            case ReElementKind.KleenStar:
                RenderReKleenStar(builder, indent, (ReKleeneStar)element);
                break;

            case ReElementKind.Concatenation:
                RenderReConcatenation(builder, indent, (ReConcatenation)element);
                break;

            case ReElementKind.Union:
                RenderReUnion(builder, indent, (ReUnion)element);
                break;

            default:
                throw new InvalidOperationException("and what am i supposed to do with a '" + element.Kind + "'?");
            }
        }
コード例 #3
0
        public static Graph.State Build(ReElement element)
        {
            var graph = new Graph <NodeData, CharSet> .Builder();

            var fromState = graph.NewState(false, new NodeData());
            var toState   = graph.NewState(false, new NodeData());

            element.GenerateNFA(graph, fromState, toState);

            return(fromState);
        }
コード例 #4
0
        private void UpdateFilter()
        {
            this.value.Clear();
            this.value.TotalOther = this.CkhOther.Checked;
            this.value.OtherName  = this.txtOther.Text;

            foreach (DataRow row in this.conditionTable.Rows)
            {
                ReElement element = new ReElement();

                element.Value           = row[0].ToString();
                element.FilterType      = (Webb.Data.FilterTypes)row[1];
                element.Frequence       = Convert.ToInt32(row[2]);
                element.FollowedOperand = (Webb.Data.FilterOperands)row[3];

                this.value.Add(element);
            }
        }