Antlr
Qu’est-ce que ANTLR ?
ANTLR signifie ANother Tool for Language Recognition. L’objectif d’ANTLR est de permettre l’interprétation d’un flux de données (sous la forme d’un texte) et la génération d’un flux de sorti (toujours sous la forme d’un texte). Plus généralement on nomme le flux d’entré comme étant un input, et le flux de sorti comme étant un output.
L’analyse de l’input étant réalisée par une application, ANTLR est un outil qui permet la création d’une partie des codes sources (Java, C# etc …) de cette application.
Le code généré permet l’analyse des données entrantes à l’application.
Qu’est-ce qu’un Input ?
Un input est un script, un ensemble structuré et logique d’expressions. Tous les inputs reposent sur un langage.
Dans notre projet, l’input est un programme « C Arduino » qui suit le langage « C Arduino ». Pour que le programme analyse un programme Arduino il doit donc connaître la structure et les mots clés de ce langage.
C’est ce que permet la grammaire ANTLR : définir le langage.
C’est à partir de cette grammaire, que sont générées les classes qui seront ensuite implantées dans l’application. La première étape consiste donc à réaliser la grammaire correspondante au langage sur lequel repose l’input.
Qu’est-ce qu’un output ?
L’output est le flux de sortie, il peut être très proche ou très éloigné de l’input. L’output est généré par l’application qui analyse l’input. ANTLR permet de définir des actions au moment de l’analyse d’un flux entrant, ces actions peuvent modifier ce flux et générer un flux sortant différent.
Qu’est-ce qu’une Grammaire ?
La grammaire permet de définir un langage que suit le flux de données entrants. Dans AntLR la grammaire porte l’extension .g.
Une grammaire est composée de deux grandes parties (séparable ou non en deux fichiers différents : XParser.g et XLexer.g) :
- Le Lexer ou la définition du vocabulaire de base,
- Le Parser ou les règles.
a) Notion de Lexer, Token et Parser
Pour analyser