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.
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
{
...