re2c 2.0

Op maandag 20 juli is de release van re2c - de generator voor snelle lexicale analyzers vrijgegeven.
Belangrijkste wijzigingen:

  • Ondersteuning voor de programmeertaal Go is toegevoegd.
    (dit kan worden ingeschakeld of met de optie —lang go voor re2c, of als een apart programma re2go).
    Documentatie voor C en Go wordt gegenereerd uit dezelfde tekst, maar met verschillende
    codevoorbeelden. Het subsystem voor codegeneratie in re2c is volledig herzien, wat
    de ondersteuning van nieuwe talen in de toekomst zou moeten vergemakkelijken.

  • Een alternatieve bouwsysteem op CMake is toegevoegd (dank aan ligfx!).


    Pogingen om re2c naar CMake te porteren zijn al lange tijd bezig, maar tot ligfx heeft niemand een
    volledige oplossing voorgesteld.
    Het oude bouwsysteem op Autotools blijft worden ondersteund en gebruikt,
    en er zijn op korte termijn geen plannen om daarvan af te stappen (deels om geen
    problemen te creƫren voor distributeurs, deels omdat het oude bouwsysteem
    stabieler en beknopter is dan de nieuwe).
    Beide systemen worden gelijktijdig continu getest met Travis CI.
  • De mogelijkheid om interfacecode in configuraties op te geven bij gebruik van
    een generiek API is toegevoegd. Vroeger moesten de meeste API's worden opgegeven in de vorm
    van functies of functionele macro's. Nu kunnen ze worden gedefinieerd in de vorm van willekeurige
    strings met benoembare sjabloonparameters zoals @@{name} of gewoon @@ (als er
    slechts één parameter is en er geen ambiguïteit ontstaat). De stijl van de API wordt opgegeven met de configuratie
    re2c:api:style (de waarde functions geeft functionele stijl aan, terwijl free-form willekeurig betekent).

  • De functie van de optie -c, —start-conditions is verbeterd, waarmee meerdere
    onderling verbonden lexers in ƩƩn re2c-blok kunnen worden gecombineerd. Nu kunnen gewone blokken
    naast voorwaardelijke blokken worden gebruikt en kunnen meerdere niet-verbonden voorwaardelijke
    blokken in ƩƩn bestand worden gedefinieerd.
    De werking van de optie -r, —reuse (hergebruik van code uit ƩƩn blok
    in andere blokken) in combinatie met de opties -c, —start-conditions en -f, —storable-state
    (een lexer met duurzaam estado, die op elk moment kan worden onderbroken
    en later kan worden hervat) is verbeterd.

  • Een bug in het recent toegevoegde algoritme voor het verwerken van het einde van de invoergegevens
    (EOF-regel), die in zeldzame gevallen leidde tot onjuiste verwerking van
    overlappende regels, is opgelost.

  • Het opstartproces is vereenvoudigd. Eerder probeerde het bouwsysteem dynamisch een reeds
    gebouwd re2c te vinden dat kon worden gebruikt voor het opnieuw bouwen van zichzelf.
    Dit leidde tot onjuiste afhankelijkheden (aangezien de afhankelijkheidsgrafiek dynamisch was, wat de meeste buildsystemen niet prettig vinden).
    dynamisch, wat de meeste bouwsystemen niet leuk vinden).
    Nu is het nodig om de lexers expliciet te configureren in het buildsysteem en de variabele RE2C_FOR_BUILD in te stellen.
    Bedankt aan iedereen die heeft bijgedragen aan de voorbereiding van deze release!

šŸ„‡re2c 2.0 | ProHoster

Bron: linux.org.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster