جمعہ، 2 اگست کو، C اور C++ زبانوں کے لیے لغوی تجزیہ کاروں کے مفت جنریٹر re2c کی ریلیز ہوئی۔ Re2c کو پیٹر بامبولیس نے 1993 میں بہت تیز لغوی تجزیہ کاروں کے تجرباتی جنریٹر کے طور پر لکھا تھا، جو دوسرے جنریٹرز سے تیار کردہ کوڈ کی رفتار اور غیر معمولی طور پر لچکدار یوزر انٹرفیس سے ممتاز ہے جو تجزیہ کاروں کو آسانی سے اور مؤثر طریقے سے موجودہ کوڈ بیس میں سرایت کرنے کی اجازت دیتا ہے۔ تب سے، یہ پروجیکٹ کمیونٹی کے ذریعہ تیار کیا گیا ہے اور یہ رسمی گرامر اور محدود ریاستی مشینوں کے میدان میں تجربات اور تحقیق کے لیے ایک پلیٹ فارم بنا ہوا ہے۔

ورژن 1.2 میں اہم اختراعات:

  • ان پٹ ڈیٹا کے اختتام کو چیک کرنے کے لیے ایک نیا (آسان) طریقہ شامل کیا گیا۔
    (انگریزی "EOF قاعدہ")۔
    اس کے لیے، re2c:eof کنفیگریشن شامل کی گئی ہے،
    آپ کو ٹرمینل کریکٹر کو منتخب کرنے کی اجازت دیتا ہے،
    اور ایک خاص $ قاعدہ جو فائر کرتا ہے اگر لیکسر
    کامیابی سے ان پٹ ڈیٹا کے اختتام تک پہنچ گیا۔
    تاریخی طور پر، re2c کئی تصدیقی طریقوں کا انتخاب فراہم کرتا ہے۔
    ان پٹ کا اختتام حد، کارکردگی اور سادگی میں مختلف ہوتا ہے۔
    ایپلی کیشنز نیا طریقہ تحریری کوڈ کو آسان بنانے کے لیے ڈیزائن کیا گیا ہے، جبکہ
    مؤثر اور وسیع پیمانے پر قابل اطلاق رہتے ہوئے. پرانے طریقے
    اب بھی کام کرتے ہیں اور کچھ معاملات میں ترجیح دی جا سکتی ہے۔

  • ایک ہدایت کا استعمال کرتے ہوئے بیرونی فائلوں کو شامل کرنے کی صلاحیت شامل کی گئی۔
    /*!include:re2c "file.re" */ where file.re
    یہ شامل فائل کا نام ہے۔ Re2c بشمول فائل کی ڈائرکٹری میں فائلوں کو تلاش کرتا ہے،
    نیز -I اختیار کا استعمال کرتے ہوئے مخصوص راستوں کی فہرست میں۔
    شامل فائلوں میں دوسری فائلیں شامل ہو سکتی ہیں۔
    Re2c شامل/ ڈائریکٹری میں "معیاری" فائلیں فراہم کرتا ہے۔
    پروجیکٹ - توقع ہے کہ مفید تعریفیں وہاں جمع ہوں گی۔
    باقاعدہ اظہار، معیاری لائبریری کی طرح کچھ.
    اب تک، کارکنوں کی درخواست پر، یونیکوڈ کیٹیگریز کی تعریف کے ساتھ ایک فائل کا اضافہ کیا گیا ہے۔

  • صوابدیدی کے ساتھ ہیڈر فائلوں کو پیدا کرنے کی صلاحیت شامل کی گئی۔
    -t --type-header کے اختیارات کا استعمال کرتے ہوئے مواد (یا مناسب
    کنفیگریشنز) اور نئی ہدایات /*!header:re2c:on*/ اور
    /*!header:re2c:off*/. یہ صورتوں میں مفید ہو سکتا ہے جہاں
    جب re2c کو متغیرات، ڈھانچے اور میکروز کی تعریفیں پیدا کرنے کی ضرورت ہوتی ہے،
    ترجمہ کی دوسری اکائیوں میں استعمال ہوتا ہے۔

  • Re2c اب ریگولر ایکسپریشنز میں UTF8 لٹریلز اور کریکٹر کلاسز کو سمجھتا ہے۔
    پہلے سے طے شدہ طور پر، re2c "∀x ∃y" جیسے تاثرات کو پارس کرتا ہے۔
    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 آپشن کا استعمال کرتے ہوئے . GNU فارمیٹ ظاہر ہوتا ہے۔
    بطور فائل نام: لائن: کالم:، اور MSVC فارمیٹ بطور فائل نام (لائن، کالم)۔
    یہ فیچر IDE سے محبت کرنے والوں کے لیے مفید ہو سکتا ہے۔
    ایک --verbose آپشن بھی شامل کیا گیا ہے، جو کامیاب ہونے پر فتح کا ایک مختصر پیغام پرنٹ کرتا ہے۔

  • فلیکس کے ساتھ "مطابقت" موڈ کو بہتر بنایا گیا ہے - تجزیہ کرنے کی کچھ غلطیاں درست کر دی گئی ہیں اور
    غیر معمولی معاملات میں غلط آپریٹر کی ترجیح۔
    تاریخی طور پر، -F --flex-support آپشن نے آپ کو کوڈ لکھنے کی اجازت دی۔
    فلیکس سٹائل اور re2c سٹائل میں ملایا گیا، جس سے پارس کرنا تھوڑا مشکل ہو جاتا ہے۔
    نئے کوڈ میں فلیکس مطابقت موڈ شاذ و نادر ہی استعمال ہوتا ہے،
    لیکن re2c پیچھے کی طرف مطابقت کے لیے اس کی حمایت جاری رکھے ہوئے ہے۔

  • کریکٹر کلاس گھٹاؤ آپریٹر / اب لاگو ہوتا ہے۔
    انکوڈنگ کو بڑھانے سے پہلے، جو اسے بڑی تعداد میں کیسوں میں استعمال کرنے کی اجازت دیتا ہے،
    اگر ایک متغیر کریکٹر کی لمبائی کی انکوڈنگ استعمال کی جاتی ہے (مثال کے طور پر UTF8)۔

  • آؤٹ پٹ فائل اب ایٹمی طور پر بنائی گئی ہے: re2c پہلے ایک عارضی فائل بناتا ہے۔
    اور اس میں نتیجہ لکھتا ہے، اور پھر عارضی فائل کا نام بدل کر آؤٹ پٹ کرتا ہے۔
    ایک آپریشن.

  • دستاویزات کو مکمل کیا گیا اور دوبارہ لکھا گیا۔ خاص طور پر نئے شامل کیے گئے۔
    ابواب بفر کو بھرنے کے بارے میں
    и ان پٹ ڈیٹا کے اختتام کو چیک کرنے کے طریقوں کے بارے میں.
    نئی دستاویزات فارم میں جمع کی جاتی ہیں۔
    ایک صفحے کا ایک جامع دستی
    مثالوں کے ساتھ (وہی ذرائع مین پیج اور آن لائن دستاویزات میں پیش کیے گئے ہیں)۔
    فون پر سائٹ کی پڑھنے کی اہلیت کو بہتر بنانے کی ناقص کوششیں کی گئی ہیں۔

  • ڈویلپرز کے نقطہ نظر سے، re2c نے مزید مکمل سب سسٹم حاصل کر لیا ہے۔
    ڈیبگنگ ڈیبگنگ کوڈ اب ریلیز کی تعمیرات میں غیر فعال ہے۔
    کنفیگر آپشن --enable-debug کا استعمال کرتے ہوئے فعال کیا جا سکتا ہے۔

اس ریلیز میں کافی وقت لگا - تقریباً پورا سال۔
زیادہ تر وقت، ہمیشہ کی طرح، ایک نظریاتی فریم ورک اور تحریر کو تیار کرنے میں صرف کیا گیا۔
مضامین "این ایف اے پر موثر POSIX سب میچ نکالنا".
مضمون میں بیان کردہ الگورتھم تجرباتی لائبریری libre2c میں لاگو کیے گئے ہیں۔
(لائبریری اور بینچ مارکس کی تعمیر ڈیفالٹ طور پر غیر فعال ہے اور کنفیگر آپشن کے ذریعے فعال ہے
--enable-libs)۔ لائبریری کو موجودہ کے مدمقابل کے طور پر تصور نہیں کیا جاتا ہے۔
RE2 جیسے منصوبے، لیکن نئے کی ترقی کے لیے ایک تحقیقی پلیٹ فارم کے طور پر
الگورتھم (جو پھر re2c یا دوسرے پروجیکٹس میں استعمال ہوسکتے ہیں)۔
یہ جانچ، بینچ مارکس اور دوسری زبانوں کے لیے پابند بنانے کے نقطہ نظر سے بھی آسان ہے۔

re2c ڈویلپرز کی طرف سے ہر اس شخص کا شکریہ جنہوں نے اس ریلیز میں مدد کی،
اور عمومی طور پر کمیونٹی کے لیے خیالات، بگ رپورٹس، پیچ، حوصلہ وغیرہ۔ ;]

ماخذ: linux.org.ru

نیا تبصرہ شامل کریں