DialectSoftware.Sematics.WordReader (nuget): Parse and coalesce text by applying simple rules in the form of a lambda expression that define word boundaries. Each word is tokenized into a memento that retains all the information about that word within the original context.  example: parsing a double quote qualified csv file.  DialectSoftware.Semantics.WordReader reader = WordReader.Open([path to file]);             bool include = true;             var lines = reader.ReadToEnd(c => c == '\n').Select(r => r.ReadToEnd(c => c == ',').Select(w => w.Coalesce((ref char c, string s, out bool b) =>             {                 b = c != '\"' && c != '\r';                 return true;             })).ToArray()).ToArray();
Keywords: Text|Parsing|CSV