mirror of
https://github.com/corn-config/corn-go.git
synced 2026-07-11 04:16:10 +01:00
Libcorn native Go implementation
- Go 100%
| .idea | ||
| .gitignore | ||
| corn.go | ||
| evaluator.go | ||
| evaluator_test.go | ||
| go.mod | ||
| go.sum | ||
| parser.go | ||
| README.md | ||
| tokenizer.go | ||
Corn Go
Go implementation of libcorn.
This is a full-spec implementation, which passes the reference test suite, so should work as expected. That said, it has not currently been road-tested, and the code is rough around the edges, so I would not regard it production-ready.
Usage
Add the dependency:
go get github.com/corn-config/corn-go
package main
import (
"fmt"
"github.com/corn-config/corn-go"
)
func main() {
input := "let { $foo = 42} in { num = $foo }"
eval, err := corn.Evaluate(input)
if err != nil {
// handle
}
fmt.Println(eval.Value.Get("num")) // -> 42
}
Support for deserializing into structs is currently missing.
Only Evaluate method is exposed currently, which will return an unstructured map.