Вставить текст во входной файл на языке Lex (с помощью C)

StackOverflow https://stackoverflow.com/questions/1823561

Вопрос

Я пытаюсь помочь другу с заданием в колледже, но я вроде как забыл многое из 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 на один и тот же файл не будет работать..( как вы уже знаете ) .Мой подход был бы следующим:

  1. Создайте временный файл
  2. yyout записывает во временный файл
  3. когда синтаксический анализ будет завершен, создайте резервную копию входного файла для безопасности
  4. замените входной файл временным файлом

Другого способа нет, если yyout совпадает с yyin, то ваш (исходный вводимый) текст будет перекрываться.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top