private void AddNodeToQueue( CommandNode node )
				throws CreateCMDTreeErrorException
		{
			if ( SwitchStack.empty() )
			{
				if ( IfStack.empty() && WhileStack.empty() )
				{
					__AddNodeToQueue__( CMDTree, node );
				}
				else
				{
					RTTestLog.logToConsole( "Stack Error.", LogCollector.ERROR );
					CreateCMDTreeErrorException exception = new CreateCMDTreeErrorException(
							"栈错误，缺少endif或者endwhile.\n" );
					throw exception;
				}
			}
			else
			{
				if ( SwitchStack.peek() == SWITCHIFSTACK
						&& IfStack.empty() != true ) // 当前栈为IF栈，并且栈非空
				{
					CommandNode LastIfNode = IfStack.peek();
					if ( LastIfNode.Switch == true ) // if条件成立语句块
					{
						__AddNodeToQueue__( LastIfNode.TrueCmdTree, node );
					}
					else
					// else后if条件语句块
					{
						__AddNodeToQueue__( LastIfNode.FalseCmdTree, node );
					}
				}
				else
				{
					if ( SwitchStack.peek() == SWITCHWHILESTACK
							&& WhileStack.empty() != true ) // 当前栈为WHILE栈，并且栈非空
					{
						CommandNode LastWhileNode = WhileStack.pop();
						__AddNodeToQueue__( LastWhileNode.TrueCmdTree, node );
						WhileStack.push( LastWhileNode );
					}
					else
					{
						RTTestLog
								.logToConsole(
										"ERROR in Making CommandTree. Wrong StackSwitch.",
										LogCollector.ERROR );
						CreateCMDTreeErrorException exception = new CreateCMDTreeErrorException(
								"while栈错误，缺少endwhile\n" );
						throw exception;
					}
				}
			}
		}