// ExtractCommentTags parses comments for lines of the form: // // 'marker' + "key=value". // // Values are optional; "" is the default. A tag can be specified more than // one time and all values are returned. If the resulting map has an entry for // a key, the value (a slice) is guaranteed to have at least 1 element. // // Example: if you pass "+" for 'marker', and the following lines are in // the comments: // // +foo=value1 // +bar // +foo=value2 // +baz="qux" // // Then this function will return: // // map[string][]string{"foo":{"value1, "value2"}, "bar": {""}, "baz": {"qux"}} func ExtractCommentTags(marker string, lines []string) map[string][]string { … } // ExtractSingleBoolCommentTag parses comments for lines of the form: // // 'marker' + "key=value1" // // If the tag is not found, the default value is returned. Values are asserted // to be boolean ("true" or "false"), and any other value will cause an error // to be returned. If the key has multiple values, the first one will be used. func ExtractSingleBoolCommentTag(marker string, key string, defaultVal bool, lines []string) (bool, error) { … }