Чтобы реализовать поддержку typedef, вам нужно искать таблицу символов, когда лексер идентифицирует идентификатор и возвращает другой токен.
Разве это не ставит телегу перед лошадью? Цель лексера - взять ввод текста и превратить его в поток простых токенов. Это облегчает определение и обработку синтаксического анализатора, поскольку он не должен обрабатывать низкоуровневые вещи, такие как «это возможные представления типа float» и т. Д.
Языковое сопоставление идентификатора токена с символом (т. Е. Typedef) - это не то, что должен делать лексер. Это то, что происходит на этапе синтаксического анализа или, возможно, даже позже, как пост-процесс абстрактного синтаксического дерева.
Или, другими словами, есть веская причина, по которой qi::symbols
является объектом синтаксического анализа, а не лексером. Обращаться с подобными вещами не является делом лексера.
В любом случае мне кажется, что вы хотите создать средство для (в синтаксическом анализаторе ) сопоставления токена идентификатора с объектом, представляющим тип, который был определен как typedef'd , qi::symbols
синтаксический анализатор, кажется, способ делать такие вещи.