Hi,
z.b.
<Marke>Audi</Marke> anstelle von <Marke>Audi /Marke>
Oioioi - das klingt nach massiver künstlicher Intelligenz.
Viel Spaß beim Implementieren.
Für genau den Fehler, und _nur_ den fehler geht folgendes Flexscript:
--snip endtagcomplete.l ---
%{
#include <stdio.h>
#include <stdlib.h>
/*
lex.yy.c: In function yy\_get\_next\_buffer': lex.yy.c:3719: warning: implicit declaration of function
read'
Urgh, shut up! ;-) */
#include <unistd.h>
%}
%option 8bit fast align
%%
<INITIAL><<EOF>> {
return YY_NULL;
}
<INITIAL>"/"/[^/>]*> {
if(*(--yytext) != '<'){
printf("</");
} else {
yytext++;
printf("%s",yytext);
}
BEGIN(INITIAL);
}
---snap endtagcomplete.l ---
Dein Beispiel klingt übrigens so, als würdest Du einen Ansatz über
den Hamming-Abstand zwischen Wunsch und Realität versuchen wollen.
Der mag in diesem Falle tatsächlich funktionieren, ist aber im
Allgemeinen auch nur "advanced Kristallkugel".
Im Besonderen hier ist es das "halting problem". ;-)
Aber es kann ja sein, daß der/die liebe Lemi immer den gleichen Fehler reinhaut beim schnellen Schreiben.
So wie ich meist "meherere" anstatt "mehrere" schreibe, wenn's flott gehen soll ;-)
so short
Christoph Zurnieden
PS: die Optionen oben sind für den GNU-Lexer Flex.