.gitignore added
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / honnef.co / go / tools@v0.1.1 / internal / cmd / ast-to-pattern / main.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.1.1/internal/cmd/ast-to-pattern/main.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.1.1/internal/cmd/ast-to-pattern/main.go
new file mode 100644 (file)
index 0000000..a1a79ff
--- /dev/null
@@ -0,0 +1,31 @@
+package main
+
+import (
+       "fmt"
+       "go/ast"
+       "go/token"
+       "io/ioutil"
+       "os"
+
+       "honnef.co/go/tools/pattern"
+)
+
+func main() {
+       src, err := ioutil.ReadAll(os.Stdin)
+       if err != nil {
+               fmt.Fprintln(os.Stderr, err)
+               os.Exit(1)
+       }
+       fset := token.NewFileSet()
+       node, err := parseDetectingNode(fset, string(src))
+       if err != nil {
+               fmt.Fprintln(os.Stderr, err)
+               os.Exit(1)
+       }
+
+       if _, ok := node.(*ast.File); ok {
+               fmt.Fprintln(os.Stderr, "cannot convert entire file to Node")
+               os.Exit(1)
+       }
+       fmt.Println(pattern.ASTToNode(node))
+}