private static void preHandle(String source){
		Map<String, Integer> define = new HashMap<String, Integer>();
		BufferedReader in;
		BufferedWriter out;
		ArrayList<String> list = new ArrayList<String>(10);
		try{
		    in = new BufferedReader(new FileReader(new File(source)));
		    out = new BufferedWriter(new FileWriter(source+"~"));
			String str;
				
			while((str = in.readLine()) != null){
				str = deleteBlank(str);
				if(str.equals(" ") || str.length() == 0){
					continue;
				}
				if(str.charAt(0) == '#'){
					if(str.indexOf("define") != -1 || str.indexOf("DEFINE") != -1){
						createDefineTable(define, str, list);
						continue;
					}
				}
				if(str.indexOf("//") != -1 || str.indexOf("/*") != -1 ){
					deletePrompt(in, out, str);
					continue;
				}
				String str1 = deleteBlank(str);			
				StringBuffer temp = new StringBuffer(str1);
				replace(temp, define, list);
				str1 = temp.toString();
				out.write(str1, 0, str1.length() );
				out.flush();
			}
		}catch(IOException e){
			e.printStackTrace();
		}
		//for(int i = 0; i < list.size(); i ++){
		//	System.out.println("\nkey:" + list.get(i) + " value:" + define.get(list.get(i)));
		//}
	}