Thanks to visit codestin.com
Credit goes to github.com

Skip to content

pommicket/pom-c

Repository files navigation

libpom

C/C++ parser for POM configuration language.

This library is implemented in C, with C++-friendly bindings available as well. See dedicated C++ README here.

About

libpom has

  • small size (~30KB code+data)
  • support for custom memory allocation
  • no dependencies other than libc

Building

Build with

make -j`nproc`

Install with

sudo make install

You can also do PROFILE=Debug make to build with debug information.

The Makefile creates a build directory and runs cmake for you by default. You can also do this manually for more control over cmake options:

mkdir special-build
cd special-build
# e.g. don't build C++ library, tests, or examples
cmake -DLIBPOM_CXX=OFF -DLIBPOM_TESTS=OFF -DLIBPOM_EXAMPLES=OFF -DCMAKE_BUILD_TYPE=Release ..
make -j`nproc`

Basic usage

#include <stdlib.h>
#include <pom.h>

int main(void) {
	pom_error *error;
	pom_conf *conf = pom_load_path(NULL, "conf.pom", &error);
	if (!conf) {
		pom_error_print(error);
		free(error);
		return EXIT_FAILURE;
	}
	const char *indentation_type = pom_conf_get(conf, "indentation-type");
	if (indentation_type)
		printf("Indenting with %s\n", indentation_type);
	else
		printf("No indentation type set!\n");
	pom_conf_free(conf);
}

Assuming you have run make install, you just need to add -l:libpom.a (or -lpom to use the shared library) to your compiler flags.

See examples/ directory for more examples.

Contributing

Contributions are welcome, including bug fixes, examples, improvements to documentation or code readability, and error message translations (see errors.c).

License

Permission to use, copy, modify, and/or distribute this software for
any purpose with or without fee is hereby granted.

THE SOFTWARE IS PROVIDED “AS IS” AND THE AUTHOR DISCLAIMS ALL
WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE
FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY
DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.

About

C/C++ parser for POM configuration language

Resources

Stars

Watchers

Forks

Packages

No packages published