Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Compilerbau - Scanner Generator » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 10 Beiträge
Gisa

passt. jetzt klappts
eine for schleife zu der while schleife :-).

Danke dir und viele Grüße
Gisa

jetzt kann ich was eingeben und test wandelt die kleinbuchstaben ind großbuchstaben um. :-)
Tobias

Ich sehe gerade, dass du in deiner Main-Funktion garkeine Schleife zum einlesen definiert hast. Also veränder mal deine main-Funktion:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:

int main(void) {

    int token;

    while ((token = yylex()) != EOF) {

      [...]

    }
    	
    exit(0);
}
Gisa

das hatte ich versucht.
Ich kann nix eingeben. Es wird zwar geöffnet aber ich kann nix eintippen.
Was mach ich falsch?

Grüße
Gisa
Tobias

Wenn sich die Console geöffnet hat musst du den Text eintippen und Enter drücken.
Gisa

so habe das ganze nochmal wiederholt.
Ich kann meine test.exe zwar öffnen aber es öffnet sich nur einen console. Sonst läuft da nix ab. Es sollte eigentlich einen text von der Standardeingabe in Großbuchstabe umwandeln.

Bitte um Hilfe.

Gruß
Gisa
Gisa

das habe ich doch :-) funktioniert allerdings nicht. Schmiert ab. Wg. einem ungültigen Befehl.
Tobias

Man könnte doch glatt mal versuchen, die Datei auszuführen und gucken was passiert. geschockt
Gisa

Musste mich erst einarbeiten :-).

ok jetzt hab ich meinen generierten Scanner.
-

Fehlermeldung beim kompilieren des lex.yy.c undefinied reference to yywrap ?? und -lfl (auf welchen ordner/Bibliothek wird gelinkt), gcc findet keins bei mir.

Grüße
Gisa
---
Also nachdem ich nun im windows die Bibliothek nicht verlinken konnte hab ich es kurzerhand mit Suse gemacht.

Ich habe jetzt eine ausführbare Datei namens test -> Ist das mein Scanner?!

Grüße
Gisa
Gisa

Hallo Tobias,

alles klar. Ich habe mir die Setup Datei runtergeladen und installiert. Sie wird unter GNU32 in der Startleiste aufgeführt. Ich finde allerdings kein Oberfläche/GUI von Flex.

Also soweit ist alles verständlich bis auf das durchjagen im Flex. Wie?
Wäre toll wenn du das noch kurz erklären könntest.

Grüße
G.
----
meinst du etwa flex oder flex++? Wie benutzt man Sie?

Grüße
Gisa
Tobias

Du brauchst zwei Teile:

1.) FLEX. Das gibts als Source-Package. Falls du Windows benutzt, ist es sinnvoller, die Binaries bzw. ein Setup zu ziehen von
http://gnuwin32.sourceforge.net/packages/flex.htm

2.) Einen C/C++ Compiler. Ich denke, dass GCC ganz gut funktioniert.


Der Rest ist easy:

Du erstellst eine LEX-Datei test.l wie bei dir unten angegeben und jagst sie durch flex. Das Resultat ist eine lex.yy.c-Datei. Die kannst du dann mit GCC compilieren:

gcc -o test.exe lex.yy.c -lfl
Es sind weitere Beiträge zu diesem Thema vorhanden. Klicken Sie hier, um sich alle Beiträge anzusehen.