Как передать структуру функции в файле YACC? - PullRequest
0 голосов
/ 05 декабря 2009

У меня есть это в моем файле yacc.

var_declaration : type_specifier ID ';' {$2->args = ""; $2->value = 0; $2->arraysize = 0; $2->type = "variable";}

Все выше работает.

Я хочу добавить это к этому.

fn($2);

Внутри функции я хочу делать такие вещи.

 fn(struct symtab sp)
    {
    sp->value = 0;
    }

Но когда я пытаюсь скомпилировать программу, я получаю эту ошибку:

ошибка: неверный аргумент типа ‘->’ (есть ‘struct symtab ')

1 Ответ

6 голосов
/ 05 декабря 2009

Я полагаю, ваша функция должна быть

fn(struct symtab* sp)

вместо

fn(struct symtab sp)

и, кстати, 2 доллара - это союз Я не думаю, что

$2->args = ""; $2->value = 0; $2->arraysize = 0; 

правильно. И

$2->type = "variable";

недействительно.

...