re2c 2.0 லெக்சிகல் அனலைசர் ஜெனரேட்டரின் வெளியீடு

நடைபெற்றது வெளியீடு re2c 2.0, C மற்றும் C++ க்கான ஒரு இலவச லெக்சிகல் பகுப்பாய்வி ஜெனரேட்டர். re2c திட்டம் முதலில் 1993 ஆம் ஆண்டு பீட்டர் பாம்பூலிஸால் மிக வேகமான லெக்சிகல் பகுப்பாய்விகளின் சோதனை ஜெனரேட்டராக உருவாக்கப்பட்டது. அதன் உருவாக்கப்பட்ட குறியீட்டின் வேகம் மற்றும் வழக்கத்திற்கு மாறாக நெகிழ்வான பயனர் இடைமுகம் ஆகியவற்றால் இது மற்ற ஜெனரேட்டர்களிடமிருந்து தன்னை வேறுபடுத்திக் கொண்டது, இது ஏற்கனவே உள்ள குறியீட்டுத் தளங்களில் பகுப்பாய்விகளை எளிதாகவும் திறமையாகவும் ஒருங்கிணைக்க அனுமதிக்கிறது. அப்போதிருந்து, இந்த திட்டம் சமூகத்தால் உருவாக்கப்பட்டது மற்றும் முறையான இலக்கணங்கள் மற்றும் வரையறுக்கப்பட்ட தானியங்கித் துறைகளில் பரிசோதனை மற்றும் ஆராய்ச்சிக்கான தளமாகத் தொடர்ந்து செயல்படுகிறது.

முக்கிய மாற்றங்கள்:

  • Go மொழி ஆதரவு சேர்க்கப்பட்டுள்ளது (re2c க்கான "--lang go" விருப்பத்துடன் அல்லது ஒரு தனி நிரலாக, re2go ஆக இயக்கப்பட்டது). C மற்றும் Go க்கான ஆவணங்கள் ஒரே மூலக் குறியீட்டிலிருந்து உருவாக்கப்படுகின்றன, ஆனால் வெவ்வேறு குறியீடு எடுத்துக்காட்டுகளுடன். re2c இல் உள்ள குறியீடு உருவாக்க துணை அமைப்பு முழுமையாக மறுவடிவமைப்பு செய்யப்பட்டுள்ளது, இது எதிர்காலத்தில் புதிய மொழிகளுக்கான ஆதரவை எளிதாக்கும்.
  • CMake அடிப்படையிலான மாற்று உருவாக்க அமைப்பு சேர்க்கப்பட்டது (நன்றி) லிஃப்எக்ஸ்!). re2c ஐ CMake க்கு நகர்த்துவதற்கான முயற்சிகள் நீண்ட காலமாக மேற்கொள்ளப்பட்டு வருகின்றன, ஆனால் ligfx வரை, யாரும் முழுமையான தீர்வை வழங்கவில்லை. பழைய ஆட்டோடூல்ஸ் உருவாக்க அமைப்பு தொடர்ந்து ஆதரிக்கப்பட்டு பயன்படுத்தப்படுகிறது, மேலும் எதிர்காலத்தில் அதை ரத்து செய்யும் திட்டங்கள் எதுவும் இல்லை (விநியோக டெவலப்பர்களுக்கு சிக்கல்களை ஏற்படுத்துவதைத் தவிர்ப்பதற்காகவும், பழைய உருவாக்க அமைப்பு புதியதை விட நிலையானதாகவும் சுருக்கமாகவும் இருப்பதால்). இரண்டு அமைப்புகளும் டிராவிஸ் CI ஐப் பயன்படுத்தி சமமாகவும் தொடர்ச்சியாகவும் சோதிக்கப்படுகின்றன.
  • பொதுவான API ஐப் பயன்படுத்தும் போது உள்ளமைவுகளில் இடைமுகக் குறியீட்டைக் குறிப்பிடும் திறனைச் சேர்த்தது. முன்பு, பெரும்பாலான APIகள் செயல்பாடுகள் அல்லது செயல்பாட்டு மேக்ரோக்களாகக் குறிப்பிடப்பட வேண்டியிருந்தது. இப்போது, ​​அவற்றை "@@{name}" அல்லது வெறுமனே "@@" வடிவத்தின் பெயரிடப்பட்ட டெம்ப்ளேட் அளவுருக்களுடன் தன்னிச்சையான சரங்களாகக் குறிப்பிடலாம் (ஒரே ஒரு அளவுரு மட்டுமே இருந்தால் மற்றும் தெளிவின்மை இல்லை). API பாணி re2c:api:style உள்ளமைவால் குறிப்பிடப்படுகிறது ("functions" மதிப்பு செயல்பாட்டு பாணியைக் குறிப்பிடுகிறது, அதே நேரத்தில் "free-form" தன்னிச்சையான பாணியைக் குறிப்பிடுகிறது).
  • "-c", "--start-conditions" விருப்பத்தின் மேம்படுத்தப்பட்ட செயல்திறன், இது ஒரு re2c தொகுதியில் பல தொடர்புடைய லெக்ஸர்களை இணைக்க அனுமதிக்கிறது. இப்போது நீங்கள் நிபந்தனை தொகுதிகளுடன் வழக்கமான தொகுதிகளைப் பயன்படுத்தலாம் மற்றும் ஒரே கோப்பில் பல தொடர்பில்லாத நிபந்தனை தொகுதிகளை வரையறுக்கலாம். "-c", "--start-conditions" மற்றும் "-f", "--storable-state" விருப்பங்களுடன் (எந்த நேரத்திலும் குறுக்கிடப்பட்டு பின்னர் மீண்டும் தொடங்கக்கூடிய தொடர்ச்சியான நிலை கொண்ட ஒரு லெக்ஸர்) இணைந்து "-r", "--reuse" விருப்பத்தின் (மற்ற தொகுதிகளில் ஒரு தொகுதியிலிருந்து குறியீட்டை மீண்டும் பயன்படுத்துதல்) மேம்படுத்தப்பட்ட செயல்திறன்.
  • அரிதான சந்தர்ப்பங்களில், ஒன்றுடன் ஒன்று சேரும் விதிகளைத் தவறாகக் கையாளக்கூடிய, சமீபத்தில் சேர்க்கப்பட்ட உள்ளீட்டு முடிவு விதி கையாளும் வழிமுறையில் ஒரு பிழை சரி செய்யப்பட்டது.
  • பூட்ஸ்ட்ராப் செயல்முறை எளிமைப்படுத்தப்பட்டுள்ளது. முன்னதாக, பில்ட் சிஸ்டம் தன்னை மீண்டும் உருவாக்கப் பயன்படுத்தக்கூடிய ஏற்கனவே கட்டமைக்கப்பட்ட re2c ஐ மாறும் வகையில் கண்டுபிடிக்க முயற்சித்தது. இது தவறான சார்புகளுக்கு வழிவகுத்தது (சார்பு வரைபடம் மாறும் என்பதால், பெரும்பாலான பில்ட் சிஸ்டம்கள் இதை விரும்பவில்லை). இப்போது, ​​லெக்சர்களை மீண்டும் உருவாக்க, நீங்கள் பில்ட் சிஸ்டத்தை வெளிப்படையாக உள்ளமைத்து RE2C_FOR_BUILD மாறியை அமைக்க வேண்டும்.

ஆதாரம்: opennet.ru

DDoS பாதுகாப்பு, VPS VDS சர்வர்கள் கொண்ட தளங்களுக்கு நம்பகமான ஹோஸ்டிங் வாங்கவும் 🔥 DDoS பாதுகாப்புடன் கூடிய நம்பகமான இணையதள ஹோஸ்டிங், VPS, VDS சர்வர்களை வாங்குங்கள் | ProHoster