1
0

Implement CHKVAR

This commit is contained in:
otya128
2016-12-24 19:34:48 +09:00
parent d3c4392087
commit ce71082b29
2 changed files with 22 additions and 1 deletions

View File

@@ -319,6 +319,22 @@ class VM
return true; return true;
return false; return false;
} }
bool chklabel(wstring label)
{
if (label in currentSlot.globalLabel)
return true;
if (currentFunction && label in currentFunction.label)
return true;
return false;
}
bool chkvar(wstring var)
{
if (var in currentSlot.globalTable)
return true;
if (currentFunction && var in currentFunction.variable)
return true;
return false;
}
} }
enum CodeType enum CodeType
{ {

View File

@@ -2382,7 +2382,12 @@ class BuiltinFunction
static int CHKLABEL(PetitComputer p, wstring label) static int CHKLABEL(PetitComputer p, wstring label)
{ {
label = label.toUpper; label = label.toUpper;
return (label in p.vm.currentSlot.globalLabel) != null; return p.vm.chklabel(label);
}
static int CHKVAR(PetitComputer p, wstring var)
{
var = var.toUpper;
return p.vm.chkvar(var);
} }
static wstring INKEY(PetitComputer p) static wstring INKEY(PetitComputer p)
{ {