2015-06-04 20:51:03 +09:00
|
|
|
module otya.smilebasic.vm;
|
2015-06-04 19:12:17 +09:00
|
|
|
class VM
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
enum CodeType
|
|
|
|
|
{
|
|
|
|
|
PushI,
|
|
|
|
|
PushD,
|
|
|
|
|
PushS,
|
|
|
|
|
Operate,
|
|
|
|
|
Return,
|
|
|
|
|
Goto,
|
|
|
|
|
Gosub,
|
|
|
|
|
}
|
|
|
|
|
abstract class Code
|
|
|
|
|
{
|
|
|
|
|
CodeType type;
|
|
|
|
|
abstract void execute(VM vm);
|
|
|
|
|
}
|
|
|
|
|
/*
|
|
|
|
|
* スタックにPush
|
|
|
|
|
*/
|
|
|
|
|
class Push : Code
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
class Operate : Code
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
class Goto : Code
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
class Gosub : Code
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
}
|