Interpreteur de commande

andoid Messages postés 108 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013 - 26 sept. 2011 à 19:04
andoid Messages postés 108 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013 - 27 sept. 2011 à 10:42
Salut!

J'ai un projet où je dois créer un mini interpréteur de commandes genre bash si quelqu'un peut bien m'aider.
Mon idée c'est de lire les fichier.sh d'analyser les lignes et pour chaque commande detecter lui associés un processus qui va l'executer

9 réponses

cs_LA_Tupac Messages postés 305 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 janvier 2012 1
26 sept. 2011 à 19:07
Tout le monde veut t'aider mais pas faire le boulot ...
Lance-toi en prenant soin de schématiser sur papier le fonctionnement global et commence à coder. Si tu tombes sur un os, reviens nous poser tes questions
Courage.
0
andoid Messages postés 108 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013
26 sept. 2011 à 19:29
Oui je sais que vous allez pas faire le boulot à ma place bon j'aurai bien aimée savoir par où dois je commencer tkt si je tombe sur un os je vous le ferai savoir
merci
0
cs_LA_Tupac Messages postés 305 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 janvier 2012 1
26 sept. 2011 à 19:59
Commence par une boucle qui récupère la commande:
char commande[256];
while((strcmp(commande, "exit")!=0) && !fichierbash.eof())
{
    fichierbash.readline(commande, 256);
    // et hop !! le code qui manque ...
}

Tu me dois 20€ pour ce code mais comme tu es nouveau client c'est gratuit pour cette fois
0
cs_LA_Tupac Messages postés 305 Date d'inscription jeudi 29 avril 2004 Statut Membre Dernière intervention 18 janvier 2012 1
26 sept. 2011 à 20:01
ouai ok! readline , n’existe pas.
c'est plus:
fichierbash.getline(commande, 256);

allez ! au boulot !
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
26 sept. 2011 à 20:34
Maintenant que ce point est éclaircit, il te faut:
- Réaliser un lexer
- Réaliser un parser
- Évaluer l'arbre généré par le parser

Que l'entrée soit un fichier ou une ligne de commande, ça ne change strictement rien. Fais ton lexer/parser en prenant en entrée un "const char*". La manière dont tu as été chercher le texte est laissé à la discrétion de l'utilisateur final.

Pour réaliser ceci, je te conseil de faire les choses suivantes dans cet ordre:
- Regarde ce qu'est un lexer, un parser, un AST (arbre de syntaxe abstrait)
- Fais le lexer. Vérifie que celui-ci gère bien tout ce qui est à géré (échappement, quote, double quote, variable, etc...)
- Fais le parser. Test le bien et n'hésite pas à afficher l'AST généré pour voir si tu as correctement parser ton texte.
- Évalue l'arbre généré par le parser. Il suffit de vérifier que le résultat est celui attendu.

Que dois-tu gérer dans ton projet ?

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
BunoCS Messages postés 15342 Date d'inscription lundi 11 juillet 2005 Statut Modérateur Dernière intervention 26 janvier 2023 103
27 sept. 2011 à 10:31
Hello,
Une autre solution serait d'utiliser ce qui existe déjà: sh, bat, ant,...


@+
Buno
----------------------------------------
L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai...
0
cptpingu Messages postés 3835 Date d'inscription dimanche 12 décembre 2004 Statut Modérateur Dernière intervention 1 novembre 2022 124
27 sept. 2011 à 10:34
@buno: Même si tu as parfaitement raison, je pense que c'est un projet scolaire, et qu'on lui demande de recoder un produit existant pour qu'il en comprenne le fonctionnement.

________________________________________________________________________
Historique de mes créations, et quelques articles:
[ http://0217021.free.fr/portfolio http://0217021.free.fr/portfolio]
Merci d'utiliser Réponse acceptée si un post répond à votre question
0
andoid Messages postés 108 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013
27 sept. 2011 à 10:41
Au faite le but du projet est de creer
un gestionnaire de tâche de fond
gestion des variables simples et variables d'environnement
gestion du repertoire courant et des changements de repertoires

et la prise en compte d'un separateur de commande
0
andoid Messages postés 108 Date d'inscription samedi 31 mars 2012 Statut Membre Dernière intervention 16 juin 2013
27 sept. 2011 à 10:42
Merci les gars au moins je commence a avoir une idée claire
0
Rejoignez-nous