aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libucl/ucl_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/libucl/ucl_internal.h')
-rw-r--r--contrib/libucl/ucl_internal.h17
1 files changed, 16 insertions, 1 deletions
diff --git a/contrib/libucl/ucl_internal.h b/contrib/libucl/ucl_internal.h
index 4ddc713b5..8c16dce8b 100644
--- a/contrib/libucl/ucl_internal.h
+++ b/contrib/libucl/ucl_internal.h
@@ -148,6 +148,7 @@ enum ucl_parser_state {
UCL_STATE_OBJECT,
UCL_STATE_ARRAY,
UCL_STATE_KEY,
+ UCL_STATE_KEY_OBRACE,
UCL_STATE_VALUE,
UCL_STATE_AFTER_VALUE,
UCL_STATE_ARRAY_VALUE,
@@ -185,16 +186,30 @@ struct ucl_macro {
UT_hash_handle hh;
};
+enum ucl_stack_flags {
+ UCL_STACK_HAS_OBRACE = (1u << 0),
+ UCL_STACK_MAX = (1u << 1),
+};
+
struct ucl_stack {
ucl_object_t *obj;
struct ucl_stack *next;
- uint64_t level;
+ union {
+ struct {
+ uint16_t level;
+ uint16_t flags;
+ uint32_t line;
+ } params;
+ uint64_t len;
+ } e;
+ struct ucl_chunk *chunk;
};
struct ucl_chunk {
const unsigned char *begin;
const unsigned char *end;
const unsigned char *pos;
+ char *fname;
size_t remain;
unsigned int line;
unsigned int column;