public static void AddTypesToGrammar(Grammar grammar) { grammar.AddAllPOSTypesToDictionary(new[] {"D", "N", "V0", "V1", "V2", "V3", "P", "C", "V", "I"}); grammar.NonTerminalsTypeDictionary["V0"] = "V"; grammar.NonTerminalsTypeDictionary["V1"] = "V"; grammar.NonTerminalsTypeDictionary["V2"] = "V"; grammar.NonTerminalsTypeDictionary["V3"] = "V"; grammar.NonTerminalsTypeDictionary["VP"] = "V"; grammar.NonTerminalsTypeDictionary["V0P"] = "V"; grammar.NonTerminalsTypeDictionary["V1P"] = "V"; grammar.NonTerminalsTypeDictionary["V2P"] = "V"; grammar.NonTerminalsTypeDictionary["V3P"] = "V"; }
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)); }