From bc457bd3714b83ab2218a61c6a8b6f1d809a271e Mon Sep 17 00:00:00 2001 From: Charles Iliya Krempeaux Date: Wed, 22 Nov 2023 06:42:08 -0800 Subject: [PATCH] initial commits --- LICENSE | 19 ++++++++++++++++ README.md | 66 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 LICENSE create mode 100644 README.md diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..a3bf392 --- /dev/null +++ b/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2023 Charles Iliya Krempeaux :: http://changelog.ca/ + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..6679ca1 --- /dev/null +++ b/README.md @@ -0,0 +1,66 @@ +# go-brace + +Package **brace** implements tools for working with brace-string literals, for the Go programming language. + +Brace-String literals are a type of string literal used in the Tcl programming language. +For example: +``` +{Hello world!} +``` + +## Documention + +Online documentation, which includes examples, can be found at: http://godoc.org/sourcecode.social/reiver/go-brace + +[![GoDoc](https://godoc.org/sourcecode.social/reiver/go-brace?status.svg)](https://godoc.org/sourcecode.social/reiver/go-brace) + +## Example + +Here is an example: +```golang + +import "sourcecode.social/reiver/go-brace" +import "sourcecode.social/reiver/go-utf-8" + +// ... + +const value string = `{This is a brace-string literal. It begins with a \{ symbol and end with a \} symbol. Now look at this: {wow} }` + +var reader io.Reader = strings.NewReader(value) +var runereader io.RuneReader = utf8.NewRuneReader(reader) + +bracestring, err := brace.ParseToString(runereader) +if nil != err { + return err +} + +fmt.Print(bracestring) + +// This will print: +// +// This is a brace-string literal. It begins with a { symbol and end with a } symbol. Now look at this: {wow} +// +// I.e., the string: +// +// "This is a brace-string literal. It begins with a { symbol and end with a } symbol. Now look at this: {wow} " +// +// Notice that the beginning '{' is not there, that the ending '}' is not there, and the 2 '\' are not there either. +``` + +## Import + +To import package **brace** use `import` code like the follownig: +``` +import "sourcecode.social/reiver/go-brace" +``` + +## Installation + +To install package **brace** do the following: +``` +GOPROXY=direct go get https://sourcecode.social/reiver/go-brace +``` + +## Author + +Package **brace** was written by [Charles Iliya Krempeaux](http://changelog.ca)