static void ExampleOne()
        {
            Func <List <string>, List <string> > exclaimer = (List <string> res) =>
            {
                for (var i = 0; i < res.Count; i++)
                {
                    res[i] = res[i] + "!!!";
                }
                return(res);
            };

            List <Parser <string, string> > puncList = new List <Parser <string, string> >();

            puncList.Add(Util.StringParser("!"));
            puncList.Add(Util.StringParser("."));
            puncList.Add(Util.StringParser("-"));
            puncList.Add(Util.StringParser("?"));

            Parser <string, string> punctuation = Util.Choice(puncList);

            List <Parser <string, string> > parsers = new List <Parser <string, string> >();

            parsers.Add(Util.StringParser("Hello"));
            parsers.Add(Util.StringParser(" "));
            parsers.Add(Util.StringParser("World"));
            parsers.Add(punctuation);

            Parser <string, List <string> > p   = Util.SequenceOf(parsers).Map(exclaimer);
            State <List <string> >          res = p.Run("Hello World.");

            PrintResult(res);
        }
Beispiel #2
0
        public void Evaluate(string input)
        {
            State <int> res = parser.Run(input);

            if (res.isError)
            {
                Console.WriteLine("Error: " + res.error);
            }
            else
            {
                Console.WriteLine("Answer: " + res.result);
            }
        }