Получение $$ для хранения конкатенации $ 1 и $ 2 - PullRequest
1 голос
/ 21 апреля 2011

Мне нужно объединить фразы как предложение и передать их как слова. У меня есть правило YACC, которое гласит:

words : words WORD  {
                if($1 == NULL)
                {
                    $$ = $2;
                }
                else
                {
                    printf("\t$1 = %s\n",$1);
                    printf("\t$2 = %s\n",$2);
                    strBuffer[0]='\0';
                    strcat((char *)strBuffer,$1);
                    $$ = strcat((char *)strBuffer,$2);
                    printf("\t$$ = %s\n\n",$$);                             
                }
            }

char strBuffer [200] - достаточно большой глобальный массив.

Но когда я запускаю парсер, я получаю:

$1 = The G
$2 = nats and 
$$ = nats and           

Что я должен сделать, чтобы и 1, и 2 доллара превратились в $$?

1 Ответ

2 голосов
/ 21 апреля 2011

Попробуйте:

sprintf($$, "%s%s", $1, $2);
...