public static void CreatePalindromeGrammar(Grammar grammar) { grammar.AddAllPOSTypesToDictionary(new[] { "A", "B" }); grammar.AddRule(new Rule(2, "START", new[] { "A", "A" }, 0, 1)); grammar.AddRule(new Rule(2, "START", new[] { "B", "B" }, 0, 1)); grammar.AddRule(new Rule(2, "START", new[] { "AP", "A" }, 1, 1)); grammar.AddRule(new Rule(2, "START", new[] { "BP", "B" }, 1, 1)); grammar.AddRule(new Rule(1, "AP", new[] { "A", "START" }, 0, 0)); grammar.AddRule(new Rule(1, "BP", new[] { "B", "START" }, 0, 0)); }
public static void AddTypesToGrammar(Grammar grammar) { grammar.AddAllPOSTypesToDictionary(new[] { "D", "N", "V0", "V1", "V2", "V3", "P", "C", "V", "I", "L", "M" }); grammar.NonTerminalsTypeDictionary["V0"] = "V"; grammar.NonTerminalsTypeDictionary["V1"] = "V"; grammar.NonTerminalsTypeDictionary["V2"] = "V"; grammar.NonTerminalsTypeDictionary["V3"] = "V"; grammar.NonTerminalsTypeDictionary["V4"] = "V"; grammar.NonTerminalsTypeDictionary["V5"] = "V"; grammar.NonTerminalsTypeDictionary["VP"] = "V"; grammar.NonTerminalsTypeDictionary["V0P"] = "V"; grammar.NonTerminalsTypeDictionary["V1P"] = "V"; grammar.NonTerminalsTypeDictionary["V2P"] = "V"; grammar.NonTerminalsTypeDictionary["V3P"] = "V"; grammar.NonTerminalsTypeDictionary["V4P"] = "V"; grammar.NonTerminalsTypeDictionary["V5P"] = "V"; }