Support macro invocations with multiple tokens for a single argument.
We provide for this by changing the value of the argument-list
production from a list of strings (string_list_t) to a new
data-structure that holds a list of lists of strings
(argument_list_t).
diff --git a/glcpp.h b/glcpp.h
index cee08fa..7966a2a 100644
--- a/glcpp.h
+++ b/glcpp.h
@@ -30,7 +30,6 @@
/* Some data types used for parser value. */
-
typedef struct string_node {
const char *str;
struct string_node *next;
@@ -41,6 +40,16 @@
string_node_t *tail;
} string_list_t;
+typedef struct argument_node {
+ string_list_t *argument;
+ struct argument_node *next;
+} argument_node_t;
+
+typedef struct argument_list {
+ argument_node_t *head;
+ argument_node_t *tail;
+} argument_list_t;
+
typedef struct glcpp_parser glcpp_parser_t;
glcpp_parser_t *