tomlc99_rtt_pkg/README.md

96 lines
1.8 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# tomlc99
TOML in c99; v0.5.0 compliant.
# Usage
Please see the `toml.h` file for details. What follows is a simple example that
parses this config file:
```
[server]
   host = "www.example.com"
port = 80
```
For each config param, the code first extracts a raw value and then
convert it to a string or integer depending on context.
```
FILE* fp;
toml_table_t* conf;
toml_table_t* server;
const char* raw;
char* host;
int64_t port;
char errbuf[200];
/* open file and parse */
if (0 == (fp = fopen(FNAME, "r"))) {
return handle_error();
}
conf = toml_parse_file(fp, errbuf, sizeof(errbuf));
fclose(fp);
if (0 == conf) {
return handle_error();
}
/* locate the [server] table */
if (0 == (server = toml_table_in(conf, "server"))) {
return handle_error();
}
/* extract host config value */
if (0 == (raw = toml_raw_in(server, "host"))) {
return handle_error();
}
if (toml_rtos(raw, &host)) {
return handle_error();
}
/* extract port config value */
if (0 == (raw = toml_raw_in(server, "port"))) {
return handle_error();
}
if (toml_rtoi(raw, &port)) {
return handle_error();
}
/* done with conf */
toml_free(conf);
/* use host and port */
do_work(host, port);
/* clean up */
free(host);
```
# Building
A normal *make* suffices. Alternately, you can also simply include the
`toml.c` and `toml.h` files in your project.
# Testing
To test against the standard test set provided by BurntSushi/toml-test:
```
% make
% cd test1
% bash build.sh # do this once
% bash run.sh # this will run the test suite
```
To test against the standard test set provided by iarna/toml:
```
% make
% cd test2
% bash build.sh # do this once
% bash run.sh # this will run the test suite
```