Lines Matching refs:left
489 static enum token_type combine(struct token *left, struct token *right, char *p)
492 enum token_type t1 = token_type(left), t2 = token_type(right);
497 if (t1 == TOKEN_IDENT && left->ident == &L_ident) {
507 strcpy(p, show_token(left));
543 static int merge(struct token *left, struct token *right)
546 enum token_type res = combine(left, right, buffer);
551 left->ident = built_in_ident(buffer);
552 left->pos.noexpand = 0;
556 token_type(left) = TOKEN_NUMBER; /* could be . + num */
557 left->number = xstrdup(buffer);
565 left->special = n;
573 token_type(left) = res;
574 left->pos.noexpand = 0;
575 left->string = right->string;
579 token_type(left) = res;
580 left->pos.noexpand = 0;
581 memcpy(left->embedded, right->embedded, 4);
587 sparse_error(left->pos, "'##' failed: concatenation is not a valid token");
1473 struct token *left = token->next;
1476 if (token_type(left) != TOKEN_IDENT) {
1481 name = left->ident;
1484 expansion = left->next;
1497 return do_define(left->pos, token, name, arglist, expansion, attr);
1517 struct token *left = token->next;
1520 if (token_type(left) != TOKEN_IDENT) {
1525 sym = lookup_symbol(left->ident, NS_MACRO | NS_UNDEF);
1535 sym = alloc_symbol(left->pos, SYM_NODE);
1536 bind_symbol(sym, left->ident, NS_MACRO);