Estaba pensando en gramáticas para lenguajes sensibles a la indendación y parece que las gramáticas CF funcionarían si se combinaran con parámetros. Como ejemplo, considere este fragmento para la gramática simplificada de Python en formato 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 ' ')+)
;
Mi pregunta: ¿Este tipo de gramáticas (CFG con parámetros) tiene un nombre?
Parece que no sería difícil escribir un analizador de descenso recursivo para esta gramática (los parámetros deberían ser básicamente analizadores sintácticos). ¿Cuáles podrían ser las dificultades con este enfoque?
¿La adición de parámetros eleva la clase de idioma compatible por encima de libre de contexto?