private Node makeTree(String line){
		Node n=new Node();
		n.sym="";
		bias++;//at this time the char should be '('
		char c;
		while((c=line.charAt(bias))!=')'){
			switch(c){
			case '('://recursively call this function
				if(n.left==null){
					n.left=makeTree(line);
				}else{
					n.right=makeTree(line);
				}
				break;
			case ' '://reach the bottom, read the lexical rule
				bias++;
				Node m=new Node();
				m.sym="";
				while(line.charAt(bias)!=')'){
					m.sym+=line.charAt(bias);
					bias++;
				}
				n.left=m;
				break;
			default:
				n.sym+=c;
				bias++;	
			}
		}
		bias++;//at this time the char should be ')'
		return n;
	}