Я пишу парсер рекурсивного спуска для C на C ++. Я не знаю, как правильно выбрать производство в следующем случае:
statement: labeled-statement | compound-statement | expression-statement | selection-statement | iteration-statement | jump-statement
Я читал о «первом» наборе, который сравнивает лок-токен / символ с возможными терминалами, которые стоят первыми в производстве. В настоящее время я застрял в использовании первого набора в парсере рекурсивного спуска, потому что у меня есть только функция и ничего больше, нет объекта для каждого правила или чего-либо еще, с чем я могу идентифицировать правило / продукцию.