Я думав про граматики для чутливих до індендації мов, і схоже, що граматики CF виконають трюк у поєднанні з параметрами. Як приклад, розглянемо цей фрагмент для спрощеної граматики Python у форматі, подібному до ANTLR:
// 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 ' ')+)
;
Моє запитання: Чи має цей вид граматики (CFG з параметрами) назву?
Схоже, було б важко написати рекурсивний аналізатор пониження для цієї граматики (параметри в основному повинні бути парсерами). Які можуть бути труднощі з таким підходом?
Чи додавання параметрів піднімає підтримуваний мовний клас вище без контексту?