Skip to content

openfisca/calculette-impots-m-language-parser

Repository files navigation

Parser du langage M

Ce dépôt contient un "parser" du langage dédié nommé "M" utilisé par le code source de la calculette des impôts sur les revenus.

Installation

Le langage Python 3 est utilisé.

Ce paquet n'est pas publié sur le dépôt PyPI donc pour l'installer il faut passer par git clone.

git clone https://git.framasoft.org/openfisca/calculette-impots-m-language-parser.git
cd calculette-impots-m-language-parser
pip3 install --editable . --user

L'option --user sert sur les systèmes GNU/Linux.

Un utilisateur plus expérimenté en Python peut utiliser un virtualenv s'il le souhaite.

Utilisation

Ce projet est à considérer comme un dépôt de données JSON nécessaires au projet calculette-impots-python.

Grammaire

Le fichier de grammaire m_language.cleanpeg est au format Clean PEG.

La bibliothèque utilisée pour le "parsing" est Arpeggio.

La partie de la grammaire touchant aux expressions est basée sur ce tutoriel.

Regénérer les fichiers JSON

Les commandes suivantes sont a priori inutiles, à moins que les fichiers source M, la grammaire ou bien le code du parser ait changé. Les fichiers JSON sont de toute façon commités dans le répertoire json.

# Convertir un répertoire de sources M entier en AST
$ ./calculette_impots_m_language_parser/scripts/convert_dir.sh /path/to/calculette-impots-m-source-code/src

# Extraire les données JSON sémantiques
$ python3 calculette_impots_m_language_parser/scripts/json_ast_to_data.py -v

Pour convertir un fichier M particulier :

$ python3 calculette_impots_m_language_parser/scripts/m_source_file_to_json_ast.py file.m

About

Traducteur en arbre syntaxique (AST) du code source (en langage M) du calculateur des impôts sur le revenu et sur la fortune

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published