public void visitStackManipStmt(final StackManipStmt stmt) {
		print("(");

		final StackExpr[] target = stmt.target();

		if (target != null) {
			for (int i = 0; i < target.length; i++) {
				target[i].visit(this);
				if (i != target.length - 1) {
					print(", ");
				}
			}
		}

		final String[] str = new String[] { "swap", "dup", "dup_x1", "dup_x2",
				"dup2", "dup2_x1", "dup2_x2" };

		print(") := " + str[stmt.kind()] + "(");

		final StackExpr[] source = stmt.source();

		if (source != null) {
			for (int i = 0; i < source.length; i++) {
				source[i].visit(this);
				if (i != source.length - 1) {
					print(", ");
				}
			}
		}

		println(")");
	}