Christoph Zurnieden: Tag Checker

Beitrag lesen

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.