Fléchir

Flex est un analyseur lexical rapide.
Télécharger maintenant

Fléchir Classement & Résumé

Publicité

  • Rating:
  • Licence:
  • GPL
  • Prix:
  • FREE
  • Nom de l'éditeur:
  • Vern Paxson
  • Site Internet de l'éditeur:

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 %} DIGIT ID . * %% {chiffre} + {printf ("un entier:% s (% d) n", yytext, atoi (yytext)); } {Digit} + "." {Chiffre} * {printf ("un flotteur:% s (% g) n", yytext, atof (yytext)); } Si | Puis | Commencez | Fin | Procédure | Fonction {Printf ("Un mot clé:% sn", yytext); } {Id} printf ("Identifiant:% sn", yytext); "+" | "-" "|" "|" | "PRINTF (" "Opérateur:% SN", YYTEXT); " } n] * "}" / * manger des commentaires d'une ligne * / + / * manger avec espace * /. printf ("caractère non reconnu:% sn", yytext); %% principale (argc, argv) int argc; Char ** argv; {++ argv, --Argc; / * saute le nom du programme * / si (argc> 0) yyin = fopen (argv , "r"); autre yyin = stdin; yylex (); } Il s'agit des débuts d'un simple scanner pour une langue comme Pascal. Il identifie différents types de jetons et des rapports sur ce qu'il a vu. Les détails de cet exemple seront expliqués dans les sections suivantes.


Fléchir Logiciels associés

Alice ml

Alice ML est un langage de programmation fonctionnel, simultané et distribué basé sur la norme ML. ...

210

Télécharger

DOS33

DOS33 est une collection d'utilitaires qui extraire apple] [Images de disque et exécuter des programmes de base Pure Appresoft. ...

211

Télécharger