1

我正试图帮助一位朋友完成大学作业,但我有点忘记了很多 C 和 Lex。

问题是,我们正在尝试解析 HTML 和对应的 CSS 文件并将其样式添加到标签中。

例如:

HTML

<body>
</body>

CSS

body{color:black;}

修改后的 HTML

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

所有的正则表达式都完成了,宏也完成了。

问题:输入的 HTML 和修改后的 HTML 必须是同一个文件。我们尝试将yyinyyout重定向到同一个文件...然后使用 fputs(text, yyout); 其中 text 是带有所有样式信息(和 style="")的 char *。它不起作用。

所以……你们能帮帮他吗?

重要的是不要丢失文件中的位置概念(因此 style="" 转到正确的标签)。

谢谢

4

1 回答 1

3

将 yyin 和 yyout 重定向到同一个文件将不起作用..(如您所知)。我的方法是:

  1. 创建临时文件
  2. yyou 写入临时文件
  3. 解析完成后,备份输入文件以确保安全
  4. 用临时文件替换输入文件

没有其他办法,如果 yyout 与 yyin 相同,您的(原始输入)文本将被重叠。

于 2009-12-01T02:09:55.983 回答