DialectSoftware.Semantics.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 =>             {                 if (c == '\"')                     include = !include;                 if (c == ',')                     return include;                 return false;             }).ToArray()).ToArray();
Keywords: Text|Parsing|CSV