#ifndef MAP_H_INCLUDED
#define MAP_H_INCLUDED

#include <map>

#include "parameters.h"

using namespace std;


enum instr_type {alu,nt,move,li,ls,io,jump,slp,pseudo};

typedef struct instr_info {
	instr_type type;
	int code;
	int exn;
	int nb_int_arg;
}instr_info;


class table_instr;

class table_instr {
    private :
        map<string,instr_info> table;
    public :
        table_instr();
        instr_info get(string name);
};





class table_label;

class table_label {
    private :
        map<string,int> table;
    public :
        void add_label (string name, int index);
        int get (string name);
};





#endif // MAP_H_INCLUDED
