A. N. T. L. R.

Retour  |  Home  |  Contact

Another Tool for Language Recognition : un autre outil de reconnaissance de langage.

Besoin

Analyser une expression utilisant un langage complexe, à des fins diverses (traduction, interprétation, compilation, formatage, etc.)

Analyse

ANTLR combine l'analyseur lexical et les spécifications de parseur dans un fichier. Il peut générer des arbres syntaxiques abstraits (AST) et des classes pour le parcourir. Il permet un contrôle très fin du parsing des prédicats.

ANTLR accepte trois types de spécification de grammaire :

ANTLR utilise effectue des analyses de type LL(k), ce qui signifie que vous pouvez examiner "en avant" (Look Ahead ou LA) des éléments lexicaux à un niveau k > 1.

Parce qu'ANTLR utilise effectue des analyses de type LL(k) pour l'ensemble de ces grammaires, leurs spécifications sont similaires, et les lexers et parsers générés (en Java ou C++) se comportent de la même manière.

Exemples

Un exemple de lexer ANTLR est :

class MonLexer extends Lexer;

// Une ou plusieurs lettres suivie(s) d'un retour chariot
NOM: ( 'a'..'z'|'A'..'Z' )+ RETOUR_CHARIOT
    ;

RETOUR_CHARIOT
    : '\r' '\n' // DOS
    | '\n'      // UNIX
    ;

Un exemple de parser ANTLR est :

class MonParser extends Parser;

maRegle
    : unNom:NOM
      { System.out.println ("Bonjour, " + unNom.getText()); }
    ;

Notes

Voir

Retour  |  Home  |  Contact