private static bool CanPrecede(char l, char r) { string accepted; if (acceptedPreceders.TryGetValue(r,out accepted)) { foreach (var c in accepted) { if (c==l) { return true; } } } return false; }