1. Une brève introduction à ANTLRWorks2
① Introduction du site Web officiel d'ANTLR à ANTLRWorks2
ANTLRWorks 2. Cet IDE est un éditeur sophistiqué pour les grammaires ANTLR v3/v4 ainsi que les modèles StringTemplate.
Il peut exécuter les outils ANTLR pour générer des outils de reconnaissance et TestRig (exécuté sur la ligne de commande) pour tester les grammaires.
Pour intégrer les modules de reconnaissance générés par ANTLR dans votre application, vous avez également besoin d'au moins la bibliothèque d'exécution.
② L'introduction du site officiel d'ANTLRWorks 2
- ANTLRWorks 2 a été développé par Tunnel Vision Labs en utilisant plusieurs nouvelles technologies, résultant en une réécriture complète de l'outil de grammaire précédent. Notre cadre de base pour le développement NetBeans® a été créé à l'origine pour ce projet, mais il est facilement extensible à d'autres langages et constitue le point de départ de toutes nos applications basées sur NetBeans.
- Prise en charge d'ANTLR - carte de code source. Lors de la modification d'un fichier de grammaire ANTLR, la fenêtre Syntax Graph affiche une représentation visuelle des règles actuelles. Cette fonctionnalité fournit une représentation naturelle des éléments syntaxiques et est un exemple de fourniture de fonctionnalités personnalisées pour améliorer les fonctionnalités spécifiques à la langue. De plus, double-cliquer sur un élément dans une carte source sautera immédiatement au code source associé. Le diagramme de syntaxe d'ANTLR est présenté dans la figure :
- Fonctionnalité des conseils de l'éditeur d'ANTLRWorks 2 : ANTLRWorks 2 fournit des conseils de l'éditeur pour avertir les développeurs des erreurs potentielles de grammaire ou des problèmes de performances qui ne sont pas actuellement détectés par le compilateur de grammaire. Étant donné que ce type d'analyse statique est unique à chaque langage, nous travaillons avec les créateurs et les utilisateurs de langages pour fournir des capacités d'analyse les plus susceptibles de détecter le code problématique au début du cycle de développement. Les capacités d'analyse actuelles des grammaires dans ANTLRWorks incluent les éléments suivants :
(1)ANTLR 4工具报告的错误和警告在编辑器中“实时”显示
(2)识别解析器中的隐式标记定义(可能的错误)
(3)因子标签超出集合(性能提示)
(4)组集元素(性能提示)
- antlrworks : ide spécialement utilisé pour développer antlr, (différentes versions d'antlrworks) intègre une certaine version d'antlr à l'intérieur. En d'autres termes, même si vous téléchargez antlr-xx-complete.jar et que vous l'ajoutez au CLASSPATH, cela n'a rien à voir avec antlr à l'intérieur d'antlrworks. Autrement dit, antlrworks utilise une certaine version d'antlr intégrée en interne.
Lien de référence :
Outils de développement ANTLR (site officiel de l'ANTLR)
ANTLRWorks 2
2. Téléchargement d'ANTLRWorks2
- Entrez sur le site officiel d'ANTLRWorks2 et cliquez pour télécharger ANTLRWorks2 V2.1 dans le coin supérieur droit .
- Cette version est sortie le 28 août 2013 et est intégrée en interne
ANTLR 4.1
.
- Décompressez le package d'installation téléchargé
2013-07-21-antlrworks-2.1.zip
, entrez le répertoire bin sous le répertoire de décompression, le mien estC:\Users\lucy\Downloads\antlrworks2\bin
, cliquezantlrworks2.exe
pour exécuter antlrworks2.
3. Utilisation simple d'ANTLRWorks2
① Créer un nouveau fichier *.g4
- Cliquez sur
新建
le bouton dans le coin supérieur gauche et la fenêtre "Nouveau fichier" apparaîtra :
- La valeur par défaut est
ANLTR 4 Combined Grammar
correcte, cliquez surNext
le bouton pour accéder à la page suivante, entrez votre propre nom de fichier et enregistrez le chemin :
- Cliquez sur "Terminer" pour terminer la création du fichier :
② Fonction de diagramme de syntaxe d'ANTLRWorks2
- Définissez des nombres, composés de 0 à 9 (c'est-à-dire analyseur lexical - Lexer), qui peuvent être répétés une ou plusieurs fois :
grammar Cpp;
NUM:[0-9]+;
Placez la souris sur NUM:[0-9]+;
la ligne pour afficher le diagramme de syntaxe correspondant :
- Définir les opérateurs (c'est-à-dire l'analyseur lexical - Lexer), y compris l'addition, la soustraction, la multiplication et la division, ne pouvant apparaître qu'une seule fois :
grammar Cpp;
NUM:[0-9]+;
OPERATOR: '-'|'*'|'/';
Placez la souris sur OPRATOR:'+'|'-'|'*'|'/';
la ligne pour afficher le diagramme de syntaxe correspondant :
- Définissez une expression (c'est-à-dire un analyseur, Parser) :
grammar Cpp;
PROG: exp;
exp: NUM OPERATOR NUM;
NUM:[0-9]+;
OPERATOR: '-'|'*'|'/';
Placez la souris sur exp: NUM OPERATOR NUM;
la ligne pour afficher le diagramme de syntaxe correspondant :
- Visualisation de la définition de la grammaire :
PS : je l'ai découvert au fil de mon exploration : je ne sais pas si c'est un problème de version,ANLTR 4 Combined Grammar
les fichiers générés utilisés en V2.1 sont différents de certains blogs de référence, et ne s'affichent qu'en V2.1Parser Rules
. Si vous utilisezANLTR 4 Lexer Grammar
ouANLTR 4 Parser Grammar
générez des fichiers,Parser Rules
etLexer Rules
sont tous deux affichés. Cependant,ANLTR 4 Lexer Grammar
il y aura un message d'erreur lors de la définition de la règle d'analyseur dans , etANLTR 4 Parser Grammar
il y aura un message d'erreur lors de la définition de la règle Lexer dans .
③ Analyse grammaticale
- Cliquez
Run-->Run in TestRig
pour faire apparaître la fenêtre suivante. Dans la nouvelle fenêtre, entrez le fichier à analyser, qui contient le contenu à analyser ; choisissez l'analyseur à utiliser pour l'analyse, et enfin cliquez surFinish
.
- Le contenu de hello.txt est
101+2689
, et l'arborescence syntaxique analysée (affichée sous la forme d'une fenêtre contextuelle) est la suivante. La commande correspondante est
grun Cpp r -gui
- Le message affiché sur le terminal TestRig est le suivant, et la commande correspondante est
grun Cpp r -tree
:
④ Un petit résumé de grammaire
- Utilisez
大写字母
des paireslexer
pour nommer, utilisez小写字母
des pairesparser
pour nommer. - Utilisez
*
la représentation0-N次重复
, utilisez+
la représentation1-N次重复
.
Lien de référence :
vidéo YouTube - ANTLRWorks (tutoriel d'installation et d'utilisation)
[Résumé] Expérience de développement et précautions d'utilisation d'ANTLR et ANTLRWorks
[Record] Essayez d'utiliser ANTLRWorks 2.0 pour développer
la configuration de l'environnement de développement ANTLR Antlr 4.0 et AntlrWorks