en.wikipedia.org/wiki/Yacc
ern C ++ есть ли способ сделать безопасную навигацию?
Например,вместо делать ...
if (p && p->q && p->q->r)
p->q->r->DoSomething();
... имеющий краткий синтаксис с использованием некоторого вида короткого замыкания интеллектуального указателя, или некоторого другого вида перегрузки операторов с использованием синтаксиса, или чего-то в стандартной библиотеке C ++ или в Boost.
p?->q?->r?->DoSomething(); // C++ pseudo-code.
В частности, это C ++ 17.