Chapitre Ecrire une grammaire avec ANTLR
Création d'un parser "hello"
Dans cette leçon, nous allons créer une simple grammaire pour exprimer notre prénom et âge.
Dernière modification : Dec 08 , 2024
Dernière modification : Dec 08 , 2024
Pré-requis
L'environnement ANTLR doit avoir été installé.
Créer un projet Eclipse Java
Créer un fichier de grammaire
Création d'un fichier Hello.g4
Motif analysé
La grammaire doit pouvoir parser les motifs suivants :
hello, my name is Sylvain.
hello my name is peter.
Creation des règles de lexing
Identifier les tokens nécessaires et produisez les règles correspondantes.
Analyseur syntaxique
Créer les règles nécessaires pour parser les motifs.
Tester la grammaire
Ecrire un test unitaire pour vérifier la grammaire, voici un template pour vous aider :
// create a CharStream that reads from standard input
ANTLRInputStream input = new ANTLRInputStream(System.in);
// create a lexer that feeds off of input CharStream
ArrayInitLexer lexer = new ArrayInitLexer(input);
// create a buffer of tokens pulled from the lexer
CommonTokenStream tokens = new CommonTokenStream(lexer);
// create a parser that feeds off the tokens buffer
ArrayInitParser parser = new ArrayInitParser(tokens);
}
}
ParseTree tree = parser.init(); // begin parsing at init rule
System.out.println(tree.toStringTree(parser)); // print LISP-style tree
Ecrire un test unitaire avec une chaine invalide, vérifier ce qu'elle produit, comment détecter l'erreur ?