Scroll to navigation

BISON(1) Commandes de l'utilisateur BISON(1)

NOM

bison — un générateur d’analyseur syntaxique du projet GNU (remplacement de yacc)

SYNOPSIS

bison [OPTION]... FICHIER

DESCRIPTION

bison est un générateur d’analyseur syntaxique du style de yacc(1). Il doit être rétrocompatible avec les fichiers d’entrée conçus pour yacc(1).

Les fichiers d’entrée doivent respecter la convention de yacc(1) selon laquelle leur nom doit se terminer par « .y ». À la différence de yacc(1), le nom des fichiers générés n’est pas fixe : il contient le préfixe du fichier d’entrée. De plus, si vous devez ajouter du code C++ dans le fichier d’entrée, vous pouvez suffixer son nom par une extension associée à C++ (.ypp ou .y++) ; bison utilisera alors ce suffixe pour nommer le fichier de sortie (.cpp ou .c++). Par exemple, un fichier de description grammaticale nommé parse.yxx enregistrera l’analyseur syntaxique généré dans un fichier nommé parse.tab.cxx, au lieu du fichier y.tab.c qu’aurait généré yacc(1) ou du fichier parse.tab.c qu’auraient généré les anciennes versions de bison.

Cette description des options qui peuvent être utilisées avec bison est dérivée du nœud Invocation du manuel bison.texi, ce dernier devant être pris comme référence.

bison prend en charge les options dont le nom ne comporte qu’une seule lettre et celles possédant des noms long mnémoniques. Les noms d’option longs sont indiqués par « -- » à la place de « - » qui indique un nom d’option court. Les abréviations des noms d’option sont permises tant qu’elles conservent leur unicité. Lorsqu’une option accepte un argument, la version longue de son nom (comme --file-prefix) sera connectée à cet argument par un « = ».

bison génère un analyseur syntaxique LR déterministe ou LR généralisé (GLR) en utilisant des tables d'analyse LALR(1), IELR(1) ou LR(1) canoniques.

Les arguments obligatoires des options longues le sont aussi pour les options courtes. Cela est aussi vrai pour les arguments facultatifs.

Modes opératoires :

afficher l'aide-mémoire et quitter
afficher les informations de version et quitter
afficher le répertoire contenant des données dépendant des paramètres régionaux et quitter
afficher le répertoire contenant des schémas et XSLT puis quitter
appliquer les corrections au fichier de syntaxe source et quitter
activer diverses fonctionnalités

FONCTIONNALITÉS est une liste de mots séparés par des virgules parmi les suivants :

montrer les erreurs avec des carets « ^ »
montrer les corrections lisibles par la machine
ne générer aucun fichier
toutes les fonctionnalités précédentes
désactiver toutes les fonctionnalités précédentes

Diagnostics :

afficher les avertissements appartenant aux CATÉGORIES spécifiées
quand colorer les diagnostics
spécifier le fichier CSS pour colorer les diagnostics

Les catégories d’avertissements sont les suivantes :

conflits S/R (activé par défaut)
conflits R/R (activé par défaut)
générer des contre-exemples de conflit
alias de chaîne non rattachés à un symbole
constructions obsolètes
règles vides sans %empty
valeurs de règle intermédiaire non définies ou non utilisées
priorité et associativité inutiles
incompatibilités avec yacc(1) POSIX
toutes les autres catégories d’avertissements (activé par défaut)
toutes les catégories d’avertissements, sauf « counterexamples », « dangling-alias » et « yacc »
désactiver les catégories d’avertissements dans CATÉGORIES
désactiver toutes les catégories d’avertissements
traiter les avertissements comme des erreurs

QUAND peut prendre une des valeurs suivantes :

colorer la sortie
ne pas colorer la sortie
colorer si le dispositif de sortie est un tty

Personnaliser l’analyseur syntaxique :

spécifier le langage de programmation de la sortie
spécifier le schéma à utiliser
instrumenter l’analyseur syntaxique pour le traçage (identique à -Dparse.trace)
activer la prise en charge des emplacements
similaire à « %define NOM VALEUR »
outrepasser « %define NOM VALEUR »
ajouter le PRÉFIXE spécifié aux symboles externes (obsolète par rapport à -Dapi.prefix={PREFIX})
ne pas générer de directives « #line »
inclure une table de noms de symbole
simuler le comportement de yacc(1) POSIX

Fichiers de sortie :

produire aussi un fichier d’en-tête
identique, mais il est impossible de spécifier un fichier (pour yacc(1) POSIX)
produire également des détails sur l'automate
écrire le rapport dans FICHIER
identique à « --report=state »
spécifier un PRÉFIXE pour les fichiers de sortie
délivrer la sortie dans FICHIER
générer également un graphique de l'automate
générer également un rapport en HTML de l'automate
générer également un rapport en XML de l'automate
remplacer le préfixe ANCIEN par NOUVEAU lors de l’écriture des chemins de fichier dans les fichiers de sortie

CHOSES est une liste de mots séparés par des virgules parmi les suivants :

description des états
compléter les ensembles d'articles de base avec leur fermeture
associer explicitement les symboles « lookahead » à des articles
décrire la résolution des conflits « shift/reduce »
générer des contre-exemples de conflit
inclure toutes les informations précédentes
désactiver la génération du rapport

AUTEUR

Écrit par Robert Corbett et Richard Stallman.

SIGNALER DES BOGUES

Envoyez vos rapports de bogue à <bug-bison@gnu.org>.
Page d’accueil de GNU Bison : <https://www.gnu.org/software/bison/>.
Aide générale pour l’utilisation des logiciels GNU : <https://www.gnu.org/gethelp/>.

Signalez les bogues de traduction à <https://translationproject.org/team/>.
Pour une documentation complète, exécutez la commande info bison.

COPYRIGHT

Copyright © 2021 Free Software Foundation, Inc.
C'est un logiciel libre ; consultez les sources pour les conditions de copie. Il n'y a AUCUNE garantie ; même pas de VALEUR MARCHANDE ou d'ADÉQUATION À UNE UTILISATION PARTICULIÈRE.

VOIR AUSSI

lex(1), flex(1), yacc(1).

La documentation complète de bison est entretenue sous la forme d’un manuel Texinfo. Si les programmes info et bison sont correctement installés sur votre système, la commande

info bison

devrait vous donner accès au manuel complet.

TRADUCTION

La traduction française de cette page de manuel a été créée par Lucien Gentis <lucien.gentis@univ-lorraine.fr>

Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.

Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.

Octobre 2024 GNU Bison 3.8.2