Articles of flex lexer

regex: séparer les mots avant et après les deux points

Dans la ligne ici: Category Shoes brand:char[30];cost:float;years:int J’essaie d’écrire deux expressions de regex distinctes: une pour séparer l’étiquette qui apparaîtrait avant les deux points et une autre pour obtenir l’expression après les deux points jusqu’au prochain point ou fin de ligne. Jusqu’à présent, j’ai trouvé a.) [^:]+ pour le premier cas b.) [\:…\;] pour le […]

Bison style: est-ce que l’utilisation de ma propre stack est mauvaise? Les globaux sont-ils mauvais?

Ma question est fondamentalement “qu’est-ce qui constitue un bon style dans YACC / Bison?” et, de même, si je laisse Bison faire ce qu’il fait bien. Par exemple, je trouve que mon programme Bison repose davantage sur les globaux que mon code d’origine. Considérer ce qui suit: prog : vents{ /*handle semantics…*/ } unity{ /*handle […]

Comment est-ce que je tokenize cette ligne d’entrée avec des types de variable de sorte que je puisse décider la taille de la structure contenant mes informations?

Ceci est une question à plusieurs parties. Tout d’abord, mon fichier d’entrée ressemblera à ceci: category Shoes brand:char[50],cost:int category Shirts brand:char[20],cost:int Mes questions sont: a.) Comment diviser la ligne à : seulement après le nom de la catégorie? Shoes ou des Shirts dans ces cas. b.) Comment pourrais-je écrire mon parsingur de Bison de manière […]

Vérifiez si les versions correctes de Flex et Bison sont installées

J’écris un script d’installation BASH pour un programme qui nécessite Flex et Bison version 2.5 ou supérieure. J’ai déjà le code pour vérifier que flex et bison sont bien installés. Je ne sais pas si cela est resté constant dans toutes les versions, mais voici les sorties de flex –version et bison –version respectivement: ➜ […]

Comment est mis en œuvre le munch maximal?

J’étudie les compilateurs et j’apprends l’parsing lexicale. Je comprends que l’on spécifie chaque lexème en tant qu’expression régulière, et en utilisant flex , un lexer peut être généré automatiquement. J’apprends en outre comment l’expression régulière est convertie en une NFA qui est ensuite convertie en une DFA, où elle peut être rapidement évaluée. Cependant, ma […]

Unix Flex Regex pour les commentaires sur plusieurs lignes

Je fais un parsingur Lexical en utilisant Flex sur Unix. Si vous l’avez déjà utilisé avant de savoir que vous définissez principalement l’expression régulière pour les jetons de la langue pour laquelle vous écrivez l’parsingur lexical. Je suis coincé sur la dernière partie. J’ai besoin du bon Regex pour les commentaires multi-lignes qui permettent quelque […]

Ubuntu: comment installer flex pour créer des postgres?

J’essaie de travailler sur postgresql localement avec Ubuntu 10.04. Je reçois cette erreur après avoir configuré avec ./configure –enable-cassert –enable-debug –prefix=$HOME/pgsql Quand je fais && make install, j’obtiens cette erreur: make -C parser all make[3]: Entering directory `/home/james/school/db/pg-stuff/hw1/postgresql-8.4.2/src/backend/parser’ ERROR: `flex’ is missing on your system. It is needed to create the file `scan.c’. You can […]

Comment puis-je utiliser le générateur de scanner lexical flexible dans le cadre de mon programme?

Comment puis-je utiliser un scanner que j’ai écrit avec Flex dans le cadre d’un programme que je conçois? Plus précisément, au sein d’une classe c ++ en tant que méthode de la classe et à partir d’un fichier distinct doté d’une méthode principale pour effectuer des tests. Je ne souhaite pas utiliser l’option% c ++, […]

% Option bison-bridge non reconnu avec flex 2.5.4

Je viens juste d’installer flex et j’essaie des tests simples avec sa version 2.5.4 sur Windows 7 64bits. Je voudrais l’intégrer à un parsingur généré par le bison. Par conséquent, le manuel Flex indique que l’on doit déclarer% option bison-bridge. Lors de l’exécution de flex sur le fichier d’entrée .l, j’obtiens une erreur: Unrecognized %option […]

Comment utiliser Flex sous Windows

Je m’excuse si c’est une question stupide, mais j’ai 0 expérience avec cet outil et je voulais savoir si je vais l’utiliser correctement. J’ai téléchargé flex qui, lors de la compilation de mon fichier lex, produit un fichier C qui doit ensuite être compilé séparément. Est-ce la meilleure façon de le faire?