func Parse(data interface{}) ([]string, error) {
	return NewParser(data, Default).Parse()
}
Parse is a convenience function to parse command line options with default
settings. The provided data is a pointer to a struct representing the
default option group (named "Application Options"). For more control, use
flags.NewParser.
package flags
import (
	"bytes"
	"fmt"
	"os"
	"path"
	"sort"
	"strings"
	"unicode/utf8"
)
type Parser struct {
	*Command
	Usage string
	Options Options
	NamespaceDelimiter string
	UnknownOptionHandler func(option string, arg SplitArgument, args []string) ([]string, error)
	CompletionHandler func(items []Completion)
	CommandHandler func(command Commander, args []string) error
	internalError error
}
type SplitArgument interface {
	Value() (string, bool)
}
type strArgument struct {
	value *string
}
func (s strArgument) Value() (string, bool) {
	if s.value == nil {
		return "", false
	}
	return *s.value, true
}
type Options uint
const (
	None Options = 0
	HelpFlag = 1 << iota
	PassDoubleDash
	IgnoreUnknown
	PrintErrors
	PassAfterNonOption
	Default = HelpFlag | PrintErrors | PassDoubleDash
)
type parseState struct {
	arg        string
	args       []string
	retargs    []string
	positional []*Arg
	err        error
	command *Command
	lookup  lookup
}