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

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

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

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

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

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

  • தன்னிச்சையாக தலைப்பு கோப்புகளை உருவாக்கும் திறன் சேர்க்கப்பட்டது
    "-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 {ascii | விருப்பத்தை வழங்குகிறது utf8}",
    இது நடத்தையை மாற்றவும், “∀x ∃y” ஐப் பாகுபடுத்தவும் அனுமதிக்கிறது
    "2200 78 20 2203 79."

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

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

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

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

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

  • ஆவணங்கள் முடிக்கப்பட்டு மீண்டும் எழுதப்பட்டன; குறிப்பாக, புதியவை சேர்க்கப்பட்டன
    பற்றி அத்தியாயங்கள் http://re2c.org/manual/manual.html#buffer-refilling заполнение буфера
    и உள்ளீட்டுத் தரவின் முடிவைச் சரிபார்க்கும் வழிகளைப் பற்றி.
    புதிய ஆவணங்கள் படிவத்தில் சேகரிக்கப்படுகின்றன
    ஒரு விரிவான ஒரு பக்க வழிகாட்டி
    எடுத்துக்காட்டுகளுடன் (அதே ஆதாரங்கள் manpage மற்றும் ஆன்லைன் ஆவணங்களில் வழங்கப்படுகின்றன).
    தொலைபேசிகளில் தளத்தின் வாசிப்புத் திறனை மேம்படுத்த மோசமான முயற்சிகள் மேற்கொள்ளப்பட்டுள்ளன.

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

ஆதாரம்: opennet.ru

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