এই সমস্যাটি এমন কোনও অভিব্যক্তিটির সাথে বন্ধুত্বের মিলের সমস্যার হুবহু অ্যানালগ যা হ'ল ঘনিষ্ঠ বন্ধনীর কিছু বাদ দেওয়া হয়েছে। এখানে একটি "যদি" (বা প্রতিনিধি ব্যাকরণে) হ'ল একটি উন্মুক্ত বন্ধনী এবং একটি "অন্য" ( ) একটি ঘনিষ্ঠ বন্ধনী। ( এস এবং এর ক্রম থেকে আপনি প্রতিটি আগে একটি এবং একটি শেষে রেখে যান্ত্রিকভাবে এস sertোকাতে পারেন )) কারণ এটি আমার প্যারেন্টিস্ট মস্তিষ্কের সাথে আরও ভাল ফিট করে, তাই আমি লিখি যেন হাতের সমস্যা ছিল।ababcb
Traditionalতিহ্যবাহী "ম্যাচটি নিকটতম" ড্যাংলিং-অন্য রেজোলিউশনের সাথে সাম্প্রতিকতম-এখনও-মিল নেই open এর অর্থ হ'ল ম্যাচ খোলার সাথে এর ম্যাচিং বন্ধের মধ্যে কোনও মিল নেই or
একটি সম্ভাব্য বিকল্প হ'ল প্রতিটি ঘনিষ্ঠর সাথে প্রথমতম সম্ভাব্য অতুলনীয় ওপেনের সাথে মিল। এখানে "সম্ভাব্য" এর অর্থ হ'ল প্যারেন্টিক নেস্টিং লঙ্ঘন না করে খোলা মেলা যায় (যেমন প্রথম ইন সম্ভবত শেষের সাথে মেলে না )।(()())
এই ম্যাচটি বাইরে-বাইরে করতে হবে, যাতে সমস্ত ঘেরযুক্ত জোড়গুলি মিল না হওয়া পর্যন্ত বন্ধের জন্য কোনও ম্যাচ চেষ্টা করা না যায়। এই সত্যটি সীমানা বর্ণনাকারী অ্যালগরিদম সহ একটি পার্স উত্পাদন করা অসম্ভব করে তোলে, যেহেতু পার্সকে উভয় প্রান্ত থেকে ভিতরের দিকে কাজ করতে হয়, স্ট্রিংটিকে সম্পূর্ণ মিলিত বিভাগগুলিতে বিভক্ত করার পরে (কারণ এটি সম্ভাব্য ম্যাচের পরিসরকে কার্যকরভাবে সীমাবদ্ধ করে)।
যাইহোক, কোনও অনলাইন বাম থেকে ডান পার্সার উপস্থিত নেই এই বিষয়টি বোঝায় না যে কোনও স্পষ্টতই সিএফজি নেই। (স্পষ্টত: একটি উদাসীন ভাষা অবশ্যই উভয় প্রান্ত থেকে মাঝের দিকে পার্স করা উচিত, তবে একটি স্পষ্ট ব্যাকরণ লিখতে সহজ) write
"সর্বাধিক ম্যাচ" প্রথম বন্ধনী সমস্যাটির জন্য ব্যাকরণ তৈরি করতে, আমি এই বিষয়টির উপর নির্ভর করেছি যে একটি ম্যাচ খোলার সাথে কোনও মিল নেই followed যদি এটি হয় তবে সবচেয়ে দূরের ম্যাচের সম্পত্তিটি প্রয়োগ করা হত না কারণ তুলনা না করা ওপেনটি ম্যাচিং ওপেনের ঘনিষ্ঠটির সাথে মিলে যেতে পারে, সুতরাং এটি তুলনামূলকভাবে সত্য যে দূরবর্তী ম্যাচের সম্পত্তি লঙ্ঘন করে।
সুতরাং এখানে সামান্য চতুর ব্যাকরণ:
SUMT→U|M→T|aUbT|aUbc|aMbU→aMbM|c→aT|ac
S শুরুর প্রতীক; সম্পূর্ণরূপে মেলে বিবৃতি; স্পষ্টভাবে অপ্রতিম বিবৃতি হয় (যার মানে তারা অন্তত একটি অপ্রতিম অন্তর্ভুক্ত , তাই তারা খালি রাখা যাবে না) এবং একটি "লেজ" শুধুমাত্র অপ্রতিম গঠিত হয় গুলি। তুলনাহীন ওপেন সম্পর্কে উপরোক্ত ঘটনাটি সরাসরি ব্যাকরণ থেকে পড়তে পারে: সমস্ত মিলহীন ওপেন থেকে উদ্ভূত হয় , একটি কেবল একটি এর শেষে উপস্থিত হতে পারে , এবং কেবলমাত্র দ্বারা অনুসরণ করা যায় ।MUaTaTTUUT
খালি স্ট্রিংয়ের সাথে আটকাতে আড়ষ্টতা আসে । এটি আমি উদ্দীপক অস্পষ্টতাগুলি বিবেচনা করে তার একগুচ্ছ প্রতিরোধ করে: তারা এই অর্থে উত্সাহী যে সমস্ত বিকল্প পার্সে ওপেন এবং বন্ধের মিল রয়েছে। যদি nullable হতে অনুমতি দেওয়া হয়, এটি একটি সম্পূর্ণ সুষম স্ট্রিং আহরণ হবে। যেহেতু , ফলস্বরূপ, , এটি এমন একটি অস্পষ্টতার দিকে পরিচালিত করে যাতে আপনি একটি সম্পূর্ণ ভারসাম্য খালি পরে একটি সিরিজ হিসাবে বিবেচনা করতে পারেন , বা একটি কম পরে সম্পূর্ণ ভারসাম্যযুক্ত ।UUSM∗USMUMU
সম্ভবত আমি যেটি বেছে নিয়েছি তার চেয়ে আরও ভাল কাজ আছে। তবে এইটি কাজ করছে বলে মনে হচ্ছে, এবং এটি বাইসনের জিএলআর পার্সারের সাথে ভাল খেলেছে যা আমি এটি পরীক্ষার জন্য ব্যবহার করতাম; আপনি যদি অস্পষ্টতাটি পরিচালনা করতে অতিরিক্ত কোড না লিখেন এবং পার্সারটি অস্পষ্ট পার্স সম্পর্কে অভিযোগ করেন এবং আমি এটি করতে খুব অলস হই। আমি এটি 20 টি পর্যন্ত খোলা + বন্ধের স্ট্রিং দিয়ে পরীক্ষা করেছি এবং মনে হয় যে সঠিকভাবে-নেস্টেড ক্রমগুলির জন্য ভুল-নেস্টেড সিকোয়েন্সগুলির জন্য পার্স তৈরি না করেই এটি একটি স্পষ্ট পার্স তৈরি করেছে।