re2c 2.0

Ddydd Llun, Gorffennaf 20, rhyddhawyd re2c, generadur dadansoddwr geiriadurol cyflym.
Newidiadau mawr:

  • Ychwanegwyd cefnogaeth iaith Go
    (wedi'i alluogi naill ai gan yr opsiwn --lang go ar gyfer re2c, neu fel rhaglen re2go ar wahΓ’n).
    Cynhyrchir dogfennaeth ar gyfer C a Go o'r un testun, ond gyda gwahanol
    enghreifftiau cod. Mae'r is-system cynhyrchu cod yn re2c wedi'i hailgynllunio'n llwyr, sydd
    dylai ei gwneud yn haws i gefnogi ieithoedd newydd yn y dyfodol.

  • Ychwanegwyd system adeiladu amgen ar CMake (diolch ligfx!).
    Mae ymdrechion i gyfieithu re2c i CMake wedi'u gwneud ers amser maith, ond cyn ligfx neb
    cynnig ateb cyflawn.
    Mae'r hen system adeiladu ar Autotools yn parhau i gael ei chefnogi a'i defnyddio,
    ac yn y dyfodol rhagweladwy nid oes unrhyw gynlluniau i gefnu arno (yn rhannol er mwyn peidio Γ’ chreu
    problemau i ddatblygwyr dosbarthu, yn rhannol oherwydd bod yr hen system adeiladu
    mwy sefydlog a chryno na'r un newydd).
    Mae'r ddwy system yn cael eu profi'n barhaus gan ddefnyddio Travis CI.

  • Ychwanegwyd y gallu i osod cod rhyngwyneb mewn ffurfweddiadau wrth ddefnyddio
    API generig. Yn flaenorol, roedd yn rhaid nodi'r rhan fwyaf o APIs yn y ffurflen
    swyddogaethau neu macros ffwythiant. Nawr gellir eu nodi ar ffurf mympwyol
    llinellau gyda pharamedrau templed a enwir fel @@{name} neu dim ond @@ (os
    dim ond un paramedr sydd ac nid oes unrhyw amwysedd). Mae'r arddull API wedi'i nodi gan y ffurfweddiad
    re2c:api:style (mae gwerth y ffwythiannau yn pennu arddull swyddogaethol, ac mae ffurf rydd yn pennu arddull fympwyol).

  • Mae gweithrediad yr opsiwn -c, --start-conditions wedi'i wella, sy'n eich galluogi i gyfuno sawl un
    lexers rhyng-gysylltiedig mewn un bloc re2c. Nawr gallwch chi ddefnyddio
    blociau rheolaidd ynghyd Γ’ rhai amodol a nodi nifer o rai amodol nad ydynt yn gysylltiedig
    blociau mewn un ffeil.
    Gwell gweithrediad yr opsiwn -r, --reuse (ailddefnyddio cod o un bloc
    mewn blociau eraill) mewn cyfuniad Γ’'r opsiynau -c, --start-conditions a -f, --storable-state
    (Lexer stateful y gellir ei dorri ar unrhyw adeg
    a pharhau i'w ddienyddio yn ddiweddarach).

  • Wedi trwsio nam yn yr algorithm diwedd mewnbwn a ychwanegwyd yn ddiweddar
    (rheol EOF), a arweiniodd mewn achosion prin at brosesu anghywir
    rheolau sy'n gorgyffwrdd.

  • Mae'r broses bootstrap wedi'i symleiddio. Yn flaenorol, mae'r system adeiladu ceisio dod o hyd yn ddeinamig yn barod
    adeilad re2c y gellid ei ddefnyddio i ailadeiladu ei hun.
    Arweiniodd hyn at ddibyniaethau anghywir (gan fod y graff dibyniaeth
    deinamig, nad yw'r rhan fwyaf o systemau adeiladu yn ei hoffi).
    Nawr, i ailadeiladu lexers, mae angen ichi yn benodol
    ffurfweddu'r system adeiladu a gosod y newidyn RE2C_FOR_BUILD.

Diolch i bawb a gymerodd ran yn y gwaith o baratoi'r datganiad hwn!

Ffynhonnell: linux.org.ru

Ychwanegu sylw