Flex is algemeen bekend als de snelle lexical analyzer en is een open source, volledig gratis en multi-platform command line applicatie geïmplementeerd in C / C ++ en ontworpen van de offset die gebruikt wordt voor het genereren van scanners.
De scanners die door het Flex-gereedschap worden gegenereerd, die niet mogen worden verward met een niet-GNU-gratis implementatie van Lex, zijn eigenlijk programma's die lexicale patronen in tekst herkennen, ook bekend als toepassingen die patroonpatroon op tekst uitvoeren.
Flex is zodanig ontworpen dat het een C-bronbestand genaamd "lex.yy.c" kan genereren die de yylex () functie kan definiëren. De software is een command-line tool, zodat u het via een terminal emulator kunt gebruiken.
Command-line opties
De commando-opties van het programma worden georganiseerd in categorieën zoals tabelcompressie, debugging, bestanden, scannergedrag, gegenereerde code en diverse. Om ze in een oogopslag te zien, voer de & lsquo; flex --help & rsquo; Commando na het installeren van de software op uw systeem.
Onder de opties voor de tabelcompressie commando's kunnen we de mogelijkheid om equivalentie- en / of meta-equivalentie klassen op te stellen, een alternatieve tabel weergave gebruiken, standaardcompressie gebruiken om een grote en snelle scanner te genereren Om tabellen niet te comprimeren.
Opties voor debugging-commando's omvatten ondersteuning voor het inschakelen van debugmodus in scanner, ondersteuning voor het schrijven van een samenvatting van scannerstatistieken om te stdout, ondersteuning voor het uitvoeren van Flex in trace-modus en ondersteuning voor het schrijven van back-upinformatie naar een specifiek bestand en Een prestatieverslag aan stderr.
Het scannergedrag kan ook worden aangepast via commando-opties, waaronder ondersteuning voor het genereren van 7-bits of 8-bits scanners, ondersteuning voor het genereren van een batch scanner, ondersteuning voor het genereren van een interactieve scanner, alsmede ondersteuning voor het volgen van het scannen Lijntelling in yylineno.
Ondersteunt 32-bits / 64-bits Linux- en BSD-platforms
De software is volledig geschreven in de C en C ++ programmeertaal en het is bekend dat het goed werkt op zowel Linux als FreeBSD besturingssystemen. Momenteel kan het worden geïnstalleerd op computers die een van de 64-bits of 32-bits instructieset architecturen ondersteunen.
Wat is nieuw in deze release:
- build:
- Het doeldoel weet nu over flex's nieuwe (vanaf 2.6.0) indeling. De streepreferenties die het toepassen, zijn niet correct en moeten worden opgelost.
- De bestanden die in de flexdistributie zijn opgenomen, worden nu gebouwd door de versie van flex die in de distributie is opgenomen.
- Het configuratie script heeft een beter idee van welke headers nodig zijn om flex te bouwen. Het zal ook fouten doen wanneer er ontbrekende functies worden gedetecteerd.
- We hebben de versies van automake en gettext verlaagd die configure.ac lijsten vereisen, zoals vereist voor flexibele bouw. In autogen.sh controleren we nu hoe u libtoolize kunt bellen en gebruiken wat we in de rest van het script vinden.
- Aangezien bestanden in lib / worden opgehaald zoals nodig door src /, genereren we geen Makefile voor die map.
- Flex kan gecompileerd worden.
- documentatie:
- Sommige typo's zijn verwijderd uit de handleiding.
- scanner:
- Enkele kleine prestatieverbeteringen.
- Wij eer de gebruiker je yy_ * macro's opnieuw vast. We zijn ook voorzichtiger om macro-definities niet in hoofddossiers te lekken.
- Er zijn een aantal portabiliteitsoplossingen geïntroduceerd, zodat flexibiliteit op betere platformen betrouwbaarder is. Bovendien werden verouderde functieoproepen verwijderd.
- Bij het bouwen van de flex-uitvoerbare zelf worden% # reacties van flex.skl verwijderd wanneer de C-broncode array wordt genereerd. Dit vermindert de grootte van flex.
- test suite:
- Alle scripts in de testsuite worden nu uitgevoerd door $ (SHELL) en de nodige portability-correcties zijn inbegrepen.
- Testsoortafhankelijkheden worden veel beter behandeld. Dit is alleen van belang als u flex of de test suite actief ontwikkelt.
- Tests die afhankelijk zijn van platformafhankelijke functies, worden nu gewoon overslaan wanneer die platforms niet aanwezig zijn.
- Als u 'check' maakt, kunt u nu V = 0 gebruiken om meer van de bouwen te stilzetten. Dit is handig als u minder bent over de
Reacties niet gevonden