Все сводится к полученному неудачному выводу y.tab.h.
Вам нужно исправить это, убедившись, что "struct node" определен до того, как вы включите y.tab.h в любом месте.
Для этого создайте файл node.h с определением структуры.
Затем включите node.h перед y.tab.h в свой файл parser.l, файл parser.y, а также любые ваши c-файлы, которые включают y.tab.h. Это немного раздражает.
В качестве альтернативы вы можете изменить "struct node args" на "struct node * args", так как вам не нужно будет знать полный тип, пока вы не будете использовать его где-нибудь. Не уверен, что это будет соответствовать вашему коду.
Либо надо работать.