func MkdirAll(path string, perm ...os.FileMode) error {
	return goutil.MkdirAll(path, perm...)
}
MkdirAll creates a directory named path,
along with any necessary parents, and returns nil,
or else returns an error.
The permission bits perm (before umask) are used for all
directories that MkdirAll creates.
If path is already a directory, MkdirAll does nothing
and returns nil.
If perm is empty, default use 0755.
package tools
import (
	"bytes"
	"errors"
	"go/ast"
	"go/token"
	"io"
	"io/ioutil"
	"os"
	"path/filepath"
	"regexp"
	"strings"
	"github.com/henrylee2cn/aster/internal/imports"
	"github.com/henrylee2cn/goutil"
)