FléchirFlex est un analyseur lexical rapide. | |
Télécharger maintenant |
Fléchir Classement & Résumé
Publicité
Fléchir Mots clés
Fléchir La description
Flex est un analyseur lexical rapide. Flex est un analyseur lexical rapide.flex est un générateur d'analyseur lexical rapide. C'est un outil de génération de programmes qui effectuent une correspondance de modèle sur le texte. Flex est une mise en uvre gratuite sans GNU du programme LEX bien connu.flex est un outil pour générer des scanners: programmes qui ont reconnu des modèles lexicaux dans le texte. Flex lit les fichiers d'entrée donnés ou son entrée standard si aucun nom de fichier n'est donné, pour une description d'un scanner à générer. La description se présente sous la forme de paires d'expressions régulières et de code C, appelée règles. Flex génère comme sortie un fichier source C, `lex.yy.c ', qui définit une routine` yylex ()'. Ce fichier est compilé et relié à la bibliothèque `-LFL 'pour produire un exécutable. Lorsque l'exécutable est exécutable, il analyse son entrée pour des occurrences des expressions régulières. Chaque fois qu'il en trouve un, il exécute le code C correspondant. Quelques exemples simplesFirst Quelques exemples simples pour obtenir la saveur de la manière dont on utilise Flex. L'entrée Flex suivante Spécifie un scanner qui rencontre la chaîne "Nom d'utilisateur" le remplacera par le nom de connexion de l'utilisateur: %% Nom d'utilisateur printf ("% s", getLogin ()); par défaut, tout texte non assorti par un flex Le scanner est copié sur la sortie. L'effet net de ce scanner est donc de copier son fichier d'entrée à sa sortie avec chaque occurrence de "nom d'utilisateur" élargi. Dans cette entrée, il n'y a qu'une seule règle. "Nom d'utilisateur" est le modèle et le "printf" est l'action. Le "%%" marque le début des règles. Voici un autre exemple simple: int Num_lines = 0, num_chars = 0; %% N ++ num_lines; ++ Num_chars ;. ++ num_chars; %% Main () {Yylex (); printf ("# de lignes =% d, nombre de caractères =% dn", num_lines, num_chars); } Ce scanner compte le nombre de caractères et le nombre de lignes dans son entrée (il ne produit aucune sortie autre que le rapport final sur les comptes). La première ligne déclare deux globaux, "Num_Lines" et "Num_Charrs", accessibles à la fois à `Yylex () 'et dans la routine" principale () "déclarée après la deuxième" %% ". Il existe deux règles, qui correspond à une nouvelle ligne ("n") et incrémente à la fois le nombre de lignes et le nombre de caractères, et celui qui correspond à tout caractère autre qu'une nouvelle ligne (indiquée par "." Expression régulière). Un exemple un peu plus compliqué: / * Scanner pour une langue de type jouet de Pascal * /% {/ * Besoin de ceci pour l'appel à ATOf () ci-dessous * / # Inclure
Fléchir Logiciels associés