Hey guys whats going on. I have a quick question about scope. I have three files. my opcodetab.h , opcodetab.cc and my driver.cpp. when i try to call my get_machine_cod e() function while passing the string "ADD" i get the following error. "get_machine_co de' was not declared in this scope".Im a little confused and lost right now .So any insight would be awesome. Thanks guys..my code is below...
//////////opcodetab.h//////////////////////////////////
#ifndef OPCODETAB_H
#define OPCODETAB_H
#include <iostream>
#include <string>
#include <map>
using namespace std;
class opcodetab {
public:
opcodetab();
string get_machine_cod e(string);
int get_instruction _size(string);
private:
typedef map<string, string> Type;
Type Map;
};
#endif
//////////////opcodetab.cc////////////////////////
#include "opcodetab. h"
#include <iostream>
#include <string>
#include <map>
#include <utility>
using namespace std;
opcodetab::opco detab()
{
typedef map<string, string> Type;
Type Map;
//////////////////////opcodes//////////////////
Map["ADD"]= "18";Map["ADDF"]= "58";Map["ADDR"]= "90";Map["AND"]= "40";
Map["CLEAR"]= "B4";Map["COMP"]= "28";Map["COMPF"]= "88";Map["COMPR"]= "A0";
Map["DIV"]= "24";Map["DIVF"]= "64";Map["DIVR"]= "9C";Map["FIX"]= "C4";
Map["FLOAT"]= "CO";Map["HIO"]= "F4";Map["J"]= "3C";Map["JEQ"]= "30";
Map["JGT"]= "34";Map["JLT"]= "38";Map["JSUB"]= "48";Map["LDA"]= "00";
Map["LDB"]= "68";Map["LDCH"]= "50";Map["LDF"]= "70";Map["LDL"]= "08";
Map["LDS"]= "6C";Map["LDT"]= "74";Map["LDX"]= "04";Map["LPS"]= "DO";
Map["MULF"]= "60";Map["MULR"]= "98";Map["NORM"]= "C8";Map["OR"]= "44";
Map["RD"]= "D8";Map["RMO"]= "AC";Map["RSUB"]= "4C";Map["SHIFTL"]= "A4";
Map["SHIFTR"]= "A8";Map["SIO"]= "F0";Map["SSK"]= "EC";Map["STA"]= "0C";
Map["STB"]= "78";Map["STCH"]= "54";Map["STF"]= "80";Map["STI"]= "D4";
Map["STL"]= "14";Map["STS"]="7C";Map["STSW"]= "E8";Map["STT"]= "84";
Map["STX"]= "10";Map["SUB"]= "1C";Map["SUBF"]= "5C";Map["SUBR"]= "94";
Map["SVC"]= "B0";Map["TD"]= "E0";Map["TIO"]= "F8";Map["TIX"]= "2C";
Map["TIXR"]= "B8";Map["WD"]= "DC";
}
string opcodetab::get_ machine_code(st ring )
{
Type::iterator iter = Map.begin(); Map.erase(iter) ;
string c;
cin >> c;
iter = Map.find(c);
if( iter != Map.end() )
cout << "OPTCODE is: " << iter->second << endl;
else
cout << "No such OPTCODE value" << endl;
Map.clear();
return 0;
}
////////////////////////////////driver.cpp////////////////////////
#include <iostream>
#include <map>
#include <utility>
#include <string>
#include <map>
#include "opcodetab. h"
using namespace std;
int main()
{
opcodetab();
get_machine_cod e("ADD");
}
//////////opcodetab.h//////////////////////////////////
#ifndef OPCODETAB_H
#define OPCODETAB_H
#include <iostream>
#include <string>
#include <map>
using namespace std;
class opcodetab {
public:
opcodetab();
string get_machine_cod e(string);
int get_instruction _size(string);
private:
typedef map<string, string> Type;
Type Map;
};
#endif
//////////////opcodetab.cc////////////////////////
#include "opcodetab. h"
#include <iostream>
#include <string>
#include <map>
#include <utility>
using namespace std;
opcodetab::opco detab()
{
typedef map<string, string> Type;
Type Map;
//////////////////////opcodes//////////////////
Map["ADD"]= "18";Map["ADDF"]= "58";Map["ADDR"]= "90";Map["AND"]= "40";
Map["CLEAR"]= "B4";Map["COMP"]= "28";Map["COMPF"]= "88";Map["COMPR"]= "A0";
Map["DIV"]= "24";Map["DIVF"]= "64";Map["DIVR"]= "9C";Map["FIX"]= "C4";
Map["FLOAT"]= "CO";Map["HIO"]= "F4";Map["J"]= "3C";Map["JEQ"]= "30";
Map["JGT"]= "34";Map["JLT"]= "38";Map["JSUB"]= "48";Map["LDA"]= "00";
Map["LDB"]= "68";Map["LDCH"]= "50";Map["LDF"]= "70";Map["LDL"]= "08";
Map["LDS"]= "6C";Map["LDT"]= "74";Map["LDX"]= "04";Map["LPS"]= "DO";
Map["MULF"]= "60";Map["MULR"]= "98";Map["NORM"]= "C8";Map["OR"]= "44";
Map["RD"]= "D8";Map["RMO"]= "AC";Map["RSUB"]= "4C";Map["SHIFTL"]= "A4";
Map["SHIFTR"]= "A8";Map["SIO"]= "F0";Map["SSK"]= "EC";Map["STA"]= "0C";
Map["STB"]= "78";Map["STCH"]= "54";Map["STF"]= "80";Map["STI"]= "D4";
Map["STL"]= "14";Map["STS"]="7C";Map["STSW"]= "E8";Map["STT"]= "84";
Map["STX"]= "10";Map["SUB"]= "1C";Map["SUBF"]= "5C";Map["SUBR"]= "94";
Map["SVC"]= "B0";Map["TD"]= "E0";Map["TIO"]= "F8";Map["TIX"]= "2C";
Map["TIXR"]= "B8";Map["WD"]= "DC";
}
string opcodetab::get_ machine_code(st ring )
{
Type::iterator iter = Map.begin(); Map.erase(iter) ;
string c;
cin >> c;
iter = Map.find(c);
if( iter != Map.end() )
cout << "OPTCODE is: " << iter->second << endl;
else
cout << "No such OPTCODE value" << endl;
Map.clear();
return 0;
}
////////////////////////////////driver.cpp////////////////////////
#include <iostream>
#include <map>
#include <utility>
#include <string>
#include <map>
#include "opcodetab. h"
using namespace std;
int main()
{
opcodetab();
get_machine_cod e("ADD");
}
Comment