Siideynta dhaliye falanqeeye qaamuuska re2c 2.0

dhacay sii daayo re2c 2.0, dhaliye falanqeeye qaamuus bilaash ah oo loogu talagalay luqadaha C iyo C++. Mashruuca re2c waxaa asal ahaan abuuray 1993 by Peter Bamboulis oo ah soosaaraha tijaabada ah ee falanqeeyayaasha erayada aadka u dhaqsaha badan, oo laga soocay koronto-dhaliyeyaasha kale xawaaraha koodhka la sameeyay iyo is-dhexgal isticmaale oo aan caadi ahayn oo dabacsan kaas oo u oggolaanaya falanqeeyayaasha inay si fudud oo hufan ugu dhexgalaan gudaha jira saldhig code. Tan iyo markaas, mashruuca waxaa soo saaray bulshada oo wuxuu sii wadaa inuu noqdo madal lagu tijaabiyo iyo cilmi baarista berrinka naxwaha rasmiga ah iyo mishiinnada gobolka.

Isbeddellada ugu waaweyn:

  • Taageero lagu daray luqadda Go (waxaa karti u leh "--lang go" ikhtiyaarka re2c, ama barnaamij u gaar ah re2go). Dukumeentiyada C iyo Go waxaa laga soo saaray isku qoraal, laakiin leh tusaalooyin kood oo kala duwan. Hab-hoosaadka jiilka koodka ee re2c ayaa gabi ahaanba dib loo habeeyay, kaas oo sahlaya in mustaqbalka la taageero luuqado cusub.
  • Nidaam dhisme kale oo lagu daray CMake (mahad ligfx!). Isku dayga lagu tarjumo re2c ee CMake ayaa la sameeyay wakhti dheer, laakiin ilaa ligfx qofna ma soo jeedin xal buuxa. Nidaamkii hore ee Autotools-dhisidda ayaa sii socota in la taageero oo la isticmaalo, mana jiraan wax qorshe ah oo lagaga tagayo mustaqbalka la filayo (qayb ahaan si looga fogaado abuurista dhibaatooyinka horumarinta qaybinta, qayb ahaan sababtoo ah nidaamkii hore ee dhismaha ayaa ka xasilloon oo ka kooban kan cusub ). Labada nidaamba si joogto ah ayaa loo tijaabiyaa iyadoo la adeegsanayo Travis CI.
  • Waxaa lagu daray awoodda lagu qeexo koodhka is-dhexgalka marka la isticmaalayo API-ga guud. Markii hore, API-yada badankood waa in lagu qeexaa qaab hawlo ama macros shaqo. Hadda waxa lagu qeexi karaa qaab xadhig aan sabab lahayn oo leh cabbir template magac leh oo ah foomka "@@{name}" ama si fudud "@@" (haddii ay jirto hal halbeeg oo kaliya oo uusan jirin mugdi). Habka API waxa dejiyay re2c:api:qaabaynta qaabka (qiimaha hawluhu waxa uu qeexayaa qaabka shaqaynta, iyo qaabka xorta ah waxa uu qeexayaa qaab aan sabab lahayn).
  • Hawlgalka ikhtiyaarka "-c", "-bilawga-xadhigyada" waa la wanaajiyay, taasoo kuu ogolaanaysa inaad ku darto dhowr lexers oo isku xiran oo ku jira hal block re2c. Hadda waxaad isticmaali kartaa baloogyada caadiga ah oo ay la socdaan kuwa shuruudaysan oo waxaad ku qeexi kartaa dhowr baloog shuruudo ah oo aan xiriir la lahayn hal fayl. Hawlgalka "-r", "--dib-u-isticmaalka" ikhtiyaarka (dib-u-isticmaalka koodka hal baloog ee baloogyada kale) marka lagu daro "-c", "--start-conditions" iyo "-f", "-- Ikhtiyaarada kaydinta-state" (Lexer stateful ah oo la joojin karo mar kasta oo sii wado fulinta hadhow).
  • Kutaan go'an ee dhamaadka-gelinta (xeeerka EOF) algorithm ee dhawaan lagu daray, kaas oo xaalado naadir ah ay keentay in si khaldan loo habeeyo sharciyada is dulsaaran.
  • Habka bootstrap waa la fududeeyay. Markii hore, nidaamka dhismuhu wuxuu isku dayay inuu si firfircoon u helo re2c horay loo dhisay oo loo isticmaali karo in dib loo dhiso. Tani waxay keentay ku-tiirsanaan aan sax ahayn (sababtoo ah garaafka ku-tiirsanaanta wuxuu ahaa mid firfircoon, kaas oo nidaamyada dhismuhu aanay jeclayn). Hadda, si aad dib ugu dhisto qaamuusyada, waxaad u baahan tahay inaad si cad u habayso nidaamka dhisidda oo aad dejiso doorsoomiyaha RE2C_FOR_BUILD.

Source: opennet.ru

Add a comment