public static Terminal Of(string v) {
Terminal terminal;
if (!_history.TryGetValue(v, out terminal)) {
terminal = new Terminal(v);
_history[v] = terminal;
}
return terminal;
}
/// <summary> /// Create a new sentence where string in the given list is treated as a separate terminal /// </summary> /// <param name="tokens"></param> /// <returns></returns> public static Sentence FromTokens(IEnumerable <string> tokens) { var l = new List <Terminal>(); foreach (var token in tokens) { // l.Add(Terminal.Of(c.ToString())); l.Add(Terminal.Of(token)); } return(new Sentence(l)); }