internal/protobuf: add Parse example

Change-Id: I2c93fddbf336937681dfe9f82142fe45bb87f055
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/2343
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/internal/protobuf/examples/basic/basic.proto b/internal/protobuf/examples/basic/basic.proto
new file mode 100644
index 0000000..d66aab9
--- /dev/null
+++ b/internal/protobuf/examples/basic/basic.proto
@@ -0,0 +1,16 @@
+syntax = "proto3";
+
+// Package basic is just that: basic.
+package cuelang.examples.basic;
+
+import "cue/cue.proto";
+
+option go_package = "cuelang.org/encoding/protobuf/examples/basic";
+
+// This is my type.
+message MyType {
+    string string_value = 1; // just any 'ole string
+
+    // A method must start with a capital letter.
+    repeated string method = 2 [(cue.val) = '[...=~"^[A-Z]"]'];
+}
\ No newline at end of file
diff --git a/internal/protobuf/examples_test.go b/internal/protobuf/examples_test.go
new file mode 100644
index 0000000..1ee23fa
--- /dev/null
+++ b/internal/protobuf/examples_test.go
@@ -0,0 +1,54 @@
+// Copyright 2019 CUE Authors
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package protobuf_test
+
+import (
+	"log"
+	"os"
+	"path/filepath"
+
+	"cuelang.org/go/cue/format"
+	"cuelang.org/go/internal/protobuf"
+)
+
+func ExampleParse() {
+	cwd, _ := os.Getwd()
+	var paths = []string{}
+	paths = append(paths, cwd)
+	paths = append(paths, filepath.Join(cwd, "testdata"))
+
+	f, err := protobuf.Parse("examples/basic/basic.proto", nil, &protobuf.Config{
+		Paths: paths,
+	})
+
+	if err != nil {
+		log.Fatal(err, "")
+	}
+
+	format.Node(os.Stdout, f)
+
+	// Output:
+	// //  Package basic is just that: basic.
+	// package basic
+	//
+	// //  This is my type.
+	// MyType: {
+	// 	stringValue?: string @protobuf(1,name=string_value) //  just any 'ole string
+	//
+	// 	//  A method must start with a capital letter.
+	// 	method?: [...string] @protobuf(2)
+	// 	method?: [...=~"^[A-Z]"]
+	// }
+}