Нет однозначного ответа на это.Типичный способ справиться с этим - создать специальный шаблон для чтения символов до тех пор, пока он не достигнет (например) точки с запятой в конце строки, давая разумный сигнал о том, что все, что после этого, предназначено для нового объявления, определения, оператораи т. д., а затем перезапустите анализ с этой точки (сохраняя достаточно контекста, чтобы знать, например, что в данный момент вы анализируете тело функции, поэтому вы принимаете / отклоняете ввод на этой основе).