X-Git-Url: https://git.draconx.ca/gitweb/cdecl99.git/blobdiff_plain/41ff7ec97691736525bb3da095afd5ca9a8ef003..4ef59e97312cf3e8f537643c65bc2fef057b786b:/src/cdecl-internal.h diff --git a/src/cdecl-internal.h b/src/cdecl-internal.h index a5f3272..a1e8a96 100644 --- a/src/cdecl-internal.h +++ b/src/cdecl-internal.h @@ -20,6 +20,9 @@ #include #include +#include "cdecl.h" + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) #define _(s) dgettext(PACKAGE, s) #define N_(s) s @@ -80,6 +83,7 @@ struct output_state { size_t cdecl__advance(struct output_state *dst, size_t amount); size_t cdecl__emit(struct output_state *dst, const char *src); +size_t cdecl__emit_uint(struct output_state *dst, uintmax_t val); size_t cdecl__strlcpy(char *dst, const char *src, size_t len); const char *cdecl__emit_specs(struct output_state *dst, @@ -100,4 +104,17 @@ const char *cdecl__emit_specs(struct output_state *dst, */ unsigned cdecl__to_keyword(const char *s, int len, int english_mode); +/* Container for an allocated parser token's value */ +struct parse_item { + union { + struct cdecl_declarator declarator; + struct cdecl_declspec declspec; + struct cdecl decl; + } u; + + char s[FLEXIBLE_ARRAY_MEMBER]; +}; + +struct parse_item *cdecl__alloc_item(size_t s_sz); + #endif