У меня два вопроса о том, как написать синтаксический анализатор рекурсивного спуска:
Первый - что делать, когда у вас есть нетерминал, который может соответствовать одному из нескольких разных нетерминалов? Как проверить, какой из вариантов правильный?
Во-вторых, как построить AST? Используя YACC, я могу просто написать фрагмент кода для выполнения для каждого экземпляра нетерминала, и в нем есть специальные переменные, которые относятся к «значениям» правил. Как сделать то же самое в парсере рекурсивного спуска?