Myślałem o gramatyce dla języków wrażliwych na indukcje i wygląda na to, że gramatyki CF zrobiłyby to samo, gdyby były połączone z parametrami. Jako przykład rozważ ten fragment uproszczonej gramatyki języka Python w formacie podobnym do 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 ' ')+)
;
Moje pytanie: czy tego rodzaju gramatyki (CFG z parametrami) mają nazwę?
Wygląda na to, że napisanie parsera rekurencyjnego dla tej gramatyki nie byłoby trudne (parametry powinny być w zasadzie parserami). Jakie mogą być trudności z tym podejściem?
Czy dodanie parametrów podnosi obsługiwaną klasę języka powyżej kontekstu?