CSV mail merge
==============

Tokens :

\n     forces a new line inside the document if this appears in a field
,      separates fields such as a,b,c but not if inside quotes
       eg. "a,b",c,d is taken as 3 fields
"      used as a delimiter for literals. eg, "The mews, Croydon" is taken as
       a single string

Spaces are coped with in the heading names eg...

 Title,Author,Publiser,ISBN Number

are all valid single field names.
They are also coped with in field names eg...

 Sorting and Searching\n,Dr D. Knuth,Addison Wesley

which is valid
Each record begins on a new line.

 Data     := <Record> <CR> [<Data>]
 Record   := <Field#> [,<Record>]
 Field#   := "[<String>][,][<String>]" | <String>
 <String> := {<Char>}
 <Char>   := ASCII 32..127
 <CR>     := ASCII 10 | ASCII 13

The number of fields on a line depend on the number of headings. If there are
n headings then the first n fields will be taken as heading matches. eg the
CSV file of -

Title,Author,Publisher
,,,,,,
Sorting and Searching,,Addison Wesley

would put nothing in the first record and miss out the author from the second.
Once all headings have been filled with strings or nulls, the rest of the line
will be ignored.



