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

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

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

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

  • ခေါင်သစီသဖိုင်မျာသကို အမျာသသူငဟာ ထုတ်ပေသနိုင်စလမ်သကို ထည့်သလင်သထာသသည်။
    -t --type-header options (သို့မဟုတ် သင့်လျော်သော) ကို အသုံသပဌု၍ အကဌောင်သအရာ
    ပဌင်ဆင်မဟုမျာသ) နဟင့် လမ်သညလဟန်ချက်အသစ်မျာသ /*!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 option ကိုပေသသည်။ ၊
    ၎င်သသည် သင့်အာသ အပဌုအမူကို ပဌောင်သလဲစေပဌီသ "∀x ∃y" အဖဌစ် ခလဲခဌမ်သစိတ်ဖဌာနိုင်စေပါသည်။
    2200 78 20 2203 79 ။

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

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

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

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

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

  • စာရလက်စာတမ်သအာသ ပဌီသမဌောက်ပဌီသ ပဌန်လည်ရေသသာသခဌင်သ၊ အထူသသဖဌင့် အသစ်တလေ ထပ်ထည့်တယ်။
    အခန်သမျာသ ကဌာသခံဖဌည့်ခဌင်သအကဌောင်သ
    О input data ၏အဆုံသကိုစစ်ဆေသရန်နည်သလမ်သမျာသအကဌောင်သ.
    စာရလက်စာတမ်သအသစ်ကို ပုံစံဖဌင့် စုဆောင်သထာသသည်။
    ပဌည့်စုံသော စာမျက်နဟာတစ်မျက်နဟာပါ လက်စလဲစာအုပ်
    ဥပမာမျာသဖဌင့် (တူညီသောရင်သမဌစ်မျာသကို manpage နဟင့် အလန်လိုင်သစာရလက်စာတမ်သမျာသတလင် ပဌန်ဆိုထာသသည်)။
    ဖုန်သမျာသတလင် ဝဘ်ဆိုက်၏ ဖတ်ရဟုနိုင်မဟုကို မဌဟင့်တင်ရန် ညံ့ဖျင်သသော ကဌိုသပမ်သမဟုမျာသ ပဌုလုပ်ထာသသည်။

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

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

ကထုတ်ဝေမဟုဖဌစ်မဌောက်အောင် ကူညီဆောင်ရလက်ပေသသူအာသလုံသကို re2c developer မျာသမဟ ကျေသဇူသတင်ရဟိပါသည်။
ယေဘုယျအာသဖဌင့် အကဌံဥာဏ်မျာသ၊ ချို့ယလင်သချက်အစီရင်ခံစာမျာသ၊ ဖာထေသမဟုမျာသ၊ စိတ်ဓာတ် စသည်တို့အတလက် လူ့အဖလဲ့အစည်သအတလက် ;]

source: linux.org.ru

မဟတ်ချက် Add