Changeset 2483 in Sophya for trunk/SophyaLib/SysTools/commander.h
- Timestamp:
- Dec 22, 2003, 12:41:46 AM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/SophyaLib/SysTools/commander.h
r2473 r2483 22 22 #include "ctimer.h" 23 23 24 namespace SOPHYA { 24 25 // Classe definissant l'interface pour un executeur de commande 25 26 … … 49 50 class CommanderScript; // Script de commandes defini ds l'interpreteur Commander 50 51 51 /*52 //! Interface definition for SOPHYA::Commander help manager53 class CommanderHelpMgr {54 public :55 CommanderHelpMgr();56 virtual ~CommanderHelpMgr();57 virtual void AddHelpGroup(const char * hgrp, int gid);58 virtual void AddHelpItem(const char * hitem);59 virtual void ClearHelpList();60 virtual void Activate();61 }62 */63 64 65 52 //! A simple command interpreter with c-shell like syntax with dynamic load capability. 66 53 … … 104 91 inline CmdInterpreter* CurrentInterpreter() { return(curcmdi); } 105 92 106 107 // Utilitaire pour decoupage en mot 93 // Utilitaire pour decoupage en mot 108 94 static int LineToWords(string& line, string& kw, vector<string>& tokens, 109 95 string& toks, bool uq=true); … … 123 109 int EvalRPNExpr(vector<string> & args, string & line); 124 110 125 virtual bool GetVar(string & vn, string & vv); 126 virtual string GetVariable(string const & vn); 127 virtual bool HasVariable(string const & vn); 111 // Acces aux variables 112 virtual bool Var2Str(string const & vn, string & vv); 113 inline bool Var2Str(string const & vn, int idx, string & vv) 114 { return GetVar(vn, idx, vv); } 115 inline bool Var2Str(string const & vn, vector<string> & vv) 116 { return GetVar(vn, vv); } 117 118 // ----- Action / gestion des variables propres de l'interpreteur 119 // Verifie l'existence de la variable nomme vn et retourne sa valeur ds vv 120 // Retourne false si la variable n'existe pas 121 virtual bool SetVariable(string const & vn, string const & vv); 122 virtual bool GetVar(string const & vn, string & vv); 123 virtual bool GetVar(string const & vn, int idx, string & vv); 124 virtual bool GetVar(string const & vn, vector<string> & vv); 128 125 virtual bool SetVar(string const & vn, string const & vv); 126 virtual bool SetVar(string const & vn, int idx, string const & vv); 127 virtual bool SetVar(string const & vn, vector<string> const & vv); 128 virtual bool CheckVarName(string const & vn); 129 129 virtual bool DeleteVar(string const & vn); 130 virtual void ListVars(); 130 virtual void ListVar(); 131 // Variables de l'environnement application 132 virtual bool GetVarApp(string const & vn, string & vv); 133 virtual bool SetVarApp(string const & vn, string const & vv); 134 virtual bool DeleteVarApp(string const & vn); 135 virtual void ListVarApp(); 136 // Variables d'environnement globales 137 virtual bool GetVarEnv(string const & vn, string & vv); 138 virtual bool SetVarEnv(string const & vn, string const & vv); 139 virtual bool DeleteVarEnv(string const & vn); 140 virtual void ListVarEnv(); 131 141 132 142 virtual string GetTmpDir(); … … 134 144 virtual void SetCurrentPrompt(const char* pr); 135 145 inline void SetCurrentPrompt(string const & pr) { SetCurrentPrompt(pr.c_str()); } 146 inline void SetDefaultPrompt(string const & pr) { defprompt = pr; } 136 147 137 148 virtual void ShowMessage(const char * msg, int att); … … 143 154 144 155 // Gestion des variables 145 DVList variables; 156 typedef map< string, vector<string>, less<string> > CmdVarList; 157 CmdVarList variables; 146 158 147 159 // Pour enregistrer la liste de commandes et leurs executeurs et le help … … 168 180 CommanderScript* curscript; // Script en cours de definition 169 181 170 // Pour stocker les alias definies par l'interpreteur 182 // Code de retour execution commande 183 int _xstatus; 184 // Valeur de retour (par l'instruction return) - 185 string _retstr; 186 187 // Pour stocker les alias definies par l'interpreteur 171 188 typedef map<string, string, less<string> > CmdStrList; 172 189 CmdStrList mAliases; // Liste des alias 173 190 174 // Le stack pour les arguments des .pic et des scripts191 // Le stack pour les arguments des .pic et des scripts 175 192 stack< vector<string> > ArgsStack; 176 // Stack pour les Prompts193 // Stack pour les Prompts 177 194 stack<string> PromptStack; 178 195 196 // Gestion des blocs de commandes et tests (if) 179 197 stack< CommanderBloc * > CmdBlks; // Bloc de commande courant (foreach, ...) 180 198 int felevel; // foreach-for level … … 184 202 bool curtestresult; // Resultat courant des tests 185 203 204 // Commande splitees sur plusieurs lignes 186 205 bool mulinefg; // Bloc multi-lignes (ligne suite) 187 206 string mulinecmd; // Commande multi-lignes 207 208 // Texte de prompt (attente de commande) 188 209 string spromptmul; // Prompt console avant multi-ligne 189 string curprompt; 190 210 string curprompt; // Prompt courant 211 string defprompt; // Prompt par defaut 212 213 // Gestion d'historique, trace, timing des commandes 191 214 ofstream hist; // History file 192 215 bool histon; // True -> history file … … 195 218 Timer* gltimer; // pour Display CPU Time 196 219 220 friend class CommanderBloc; 221 friend class CommanderScript; 222 197 223 }; 198 224 225 } // namespace SOPHYA 199 226 200 227 /* end of ifdef COMMANDER_H_SEEN */
Note:
See TracChangeset
for help on using the changeset viewer.