From 0b4002c697102ce0ca1ca6ae413df1548fbd2307 Mon Sep 17 00:00:00 2001
From: "Sven M. Hallberg" <pesco@khjk.org>
Date: Fri, 25 Jan 2013 18:37:04 +0100
Subject: [PATCH] add definitions for h_seq_index family of functions

---
 examples/glue.c | 30 ++++++++++++++++++++++++------
 1 file changed, 24 insertions(+), 6 deletions(-)

diff --git a/examples/glue.c b/examples/glue.c
index 52ffd89b..01eb08c7 100644
--- a/examples/glue.c
+++ b/examples/glue.c
@@ -125,7 +125,7 @@ void * h_cast(HTokenType type, const HParsedToken *p)
   return p->user;
 }
 
-HCountedArray *h_cast_seq (const HParsedToken *p)
+HCountedArray *h_cast_seq(const HParsedToken *p)
 {
   assert(p->token_type == TT_SEQUENCE);
   return p->seq;
@@ -137,13 +137,13 @@ HBytes h_cast_bytes(const HParsedToken *p)
   return p->bytes;
 }
 
-int64_t h_cast_sint (const HParsedToken *p)
+int64_t h_cast_sint(const HParsedToken *p)
 {
   assert(p->token_type == TT_SINT);
   return p->sint;
 }
 
-uint64_t h_cast_uint (const HParsedToken *p)
+uint64_t h_cast_uint(const HParsedToken *p)
 {
   assert(p->token_type == TT_UINT);
   return p->uint;
@@ -163,9 +163,27 @@ HParsedToken *h_seq_index(const HParsedToken *p, size_t i)
   return h_carray_index(p->seq, i);
 }
 
+HCountedArray *h_seq_index_seq(const HParsedToken *p, size_t i)
+{
+  return h_cast_seq(h_seq_index(p, i));
+}
+
+HBytes h_seq_index_bytes(const HParsedToken *p, size_t i)
+{
+  return h_cast_bytes(h_seq_index(p, i));
+}
+
+int64_t h_seq_index_sint(const HParsedToken *p, size_t i)
+{
+  return h_cast_sint(h_seq_index(p, i));
+}
+
+uint64_t h_seq_index_uint(const HParsedToken *p, size_t i)
+{
+  return h_cast_uint(h_seq_index(p, i));
+}
+
 void *h_seq_index_user(HTokenType type, const HParsedToken *p, size_t i)
 {
-  HParsedToken *elem = h_seq_index(p, i);
-  assert(elem->token_type == (HTokenType)type);
-  return elem->user;
+  return h_cast(type, h_seq_index(p, i));
 }
-- 
GitLab