/** rjp Copyright (C) 2018-2019 rexy712 This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE, See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #ifndef RJP_INTERNAL_H #define RJP_INTERNAL_H #include "rjp.h" #ifdef __GNUC__ #define MAYBE_UNUSED __attribute__((unused)) #else #define MAYBE_UNUSED #endif #ifdef RJP_DIAGNOSTICS #include #define DIAG_PRINT(...) fprintf(__VA_ARGS__) #else #define DIAG_PRINT(...) #endif // typedef struct RJP_array_element{ struct RJP_value value; struct RJP_array_element* next; }RJP_array_element; //A member of an object typedef struct RJP_object_member{ struct RJP_value value; struct RJP_string name; struct RJP_object_member* next; }RJP_object_member; void irjp_add_element(RJP_array* j); void irjp_add_member(RJP_object* j, const char* str, size_t len); void irjp_add_member_no_alloc(RJP_object* j, char* str, size_t len); #endif