История изменений
Исправление Sorcerer, (текущая версия) :
Проще всего ввести глобальную переменную - последнее возвращенное yylex()'ом значение. И сделать функцию yylex_reinitialize(), которая будет вызывать getchar() до тех пор, пока не встретит '\n' или EOF, но только в том случае, если глобальная переменная не равна 0. Эту новую функцию нужно вызывать после неуспешного yyparse(). Так вы вычитаете весь ненужный остаток строки, тем самым подготовив yylex() к обработке новой строки.
Исходная версия Sorcerer, :
Проще всего ввести глобальную переменную - последнее возвращенное yylex()'ом значение. И сделать функцию yylex_reinitialize(), которая будет вызывать getchar() до тех пор, пока не встретите '\n' или EOF, но только в том случае, если глобальная переменная не равна 0. Эту новую функцию нужно вызывать после неуспешного yyparse(). Так вы вычитаете весь ненужный остаток строки, тем самым подготовив yylex() к обработке новой строки.