Pokud jste chtěl pouze upozornit na existenci Ragelu a jeho možnosti, měl jste zvolit úplně jiný přístup.
Na vašem postupu mi vadí právě to, že je bezkontextový. Každá hodnota se přeci pojí s nějakým sloupcem a k tím i s jeho deklaraci typu. Pokud vím, že sloupec musí být číselný, musí být konvertovatelný na číslo i kdyby byl zapsán exponenciálně.(S tím si váš parser poradí?) Podstatné je, že typ konverze se musí řídit deklarací sloupce a nikoliv pouhým obsahem. Vy snad neprovádíte validaci vstupních dat? A pokud jí chcete dělat poději, budete znovu spouštět parser?
Nevím, zda bych to nazval, že je to předepsáno. No, ale OK, jakž takž se to dá odhadnout. Přesnější specifikaci formátu bych ale docela uvítal - když už se např. z nějakých záhadných důvodů ignoruje pro zápis data norma ISO8601, nebylo by špatné mít alespoň jistotu, že rok, měsíc a datum jsou pořád ve stejném pořadí.
Co se týká oddělovačů, tak u CSV právě oddělovač se může v hodnotě vyskytovat - v tom případě musí být hodnota v uvozovkách.
Podle mého názoru je tomu právě naopak - můj postup je kontextový. Vždyť v okamžiku, kdy KA přijme hodnotu ji rovnou páruju se jménem sloupce. V tom okamžiku bych mohl udělat i převod na příslušný datový typ (včetně případných oprav chyb ve formátování čísel), validaci, atd. Po načtení celého řádku lze provést zápis do databáze, případně další operace (např. daná transkace se přiřazuje plátci/příjemci). Zdrojový kód pro převod datových typů, validaci, práci s databází apod. v příkladu (na rozdíl od skutečné aplikace) pochopitelně není, protože se primárně netýká popisu KA v Ragelu a tím ani tématu článku.