Comment transformer une séquence de caractères en arbre de syntaxe abstraite ?
Comprendre comment le parsing transforme une chaîne de caractères en AST en reconnaissant la grammaire du langage.
Comprendre comment le parsing transforme une chaîne de caractères en AST en reconnaissant la grammaire du langage.
Le parser reconnaît chaque construction syntaxique dans la séquence de caractères et instancie l'objet AST correspondant (ex. BinOpExpression, IAssign) ; la récursivité du parser suit celle de la grammaire.
Décrire le résultat du parsing de la chaîne 2 + 3 * x.
Le parser lit 2 + 3 * x et reconnaît : une expression binaire + dont l'opérande droit est lui-même une expression binaire * (priorité des opérateurs).
L'AST résultant est construit par instanciation récursive.
Expression ast = new BinOpExpression(
BinOp.PLUS,
new IntExpression(2),
new BinOpExpression(
BinOp.TIMES,
new IntExpression(3),
new VarExpression("x")
)
);
2 + 3 * x → BinOpExpression(PLUS, IntExpression(2), BinOpExpression(TIMES, IntExpression(3), VarExpression(x))).
Décrire le résultat du parsing de l'instruction if (x == 3) x = 0; (sans clause else explicite).
Décrire le résultat du parsing de l'appel de fonction f(4, x+1).
Crée ton compte gratuit pour accéder à la fiche et aux exercices