LINUX.ORG.RU

История изменений

Исправление Sorcerer, (текущая версия) :

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

Исходная версия Sorcerer, :

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