Shipwright/OTRGui/libs/raylib/parser
M4xw f52a2a6406 git subrepo clone (merge) https://github.com/HarbourMasters/otrgui.git OTRGui
subrepo:
  subdir:   "OTRGui"
  merged:   "a6066a251"
upstream:
  origin:   "https://github.com/HarbourMasters/otrgui.git"
  branch:   "master"
  commit:   "a6066a251"
git-subrepo:
  version:  "0.4.1"
  origin:   "???"
  commit:   "???"
2022-03-22 02:53:51 +01:00
..
LICENSE git subrepo clone (merge) https://github.com/HarbourMasters/otrgui.git OTRGui 2022-03-22 02:53:51 +01:00
raylib_api.json git subrepo clone (merge) https://github.com/HarbourMasters/otrgui.git OTRGui 2022-03-22 02:53:51 +01:00
raylib_api.lua git subrepo clone (merge) https://github.com/HarbourMasters/otrgui.git OTRGui 2022-03-22 02:53:51 +01:00
raylib_api.txt git subrepo clone (merge) https://github.com/HarbourMasters/otrgui.git OTRGui 2022-03-22 02:53:51 +01:00
raylib_api.xml git subrepo clone (merge) https://github.com/HarbourMasters/otrgui.git OTRGui 2022-03-22 02:53:51 +01:00
raylib_parser.c git subrepo clone (merge) https://github.com/HarbourMasters/otrgui.git OTRGui 2022-03-22 02:53:51 +01:00
README.md git subrepo clone (merge) https://github.com/HarbourMasters/otrgui.git OTRGui 2022-03-22 02:53:51 +01:00

raylib parser

This parser scans 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 for further details.