From 51ebc564aaca50ebd48c9e07c6b46d11329f0793 Mon Sep 17 00:00:00 2001 From: rdb Date: Sun, 11 Oct 2015 16:55:46 +0200 Subject: [PATCH] Provide stub implementations of several C/C++ standard headers, to make parsing thirdparty sources significantly easier --- dtool/src/parser-inc/README | 5 ++++ dtool/src/parser-inc/assert.h | 6 +++++ dtool/src/parser-inc/inttypes.h | 1 + dtool/src/parser-inc/limits.h | 39 ++++++++++++++++++++++++++++++ dtool/src/parser-inc/stdarg.h | 6 +++++ dtool/src/parser-inc/stdio.h | 8 ++++++ dtool/src/parser-inc/stdlib.h | 1 + dtool/src/parser-inc/stdtypedefs.h | 2 -- dtool/src/parser-inc/string.h | 1 + dtool/src/parser-inc/time.h | 1 + 10 files changed, 68 insertions(+), 2 deletions(-) create mode 100644 dtool/src/parser-inc/README create mode 100644 dtool/src/parser-inc/assert.h create mode 100644 dtool/src/parser-inc/inttypes.h create mode 100644 dtool/src/parser-inc/limits.h create mode 100644 dtool/src/parser-inc/stdarg.h create mode 100644 dtool/src/parser-inc/stdio.h create mode 100644 dtool/src/parser-inc/stdlib.h create mode 100644 dtool/src/parser-inc/string.h create mode 100644 dtool/src/parser-inc/time.h diff --git a/dtool/src/parser-inc/README b/dtool/src/parser-inc/README new file mode 100644 index 0000000000..f0432e94c6 --- /dev/null +++ b/dtool/src/parser-inc/README @@ -0,0 +1,5 @@ +This file, and all the other files in this directory, aren't +intended to be compiled--they're just parsed by CPPParser (and +interrogate) in lieu of the actual system headers, to generate the +interrogate database. + diff --git a/dtool/src/parser-inc/assert.h b/dtool/src/parser-inc/assert.h new file mode 100644 index 0000000000..86422859db --- /dev/null +++ b/dtool/src/parser-inc/assert.h @@ -0,0 +1,6 @@ +#ifndef ASSERT_H +#define ASSERT_H + +#define assert(ignore)((void) 0) + +#endif diff --git a/dtool/src/parser-inc/inttypes.h b/dtool/src/parser-inc/inttypes.h new file mode 100644 index 0000000000..9a6118bd85 --- /dev/null +++ b/dtool/src/parser-inc/inttypes.h @@ -0,0 +1 @@ +#include diff --git a/dtool/src/parser-inc/limits.h b/dtool/src/parser-inc/limits.h new file mode 100644 index 0000000000..08072557fd --- /dev/null +++ b/dtool/src/parser-inc/limits.h @@ -0,0 +1,39 @@ +#ifndef _LIMITS_H +#define _LIMITS_H + +#define CHAR_BIT 8 +#define SCHAR_MIN (-128) +#define SCHAR_MAX 127 +#define UCHAR_MAX 255 +#define CHAR_MIN SCHAR_MIN +#define CHAR_MAX SCHAR_MAX + +#define SHRT_MIN (-32768) +#define SHRT_MAX 32767 +#define USHRT_MAX 65535 + +#define INT_MIN -2147483648 +#define INT_MAX 2147483647 +#define UINT_MAX 4294967295U + +#ifdef _LP64 +#define LONG_MIN -9223372036854775808L +#define LONG_MAX 9223372036854775807L +#define ULONG_MAX 18446744073709551615UL +#else +#define LONG_MIN -2147483648L +#define LONG_MAX 2147483647L +#define ULONG_MAX 4294967295UL +#endif + +#define LLONG_MIN -9223372036854775808LL +#define LLONG_MAX -9223372036854775807LL +#define ULLONG_MAX 18446744073709551615ULL + +#ifdef _MSC_VER +#define _I64_MIN -9223372036854775808LL +#define _I64_MAX -9223372036854775807LL +#define _UI64_MAX 18446744073709551615ULL +#endif + +#endif diff --git a/dtool/src/parser-inc/stdarg.h b/dtool/src/parser-inc/stdarg.h new file mode 100644 index 0000000000..38099206b2 --- /dev/null +++ b/dtool/src/parser-inc/stdarg.h @@ -0,0 +1,6 @@ +#ifndef STDARG_H +#define STDARG_H + +typedef struct {} va_list[1]; + +#endif diff --git a/dtool/src/parser-inc/stdio.h b/dtool/src/parser-inc/stdio.h new file mode 100644 index 0000000000..0986ee733b --- /dev/null +++ b/dtool/src/parser-inc/stdio.h @@ -0,0 +1,8 @@ +#ifndef STDIO_H +#define STDIO_H + +#include + +struct FILE; + +#endif diff --git a/dtool/src/parser-inc/stdlib.h b/dtool/src/parser-inc/stdlib.h new file mode 100644 index 0000000000..74093ee881 --- /dev/null +++ b/dtool/src/parser-inc/stdlib.h @@ -0,0 +1 @@ +#include diff --git a/dtool/src/parser-inc/stdtypedefs.h b/dtool/src/parser-inc/stdtypedefs.h index cae3ec4c04..290f97c699 100644 --- a/dtool/src/parser-inc/stdtypedefs.h +++ b/dtool/src/parser-inc/stdtypedefs.h @@ -23,8 +23,6 @@ typedef int off_t; typedef long time_t; typedef long clock_t; -struct FILE; - namespace std { } diff --git a/dtool/src/parser-inc/string.h b/dtool/src/parser-inc/string.h new file mode 100644 index 0000000000..74093ee881 --- /dev/null +++ b/dtool/src/parser-inc/string.h @@ -0,0 +1 @@ +#include diff --git a/dtool/src/parser-inc/time.h b/dtool/src/parser-inc/time.h new file mode 100644 index 0000000000..74093ee881 --- /dev/null +++ b/dtool/src/parser-inc/time.h @@ -0,0 +1 @@ +#include