+func NewLocalVariable(key string) (*LocalVariable, error) {
+ name := key[len("local."):]
+ if idx := strings.Index(name, "."); idx > -1 {
+ return nil, fmt.Errorf("Can't use dot (.) attribute access in local.%s; use square bracket indexing", name)
+ }
+
+ return &LocalVariable{
+ Name: name,
+ }, nil
+}
+
+func (v *LocalVariable) FullKey() string {
+ return fmt.Sprintf("local.%s", v.Name)
+}
+
+func (v *LocalVariable) GoString() string {
+ return fmt.Sprintf("*%#v", *v)
+}
+