mirror of
https://github.com/NickTheFox99/RaylibGame.git
synced 2026-10-12 03:40:08 -04:00
Initial Commit
This commit is contained in:
commit
e6c3ec5406
1235 files changed
+593872
No files matched your search
@@ -0,0 +1,16 @@
|
||||
Copyright (c) 2021-2024 Ramon Santamaria (@raysan5)
|
||||
|
||||
This software is provided "as-is", without any express or implied warranty. In no event
|
||||
will the authors be held liable for any damages arising from the use of this software.
|
||||
|
||||
Permission is granted to anyone to use this software for any purpose, including commercial
|
||||
applications, and to alter it and redistribute it freely, subject to the following restrictions:
|
||||
|
||||
1. The origin of this software must not be misrepresented; you must not claim that you
|
||||
wrote the original software. If you use this software in a product, an acknowledgment
|
||||
in the product documentation would be appreciated but is not required.
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not be misrepresented
|
||||
as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
@@ -0,0 +1,50 @@
|
||||
EXTENSION?=txt
|
||||
FORMAT?=DEFAULT
|
||||
.PHONY: all parse clean raylib_api
|
||||
|
||||
|
||||
raylib_parser: raylib_parser.c
|
||||
cc raylib_parser.c -o raylib_parser
|
||||
|
||||
raylib_api: ../src/raylib.h raylib_parser
|
||||
FORMAT=DEFAULT EXTENSION=txt $(MAKE) raylib_api.txt
|
||||
FORMAT=JSON EXTENSION=json $(MAKE) raylib_api.json
|
||||
FORMAT=XML EXTENSION=xml $(MAKE) raylib_api.xml
|
||||
FORMAT=LUA EXTENSION=lua $(MAKE) raylib_api.lua
|
||||
|
||||
raylib_api.$(EXTENSION): ../src/raylib.h raylib_parser
|
||||
./raylib_parser -i ../src/raylib.h -o raylib_api.$(EXTENSION) -f $(FORMAT) -d RLAPI
|
||||
|
||||
raymath_api.$(EXTENSION): ../src/raymath.h raylib_parser
|
||||
./raylib_parser -i ../src/raymath.h -o raymath_api.$(EXTENSION) -f $(FORMAT) -d RMAPI
|
||||
|
||||
rlgl_api.$(EXTENSION): ../src/rlgl.h raylib_parser
|
||||
./raylib_parser -i ../src/rlgl.h -o rlgl_api.$(EXTENSION) -f $(FORMAT) -d RLAPI -t "RLGL IMPLEMENTATION"
|
||||
|
||||
reasings_api.$(EXTENSION): ../examples/others/reasings.h raylib_parser
|
||||
./raylib_parser -i ../examples/others/reasings.h -o reasings_api.$(EXTENSION) -f $(FORMAT) -d EASEDEF
|
||||
|
||||
rmem_api.$(EXTENSION): ../rmem.h raylib_parser
|
||||
./raylib_parser -i ../rmem.h -o rmem_api.$(EXTENSION) -f $(FORMAT) -d RMEMAPI -t "RMEM IMPLEMENTATION"
|
||||
|
||||
physac_api.$(EXTENSION): ../physac.h raylib_parser
|
||||
./raylib_parser -i ../physac.h -o physac_api.$(EXTENSION) -f $(FORMAT) -d PHYSACDEF -t "PHYSAC IMPLEMENTATION"
|
||||
|
||||
raygui_api.$(EXTENSION): ../raygui.h raylib_parser
|
||||
./raylib_parser -i ../raygui.h -o raygui_api.$(EXTENSION) -f $(FORMAT) -d RAYGUIAPI -t "RAYGUI IMPLEMENTATION"
|
||||
|
||||
parse: raylib_api.$(EXTENSION) raymath_api.$(EXTENSION) rlgl_api.$(EXTENSION) rmem_api.$(EXTENSION) physac_api.$(EXTENSION) raygui_api.$(EXTENSION)
|
||||
|
||||
|
||||
# `make parse` (and therefore `make all) requires
|
||||
# rmem.h, physac.h and raygui.h to exist in the correct directory
|
||||
# API files for individual headers can be created likeso, provided the relevant header exists:
|
||||
# FORMAT=JSON EXTENSION=json make raygui_api.json
|
||||
all: raylib_parser
|
||||
FORMAT=DEFAULT EXTENSION=txt $(MAKE) parse
|
||||
FORMAT=JSON EXTENSION=json $(MAKE) parse
|
||||
FORMAT=XML EXTENSION=xml $(MAKE) parse
|
||||
FORMAT=LUA EXTENSION=lua $(MAKE) parse
|
||||
|
||||
clean:
|
||||
rm -f raylib_parser *.json *.txt *.xml *.lua
|
||||
@@ -0,0 +1,107 @@
|
||||
# raylib parser
|
||||
|
||||
This parser scans [`raylib.h`](../src/raylib.h) to get information about `defines`, `structs`, `enums` and `functions`.
|
||||
All data is separated into parts, usually as strings. The following types are used for data:
|
||||
|
||||
- `struct DefineInfo`
|
||||
- `struct FunctionInfo`
|
||||
- `struct StructInfo`
|
||||
- `struct EnumInfo`
|
||||
|
||||
Check `raylib_parser.c` for details about those structs.
|
||||
|
||||
## Command Line
|
||||
|
||||
```
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
// //
|
||||
// raylib API parser //
|
||||
// //
|
||||
// more info and bugs-report: github.com/raysan5/raylib/parser //
|
||||
// //
|
||||
// Copyright (c) 2021-2024 Ramon Santamaria (@raysan5) //
|
||||
// //
|
||||
//////////////////////////////////////////////////////////////////////////////////
|
||||
|
||||
USAGE:
|
||||
|
||||
> raylib_parser [--help] [--input <filename.h>] [--output <filename.ext>] [--format <type>]
|
||||
|
||||
OPTIONS:
|
||||
|
||||
-h, --help : Show tool version and command line usage help
|
||||
|
||||
-i, --input <filename.h> : Define input header file to parse.
|
||||
NOTE: If not specified, defaults to: raylib.h
|
||||
|
||||
-o, --output <filename.ext> : Define output file and format.
|
||||
Supported extensions: .txt, .json, .xml, .h
|
||||
NOTE: If not specified, defaults to: raylib_api.txt
|
||||
|
||||
-f, --format <type> : Define output format for parser data.
|
||||
Supported types: DEFAULT, JSON, XML, LUA
|
||||
|
||||
-d, --define <DEF> : Define functions specifiers (i.e. RLAPI for raylib.h, RMAPI for raymath.h, etc.)
|
||||
NOTE: If no specifier defined, defaults to: RLAPI
|
||||
|
||||
-t, --truncate <after> : Define string to truncate input after (i.e. "RLGL IMPLEMENTATION" for rlgl.h)
|
||||
NOTE: If not specified, the full input file is parsed.
|
||||
|
||||
|
||||
EXAMPLES:
|
||||
|
||||
> raylib_parser --input raylib.h --output api.json
|
||||
Process <raylib.h> to generate <api.json>
|
||||
|
||||
> raylib_parser --output raylib_data.info --format XML
|
||||
Process <raylib.h> to generate <raylib_data.info> as XML text data
|
||||
|
||||
> raylib_parser --input raymath.h --output raymath_data.info --format XML --define RMAPI
|
||||
Process <raymath.h> to generate <raymath_data.info> as XML text data
|
||||
```
|
||||
|
||||
## 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.
|
||||
|
||||
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user