summaryrefslogtreecommitdiff
path: root/glcpp.h
diff options
context:
space:
mode:
authorCarl Worth <cworth@cworth.org>2010-05-14 10:44:19 -0700
committerCarl Worth <cworth@cworth.org>2010-05-14 11:50:27 -0700
commit8f6a828e4a454e1bdce359c43e1108ff0315a89c (patch)
tree988c482b8fae6fe96ddcdbba5c0149d7bfcc9f24 /glcpp.h
parentdb272e6e6fbfe349ea6d9877bb7715ecb2d9f0c1 (diff)
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).
Diffstat (limited to 'glcpp.h')
-rw-r--r--glcpp.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/glcpp.h b/glcpp.h
index cee08faa98..7966a2a3d2 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 @@ typedef struct string_list {
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 *