public MakeCommandTree() throws CreateCMDTreeErrorException
		{
			CMDLIST = new HashMap< String, Integer >();
			IfStack = new Stack< CommandNode >();
			WhileStack = new Stack< CommandNode >();
			SwitchStack = new Stack< Byte >();

			CMDLIST.put( "if", 1 );
			CMDLIST.put( "else", 2 );
			CMDLIST.put( "endif", 3 );
			CMDLIST.put( "while", 4 );
			CMDLIST.put( "endwhile", 5 );

			try
			{
				FileInputStream fis = new FileInputStream( TestCaseFile );
				InputStreamReader isr = new InputStreamReader( fis, "UTF-8" );
				BufferedReader br = new BufferedReader( isr );
				String strCommand = "";
				while ( (strCommand = br.readLine()) != null )
				{
					strCommand = strCommand.split( "\n" )[ 0 ];
					AddCommandToCMDTree( strCommand );
				}
				fis.close();
			}
			catch ( FileNotFoundException e )
			{
				// TODO Auto-generated catch block
				e.printStackTrace();
				CreateCMDTreeErrorException exception = new CreateCMDTreeErrorException(
						"文件不存在。\n" );
				throw exception;
			}
			catch ( UnsupportedEncodingException e )
			{
				// TODO Auto-generated catch block
				e.printStackTrace();
				CreateCMDTreeErrorException exception = new CreateCMDTreeErrorException(
						"不支持的编码格式\n" );
				throw exception;
			}
			catch ( IOException e )
			{
				// TODO Auto-generated catch block
				e.printStackTrace();
				CreateCMDTreeErrorException exception = new CreateCMDTreeErrorException(
						"IO 错误。\n" );
				throw exception;
			}
			if ( !this.IfStack.empty() )
			{
				RTTestLog
						.logToConsole( "If 语法错误，缺少endif\n", LogCollector.ERROR );
				CreateCMDTreeErrorException exception = new CreateCMDTreeErrorException(
						"If 语法错误，缺少endif\n" );
				throw exception;
			}
			if ( !this.WhileStack.empty() )
			{
				RTTestLog.logToConsole( "While 语法错误，缺少endwhile\n",
						LogCollector.ERROR );
				CreateCMDTreeErrorException exception = new CreateCMDTreeErrorException(
						"While 语法错误，缺少endwhile\n" );
				throw exception;
			}
		}