diff --git a/examples/glue.c b/examples/glue.c index de5f1e7b43d8c60e85ffdc987ee2ee7e88a26279..02087d4cee93718b2510b614a31211267deb882f 100644 --- a/examples/glue.c +++ b/examples/glue.c @@ -121,6 +121,13 @@ size_t h_seq_len(const HParsedToken *p) return p->seq->used; } +HParsedToken **h_seq_elements(const HParsedToken *p) +{ + assert(p != NULL); + assert(p->token_type == TT_SEQUENCE); + return p->seq->elements; +} + HParsedToken *h_seq_index(const HParsedToken *p, size_t i) { assert(p != NULL); diff --git a/examples/glue.h b/examples/glue.h index 568cbda09ae3c4bb7ba4b55d7db9800c01fdc714..b3866251213b469165cedd94f5aa7f2a3af95d6c 100644 --- a/examples/glue.h +++ b/examples/glue.h @@ -77,8 +77,11 @@ uint64_t h_cast_uint (const HParsedToken *p); // Return the length of a sequence. size_t h_seq_len(const HParsedToken *p); +// Access a sequence's element array. +HParsedToken **h_seq_elements(const HParsedToken *p); + // Access a sequence element by index. -HParsedToken * h_seq_index(const HParsedToken *p, size_t i); +HParsedToken *h_seq_index(const HParsedToken *p, size_t i); // Convenience functions combining index access and h_cast_*. HCountedArray *h_seq_index_seq (const HParsedToken *p, size_t i);