Sommaire

Travaux pratiques

L’interprète Lab s’appuie largement sur la STL. Voici des précisions concernant la classe Variant implémentée à grand renfort d’objets issus de la librairie standard.

1. La classe Variant

Variant est le type de donné universel de Lab. Il peut être indéfini, numérique, booléen, texte, liste (de Variant), tableau (de Variant) ou fichier. Dans Lab, toutes les expressions et variables sont représentées par Variant.

images/04RI03.png

La définition de la classe Variant combine une énumération, des données pour chaque type, ainsi qu’un sélecteur de type. De plus, des accesseurs (getters et setters) garantissent une bonne encapsulation des données primitives.

/* 
        Variant.h 
        Variant est le type de données universel du langage Lab 
        Il peut être indéfini, ou nombre, ou chaîne, ou booléen, ou liste, 
        ou fichier, ou tableau 
        Il peut changer au fil du temps 
*/ 
#include <string> 
#include <vector> 
#include <map> 
using namespace std; 
 
#include "FileHandle.h" 
 
class Variant 
{ 
public: 
        // types disponibles 
        enum class Vtype 
        { 
  ...