// Copyright 2021 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 cue_test import ( "fmt" "cuelang.org/go/cue" "cuelang.org/go/cue/cuecontext" ) func ExampleContext() { ctx := cuecontext.New() v := ctx.CompileString(` a: 2 b: 3 "a+b": a + b `) p("lookups") p("a: %v", v.LookupPath(cue.ParsePath("a"))) p("b: %v", v.LookupPath(cue.ParsePath("b"))) p(`"a+b": %v`, v.LookupPath(cue.ParsePath(`"a+b"`))) p("") p("expressions") p("a + b: %v", ctx.CompileString("a + b", cue.Scope(v))) p("a * b: %v", ctx.CompileString("a * b", cue.Scope(v))) // Output: // lookups // a: 2 // b: 3 // "a+b": 5 // // expressions // a + b: 5 // a * b: 6 } func p(format string, args ...interface{}) { fmt.Printf(format+"\n", args...) }