static boolean processWith(StringBuffer sb) {
		int i = find(sb, "with");
		if (i < 0) {
			return false;
		}

		int j = find(sb, "do", i);
		if (j < 0) {
			return false;
		}

		int k = find(sb, "begin", j);
		if (k < 0) {
			return false;
		}

		int l = find(sb, "end", k);
		if (l < 0) {
			return false;
		}

		String var = sb.substring(i + 4, j).trim();
		StringBuffer sblock = new StringBuffer(sb.substring(k + 5, l));

		if (var.equals("Flame")) {
			processFields(sblock, var, JSFlame.class);
		} else if (var.equals("Transform")) {
			processFields(sblock, var, JSTransform.class);
		} else if (var.equals("Options")) {
			processFields(sblock, var, JSOptions.class);
		} else if (var.equals("Renderer")) {
			processFields(sblock, var, JSRenderer.class);
		} else if (var.equals("TStringList")) {
			processFields(sblock, var, JSStringList.class);
		}

		sb.replace(k + 5, l, sblock.toString());
		sb.replace(i, j + 2, "");

		return true;

	} // End of method processWithStatements