Skip to content

Commit 425999e

Browse files
authored
Merge pull request #384 from aalmkainzi/fix_balanced_token_sequence
fixed balanced_token_sequence_opt not assigning nodes correctly, and made it ignore commas
2 parents 8169acd + aac64f2 commit 425999e

File tree

1 file changed

+12
-10
lines changed

1 file changed

+12
-10
lines changed

src/parser.c

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8194,7 +8194,6 @@ void balanced_token_sequence_delete(struct balanced_token_sequence* _Owner _Opt
81948194
struct balanced_token_sequence* _Owner _Opt balanced_token_sequence_opt(struct parser_ctx* ctx)
81958195
{
81968196
struct balanced_token_sequence* _Owner _Opt p_balanced_token_sequence = calloc(1, sizeof(struct balanced_token_sequence));
8197-
struct balanced_token* current_balanced_token = NULL;
81988197
try
81998198
{
82008199
if (p_balanced_token_sequence == NULL)
@@ -8227,17 +8226,20 @@ struct balanced_token_sequence* _Owner _Opt balanced_token_sequence_opt(struct p
82278226
else if (ctx->current->type == '{')
82288227
count3--;
82298228

8230-
struct balanced_token* new_token = calloc(1, sizeof(struct balanced_token));
8231-
new_token->token = ctx->current;
8232-
if(current_balanced_token == NULL)
8229+
if(ctx->current->type != TK_COMMA)
82338230
{
8234-
p_balanced_token_sequence->head = new_token;
8235-
}
8236-
else
8237-
{
8238-
current_balanced_token->next = new_token;
8231+
struct balanced_token* new_token = calloc(1, sizeof(struct balanced_token));
8232+
new_token->token = ctx->current;
8233+
if(p_balanced_token_sequence->tail == NULL)
8234+
{
8235+
p_balanced_token_sequence->head = new_token;
8236+
}
8237+
else
8238+
{
8239+
p_balanced_token_sequence->tail->next = new_token;
8240+
}
8241+
p_balanced_token_sequence->tail = new_token;
82398242
}
8240-
p_balanced_token_sequence->tail = new_token;
82418243

82428244
parser_match(ctx);
82438245
}

0 commit comments

Comments
 (0)