Flex er kendt som den hurtige lexical analyzer, og det er en open source, helt gratis og multi-platform kommandolinjeprogram implementeret i C / C ++ og designet fra offset til brug for generering af scannere.
De scannere, der genereres af Flex-værktøjet, som ikke bør forveksles med en ikke-GNU-fri implementering af Lex, er faktisk programmer, der kan genkende leksikale mønstre i tekst, også kendt som applikationer, der udfører mønstermatchning på tekst.
Flex er designet på en sådan måde, at den kan generere en C-kildefil kaldet "lex.yy.c", som kan definere yylex () -funktionen. Softwaren er et kommandolinjeværktøj, så du kan bruge det via en hvilken som helst terminalemulator.
Kommandolinje indstillinger
Indstillingerne for programmets kommandolinje er organiseret i kategorier som tabelkomprimering, debugging, filer, scanneradfærd, genereret kode og diverse. For at se dem et overblik, kør & lsquo; flex --help & rsquo; Kommando efter installation af softwaren på dit system.
Blandt kommandolinjebestemmelserne i tabelkomprimering kan vi nævne evnen til at konstruere ækvivalens- og / eller metakvivalensklasser, at anvende en alternativ tabelrepræsentation, at bruge standardkomprimering til også at generere en stor og hurtig scanner For ikke at komprimere tabeller.
Indstillinger for fejlfinding i kommandolinjen omfatter support til aktivering af debug-tilstand i scanner, understøttelse af skriftlig oversigt over scannerstatistik til stdout, understøttelse af at køre Flex i spormodus samt støtte til at skrive sikkerhedskopieringsoplysninger til en bestemt fil og En præstationsrapport til stderr.
Skannerns adfærd kan også tilpasses via kommandolinjeindstillinger, som omfatter support til generering af 7-bit eller 8-bit scannere, støtte til generering af en batchscanner, support til generering af en interaktiv scanner, samt understøttelse af sporing Line tæller i yylineno.
Understøtter 32-bit / 64-bit Linux og BSD platforme
Softwaren er skrevet helt i C og C ++ programmeringssprog, og det vides at det fungerer godt på både Linux og FreeBSD operativsystemer. I øjeblikket kan den installeres på computere, der understøtter enten 64-bit eller 32-bit instruktionssætarkitekturer.
Hvad er nyt i denne udgave:
- build:
- Indentmålet kender nu til flexs nye layout (fra 2.6.0). Indrykningsreglerne, som det ville gælde, er ikke korrekte og skal rettes.
- Filerne i flexdistributionen er nu opbygget af den version af flex, der er inkluderet i distributionen.
- Konfigurationsskriptet har en bedre ide om hvilke overskrifter der kræves for at opbygge flex. Det vil også fejl, når der mangler opdagede funktioner.
- Vi har sænket versionerne af automake og gettext, der configure.ac lister som krævet til building flex. I autogen.sh kontrollerer vi nu, hvordan du kalder libtoolize og bruger det, vi finder i resten af scriptet.
- Da filer i lib / hentes efter behov ved src /, genererer vi ikke længere en Makefile til den pågældende mappe.
- Flex kan kryds kompileres.
- dokumentation:
- Nogle typografier blev fjernet fra manualen.
- scanner:
- Nogle mindre præstationsforbedringer.
- Vi respekterer brugerdefinerede yy_ * -makroer igen. Vi er også mere forsigtige med at ikke lække makrodefinitioner i headerfiler.
- Der blev introduceret en række bærbarhedsrettelser, så building flex er mere pålidelig på flere platforme. Derudover blev forældede funktionsopkald fjernet.
- Når du bygger fleksibel eksekverbar selv, fjernes% # kommentarer fra flex.skl, når du genererer C-kildekode array. Dette reducerer størrelsen af flex.
- test suite:
- Alle scripts i testpakken køres nu af $ (SHELL), og de nødvendige portabilitetsrettelser er medtaget.
- Test suite afhængigheder håndteres meget bedre. Dette er kun vigtigt, hvis du aktivt udvikler flex eller dens test suite.
- Test, der afhænger af platformafhængige funktioner, springer nu korrekt over, når disse platforme ikke er til stede.
- Når du kører "gør check", kan du nu passere V = 0 for at tavle mere af bygningen. Dette er nyttigt, når du ikke er mere opmærksom på
Kommentarer ikke fundet