Added paragraph on regularity/data properties to readme
Getty Ritter
11 years ago
| 33 | 33 | [TOML](https://github.com/mojombo/toml), both of which are significantly |
| 34 | 34 | more complicated than NDBL. |
| 35 | 35 | |
| 36 | For incredibly basic configurations—in particular, if you do not use | |
| 37 | grouping at all—an NDBL file is also an executable BASH file which | |
| 38 | defines a slew of environment variables. | |
| 36 | One major advantage of NDBL over other other configuration formats is that | |
| 37 | the NDBL grammar is a _regular language_, meaning it can be parsed in | |
| 38 | constant space by a finite state machine. While not intended for data | |
| 39 | storage, NDBL does possess the two qualities which are important for a | |
| 40 | data storage format: it is _self-describing_, meaning that you are | |
| 41 | guaranteed to be able to derive the internal representation of the | |
| 42 | external (serialized) document, and it is _round-tripping_, meaning that if | |
| 43 | we serialize an internal representation to a document and then convert | |
| 44 | back to an internal representation, we will obtain an identical internal | |
| 45 | representation. Note, for example, that neither XML or YAML necessarily | |
| 46 | have this property in practice. | |
| 47 | ||
| 48 | As a pleasant but unintended side effect, an executable bash file that | |
| 49 | does nothing but define environment variables is trivially an NDBL | |
| 50 | file. | |
| 39 | 51 | |
| 40 | 52 | Structure of an NDBL Document |
| 41 | 53 | ----------------------------- |