当前位置: 首页>>代码示例>>C#>>正文


C# Grammar.Produce方法代码示例

本文整理汇总了C#中Grammar.Produce方法的典型用法代码示例。如果您正苦于以下问题:C# Grammar.Produce方法的具体用法?C# Grammar.Produce怎么用?C# Grammar.Produce使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Grammar的用法示例。


在下文中一共展示了Grammar.Produce方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: TestProduce

        public void TestProduce(string startSymbol, string expectedSequence)
        {
            SymbolsSet<string> s = new SymbolsSet<string>(new[]
                {
                    new Symbol<string>("x", "x"),
                    new Symbol<string>("y", "y"),
                    new Symbol<string>("sin", "sin"),
                    new Symbol<string>("atan", "atan"),
                    new Symbol<string>("sum", "sum"),
                    new Symbol<string>("mul", "mul"),
                    new Symbol<string>("A0"),
                    new Symbol<string>("A1"),
                    new Symbol<string>("A2"),
                    new Symbol<string>("Inf")
                });

            Rule<string>[] rules =
            {
                // A0 -> x|y
                new OrRule<string>(s["A0"], new [] { s["x"], s["y"] }),

                // A1 -> (sin A1)|(atan A1)|(sin A2)|(atan A2)
                new OrRule<string>(s["A1"],
                    new []
                    {
                        new Rule<string>(new []{ s["sin"], s["A1"] }),
                        new Rule<string>(new []{ s["atan"], s["A1"] }),
                        new Rule<string>(new []{ s["sin"], s["A2"] }),
                        new Rule<string>(new []{ s["atan"], s["A2"] })
                    }),

                // A2 -> sum A0 A0
                new Rule<string>(s["A2"],
                    new []
                    {
                        s["sum"], s["A0"], s["A0"]
                    }),

                // Inf -> sum Inf
                new Rule<string>(s["Inf"],
                    new []
                    {
                        s["sum"], s["Inf"]
                    })
            };

            Grammar<string> grammar = new Grammar<string>(rules);
            IEnumerable<string> sequence = grammar.Produce(startSymbol).Take(10);
            Assert.AreEqual(expectedSequence, string.Join(" ", sequence.ToArray()));
        }
开发者ID:es-repo,项目名称:wlpgnr,代码行数:50,代码来源:GrammarTests.cs


注:本文中的Grammar.Produce方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。