⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 variabledeclarationnode.java

📁 是有关解释器的.用JAVA编写.可以解释一般的JAVA程序.
💻 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 + -