diff --git a/libanjuta/anjuta-token.c b/libanjuta/anjuta-token.c index a0b3cec..2343131 100644 --- a/libanjuta/anjuta-token.c +++ b/libanjuta/anjuta-token.c @@ -544,6 +544,14 @@ AnjutaToken *anjuta_token_group (AnjutaToken *parent, AnjutaToken *last) } +AnjutaToken *anjuta_token_new_group (AnjutaTokenType type, AnjutaToken* first) +{ + AnjutaToken *parent = anjuta_token_new_static (type, NULL); + + g_node_insert_before ((GNode *)first->parent, (GNode *)first, (GNode *)parent); + return anjuta_token_group (parent, first); +} + AnjutaToken *anjuta_token_ungroup (AnjutaToken *token) { GNode *last = (GNode *)token; diff --git a/libanjuta/anjuta-token.h b/libanjuta/anjuta-token.h index 7b53612..3906927 100644 --- a/libanjuta/anjuta-token.h +++ b/libanjuta/anjuta-token.h @@ -118,6 +118,8 @@ AnjutaToken *anjuta_token_delete (AnjutaToken *token); AnjutaToken *anjuta_token_group (AnjutaToken *parent, AnjutaToken *last); AnjutaToken *anjuta_token_ungroup (AnjutaToken *parent); +AnjutaToken *anjuta_token_new_group (AnjutaTokenType type, AnjutaToken* first); + AnjutaToken *anjuta_token_split (AnjutaToken *token, guint size); AnjutaToken * anjuta_token_insert_child (AnjutaToken *parent, AnjutaToken *child); diff --git a/src/ac-parser.y b/src/ac-parser.y index 959675e..91cc038 100644 --- a/src/ac-parser.y +++ b/src/ac-parser.y @@ -322,7 +322,7 @@ raw_string_body: arg_string: LEFT_BRACE arg_string_body RIGHT_BRACE { - $$ = anjuta_token_group_new (NAME, $1); + $$ = anjuta_token_new_group (NAME, $1); anjuta_token_set_type ($1, ANJUTA_TOKEN_OPEN_QUOTE); anjuta_token_set_type ($3, ANJUTA_TOKEN_CLOSE_QUOTE); anjuta_token_group ($$, $3); @@ -354,7 +354,7 @@ arg: $$ = NULL; } | arg_part arg_body { - $$ = anjuta_token_group_new (ANJUTA_TOKEN_ARGUMENT, $1); + $$ = anjuta_token_new_group (ANJUTA_TOKEN_ARGUMENT, $1); if ($2 != NULL) anjuta_token_group ($$, $2); } ; @@ -388,10 +388,10 @@ arg_part: separator: COMMA { - $$ = anjuta_token_group_new (ANJUTA_TOKEN_NEXT, $1); + $$ = anjuta_token_new_group (ANJUTA_TOKEN_NEXT, $1); } | COMMA spaces { - $$ = anjuta_token_group_new (ANJUTA_TOKEN_NEXT, $1); + $$ = anjuta_token_new_group (ANJUTA_TOKEN_NEXT, $1); anjuta_token_group ($$, $2); } ; diff --git a/tests/makefile.lst b/tests/makefile.lst index f3a8aa0..d77dd52 100644 --- a/tests/makefile.lst +++ b/tests/makefile.lst @@ -2,8 +2,8 @@ VARIABLE: OBJECTS = foobar.o VARIABLE: LDFLAGS = -Wl,-rpath,/usr/local/lib VARIABLE: CC = gcc - VARIABLE: LIBS = (null) - VARIABLE: INCFLAGS = (null) + VARIABLE: LIBS = + VARIABLE: INCFLAGS = GROUP (0): makefile TARGET (0:0): foobar SOURCE (0:0:0): foobar.c