Il s'agit de la commande yaccplan9 qui peut être exécutée dans le fournisseur d'hébergement gratuit OnWorks en utilisant l'un de nos multiples postes de travail en ligne gratuits tels que Ubuntu Online, Fedora Online, l'émulateur en ligne Windows ou l'émulateur en ligne MAC OS
PROGRAMME:
Nom
yacc - encore un autre compilateur-compilateur
SYNOPSIS
yacc [ option ] grammaire
DESCRIPTION
Yacc convertit une grammaire et un code de traduction sans contexte en un ensemble de tableaux pour un
LR(1) analyseur et traducteur. La grammaire peut être ambiguë ; les règles de priorité spécifiées sont
utilisé pour briser les ambiguïtés.
Le fichier de sortie, y.tab.c, doit être compilé par le compilateur C pour produire un programme.
le programme doit être chargé avec une fonction d'analyseur lexical, yylex(vide) (souvent généré par
lex(1)), avec un principal(int argc, carboniser *arg[]) programme, et avec une routine de gestion des erreurs,
yyerror(car*).
Les options sont
-o sortie Sortie directe vers le fichier spécifié au lieu de y.tab.c.
-Dn Créer un fichier y.debug, contenant des messages de diagnostic. Pour les incorporer dans
l'analyseur, compilez-le avec le symbole du préprocesseur yydebug défini. La quantité de
la sortie de diagnostic de l'analyseur est régulée par la valeur n. La valeur 0 rapporte
les erreurs; 1 signale des réductions ; les valeurs plus élevées (jusqu'à 4) incluent plus d'informations
sur les transitions d'état.
-v Créer un fichier y.sortie, contenant une description des tables d'analyse et des
conflits résultant d'ambiguïtés dans la grammaire.
-d Créer un fichier y.tab.hcontenant #define déclarations qui associent yacc-attribué
« codes de jeton » avec des « noms de jeton » déclarés par l'utilisateur. Incluez-le dans les fichiers sources
autre que y.tab.c pour donner accès aux codes des jetons.
-s endiguer Changer le préfixe des noms de fichiers y.tab.c, y.tab.h, y.debuget y.sortie à
endiguer.
-S Ecrivez un analyseur qui utilise Stdio au lieu du impression routines dans la libc.
-l Désactivez les directives #line dans l'analyseur généré.
-a Générer un analyseur qui prend un argument de type Yyarg et passe cet argument
à chaque invocation de la fonction lexer, yylex. Yyarg contient par instance
state et un seul membre visible par l'utilisateur, arg, de type void*.
La spécification de yacc elle-même est essentiellement la même que la version UNIX décrite dans
les références mentionnées ci-dessous. Outre le -D option, les principales différences pertinentes sont :
L'interface avec l'environnement C est par défaut via plutôt que
; la -S l'option inverse cela.
L'analyseur accepte le texte d'entrée UTF (voir utf(7)), ce qui a quelques effets.
Premièrement, la valeur de retour de yylex() ne rentre plus dans un court; deuxièmement, le départ
la valeur pour les non-terminaux est désormais de 0xE000 au lieu de 257.
L'analyseur généré peut être récursif : les actions peuvent appeler yyparser, par exemple pour
mettre en œuvre une sorte de #comprendre déclaration dans un interprète.
Enfin, certains fonctionnements internes non documentés de l'analyseur ont été modifiés, ce qui
peut affecter les programmes qui en savent trop sur sa structure.
Utilisez yaccplan9 en ligne en utilisant les services onworks.net