Это означает, что первый элемент (терминальный или нетерминальный) в RHS правила Expression
в строке 1302 файла parser.y не имеет объявленного типа для него. Если это терминал, вам нужно добавить %token
декларации для него, а если он не терминальный, вам нужно добавить для него %type
декларацию. Когда вы сделаете это (вероятно, либо $type <nodePtr>
или %token <nodePtr>
), вы получите доступ к значению как просто $1
(без суффикса .nodePtr
)
редактировать
звучит так, как будто строка 1302 должна быть $$ = $1;
. %type <nodePtr> XXX
должен идти в первом разделе, где XXX - нетерминал для этого правила. Когда вы используете %union
в файле .y, теги, объявленные в объединении, должны использоваться ТОЛЬКО в объявлениях %type
и %token
- они не должны появляться ни в одном действии в файле .y