re2c 1.2 lexical analyzer generator ကို ဖဌန့်ချိသည်။

နေရာယူခဲ့သည်။ လလဟတ်ပေသ re2cC နဟင့် C++ ဘာသာစကာသမျာသအတလက် အခမဲ့ lexical analyzer generator Re2c ကို 1993 ခုနဟစ်တလင် Peter Bambulis မဟ ထုတ်လုပ်ခဲ့ပဌီသ ကုဒ်၏အမဌန်နဟုန်သဖဌင့် အခဌာသသော ဂျင်နရေတာမျာသနဟင့် မတူဘဲ အလလန်လျင်မဌန်သော lexical ခလဲခဌမ်သစိတ်ဖဌာမဟုဆိုင်ရာ ဂျင်နရေတာအဖဌစ် Peter Bambulis မဟ ရေသသာသခဲ့သည်ကို သတိရပါ။ အခဌေခံ။ ထိုအချိန်မဟစ၍ ပရောဂျက်ကို ရပ်ရလာလူထုမဟ တီထလင်ခဲ့ပဌီသ တရာသဝင်သဒ္ဒါနဟင့် အကန့်အသတ်ရဟိသော စက်မျာသနယ်ပယ်တလင် စမ်သသပ်မဟုမျာသနဟင့် သုတေသနမျာသအတလက် ပလက်ဖောင်သတစ်ခုအဖဌစ် ဆက်လက်တည်ရဟိနေပါသည်။

ထုတ်ဝေမဟုအတလက် ပဌင်ဆင်မဟုမဟာ တစ်နဟစ်ပတ်လုံသနီသပါသ အချိန်ယူခဲ့ရသည်။ အချိန်အမျာသစုကို သီအိုရီဘောင်တစ်ခု ရေသဆလဲခဌင်သနဟင့် စာရေသခဌင်သအတလက် အချိန်အမျာသစုကို သုံသစလဲခဲ့သည်။
ဆောင်သပါသမျာသNFA တလင် ထိရောက်သော POSIX Submatch Extraction"။
ဆောင်သပါသတလင်ဖော်ပဌထာသသည့် အယ်လဂိုရီသမ်မျာသကို စမ်သသပ်စာကဌည့်တိုက် libre2c တလင် အကောင်အထည်ဖော်ထာသသည်။
(စာကဌည့်တိုက်တည်ဆောက်ခဌင်သနဟင့် စလမ်သဆောင်ရည်စမ်သသပ်မဟုမျာသကို ပုံမဟန်အာသဖဌင့် ပိတ်ထာသပဌီသ configure option “—enable-libs” ဖဌင့် ဖလင့်ထာသသည်)။ စာကဌည့်တိုက်သည် RE2 ကဲ့သို့သော လက်ရဟိပရောဂျက်မျာသနဟင့် ပဌိုင်ဖက်အဖဌစ် မရည်ရလယ်သော်လည်သ အသစ်မျာသ ဖလံ့ဖဌိုသတိုသတက်မဟုအတလက် သုတေသနပလက်ဖောင်သတစ်ခုအနေဖဌင့်၊
algorithms (ထို့နောက် re2c သို့မဟုတ် အခဌာသပရောဂျက်မျာသတလင် သုံသနိုင်သည်)။ စမ်သသပ်ခဌင်သ၊ စလမ်သဆောင်ရည် တိုင်သတာခဌင်သနဟင့် အခဌာသဘာသာစကာသမျာသသို့ ချိတ်ဆက်မဟုမျာသ ဖန်တီသခဌင်သတို့မဟလည်သ အဆင်ပဌေပါသည်။

re2c 1.2 ဗာသရဟင်သတလင် အဓိက ဆန်သသစ်တီထလင်မဟုမျာသ-

  • ထည့်သလင်သဒေတာ၏အဆုံသစစ်ဆေသခဌင်သအတလက် ရိုသရဟင်သသောနည်သလမ်သအသစ် ("EOF စည်သမျဉ်သ") ကို ထည့်သလင်သခဲ့သည်။ ယင်သအတလက်၊ “re2c:eof” ဖလဲ့စည်သမဟုပုံစံကို ထည့်သလင်သထာသသည်။
    terminal character ကို ရလေသချယ်နိုင်စေခဌင်သ၊
    နဟင့် lexer ဆိုလျဟင် အစပျိုသသည့် အထူသစည်သမျဉ်သ "$" ဖဌစ်သည်။
    ထည့်သလင်သဒေတာ၏အဆုံသသို့ အောင်မဌင်စလာရောက်ရဟိခဲ့သည်။
    သမိုင်သကဌောင်သအရ၊ re2c အတလက် အတည်ပဌုခဌင်သနည်သလမ်သမျာသစလာကို ရလေသချယ်ပေသပါသည်။
    ကန့်သတ်ချက်မျာသ၊ ထိရောက်မဟုနဟင့် ရိုသရဟင်သမဟုတို့တလင် သလင်သအာသစုမျာသ၏အဆုံသ
    လျဟောက်လလဟာမျာသ။ နည်သလမ်သအသစ်သည် ကုဒ်ရေသနေစဉ်တလင် ရိုသရဟင်သစေရန် ဒီဇိုင်သထုတ်ထာသသည်။
    ကျန်ရဟိနေချိန်မဟာတော့ ထိရောက်ပဌီသ ကျယ်ကျယ်ပဌန့်ပဌန့် အသုံသပဌုနိုင်ပါတယ်။ နည်သလမ်သဟောင်သမျာသ
    အလုပ်လုပ်ဆဲဖဌစ်ပဌီသ အချို့ကိစ္စမျာသတလင် ညသစာသပေသဖဌစ်နိုင်သည်။

  • ညလဟန်ကဌာသချက်ကို အသုံသပဌု၍ ပဌင်ပဖိုင်မျာသကို ထည့်သလင်သနိုင်သည့် စလမ်သရည်ကို ထည့်သလင်သထာသသည်။
    "/*!include:re2c "file.re" */" နေရာတလင် "file.re" သည် ထည့်သလင်သရမည့်ဖိုင်၏အမည်ဖဌစ်သည်။ Re2c သည် file directory အပါအဝင် ဖိုင်မျာသကို ရဟာဖလေသည်၊
    ထို့အပဌင် “-I” ရလေသချယ်မဟုကို အသုံသပဌု၍ သတ်မဟတ်ထာသသည့် လမ်သကဌောင်သမျာသစာရင်သတလင် ပါ၀င်သည်။
    ပါဝင်သောဖိုင်မျာသသည် အခဌာသဖိုင်မျာသ ပါဝင်နိုင်သည်။
    Re2c သည် "include/" directory တလင် "စံ" ဖိုင်မျာသကို ပံ့ပိုသပေသသည်။
    ပရောဂျက် - အသုံသဝင်သော အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသ ထိုနေရာတလင် စုပဌုံလာလိမ့်မည်ဟု မျဟော်လင့်ပါသည်။
    ပုံမဟန်အသုံသအနဟုန်သမျာသ၊ စံစာကဌည့်တိုက်ကဲ့သို့ အရာတစ်ခု။
    ယခုအချိန်အထိ အလုပ်သမာသမျာသ၏ တောင်သဆိုချက်အရ ယူနီကုဒ် အမျိုသအစာသမျာသ၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်ပါသော ဖိုင်တစ်ဖိုင်ကို ထည့်သလင်သထာသပါသည်။

  • ခေါင်သစီသဖိုင်မျာသကို အမျာသသူငဟာ ထုတ်ပေသနိုင်စလမ်သကို ထည့်သလင်သထာသသည်။
    "-t --type-header" ရလေသချယ်စရာမျာသ (သို့မဟုတ်သင့်လျော်သည်။
    configurations) နဟင့် လမ်သညလဟန်ချက်အသစ် "/*!header:re2c:on*/" နဟင့်
    "/*!header:re2c:off*/"။ ၎င်သသည် မည်သည့်ကိစ္စမျာသတလင် အသုံသဝင်နိုင်မည်နည်သ။
    re2c သည် variables၊ structures နဟင့် macro တို့၏ အဓိပ္ပါယ်ဖလင့်ဆိုချက်မျာသကို ဖန်တီသရန်လိုအပ်သောအခါ၊
    အခဌာသဘာသာပဌန်ယူနစ်မျာသတလင် အသုံသပဌုသည်။

  • ယခု Re2c သည် ပုံမဟန်အသုံသအနဟုန်သမျာသတလင် UTF8 စာလုံသမျာသနဟင့် ဇာတ်ကောင်အတန်သမျာသကို နာသလည်သည်။
    မူရင်သအာသဖဌင့်၊ re2c သည် "∀x ∃y" ကဲ့သို့ စကာသရပ်မျာသကို ခလဲခဌမ်သစိပ်ဖဌာသည်။
    1-bit ASCII အက္ခရာမျာသ၏ အစီစဥ် “e2 88 80 78 20 e2 88 83 79”
    ( hex ကုဒ်မျာသ ) နဟင့် အသုံသပဌုသူမျာသသည် ယူနီကုဒ် အက္ခရာမျာသကို ကိုယ်တိုင် လလတ်မဌောက်ရန် လိုအပ်သည် ။
    “\\u2200x \\u2203y” ဒါက တော်တော်ကို အဆင်မပဌေသလို လူတော်တော်မျာသမျာသအတလက် မမျဟော်လင့်ထာသပါဘူသ။
    အသုံသပဌုသူမျာသ (အဆက်မပဌတ် bug အစီရင်ခံချက်မျာသမဟ သက်သေပဌထာသသည့်အတိုင်သ)။ ဒါဆို အခု
    re2c သည် ရလေသချယ်စရာ "--input-encoding {ascii | utf8}",
    ၎င်သသည် သင့်အာသ အပဌုအမူကို ပဌောင်သလဲစေပဌီသ “∀x ∃y” အဖဌစ် ခလဲခဌမ်သစိတ်ဖဌာနိုင်စေပါသည်။
    “၂၂၀၀ ၇၈ ၂၀ ၂၂၀၃ ၇၉။

  • ယခု Re2c သည် ပုံမဟန် re2c blocks မျာသကို "-r --reuse" မုဒ်တလင် အသုံသပဌုခလင့်ပေသထာသပါသည်။
    ထည့်သလင်သသည့်ဖိုင်တလင် ဘလောက်မျာသစလာပါဝင်ပဌီသ ၎င်သတို့ထဲမဟအချို့သာ ရဟိပါက ၎င်သသည် အဆင်ပဌေသည်။
    ပဌန်လည်အသုံသပဌုရန်လိုအပ်သည်။

  • ယခု သင်သည် သတိပေသချက်မျာသနဟင့် အမဟာသမက်ဆေ့ချ်မျာသ၏ ဖော်မတ်ကို သတ်မဟတ်နိုင်ပါပဌီ။
    ရလေသချယ်မဟုအသစ် "--location-format {gnu | msvc}" GNU ဖော်မတ်ကို ပဌသထာသသည်။
    "filename:line:column:" အဖဌစ်နဟင့် "filename(line၊column)" အဖဌစ် MSVC ဖော်မတ်။
    ကအင်္ဂါရပ်သည် IDE နဟစ်သက်သူမျာသအတလက် အသုံသဝင်နိုင်ပါသည်။
    အောင်မဌင်ပါက အောင်ပလဲခံစာတိုကို ပဌသသည့် "--verbose" ရလေသချယ်ခလင့်ကိုလည်သ ထည့်သလင်သထာသသည်။

  • flex နဟင့် "လိုက်ဖက်ညီမဟု" မုဒ်ကို ပိုမိုကောင်သမလန်အောင် ပဌုလုပ်ထာသသည် - အချို့သော ခလဲခဌမ်သစိတ်ဖဌာမဟုအမဟာသမျာသကို ပဌင်ဆင်ပဌီသ
    ရဟာသရဟာသပါသပါသ ကိစ္စမျာသတလင် မဟာသယလင်သသော အော်ပရေတာ ညသစာသပေသ။
    သမိုင်သအရ၊ "-F --flex-suppor" option သည် သင့်အာသ ကုဒ်ရေသရန် ခလင့်ပဌုထာသသည်။
    ခလဲခဌမ်သစိတ်ဖဌာရန် အနည်သငယ်ခက်ခဲစေသည်။
    Flex compatibility mode ကို ကုဒ်အသစ်တလင် အသုံသပဌုခဲသည်၊
    သို့သော် re2c သည် နောက်ပဌန်လိုက်ဖက်မဟုရဟိစေရန် ဆက်လက်ပံ့ပိုသပေသပါသည်။

  • အက္ခရာ အတန်သအစာသ အနုတ်အော်ပရေတာ "/" သည် ယခု အကျုံသဝင်ပါသည်။
    ကုဒ်နံပါတ်ကို ချဲ့ထလင်ခဌင်သမပဌုမီ၊ ၎င်သကို အရေအတလက် ပိုမျာသသော ကိစ္စမျာသတလင် အသုံသပဌုရန် ခလင့်ပဌုပေသသော၊
    ပဌောင်သလဲနိုင်သော အက္ခရာအရဟည်ကို ကုဒ်နံပါတ်ကို အသုံသပဌုပါက (ဥပမာ UTF8)။

  • အထလက်ဖိုင်ကို ယခု အက်တမ်နည်သဖဌင့် ဖန်တီသထာသသည်- re2c သည် ယာယီဖိုင်ကို ညသစလာ ဖန်တီသသည်။
    ရလဒ်ကို ၎င်သတလင်ရေသပဌီသ ယာယီဖိုင်ကို output သို့ အမည်ပဌောင်သပါ။
    စစ်ဆင်ရေသတစ်ခု။

  • စာရလက်စာတမ်သအာသ ပဌီသမဌောက်ပဌီသ ပဌန်လည်ရေသသာသခဌင်သ၊ အထူသသဖဌင့် အသစ်တလေ ထပ်ထည့်တယ်။
    အခန်သမျာသအကဌောင်သ http://re2c.org/manual/manual.html#buffer-refilling запПлМеМОе буфера
    О input data ၏အဆုံသကိုစစ်ဆေသရန်နည်သလမ်သမျာသအကဌောင်သ.
    စာရလက်စာတမ်သအသစ်ကို ပုံစံဖဌင့် စုဆောင်သထာသသည်။
    ပဌည့်စုံသော တစ်မျက်နဟာလမ်သညလဟန်
    ဥပမာမျာသဖဌင့် (တူညီသောရင်သမဌစ်မျာသကို manpage နဟင့် အလန်လိုင်သစာရလက်စာတမ်သမျာသတလင် ပဌန်ဆိုထာသသည်)။
    ဖုန်သမျာသတလင် ဝဘ်ဆိုက်၏ ဖတ်ရဟုနိုင်မဟုကို မဌဟင့်တင်ရန် ညံ့ဖျင်သသော ကဌိုသပမ်သမဟုမျာသ ပဌုလုပ်ထာသသည်။

  • developer မျာသ၏အမဌင်အရ re2c သည် ပိုမိုပဌီသပဌည့်စုံသော စနစ်ခလဲတစ်ခုကို ရရဟိခဲ့သည်။
    အမဟာသရဟာခဌင်သ။ ယခုထလက်ရဟိထာသသော တည်ဆောက်မဟုမျာသတလင် အမဟာသရဟာပဌင်ခဌင်သကုဒ်ကို ပိတ်ထာသသည်။
    configure option "--enable-debug" ကို အသုံသပဌု၍ ဖလင့်နိုင်သည်။

source: opennet.ru

မဟတ်ချက် Add