Pregunta

Estoy tratando de ayudar a un amigo en una tarea universitaria, pero me olvidé mucho de C y Lex.

La cuestión es que estamos tratando de analizar un archivo HTML y un archivo CSS correspondiente y agregar a una etiqueta su estilo.

Por ejemplo:

HTML

<body>
</body>

CSS

body{color:black;}

HTML modificado

<body style="color:black;">
</body>

Todas las expresiones regulares están hechas y las Macros también.

Problema: El HTML de entrada y el HTML modificado deben ser el mismo archivo. Intentamos redirigir yyin y yyout al mismo archivo ... y luego usar fputs (text, yyout); donde text es un char * con toda la información de estilo (y style = " "). No funciona.

Entonces ... ¿Pueden ayudarlo?

es importante no perder la noción de ubicación en el archivo (por lo que style = " " va a la etiqueta correcta).

Gracias

¿Fue útil?

Solución

redirigir yyin y yyout al mismo archivo no funcionará ... (como ya sabes). Mi enfoque sería:

  1. Crear un archivo temporal
  2. yyout escribe en el archivo temporal
  3. cuando finaliza el análisis, haga una copia de seguridad del archivo de entrada por seguridad
  4. reemplazar el archivo de entrada con el archivo temporal

No hay otra manera, si yyout es igual que yyin, su texto (entrada original) se superpondrá.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top