I have a definition for a SPAN file (<http://www.cme-ch.com/span/spanl300.htm>) that i'd like to use in constructing a parser to parse the string data into an in memory collection class (or even using lazy evalution with the yield keyword.) 

All parsing techniques and libraries i've seen apply to constructing parse trees for implementing languages; i'd simply like to know of any good techniques to parse into a data structure, similar to how XML is parsed into an XMLDocument in the .net framework, but using the rules defined by SPAN.