আমি ইনডেন্টেশন-সংবেদনশীল ভাষার জন্য ব্যাকরণগুলির কথা ভাবছিলাম এবং মনে হচ্ছে সিএফ ব্যাকরণগুলি পরামিতিগুলির সাথে একত্রিত হলে কৌশলটি করবে। উদাহরণ হিসাবে, এএনটিএলআর-এর মতো বিন্যাসে সরল পাইথন ব্যাকরণের জন্য এই খণ্ডটি বিবেচনা করুন:
// on top-level the statements have empty indent
program
: statement('')+
;
// let's consider only one compound statement and one simple statement for now
statement(indent)
: ifStatement(indent)
| passStatement(indent)
;
passStatement(indent)
: indent 'pass' NEWLINE
;
// statements under if must have current indent plus 4 spaces
ifStatement(indent)
: indent 'if' expression ':' NEWLINE (statement(indent ' ')+)
;
আমার প্রশ্ন: এই জাতীয় ব্যাকরণগুলির (পরামিতিগুলির সাথে সিএফজি) কোনও নাম আছে?
দেখে মনে হচ্ছে যে এই ব্যাকরণের জন্য একটি পুনরাবৃত্তির বংশদ্ভূত বংশোদ্ভূত লিখতে কষ্ট হবে না (প্যারামিটারগুলি মূলত পার্সার হওয়া উচিত)। এই পদ্ধতির সাথে অসুবিধাগুলি কী হতে পারে?
প্যারামিটারগুলি যুক্ত করা কি সমর্থিত ভাষা শ্রেণিকে প্রসঙ্গ-মুক্তের উপরে উত্থাপন করে?