Вставить текст во входной файл на языке Lex (с помощью C)
-
22-07-2019 - |
Вопрос
Я пытаюсь помочь другу с заданием в колледже, но я вроде как забыл многое из C an Lex.
Дело в том, что мы пытаемся разобрать HTML и соответствующий CSS-файл и добавить к тегу его стиль.
Например:
HTML
<body>
</body>
CSS - файл
body{color:black;}
измененный HTML
<body style="color:black;">
</body>
Все регулярные выражения выполнены, и макросы тоже.
Проблема: Входной HTML-код и измененный HTML-код должны быть одним и тем же файлом.Мы попробовали перенаправить оба ййин и даут в тот же файл...а затем используйте fputs(текст, yyout);где текст - это символ * со всей информацией о стиле (и style="").Это не работает.
Итак...Ребята, вы можете ему помочь?
важно не потерять представление о местоположении в файле (поэтому style="" переходит к нужному тегу).
Спасибо
Решение
перенаправление yyin и yyout на один и тот же файл не будет работать..( как вы уже знаете ) .Мой подход был бы следующим:
- Создайте временный файл
- yyout записывает во временный файл
- когда синтаксический анализ будет завершен, создайте резервную копию входного файла для безопасности
- замените входной файл временным файлом
Другого способа нет, если yyout совпадает с yyin, то ваш (исходный вводимый) текст будет перекрываться.