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); }
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); } }