Inserir texto no arquivo de entrada em Lex (com C)
-
22-07-2019 - |
Pergunta
Eu estou tentando ajudar um amigo em uma atribuição faculdade, mas eu meio que esqueci um monte de C um Lex.
A coisa é, estamos tentando analisar um HTML e um arquivo correspondente CSS e adicionar a um tag de estilo.
Por exemplo:
HTML
<body>
</body>
CSS
body{color:black;}
modificado HTML
<body style="color:black;">
</body>
Todos os regex são feitas eo Macros também.
Problema: O HTML entrada e HTML modificado tem que ser o mesmo arquivo. Nós tentamos redirecionar tanto yyin e yyout para o mesmo arquivo ... e, em seguida, usar os fputs (texto, yyout); em que o texto é um char * com todas as informações de estilo (e style = ""). Ele não funciona.
Então ... vocês podem ajudá-lo?
é importante não perder a noção do local no arquivo (para que a style = "" vai para o tag direita).
Graças
Solução
redirecionamento yyin e yyout para o mesmo arquivo não irá funcionar .. (como você já sabe). Minha abordagem seria:
- Criar um arquivo temporário
- yyout escreve para arquivo temporário
- Ao analisar é acabamento, arquivo de entrada de backup para a segurança
- substituir arquivo de entrada com o arquivo temporário
Não há nenhuma outra maneira, se yyout é o mesmo que yyin seu texto (entrada original) será sobreposto.