Création d'un analyseur d'arbre de syntaxe abstrait pour votre propre langage spécifique à un domaine
pyastbuilder
est un framework Python permettant de créer des analyseurs qui construisent une arborescence d'objets qui reflète l' arbre de syntaxe abstraite (AST) du langage, qui peut être parcouru, recherché et modifié de manière pythonique. Le package comprend un exemple démonstratif : un analyseur pour le langage SPARQL du W3C, c'est-à-dire sparqlparser.py
, qui implémente Sparql v1.1. Cependant, tout autre langage spécifié par BNF peut être facilité.
De nombreux analyseurs spécifiques ou génériques existent, mais la raison du développement pyastbuilder
est que souvent l'analyse est considérée comme un processus dynamique en continu dans lequel il existe plusieurs hooks auxquels on peut attacher son propre code, par opposition à la génération d'une syntaxe statique et abstraite. arborescence du "document" électronique, avec une API pour son accès pour un traitement post-analyse.
Le gros du travail concernant l'analyse proprement dite est laissé à l'analyse pyparsing, qui est incluse et largement utilisée.
Nous suivons nos suivants
PRINCIPE DE CONCEPTION : Soyez prédictif. Définir des critères clairs pour l’emplacement de la documentation. Quelle partie de la documentation est placée dans les fichiers README, quelles parties peuvent être trouvées sur les pages wiki et quelles informations mettez-vous dans le code sous forme de commentaires ? Définissez et documentez vos critères de documentation, de préférence dans le principal élément de documentation que votre utilisateur ou développeur consultera, qui est probablement le fichier README.md du projet.
Nous suivons donc les critères suivants concernant la documentation :
pyastparser
seront documentées sous forme de fichiers README.md dans chaque dossier de l'arborescence source.pyastbuilder
, ainsi que toute la documentation détaillée spécifique au code , est disponible dans tout le code source en tant que syntaxe de balisage reStructuredText (reST). Étant donné que ce type de documentation suit la convention de python pydoc, les pages HTML correspondantes peuvent être générées. La documentation sera disponible après avoir construit le HTML en pointant un navigateur sur le fichier Doc/build/html/index.html
( TODO ).Ceux-ci contiendront la partie de la documentation qui implique la conception générique du code source disponible dans la partie particulière de l'arborescence. Cette documentation s'adresse aux développeurs du projet dans le but de leur fournir une compréhension approfondie de :
Un aperçu complet de la documentation du wiki peut être trouvé sur la page d'accueil du wiki. On peut afficher les entrées suivantes :
sparqlparser
comme bibliothèque dans votre propre code python, ainsi que tout autre xxxparser
prêt à l'emploi qui pourrait être fourni à l'avenir. projet. Étant donné que tout autre xxxparser
sera basé sur ce même projet, nous pouvons supposer en toute sécurité qu'il trouvera de nombreuses références à des cas d'utilisation très similaires, voire identiques, provenant de sparqlparser
.xxxparser
, partagez-le avec ce projet et fournissez votre propre chapitre dans notre manuel d'utilisation sur l'utilisation de cet analyseur. Cependant : ne dupliquez pas la documentation , mais utilisez plutôt le manuel sparqlparser
comme manuel de référence. Veuillez lire CONTRIBUTING.md pour plus de détails sur notre code de conduite et le processus de soumission de demandes de tirage.
Nous utilisons SemVer pour le versioning. Pour les versions disponibles, voir les balises sur ce référentiel.
Voir aussi la liste des contributeurs ayant participé(e) à ce projet.
Ce projet est sous licence MIT - voir le fichier LICENSE.md pour plus de détails