Sommaire

Travaux pratiques

1. Utilisation de l’héritage de classes dans l’interprète Lab

Dans l’interprète Lab, des classes dérivant de ScriptBox sont chargées de faire fonctionner le parser dans autant d’environnements :

  • La boîte à sable ou Sandbox est un environnement isolé où les entrées-sorties sont neutralisées (elles ne sont pas activées).

  • L’environnement ConsoleBox assure des entrées-sorties sur la console système.

La classe de base est appelée ScriptBox et elle définit une méthode virtuelle init_events() :

/* 
        Environnement d’exécution générique 
*/ 
class ScriptBox 
{ 
public: 
        LexScan*lexScan; 
        Evaluator*parser; 
 
        ScriptBox(); 
        ~ScriptBox(); 
 
        virtual void init_events(); 
 
        void new_text(); 
        void set_text(string text); 
        void parse(); 
        bool has_errors(); 
        string get_errors(); 
        string get_text(); 
 
        bool set_debug(); 
};

Dans la version neutre, Sandbox, cette méthode n’est pas surchargée.

/* 
  ...