You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

60 lines
876 B

using System;
using System.Collections.Generic;
using System.Text;
namespace SuperBASIC
{
enum NumberType{
Ans,
Number,
Operand
};
struct BasicNumber
{
internal NumberType type;
readonly Runtime runtime;
readonly private float number;
readonly private int operand;
internal BasicNumber(Runtime rt, float v)
{
type = NumberType.Number;
number = v;
operand = 0;
runtime = rt;
}
internal BasicNumber(Runtime rt)
{
type = NumberType.Ans;
number = 0;
operand = 0;
runtime = rt;
}
internal BasicNumber(Runtime rt, int v)
{
type = NumberType.Operand;
number = 0;
operand = v;
runtime = rt;
}
internal int GetOperand()
{
return operand;
}
public float GetValue()
{
if (type == NumberType.Number)
{
return number;
}
else
{
return runtime.GetRegister();
}
}
}
}