public void Parse(String inputPacket, Memory InfoMem) {
		// Remove outer parentheses
		inputPacket = inputPacket.substring(1, inputPacket.length() - 1);
		
		// Split inputPacket into tokens by "(" and ")" delimiters
		String[] splitPacket = (inputPacket.split("[()]"));
		// Parse the first element into packet type and time
		String[] packetType = (splitPacket[0].split(" "));
		
		// We only proceed if it is a (see), (sense_body), or (hear) message
		if((packetType[0].compareTo("see") == 0) || (packetType[0].compareTo("sense_body") == 0) || (packetType[0].compareTo("hear") == 0)) {
			// the time from the message
			int time = Integer.parseInt(packetType[1]);
		
			// Call parse method based on packet type in position [0] (either see, sense_body, or hear)
			if(packetType[0].compareTo("see") == 0) { 
				ArrayList<ObjInfo> seeArray = new ArrayList<ObjInfo>();
				seeParse(seeArray, splitPacket);
				ObjMemory newObjMem = new ObjMemory(seeArray, time);
				InfoMem.ObjMem = newObjMem;
				InfoMem.setCurrent();
			}
			else if(packetType[0].compareTo("sense_body") == 0) {
				
				SenseMemory newSenMem = new SenseMemory(time);
				senseParse(newSenMem, splitPacket);
				InfoMem.SenMem = newSenMem;
			}
			else if(packetType[0].compareTo("hear") == 0) {
				hearParse(InfoMem, splitPacket);
			}
			
		}
		
	}