Skip to content

Instantly share code, notes, and snippets.

@usernameak
Forked from anonymous/20172602165817
Last active February 26, 2017 17:02
Show Gist options
  • Select an option

  • Save usernameak/50d37db3acb53e5e497a8f6c206f88fc to your computer and use it in GitHub Desktop.

Select an option

Save usernameak/50d37db3acb53e5e497a8f6c206f88fc to your computer and use it in GitHub Desktop.
switch(op) {
case OPCODE_ADD:{
MAddOp *addop = new MAddOp();
opsv->push_back((MOp*)addop);
}break;
case OPCODE_SUB:{
MSubOp *subop = new MSubOp();
opsv->push_back((MOp*)subop);
}break;
case OPCODE_MUL:{
MMulOp *mulop = new MMulOp();
opsv->push_back((MOp*)mulop);
}break;
case OPCODE_DIV:{
MDivOp *divop = new MDivOp();
opsv->push_back((MOp*)divop);
}break;
case OPCODE_PUSH:{
MPushOp *pushop = new MPushOp();
bcstream->read((char*)&pushop->value, 4);
opsv->push_back((MOp*)pushop); // SEGFLT HERE
}break;
case OPCODE_PUSHV:{
MPushvOp *pushvop = new MPushvOp();
std::getline(*bcstream, pushvop->name, '\0');
opsv->push_back((MOp*)pushvop);
}break;
case OPCODE_ASSN:{
MAssnOp *assnop = new MAssnOp();
std::getline(*bcstream, assnop->name, '\0');
opsv->push_back((MOp*)assnop);
}break;
case OPCODE_RTCL:{
MRtclOp *rtclop = new MRtclOp();
std::getline(*bcstream, rtclop->name, '\0');
opsv->push_back((MOp*)rtclop);
break;}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment