Ukukhutshwa kwe-re2c 2.0 ye-lexical analyzer generator

yathatha indawo ukukhulula re2c 2.0, i-lexical analyzer generator yasimahla yeelwimi zeC kunye neC ++. Iprojekthi ye-re2c yaqalwa ngo-1993 nguPeter Bamboulis njengejenereyitha yovavanyo ye-lexical analyzers ekhawulezayo, eyahlulwe kwezinye iijenereyitha ngesantya sekhowudi eyenziweyo kunye nojongano lomsebenzisi oluguquguqukayo ngokungaqhelekanga oluvumela abahlalutyi ukuba bafakwe ngokulula nangokufanelekileyo kwinto ekhoyo. isiseko sekhowudi. Ukusukela ngoko, le projekthi iye yaphuhliswa luluntu kwaye iyaqhubeka ukuba liqonga leemvavanyo kunye nophando kwicandelo lemigaqo-ntetho esesikweni kunye noomatshini baseburhulumenteni abalinganiselweyo.

Utshintsho oluphambili:

  • Inkxaso eyongeziweyo yolwimi lwe-Go (inikwe amandla ngo-“--lang go” ukhetho lwe-re2c, okanye njengenkqubo eyahlukileyo ye-re2go). Amaxwebhu e-C kunye ne-Go aveliswa ngokubhaliweyo okufanayo, kodwa ngemizekelo yekhowudi eyahlukileyo. Inkqubo yokuvelisa ikhowudi kwi-re2c yenziwe ngokutsha ngokupheleleyo, ekufuneka yenze kube lula ukuxhasa iilwimi ezintsha kwixesha elizayo.
  • Yongezwe enye inkqubo yokwakha yeCMake (enkosi ligfx!). Iinzame zokuguqulela i-re2c ukuya kwi-CMake zenziwe ixesha elide, kodwa de kube ligfx akukho mntu ucebise isisombululo esipheleleyo. Inkqubo yokwakha ye-Autotools endala iyaqhubeka nokuxhaswa kwaye isetyenziswa, kwaye akukho zicwangciso zokuyishiya kwixesha elizayo elibonakalayo (inxalenye ukuphepha ukudala iingxaki kubaphuhlisi bokusasaza, ngokuyinxenye ngenxa yokuba inkqubo yokwakha endala izinzile kwaye imfutshane ngakumbi kunentsha. ). Zombini iinkqubo zivavanywa ngokuqhubekayo kusetyenziswa iTravis CI.
  • Kongezwe ukukwazi ukucacisa ikhowudi yojongano kuqwalaselo xa usebenzisa i-generic API. Ngaphambili, uninzi lwee-APIs bekufuneka zichazwe ngohlobo lwemisebenzi okanye iimacros zemisebenzi. Ngoku zinokuchazwa ngokohlobo lweentambo ezingenamkhethe ezineeparamitha zethempleyithi ezibiziweyo zefomu "@@{name}" okanye ngokulula "@@" (ukuba kukho iparameter enye kwaye akukho mbaxa). Isimbo se-API simiselwa yi-re2c:api:ubumbeko lwesimbo (ixabiso lemisebenzi lichaza isimbo esisebenzayo, kwaye ifom ekhululekileyo ikhankanya isimbo esingenasizathu).
  • Ukusebenza kwe-"-c", "-start-conditions" ukhetho luphuculwe, okukuvumela ukuba udibanise iileksi ezininzi ezidibeneyo kwibhloko enye ye-re2c. Ngoku ungasebenzisa iibhloko eziqhelekileyo kunye nezinemiqathango kwaye uchaze iibhloko ezinemiqathango ezininzi ezinganxulumananga kwifayile enye. Ukuphuculwa komsebenzi wokhetho luka-"-r", "--reuse" (usebenzisa kwakhona ikhowudi esuka kwibhloko enye kwezinye iibhloko) kudityaniswe no-"-c", "--start-conditions" kunye no- "-f", "---- stable-state" iinketho (i-lexer esemthethweni enokuphazamiseka nangaliphi na ixesha kwaye iqhubeke nokwenziwa kamva).
  • Kulungiswe i-bug kwi-algorithm esandul 'ukufakwa kwi-end-of-input (umgaqo we-EOF), othe kwiimeko ezinqabileyo ubangele ukuqhutyelwa kwemigaqo ehambelanayo.
  • Inkqubo ye-bootstrap yenziwe lula. Ngaphambili, inkqubo yokwakha izamile ukufumana i-re2c esele yakhiwe enokusetyenziselwa ukuzakha kwakhona. Oku kukhokelele kuxhomekeko olungachanekanga (kuba igrafu yokuxhomekeka ibiguquguquka, uninzi lweenkqubo zokwakha ezingathandiyo). Ngoku, ukuze wakhe kwakhona i-lexers, kufuneka uqwalasele ngokucacileyo inkqubo yokwakha kwaye usete i-RE2C_FOR_BUILD eguquguqukayo.

umthombo: opennet.ru

Thenga ukusingathwa okuthembekileyo kwiindawo ezinokhuseleko lweDDoS, iiseva zeVPS VDS 🔥 Thenga ukusingathwa kwewebhusayithi okuthembekileyo ngokhuseleko lwe-DDoS, iiseva zeVPS VDS | ProHoster