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

பதிப்பு 1.2 இல் உள்ள முக்கிய கண்டுபிடிப்புகள்:

  • உள்ளீட்டுத் தரவின் முடிவைச் சரிபார்க்க புதிய (எளிமைப்படுத்தப்பட்ட) வழி சேர்க்கப்பட்டது
    (ஆங்கிலம் "EOF விதி").
    இதற்காக, re2c:eof கட்டமைப்பு சேர்க்கப்பட்டது,
    முனைய எழுத்தைத் தேர்ந்தெடுக்க உங்களை அனுமதிக்கிறது,
    மற்றும் லெக்சர் என்றால் சுடும் ஒரு சிறப்பு $ விதி
    உள்ளீட்டுத் தரவின் முடிவை வெற்றிகரமாக அடைந்தது.
    வரலாற்று ரீதியாக, re2c பல சரிபார்ப்பு முறைகளின் தேர்வை வழங்குகிறது
    வரம்பு, செயல்திறன் மற்றும் எளிமை ஆகியவற்றில் மாறுபடும் உள்ளீடுகளின் முடிவு
    பயன்பாடுகள். புதிய முறை எழுதும் குறியீட்டை எளிதாக்க வடிவமைக்கப்பட்டுள்ளது
    பயனுள்ள மற்றும் பரவலாக பொருந்தும் போது. பழைய வழிகள்
    இன்னும் வேலை செய்கிறது மற்றும் சில சந்தர்ப்பங்களில் விரும்பப்படலாம்.

  • கட்டளையைப் பயன்படுத்தி வெளிப்புற கோப்புகளைச் சேர்க்கும் திறன் சேர்க்கப்பட்டது
    /*!include:re2c "file.re" */ இதில் file.re
    இது அடங்கும் கோப்பின் பெயர். Re2c கோப்பு கோப்பகத்தில் உள்ள கோப்புகளைத் தேடுகிறது,
    அத்துடன் -I விருப்பத்தைப் பயன்படுத்தி குறிப்பிடப்பட்ட பாதைகளின் பட்டியலிலும்.
    சேர்க்கப்பட்ட கோப்புகளில் மற்ற கோப்புகள் இருக்கலாம்.
    Re2c ஆனது அடங்கும்/கோப்பகத்தில் "நிலையான" கோப்புகளை வழங்குகிறது
    திட்டம் - பயனுள்ள வரையறைகள் அங்கு குவியும் என்று எதிர்பார்க்கப்படுகிறது
    வழக்கமான வெளிப்பாடுகள், நிலையான நூலகம் போன்றவை.
    இதுவரை, தொழிலாளர்களின் வேண்டுகோளின் பேரில், யூனிகோட் வகைகளின் வரையறைகளுடன் ஒரு கோப்பு சேர்க்கப்பட்டுள்ளது.

  • தன்னிச்சையாக தலைப்பு கோப்புகளை உருவாக்கும் திறன் சேர்க்கப்பட்டது
    -t --type-header விருப்பங்களைப் பயன்படுத்தி உள்ளடக்கம் (அல்லது பொருத்தமானது
    கட்டமைப்புகள்) மற்றும் புதிய வழிமுறைகள் /*!header:re2c:on*/ மற்றும்
    /*!header:re2c:off*/. சந்தர்ப்பங்களில் இது பயனுள்ளதாக இருக்கும்
    re2c ஆனது மாறிகள், கட்டமைப்புகள் மற்றும் மேக்ரோக்களின் வரையறைகளை உருவாக்க வேண்டியிருக்கும் போது,
    பிற மொழிபெயர்ப்பு அலகுகளில் பயன்படுத்தப்படுகிறது.

  • Re2c இப்போது UTF8 எழுத்துகள் மற்றும் வழக்கமான வெளிப்பாடுகளில் எழுத்து வகுப்புகளைப் புரிந்துகொள்கிறது.
    இயல்பாக, "∀x ∃y" போன்ற வெளிப்பாடுகளை re2c பாகுபடுத்துகிறது.
    1-பிட் ASCII எழுத்துகளின் வரிசை e2 88 80 78 20 e2 88 83 79
    (ஹெக்ஸ் குறியீடுகள்), மற்றும் பயனர்கள் யூனிகோட் எழுத்துக்களை கைமுறையாக தப்பிக்க வேண்டும்:
    "u2200x u2203y". இது பலருக்கு மிகவும் சிரமமாகவும் எதிர்பாராததாகவும் உள்ளது
    பயனர்கள் (நிலையான பிழை அறிக்கைகளால் நிரூபிக்கப்பட்டுள்ளது). அதனால் இப்போது
    re2c --input-encoding விருப்பத்தை வழங்குகிறது ,
    இது நடத்தையை மாற்றவும் "∀x ∃y" ஐ பாகுபடுத்தவும் அனுமதிக்கிறது
    2200 78 20 2203 79.

  • Re2c இப்போது வழக்கமான re2c தொகுதிகளை -r --reuse முறையில் பயன்படுத்த அனுமதிக்கிறது.
    உள்ளீட்டு கோப்பில் பல தொகுதிகள் மற்றும் அவற்றில் சில மட்டுமே இருந்தால் இது வசதியானது
    மீண்டும் பயன்படுத்த வேண்டும்.

  • இப்போது நீங்கள் எச்சரிக்கைகள் மற்றும் பிழை செய்திகளின் வடிவமைப்பை அமைக்கலாம்
    புதிய --location-format விருப்பத்தைப் பயன்படுத்தி . குனு வடிவம் காட்டப்படும்
    கோப்புப்பெயர்:வரி:நெடுவரிசை:, மற்றும் MSVC வடிவம் கோப்புப்பெயராக(வரி,நெடுவரிசை).
    இந்த அம்சம் IDE பிரியர்களுக்கு பயனுள்ளதாக இருக்கும்.
    ஒரு --verbose விருப்பமும் சேர்க்கப்பட்டுள்ளது, இது வெற்றியடைந்தால் குறுகிய வெற்றிச் செய்தியை அச்சிடுகிறது.

  • ஃப்ளெக்ஸுடன் "இணக்கத்தன்மை" பயன்முறை மேம்படுத்தப்பட்டுள்ளது - சில பாகுபடுத்தும் பிழைகள் சரி செய்யப்பட்டுள்ளன
    அரிதான சந்தர்ப்பங்களில் தவறான ஆபரேட்டர் முன்னுரிமை.
    வரலாற்று ரீதியாக, -F --flex-support விருப்பம் நீங்கள் குறியீட்டை எழுத அனுமதித்தது
    ஃப்ளெக்ஸ் ஸ்டைல் ​​மற்றும் re2c ஸ்டைலில் கலக்கப்பட்டுள்ளது, இது பாகுபடுத்துவதை சற்று கடினமாக்குகிறது.
    புதிய குறியீட்டில் ஃப்ளெக்ஸ் பொருந்தக்கூடிய பயன்முறை அரிதாகவே பயன்படுத்தப்படுகிறது,
    ஆனால் re2c பின்னோக்கி இணக்கத்தன்மைக்கு தொடர்ந்து ஆதரவளிக்கிறது.

  • எழுத்து வகுப்பு கழித்தல் ஆபரேட்டர் / இப்போது பொருந்தும்
    குறியாக்கத்தை விரிவுபடுத்துவதற்கு முன், இது அதிக எண்ணிக்கையிலான நிகழ்வுகளில் பயன்படுத்த அனுமதிக்கிறது,
    ஒரு மாறி எழுத்து நீள குறியாக்கம் பயன்படுத்தப்பட்டால் (உதாரணமாக UTF8).

  • வெளியீட்டு கோப்பு இப்போது அணுவாக உருவாக்கப்பட்டுள்ளது: re2c முதலில் ஒரு தற்காலிக கோப்பை உருவாக்குகிறது
    மற்றும் முடிவை அதில் எழுதுகிறது, பின்னர் தற்காலிக கோப்பை வெளியீட்டிற்கு மறுபெயரிடுகிறது
    ஒரு செயல்பாடு.

  • ஆவணங்கள் முடிக்கப்பட்டு மீண்டும் எழுதப்பட்டன; குறிப்பாக, புதியவை சேர்க்கப்பட்டன
    அத்தியாயங்கள் இடையகத்தை நிரப்புவது பற்றி
    и உள்ளீட்டுத் தரவின் முடிவைச் சரிபார்க்கும் வழிகளைப் பற்றி.
    புதிய ஆவணங்கள் படிவத்தில் சேகரிக்கப்படுகின்றன
    ஒரு விரிவான ஒரு பக்க கையேடு
    எடுத்துக்காட்டுகளுடன் (அதே ஆதாரங்கள் manpage மற்றும் ஆன்லைன் ஆவணங்களில் வழங்கப்படுகின்றன).
    தொலைபேசிகளில் தளத்தின் வாசிப்புத் திறனை மேம்படுத்த மோசமான முயற்சிகள் மேற்கொள்ளப்பட்டுள்ளன.

  • டெவலப்பர்களின் பார்வையில், re2c ஒரு முழுமையான துணை அமைப்பைப் பெற்றுள்ளது
    பிழைத்திருத்தம் பிழைத்திருத்த குறியீடு இப்போது வெளியீட்டு உருவாக்கங்களில் முடக்கப்பட்டுள்ளது மற்றும்
    configure விருப்பத்தை --enable-debug ஐ பயன்படுத்தி செயல்படுத்தலாம்.

இந்த வெளியீடு நீண்ட நேரம் எடுத்தது - கிட்டத்தட்ட ஒரு வருடம் முழுவதும்.
பெரும்பாலான நேரம், எப்போதும் போல, ஒரு தத்துவார்த்த கட்டமைப்பை உருவாக்குவதற்கும் எழுதுவதற்கும் செலவிடப்பட்டது
கட்டுரைகள் "NFA இல் திறமையான POSIX துணைப் பிரித்தெடுத்தல்".
கட்டுரையில் விவரிக்கப்பட்டுள்ள அல்காரிதம்கள் libre2c சோதனை நூலகத்தில் செயல்படுத்தப்படுகின்றன
(நூலகம் மற்றும் வரையறைகளை உருவாக்குவது முன்னிருப்பாக முடக்கப்பட்டுள்ளது மற்றும் உள்ளமைவு விருப்பத்தால் இயக்கப்படுகிறது
--இயக்கு-libs). நூலகம் தற்போதுள்ள நூலகத்திற்கு போட்டியாக கருதப்படவில்லை
RE2 போன்ற திட்டங்கள், ஆனால் புதியவற்றை உருவாக்குவதற்கான ஆராய்ச்சி தளம்
அல்காரிதம்கள் (பின்னர் இது re2c அல்லது பிற திட்டங்களில் பயன்படுத்தப்படலாம்).
சோதனை, வரையறைகள் மற்றும் பிற மொழிகளுடன் பிணைப்புகளை உருவாக்குதல் ஆகியவற்றின் பார்வையில் இருந்து இது வசதியானது.

இந்த வெளியீட்டிற்கு உதவிய அனைவருக்கும் re2c டெவலப்பர்களிடமிருந்து நன்றி,
மற்றும் கருத்துக்கள், பிழை அறிக்கைகள், இணைப்புகள், மன உறுதி போன்றவற்றிற்காக பொதுவாக சமூகத்திற்கு. ;]

ஆதாரம்: linux.org.ru

கருத்தைச் சேர்