Пример #1
0
        static void Parse(Grammar grammar, EarleyParser parser, string input)
        {
            Console.WriteLine("Parsing: " + input);

            if (parser.Parse(grammar, input.Select(c => new RegularEarleyInput(c.ToString())).ToArray()))
            {
                Console.WriteLine("SUCCESS");
            }
            else
            {
                Console.WriteLine("FAILURE");
            }
        }
Пример #2
0
        static void TestRegular()
        {
            var grammar = new Grammar();

            AddRule(grammar, "P", "S", true);
            AddRule(grammar, "S", "S + M");
            AddRule(grammar, "S", "M");
            AddRule(grammar, "M", "M * T");
            AddRule(grammar, "M", "T");
            AddRule(grammar, "T", "1");
            AddRule(grammar, "T", "2");
            AddRule(grammar, "T", "3");
            AddRule(grammar, "T", "4");

            var parser = new EarleyParser();

            Parse(grammar, parser, "2+3*4");
            Parse(grammar, parser, "2+3*");
            Parse(grammar, parser, "2+3");
            Parse(grammar, parser, "2+");
            Parse(grammar, parser, "2");
        }