Tso tawm ntawm re2c lexer generator 2.0

coj qhov chaw tso tawm ib 2c 2.0, ib lub tshuab tsim cov lexical analyzer pub dawb rau C thiab C++. Lub project re2c tau tsim thawj zaug hauv xyoo 1993 los ntawm Peter Bamboulis ua lub tshuab tsim cov lexical analyzers ceev heev. Nws txawv ntawm lwm lub tshuab tsim los ntawm qhov ceev ntawm nws cov code tsim thiab lub interface neeg siv hloov pauv tau yooj yim, uas tso cai rau kev sib koom ua ke yooj yim thiab ua haujlwm ntawm cov analyzers rau hauv cov codebases uas twb muaj lawm. Txij thaum ntawd los, lub zej zog tau tsim lub project thiab txuas ntxiv ua lub platform rau kev sim thiab kev tshawb fawb hauv cov teb ntawm cov qauv lus thiab finite automata.

Cov kev hloov loj:

  • Kev txhawb nqa lus Go tau ntxiv lawm (qhib nrog rau kev xaiv "--lang go" rau re2c lossis ua ib qho kev pab cuam sib cais, re2go). Cov ntaub ntawv rau C thiab Go yog tsim los ntawm tib lub qhov chaw code, tab sis nrog cov piv txwv code sib txawv. Lub subsystem tsim code hauv re2c tau raug tsim dua tshiab tag nrho, uas yuav tsum pab txhawb nqa rau cov lus tshiab yav tom ntej.
  • Ntxiv ib qho kev tsim kho lwm txoj hauv kev raws li CMake (ua tsaug ligfx!). Kev sim hloov re2c mus rau CMake tau ua ntev heev lawm, tab sis txog thaum ligfx, tsis muaj leej twg tau muab kev daws teeb meem tiav. Lub kaw lus Autotools qub tseem raug txhawb nqa thiab siv, thiab tsis muaj phiaj xwm yuav tsis siv nws yav tom ntej (ib feem kom tsis txhob ua teeb meem rau cov neeg tsim khoom faib khoom, thiab ib feem vim tias lub kaw lus qub ruaj khov dua thiab luv dua li lub tshiab). Ob lub kaw lus raug sim sib npaug thiab tas li siv Travis CI.
  • Ntxiv lub peev xwm los teev cov lej interface hauv cov kev teeb tsa thaum siv cov API dav dav. Yav dhau los, feem ntau APIs yuav tsum tau teev tseg ua cov haujlwm lossis cov macros ua haujlwm. Tam sim no, lawv tuaj yeem teev tseg ua cov hlua nrog cov qauv teev npe ntawm daim ntawv "@@{name}" lossis tsuas yog "@@" (yog tias tsuas muaj ib qho parameter thiab tsis muaj kev tsis meej). Cov qauv API tau teev tseg los ntawm re2c:api:style configuration (tus nqi "functions" qhia txog cov qauv ua haujlwm, thaum "free-form" qhia txog cov qauv tsis raug).
  • Kev ua tau zoo dua ntawm kev xaiv "-c", "--start-conditions", uas tso cai rau kev sib koom ua ke ntau tus lej sib txuas hauv ib lub thaiv re2c. Tam sim no koj tuaj yeem siv cov blocks ib txwm nrog rau cov blocks conditional thiab txhais ntau lub blocks conditional tsis sib txuas hauv ib daim ntawv. Kev ua tau zoo dua ntawm kev xaiv "-r", "--reuse" (rov siv cov lej los ntawm ib lub block hauv lwm lub blocks) ua ke nrog cov kev xaiv "-c", "--start-conditions" thiab "-f", "--storable-state" (ib tus lej nrog lub xeev ruaj khov, uas tuaj yeem raug cuam tshuam txhua lub sijhawm thiab rov pib dua tom qab).
  • Kho qhov kab laum hauv qhov algorithm tswj hwm txoj cai kawg ntawm kev nkag tshiab uas tuaj yeem, qee zaum, ua rau cov cai sib tshooj raug tswj tsis raug.
  • Cov txheej txheem bootstrap tau yooj yim dua. Yav dhau los, lub kaw lus tsim kho tau sim nrhiav dynamically ib qho re2c uas twb tau tsim lawm uas tuaj yeem siv los tsim nws tus kheej dua. Qhov no ua rau muaj kev vam khom tsis raug (vim tias daim duab vam khom yog dynamic, uas feem ntau cov kab ke tsim kho tsis nyiam). Tam sim no, txhawm rau tsim cov lexers dua, koj yuav tsum teeb tsa lub kaw lus tsim kho thiab teeb tsa RE2C_FOR_BUILD variable.

Tau qhov twg los: opennet.ru

Yuav txhim khu kev qha hosting rau cov chaw nrog DDoS tiv thaiv, VPS VDS servers 🔥 Yuav lub vev xaib hosting txhim khu kev qha nrog kev tiv thaiv DDoS, VPS VDS servers | ProHoster