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).
This commit is contained in:
Carl Worth
2010-05-14 10:44:19 -07:00
parent db272e6e6f
commit 8f6a828e4a
2 changed files with 102 additions and 24 deletions
+10 -1
View File
@@ -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 *