From 7bad9471f25e9dd87df0423f449a628973f0c365 Mon Sep 17 00:00:00 2001 From: cullvox <68567525+cadenmiller@users.noreply.github.com> Date: Sun, 20 Aug 2023 13:45:10 -0400 Subject: [PATCH] Update README.md --- README.md | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 57 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 73d3c54..d3a70a7 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,57 @@ -# noodlec -The noodle data language parser implemented in C99 + +# Noodle C99 Parser +![CMake Workflow](https://github.com/cadenmiller/noodlec/actions/workflows/cmake-single-platform.yml/badge.svg) + +Welcome to the Noodle C99 Parser project! This repository contains a C99 parser designed for the Noodle data language. Noodle is a lightweight language for data representation. This parser lets you seamlessly integrate Noodle data structures into C applications. + +## Features + +- Parse Noodle data files into C99 data structures. +- Intuitive API for navigating and manipulating parsed Noodle data. +- Lightweight and minimal dependencies. + +## Getting Started + +1. Clone this repository: `git clone https://github.com/cadenmiller/noodlec.git` +2. Navigate to the project directory: `cd noodlec` +3. Build the parser library using CMake. +4. Link with your C project. + +## Usage + +1. Include `"noodle.h"` in your code. +2. Initialize by creating a root `Noodle_t` using noodleParse(). +4. Work with the parsed data using the functions noodleFrom() and noodleAt(). +5. Free resources with `noodleFree()`. + +## Example + +```c +#include +#include "noodle.h" + +int main() { + NoodleGroup_t* settings = noodleParseFromFile("settings.noodle"); + if (!parser) return EXIT_FAILURE; + + bool valid = false; + float volume = noodleFloatFrom(settings, "volume", &valid); + int vulkanDeviceId = noodleIntFrom(settings, "vulkanDeviceId", &valid); + + if (!valid) return EXIT_FAILURE; + + // And it's just that easy, use the parsed data here! + // ... + + noodleFree(settings); + return 0; +} +``` + +## Contributing + +Feel free to contribute and stick to continuing the current code styling. + +## License + +This project is licensed under the MIT License.