aboutsummaryrefslogtreecommitdiffstats
path: root/raylib/parser/README.md
diff options
context:
space:
mode:
authorsalaaad2 <arthurdurant263@gmail.com>2022-06-13 22:15:48 +0200
committersalaaad2 <arthurdurant263@gmail.com>2022-06-13 22:15:48 +0200
commit95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3 (patch)
tree352480349a46d19ab5b8078ac4ccb79d27166f04 /raylib/parser/README.md
parentmouse is captured again, pretty gud (diff)
downloadyabs-95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3.tar.gz
yabs-95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3.tar.bz2
yabs-95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3.tar.xz
yabs-95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3.tar.zst
yabs-95cde5c181b5fd1d9ee3f13db749799c4e8ac9d3.zip
add raylib to the build chain with -O3 and -march=native
Diffstat (limited to 'raylib/parser/README.md')
-rw-r--r--raylib/parser/README.md63
1 files changed, 63 insertions, 0 deletions
diff --git a/raylib/parser/README.md b/raylib/parser/README.md
new file mode 100644
index 0000000..f8c0abe
--- /dev/null
+++ b/raylib/parser/README.md
@@ -0,0 +1,63 @@
+# raylib parser
+
+This parser scans [`raylib.h`](../src/raylib.h) to get information about `structs`, `enums` and `functions`.
+All data is separated into parts, usually as strings. The following types are used for data:
+
+ - `struct FunctionInfo`
+ - `struct StructInfo`
+ - `struct EnumInfo`
+
+Check `raylib_parser.c` for details about those structs.
+
+## Command Line Arguments
+
+The parser can take a few options...
+
+- `--help` Displays help information about the parser
+- `--json` Outputs the header information in JSON format
+
+## Constraints
+
+This parser is specifically designed to work with raylib.h, so, it has some constraints:
+
+ - Functions are expected as a single line with the following structure:
+```
+ <retType> <name>(<paramType[0]> <paramName[0]>, <paramType[1]> <paramName[1]>); <desc>
+```
+ Be careful with functions broken into several lines, it breaks the process!
+
+ - Structures are expected as several lines with the following form:
+```
+ <desc>
+ typedef struct <name> {
+ <fieldType[0]> <fieldName[0]>; <fieldDesc[0]>
+ <fieldType[1]> <fieldName[1]>; <fieldDesc[1]>
+ <fieldType[2]> <fieldName[2]>; <fieldDesc[2]>
+ } <name>;
+```
+ - Enums are expected as several lines with the following form:
+```
+ <desc>
+ typedef enum {
+ <valueName[0]> = <valueInteger[0]>, <valueDesc[0]>
+ <valueName[1]>,
+ <valueName[2]>, <valueDesc[2]>
+ <valueName[3]> <valueDesc[3]>
+ } <name>;
+```
+
+_NOTE: For enums, multiple options are supported:_
+
+ - If value is not provided, (<valueInteger[i -1]> + 1) is assigned
+ - Value description can be provided or not
+
+## Additional notes
+
+This parser _could_ work with other C header files if mentioned constraints are followed.
+
+This parser **does not require `<string.h>` library**, all data is parsed directly from char buffers.
+
+### LICENSE: zlib/libpng
+
+raylib-parser is licensed under an unmodified zlib/libpng license, which is an OSI-certified, BSD-like license that allows static linking with closed source software. Check [LICENSE](LICENSE) for further details.
+