Biegen

Flex ist ein schneller lexikaler Analysator.
Jetzt downloaden

Biegen Ranking & Zusammenfassung

Anzeige

  • Rating:
  • Lizenz:
  • GPL
  • Preis:
  • FREE
  • Name des Herausgebers:
  • Vern Paxson
  • Website des Verlags:

Biegen Stichworte


Biegen Beschreibung

Flex ist ein schneller lexikaler Analysator. Flex ist ein schneller lexikaler Analysator.Flex ist ein schneller lexikaler Analysatorgenerator. Es ist ein Werkzeug zum Erzeugen von Programmen, die Musteranpassungen auf Text ausführen. Flex ist eine nicht-GNU-freie Implementierung des bekannten Lex-Programms.flex ist ein Werkzeug zum Erzeugen von Scannern: Programme, die lexikalische Muster im Text erkannt haben. FLEX liest die angegebenen Eingabedateien oder seinen Standardeingang, wenn keine Dateinamen angegeben sind, um eine Beschreibung eines Scanners zu generieren. Die Beschreibung erfolgt in Form von Paaren von regulären Ausdrücke und C-Code, der als Regeln bezeichnet wird. Flex generiert als Ausgabe einer C-Quelldatei, `lex.yy.c ', die eine Routine` yylex ()' definiert. Diese Datei wird zusammengestellt und mit der "-LFL" -Bibliothek verknüpft, um eine ausführbare Datei zu erzeugen. Wenn die ausführbare Datei ausgeführt wird, analysiert er seine Eingabe für Ereignisse der regulären Ausdrücke. Wann immer es eins findet, führt es den entsprechenden C-Code aus. Einige einfache BeispieleFirst Einige einfache Beispiele, um den Geschmack zu erhalten, wie man Flex verwendet. Der folgende Flex-Eingang gibt einen Scanner an, den, wann immer er den String "Benutzername" trifft, den Anmeldenamen des Benutzers ersetzt: %% Benutzername Printf ("% s", getlogin ()); Standardmäßig, der nicht von einem Flex übereinstimmt Scanner wird an den Ausgang kopiert, sodass der Nettoeffekt dieses Scanners seine Eingabedatei mit jedem Auftreten von "Benutzername" auf denen Ausgang kopieren soll. Bei diesem Eingang gibt es nur eine Regel. "Benutzername" ist das Muster und das "Printf" ist die Aktion. Das "%%" markiert den Beginn der Regeln. Hier ist ein weiteres einfaches Beispiel: int num_lines = 0, num_chars = 0; %% n ++ num_lines; ++ num_chars ;. ++ num_chars; %% main () {yylex (); Printf ("# von Zeilen =% d, # von Zeichen =% dn", num_lines, num_chars); } Dieser Scanner zählt die Anzahl der Zeichen und die Anzahl der Zeilen in seinem Eingang (er erzeugt keinen anderen Ausgang als den Abschlussbericht der Zählungen). Die erste Zeile deklariert zwei Global, "num_lines" und "num_chars", die sowohl innerhalb von yylex (yylex () 'und in der routinemie `main ()' zugänglich sind, die nach dem zweiten" %% "deklariert ist. Es gibt zwei Regeln, die mit einer NEWLINE ("n") übereinstimmt, und inkrementiert sowohl die Zeilenzählung als auch die Zeichenzählung und der Zeichenzählung und eines, das an einem anderen Charakter als einer NEWS-Nummer (angegeben vom "." Regulärer Ausdruck) entspricht. Ein etwas komplizierteres Beispiel: / * Scanner für ein Spielzeug Pascal-artiger Sprache * /% {/ * Benötigen Sie diese für den Anruf an atof () unten * / # Include %} DIGIT ID * %% {DIGIT} + {printf ("eine ganze Zahl:% s (% d) n", yytext, atoi (yytext)); } {Digit} + ". {Digit} * {printf (" ein Float:% s (% g) n ", yytext, atof (yytext)); } Wenn | dann | begin | ende | Verfahren | function {printf ("ein Stichwort:% sn", yytext); } {ID} Printf ("Eine Kennung:% Sn", yytext); "+" | "-" | "*" * "Operator:% Sn", yytext); "{" * "}" / * Essen up einstufig Kommentare * / + / * isst whitespace * /. Printf ("nicht erkanntes Zeichen:% Sn", yytext); %% main (argc, argv) int argc; char ** argv; {++ argv, --argc; / * Überspringen Sie den Programmnamen * / if (argc> 0) yyin = fopen (argv , "r"); sonst yjin = stdin; yylex (); } Dies ist die Anfänge eines einfachen Scanners für eine Sprache wie Pascal. Es identifiziert verschiedene Arten von Token und berichtet über das, was er gesehen hat. Die Details dieses Beispiels werden in den folgenden Abschnitten erläutert.


Biegen Zugehörige Software

Dos33.

DOS33 ist eine Sammlung von Dienstprogrammen, die Apple extrahiert] [Festplattenbilder und reine Applesoft-Basisprogramme ausführen. ...

211

Herunterladen