ক্যান কেউ আলোকিত আমাকে কেন যে backtracking সঙ্গে একটি recursive বংশদ্ভুত পার্সার চেষ্টা প্রযোজনার এবং এস → একটি একটি (যাতে) ব্যাকরণ দ্বারা গঠিত ভাষা না চেনে এস → একটি এস একটি | একটি একটি ।
এটি ভাষা থেকে কেবল শব্দের বিশ্লেষণ করতে দেখা যাচ্ছে ।
আমি এই বিসিএনএফ পার্সার জেনারেটরটি প্রযোজনার নিয়মের সাহায্যে এই জাতীয় পার্সার তৈরি করেছি এবং উদাহরণস্বরূপ S = "a" S "a" / "aa"
পার্সার শব্দটি চিনতে পারে না aaaaaa
।
আমি এটা প্রকাশনা ব্যবহার করতে আশা পর্যন্ত 7 বাম শুরু থেকে পারসে ট্রি এর টার্মিনাল নোড সংযুক্তকরণের এর, এবং তারপর পারসে ট্রি পর্যন্ত যেতে প্রকাশনা নির্বাচন এস → একটি একটি পরিবর্তে গাছ সৌন্দর্য পর্যন্ত এটার মত:a
S
/ | \
a S a
/ | \
a S a
/ \
a a
aaaaaa
।
aaaaaa
বিশ্লেষণ করা উচিত এবং তা নয়। তবে aaaa
পার্স করে। আপনি 2 এর শক্তির সম্পর্কে স্পষ্টতই সঠিক The জিনিসটি বাগ করা উচিত। এটি কেবল aa
সাথে পার্স করে S = "aa" / "a" [S] "a"
। আপনি কীভাবে পার্সারটি আবিষ্কার করতে পারেন?