Add seti and int operators
This commit is contained in:
@@ -64,49 +64,26 @@ namespace Token
|
||||
case TokenType::ImmediateInteger:
|
||||
if (isValid)
|
||||
{
|
||||
std::printf("$int=%i", std::get<int>(data));
|
||||
std::printf("%i", std::get<int>(data));
|
||||
}
|
||||
else
|
||||
{
|
||||
std::printf("BAD_IMM_INT");
|
||||
std::printf("BAD_IMM");
|
||||
}
|
||||
break;
|
||||
|
||||
case TokenType::Operand:
|
||||
if (isValid)
|
||||
{
|
||||
switch(std::get<OperandType>(data))
|
||||
OperandType const opType = std::get<OperandType>(data);
|
||||
switch(opType)
|
||||
{
|
||||
case OperandType::AddInteger:
|
||||
std::printf("addi");
|
||||
break;
|
||||
|
||||
case OperandType::MultiplyInteger:
|
||||
std::printf("muli");
|
||||
break;
|
||||
|
||||
case OperandType::SubtractInteger:
|
||||
std::printf("subi");
|
||||
break;
|
||||
|
||||
case OperandType::DivideInteger:
|
||||
std::printf("divi");
|
||||
break;
|
||||
|
||||
case OperandType::ShiftIntegerLeft:
|
||||
std::printf("shli");
|
||||
break;
|
||||
|
||||
case OperandType::ShiftIntegerRight:
|
||||
std::printf("shri");
|
||||
break;
|
||||
|
||||
case OperandType::Jump:
|
||||
std::printf("jump");
|
||||
case OperandType::Unknown:
|
||||
std::printf("unknown_op");
|
||||
break;
|
||||
|
||||
default:
|
||||
std::printf("unknown_op");
|
||||
std::printf("op%i", static_cast<int>(opType));
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -119,25 +96,14 @@ namespace Token
|
||||
case TokenType::Register:
|
||||
if (isValid)
|
||||
{
|
||||
switch(std::get<RegisterType>(data))
|
||||
RegisterType const regType = std::get<RegisterType>(data);
|
||||
switch(regType)
|
||||
{
|
||||
case RegisterType::A:
|
||||
std::printf("%%A");
|
||||
break;
|
||||
|
||||
case RegisterType::B:
|
||||
std::printf("%%B");
|
||||
break;
|
||||
|
||||
case RegisterType::C:
|
||||
std::printf("%%C");
|
||||
break;
|
||||
|
||||
case RegisterType::D:
|
||||
std::printf("%%D");
|
||||
break;
|
||||
|
||||
default:
|
||||
std::printf("%%%i", static_cast<int>(regType));
|
||||
break;
|
||||
|
||||
case RegisterType::Unknown:
|
||||
std::printf("%%unknown_reg");
|
||||
break;
|
||||
}
|
||||
@@ -153,7 +119,7 @@ namespace Token
|
||||
break;
|
||||
|
||||
case TokenType::Label:
|
||||
std::printf("label=%s", std::get<std::string>(data).c_str());
|
||||
std::printf("LABEL=%s", std::get<std::string>(data).c_str());
|
||||
break;
|
||||
|
||||
case TokenType::Unknown:
|
||||
|
||||
Reference in New Issue
Block a user