📄 variabledeclarationnode.java
字号:
class VariableDeclarationNode extends ExecutableNode
{
VariableTypeNode vVariableTypeNode;
IdentifierNode vIdentifierNode;
static VariableDeclarationNode parserVariableDeclaration(Environment env,Scanner s) throws ParserException, ScannerException
{
VariableTypeNode tmpVariableTypeNode;
IdentifierNode tmpIdentifierNode;
tmpVariableTypeNode= VariableTypeNode.parserVariableType(env,s);
tmpIdentifierNode= IdentifierNode.parserIndentifier(env,s);
return new VariableDeclarationNode(tmpVariableTypeNode, tmpIdentifierNode);
}
static boolean mIsVariableDeclaration(Scanner s) throws ScannerException
{
return VariableTypeNode.mIsVariableType(s);
}
String mGetIdentifier()
{
return vIdentifierNode.vName;
}
VariableDeclarationNode()
{
vVariableTypeNode = null;
vIdentifierNode = null;
}
VariableDeclarationNode(VariableTypeNode aVariableTypeNode,IdentifierNode aIdentifierNode)
{
vVariableTypeNode= aVariableTypeNode;
vIdentifierNode= aIdentifierNode;
}
String format(int indent)
{
return vVariableTypeNode.format(indent)+" "+vIdentifierNode.vName;
}
Environment run(Environment env) throws InterpreterException
{
typeCheck(env); //define variable in environment
return env;
}
boolean typeCheck(Environment env) throws InterpreterException
{
if(vVariableTypeNode.vVariableType.equals("boolean"))
env.add(vIdentifierNode.vName,new BooleanValue());else
if(vVariableTypeNode.vVariableType.equals("int"))
env.add(vIdentifierNode.vName,new NumberValue());else
if(vVariableTypeNode.vVariableType.equals("direction"))
env.add(vIdentifierNode.vName,new DirectionValue());else
if(vVariableTypeNode.vVariableType.equals("Robot"))
env.add(vIdentifierNode.vName,new RobotValue());
return true;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -