libantioch/antioch — pull request #87 by SylvainPlessis (2014-12-05 17:33:20+00:00)
Title: Ascii parser

### Common part
This is one PR of a bunch of PRs to finalize parsing, thermodynamics and transport. There will be several PRs, the only thing missing now is the merging with *master*, which will come once the setup of the PRs is made. To make things as clear as I can, all the PRs will have a common section showing the graph with a star to mark the current PR.
```
xml_parser <-- input_parsing_format <-- ascii_parser * <-- species_parsing <-- \
\
NASA polynomials <-- UnifiedThermo <---------------------------------------------- thermo_parsing <--
\ \
transport_new <------------------------ transport_thermo <--------------------------------------------- transport_thermo_parser
```
So here is the parser/thermo/transport bunch of PR. There are also two more PRs, the ```opt_transport``` and the ```almost_Exact```.
The ```opt_transport``` merges ```transport_thermo_parser``` with ```conditions_reac```, which enables to pass a ```KineticsConditions``` object instead of temperature, which translates into computing once and for all the ```TempCache``` object instead of locally where it's needed.
```almost_Exact``` takes in the ```kin_reset```.

### This PR
This is the parser part, thus what this PR add is the finalization of the structure of the parsing capabilities of Antioch. It formalizes the three current possibilities, xml, chemkin or ascii free format. This is the ascii free format.

This format is used for species characteristics (mass, enthalpy of formation @0°C, …).
The structure has an important characteristics for developers: there is no parser base object, so for any new parser, the obligation to implement the correct method will only appear if there is an attempt to parse the wrong thing. For instance, if a parser has no thermodynamics parsing method implemented, it will show only if a user tries using the parser for thermo. A base object could avoid this by making all the required methods pure virtual, but as this is the only thing it would do, I did not implement it.
Should we add this?