Je pensais aux grammaires pour les langues sensibles à l'indentation et il semble que les grammaires CF feraient l'affaire si elles étaient combinées avec des paramètres. À titre d'exemple, considérons ce fragment pour la grammaire Python simplifiée au format de type 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 ' ')+)
;
Ma question: ce genre de grammaires (CFG avec paramètres) a-t-il un nom?
Il semble qu'il ne serait pas difficile d'écrire un analyseur de descente récursif pour cette grammaire (les paramètres devraient être essentiellement des analyseurs). Quelles pourraient être les difficultés de cette approche?
L'ajout de paramètres élève-t-il la classe de langue prise en charge au-dessus du contexte?