Scaoileadh gineadóir lexer re2c 2.0

tharla sé scaoileadh re2c 2.0, gineadóir anailíseoir foclóireachta saor in aisce do theangacha C agus C++. Cruthaíodh an tionscadal re2c ar dtús i 1993 ag Peter Bamboulis mar ghineadóir turgnamhach anailíseoirí foclóireachta an-tapa, idirdhealú ó ghineadóirí eile ag luas an chóid a ghintear agus comhéadan úsáideora neamhghnách solúbtha a ligeann d'anailíseoirí a bheith leabaithe go héasca agus go héifeachtach isteach i gceann atá ann cheana féin. bonn cód. Ó shin i leith, tá an tionscadal forbartha ag an bpobal agus leanann sé de bheith ina ardán le haghaidh turgnamh agus taighde i réimse na ngramadach foirmeálta agus na meaisíní críochta stáit.

Athruithe móra:

  • Tacaíocht bhreise don teanga Go (cumasaithe ag an rogha “--lang go” do re2c, nó mar chlár re2go ar leith). Gintear an doiciméadú le haghaidh C agus Go ón téacs céanna, ach le samplaí cód éagsúla. Tá an fochóras giniúna cód in re2c athdhearadh go hiomlán, rud ba cheart go mbeadh sé níos éasca tacú le teangacha nua amach anseo.
  • Cuireadh córas tógála eile leis do CMake (buíochas ligfx!). Rinneadh iarrachtaí re2c a aistriú go CMake le fada an lá, ach go dtí ligfx níor mhol éinne réiteach iomlán. Leanann an seanchóras tógála Autotools á thacú agus á úsáid, agus níl aon phleananna ann é a thréigean sa todhchaí intuartha (go páirteach chun fadhbanna a chruthú d'fhorbróirí dáileacháin, go páirteach toisc go bhfuil an seanchóras tógála níos cobhsaí agus níos gonta ná an ceann nua. ). Déantar tástáil leanúnach ar an dá chóras ag baint úsáide as Travis CI.
  • Cuireadh leis an gcumas cód comhéadan a shonrú i bhfoirmíochtaí agus an API cineálach á úsáid. Roimhe seo, b'éigean an chuid is mó de na APIanna a shonrú i bhfoirm feidhmeanna nó macraí feidhm. Anois is féidir iad a shonrú i bhfoirm teaghráin treallach le paraiméadair teimpléid ainmnithe den fhoirm “@@{name}” nó go simplí “@@” (mura bhfuil ach paraiméadar amháin ann agus nach bhfuil aon athbhrí ann). Socraítear an stíl API leis an gcumraíocht re2c:api:style (sonraíonn luach na bhfeidhmeanna an stíl fheidhmiúil, agus sonraíonn an fhoirm shaor stíl treallach).
  • Feabhsaíodh feidhmiú na rogha “-c”, “-tús-coinníollacha”, rud a ligeann duit roinnt lexers idirnasctha a chomhcheangal i mbloc re2c amháin. Anois is féidir leat bloic rialta a úsáid mar aon le cinn choinníollach agus roinnt bloic choinníollach nach mbaineann le hábhar a shainiú in aon chomhad amháin. Oibriú feabhsaithe ar an rogha "-r", "--reuse" (cód a athúsáid ó bhloc amháin i mbloic eile) i gcomhcheangal leis na "-c", "--start-conditions" agus "-f", "-- roghanna storable-state" (lexer státmhar ar féidir cur isteach air ag pointe ar bith agus leanúint ar aghaidh lena fhorghníomhú níos déanaí).
  • Ceartaíodh fabht san algartam deireadh ionchuir (riail EOF) a cuireadh leis le déanaí, agus i gcásanna neamhchoitianta ba chúis le próiseáil mhícheart ar rialacha forluiteacha.
  • Tá an próiseas bootstrap simplithe. Roimhe seo, rinne an córas tógála iarracht re2c a tógadh cheana féin a aimsiú go dinimiciúil a d'fhéadfaí a úsáid chun é féin a atógáil. Bhí spleáchais mícheart mar thoradh air seo (toisc go raibh an graf spleáchais dinimiciúil, rud nach maith le formhór na gcóras tógála). Anois, chun lexers a atógáil, ní mór duit an córas tógála a chumrú go sainráite agus an athróg RE2C_FOR_BUILD a shocrú.

Foinse: oscailtenet.ru

Add a comment