variabledeclarationnode.java
来自「是有关解释器的.用JAVA编写.可以解释一般的JAVA程序.」· Java 代码 · 共 56 行
JAVA
56 行
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 + =
减小字号Ctrl + -
显示快捷键?