Documentation ¶
Overview ¶
Package eval handles evaluation of nodes and consists the runtime of the shell.
Index ¶
- Constants
- Variables
- func AddBuiltinFns(ns Namespace, fns ...*BuiltinFn)
- func Chdir(path string, daemon *api.Client) error
- func ClosePorts(ports []*Port)
- func ComposeExceptionsFromPipeline(excs []*Exception) error
- func MakeVariableName(explode bool, ns string, name string) string
- func NewExternalCmdExit(name string, ws syscall.WaitStatus, pid int) error
- func ParseAndFixListIndex(s string, n int) (bool, int, int)
- func ParseAndFixVariable(qname string) (explode bool, ns string, name string)
- func ParseVariable(text string) (explode bool, ns string, name string)
- func ParseVariableQName(qname string) (ns, name string)
- func ParseVariableSplice(text string) (explode, qname string)
- func ScanArgs(s []Value, args ...interface{})
- func ScanArgsAndOptionalIterate(ec *EvalCtx, s []Value, args ...interface{}) func(func(Value))
- func ScanArgsVariadic(s []Value, args ...interface{})
- func ScanOpts(m map[string]Value, opts ...Opt)
- func ScanOptsToStruct(m map[string]Value, structPtr interface{})
- func ShouldBeBool(v Value) error
- func ShouldBeFn(v Value) error
- func ShouldBeList(v Value) error
- func ShouldBeMap(v Value) error
- func TakeNoArg(args []Value)
- func TakeNoOpt(opts map[string]Value)
- func ToBool(v Value) bool
- func ToString(v Value) string
- type Assocer
- type BlackholeVariable
- type Bool
- type Booler
- type BuiltinFn
- type BuiltinFnImpl
- type Callable
- type CallableValue
- type Closure
- type CompilationError
- type Dissocer
- type Editor
- type EnvList
- type Equaler
- type EvalCtx
- func (ec *EvalCtx) CheckInterrupts()
- func (ctx *EvalCtx) ExecAndUnwrap(desc string, op ValuesOp) ValuesUnwrapper
- func (ec *EvalCtx) InputChan() chan Value
- func (ec *EvalCtx) InputFile() *os.File
- func (ec *EvalCtx) Interrupts() <-chan struct{}
- func (ec *EvalCtx) IterateInputs(f func(Value))
- func (ec *EvalCtx) OutputChan() chan<- Value
- func (ec *EvalCtx) OutputFile() *os.File
- func (ec *EvalCtx) PCall(f Callable, args []Value, opts map[string]Value) (err error)
- func (ec *EvalCtx) PCaptureOutput(f Callable, args []Value, opts map[string]Value) (vs []Value, err error)
- func (ec *EvalCtx) PCaptureOutputInner(f Callable, args []Value, opts map[string]Value, valuesCb func(<-chan Value), ...) error
- func (ec *EvalCtx) PEval(op Op) (err error)
- func (ec *EvalCtx) ResolveVar(ns, name string) Variable
- func (ctx *EvalCtx) Unwrap(desc string, begin, end int, vs []Value) ValuesUnwrapper
- type Evaler
- func (ev *Evaler) Builtin() Namespace
- func (ev *Evaler) Compile(n *parse.Chunk, name, text string) (Op, error)
- func (ev *Evaler) EachExternal(f func(string))
- func (ev *Evaler) Eval(op Op, name, text string) error
- func (ev *Evaler) EvalWithPorts(ports []*Port, op Op, name, text string) error
- func (ev *Evaler) Search(exe string) (string, error)
- func (ev *Evaler) Source(fname string) error
- func (ev *Evaler) SourceText(name, src string) error
- type Exception
- type ExternalCmd
- type ExternalCmdExit
- type File
- type Flow
- type GlobFlag
- type GlobPattern
- type HasKeyer
- type Hasher
- type IndexOneAssocer
- type IndexOneer
- type IndexOneerIndexer
- type Indexer
- type Iterable
- type IterableValue
- type IterateKeyer
- type IteratePairer
- type Kinder
- type LValuesOp
- type LValuesOpFunc
- type Lener
- type List
- func (l List) Assoc(idx, v Value) Value
- func (l List) Equal(rhs interface{}) bool
- func (l List) Hash() uint32
- func (l List) IndexOne(idx Value) Value
- func (l List) Iterate(f func(Value) bool)
- func (List) Kind() string
- func (l List) Len() int
- func (l List) MarshalJSON() ([]byte, error)
- func (l List) Repr(indent int) string
- type ListLike
- type ListReprBuilder
- type Map
- func (m Map) Assoc(k, v Value) Value
- func (m Map) Dissoc(k Value) Value
- func (m Map) Equal(a interface{}) bool
- func (m Map) HasKey(k Value) bool
- func (m Map) Hash() uint32
- func (m Map) IndexOne(idx Value) Value
- func (m Map) IterateKey(f func(Value) bool)
- func (m Map) IteratePair(f func(Value, Value) bool)
- func (Map) Kind() string
- func (m Map) Len() int
- func (m Map) MarshalJSON() ([]byte, error)
- func (m Map) Repr(indent int) string
- type MapLike
- type MapReprBuilder
- type Namespace
- type Op
- type OpFunc
- type Opt
- type Pipe
- type PipelineError
- type Port
- type PwdVariable
- type Rat
- type Reprer
- type String
- func (s String) Assoc(idx, v Value) Value
- func (s String) Call(ec *EvalCtx, args []Value, opts map[string]Value)
- func (s String) Equal(rhs interface{}) bool
- func (s String) Hash() uint32
- func (s String) IndexOne(idx Value) Value
- func (s String) Iterate(f func(v Value) bool)
- func (String) Kind() string
- func (s String) Len() int
- func (s String) Repr(int) string
- func (s String) String() string
- type Stringer
- type Struct
- func (s *Struct) Assoc(k, v Value) Value
- func (s *Struct) Equal(rhs interface{}) bool
- func (s *Struct) HasKey(k Value) bool
- func (s *Struct) Hash() uint32
- func (s *Struct) IndexOne(idx Value) Value
- func (s *Struct) IterateKey(f func(Value) bool)
- func (s *Struct) IteratePair(f func(Value, Value) bool)
- func (*Struct) Kind() string
- func (s *Struct) Len() int
- func (s *Struct) Repr(indent int) string
- type StructDescriptor
- type Value
- type ValueUnwrapper
- type ValuesOp
- type ValuesOpFunc
- type ValuesUnwrapper
- type Variable
- Bugs
Constants ¶
const FnPrefix = "&"
FnPrefix is the prefix for the variable names of functions. Defining a function "foo" is equivalent to setting a variable named FnPrefix + "foo".
const (
NoPretty = util.MinInt
)
Variables ¶
var ( ErrArgs = errors.New("args error") ErrInput = errors.New("input error") ErrStoreNotConnected = errors.New("store not connected") ErrNoMatchingDir = errors.New("no matching directory") ErrNotInSameGroup = errors.New("not in the same process group") )
Errors thrown by builtins.
var ( ErrBadGlobPattern = errors.New("bad GlobPattern; elvish bug") ErrCannotDetermineUsername = errors.New("cannot determine user name from glob pattern") )
Errors thrown when globbing.
var ( ErrCanOnlyAssignList = errors.New("can only assign compatible values") ErrPathMustBeString = errors.New("path must be string") ErrPathCannotContainColonZero = errors.New(`path cannot contain colon or \0`) )
Errors
var ( ErrExternalCmdOpts = errors.New("external commands don't accept elvish options") ErrCdNoArg = errors.New("implicit cd accepts no arguments") )
var ( ErrMustFollowWildcard = errors.New("must follow wildcard") ErrModifierMustBeString = errors.New("modifier must be string") ErrWildcardNoMatch = errors.New("wildcard has no match") )
var ( // ErrNeedIntIndex = errors.New("need integer index") ErrBadIndex = errors.New("bad index") ErrIndexOutOfRange = errors.New("index out of range") ErrAssocWithSlice = errors.New("assoc with slice not yet supported") )
Error definitions.
var ( // ClosedChan is a closed channel, suitable for use as placeholder channel input. ClosedChan = make(chan Value) // BlackholeChan is channel writes onto which disappear, suitable for use as // placeholder channel output. BlackholeChan = make(chan Value) // DevNull is /dev/null. DevNull *os.File // DevNullClosedInput is a port made up from DevNull and ClosedChan, // suitable as placeholder input port. DevNullClosedChan *Port )
var ( ErrNoArgAccepted = errors.New("no argument accepted") ErrNoOptAccepted = errors.New("no option accepted") )
var ( NoArgs = []Value{} NoOpts = map[string]Value{} )
var ErrArityMismatch = errors.New("arity mismatch")
ErrArityMismatch is thrown by a closure when the number of arguments the user supplies does not match with what is required.
var ErrBadBase = errors.New("bad base")
ErrBadBase is thrown by the "base" builtin if the base is smaller than 2 or greater than 36.
var ErrDaemonOffline = errors.New("daemon is offline")
var ErrGetBlackhole = errors.New("cannot get blackhole variable")
ErrGetBlackhole is raised when attempting to get the value of a blackhole variable.
var (
ErrIndexMustBeString = errors.New("index must be string")
)
var ErrInterrupted = errors.New("interrupted")
var ErrMoreThanOneRest = errors.New("more than one @ lvalue")
var ErrNoDataDir = errors.New("There is no data directory")
ErrNoDataDir is thrown by the "use" special form when there is no data directory.
var ErrOnlyStrOrRat = errors.New("only str or rat may be converted to rat")
var ErrReplacementMustBeString = errors.New("replacement must be string")
var (
ErrRoCannotBeSet = errors.New("read-only variable; cannot be set")
)
var ErrStoreUnconnected = errors.New("store unconnected")
ErrStoreUnconnected is thrown by ResolveVar when a shared: variable needs to be resolved but the store is not connected.
var IsBuiltinSpecial = map[string]bool{}
IsBuiltinSpecial is the set of all names of builtin special forms. It is intended for external consumption, e.g. the syntax highlighter.
var OK = &Exception{}
OK is a pointer to the zero value of Exception, representing the absence of exception.
Functions ¶
func AddBuiltinFns ¶ added in v0.9.0
AddBuiltinFns adds builtin functions to a namespace.
func Chdir ¶ added in v0.9.0
Chdir changes the current directory. On success it also updates the PWD environment variable and records the new directory in the directory history. It returns nil as long as the directory changing part succeeds.
func ComposeExceptionsFromPipeline ¶ added in v0.6.0
ComposeExceptionsFromPipeline takes a slice of Exception pointers and composes a suitable error. If all elements of the slice are either nil or OK, a nil is returned. If there is exactly non-nil non-OK Exception, it is returned. Otherwise, a PipelineError built from the slice is returned, with nil items turned into OK's for easier access from elvishscript.
func NewExternalCmdExit ¶
func NewExternalCmdExit(name string, ws syscall.WaitStatus, pid int) error
func ParseAndFixListIndex ¶ added in v0.3.0
ParseAndFixListIndex parses a list index and returns whether the index is a slice and "real" (-1 becomes n-1) indicies. It throws errors when the index is invalid or out of range.
func ParseAndFixVariable ¶ added in v0.4.0
ParseAndFixVariable parses a variable name. It "fixes" $@ to $@args.
func ParseVariableQName ¶ added in v0.5.0
func ParseVariableSplice ¶ added in v0.5.0
func ScanArgs ¶ added in v0.8.0
func ScanArgs(s []Value, args ...interface{})
ScanArgs scans arguments into pointers to supported argument types. If the arguments cannot be scanned, an error is thrown.
func ScanArgsAndOptionalIterate ¶ added in v0.8.0
ScanArgsAndOptionalIterate is like ScanArgs, but the argument can contain an optional iterable value at the end. The return value is a function that iterates the iterable value if it exists, or the input otherwise.
func ScanArgsVariadic ¶ added in v0.8.0
func ScanArgsVariadic(s []Value, args ...interface{})
ScanArgsVariadic is like ScanArgs, but the last element of args should be a pointer to a slice, and the rest of arguments will be scanned into it.
func ScanOptsToStruct ¶ added in v0.10.0
ScanOptsToStruct scan options from a map like ScanOpts except the destination is a struct whose fields correspond to the options to be parsed. A field named FieldName corresponds to the option named field-name, unless the field has a explicit "name" tag.
func ShouldBeBool ¶ added in v0.6.0
func ShouldBeFn ¶ added in v0.6.0
func ShouldBeList ¶ added in v0.6.0
func ShouldBeMap ¶ added in v0.6.0
Types ¶
type Assocer ¶ added in v0.10.0
Assocer is anything tha can return a slightly modified version of itself as a new Value.
type BlackholeVariable ¶ added in v0.10.0
type BlackholeVariable struct{}
BlackholeVariable represents a blackhole variable. Assignments to a blackhole variable will be discarded, and getting a blackhole variable raises an error.
func (BlackholeVariable) Get ¶ added in v0.10.0
func (bv BlackholeVariable) Get() Value
func (BlackholeVariable) Set ¶ added in v0.10.0
func (bv BlackholeVariable) Set(Value)
type Booler ¶
type Booler interface {
Bool() bool
}
Booler is anything that can be converted to a bool.
type BuiltinFn ¶
type BuiltinFn struct { Name string Impl BuiltinFnImpl }
BuiltinFn is a builtin function.
type BuiltinFnImpl ¶ added in v0.10.0
func WrapStringToString ¶ added in v0.9.0
func WrapStringToString(f func(string) string) BuiltinFnImpl
func WrapStringToStringError ¶ added in v0.9.0
func WrapStringToStringError(f func(string) (string, error)) BuiltinFnImpl
type Callable ¶ added in v0.7.0
Callable is anything may be called on an evalCtx with a list of Value's.
type CallableValue ¶ added in v0.7.0
type Closure ¶
type Closure struct { ArgNames []string // The name for the rest argument. If empty, the function has fixed arity. RestArg string OptNames []string OptDefaults []Value Op Op Captured map[string]Variable SourceName string Source string }
Closure is a closure defined in elvish script.
type CompilationError ¶ added in v0.6.0
type CompilationError struct { Message string Context util.SourceContext }
CompilationError represents a compilation error and can pretty print it.
func (*CompilationError) Error ¶ added in v0.6.0
func (ce *CompilationError) Error() string
func (*CompilationError) Pprint ¶ added in v0.6.0
func (ce *CompilationError) Pprint(indent string) string
Pprint pretty-prints a compilation error.
type Dissocer ¶ added in v0.10.0
Assocer is anything tha can return a slightly modified version of itself with the specified key removed, as a new value.
type Editor ¶ added in v0.4.0
Editor is the interface that the line editor has to satisfy. It is needed so that this package does not depend on the edit package.
type EnvList ¶ added in v0.10.0
EnvList is a variable whose value is constructed from an environment variable by splitting at colons. Changes to it are also propagated to the corresponding environment variable. Its elements cannot contain colons or \0; attempting to put colon or \0 in its elements will result in an error.
type Equaler ¶ added in v0.10.0
type Equaler interface {
Equal(interface{}) bool
}
Equaler is anything that knows how to compare itself against other values.
type EvalCtx ¶
type EvalCtx struct { *Evaler // contains filtered or unexported fields }
EvalCtx maintains an Evaler along with its runtime context. After creation an EvalCtx is seldom modified, and new instances are created when needed.
func NewTopEvalCtx ¶
NewTopEvalCtx creates a top-level evalCtx.
func (*EvalCtx) CheckInterrupts ¶ added in v0.10.0
func (ec *EvalCtx) CheckInterrupts()
CheckInterrupts checks whether there has been an interrupt, and throws ErrInterrupted if that is the case
func (*EvalCtx) ExecAndUnwrap ¶ added in v0.10.0
func (ctx *EvalCtx) ExecAndUnwrap(desc string, op ValuesOp) ValuesUnwrapper
ExecAndUnwrap executes a ValuesOp and creates an Unwrapper for the obtained values.
func (*EvalCtx) InputChan ¶ added in v0.10.0
InputChan returns a channel from which input can be read.
func (*EvalCtx) Interrupts ¶ added in v0.5.0
func (ec *EvalCtx) Interrupts() <-chan struct{}
Interrupts returns a channel that is closed when an interrupt signal comes.
func (*EvalCtx) IterateInputs ¶
IterateInputs calls the passed function for each input element.
func (*EvalCtx) OutputChan ¶
OutputChan returns a channel onto which output can be written.
func (*EvalCtx) OutputFile ¶ added in v0.9.0
OutputFile returns a file onto which output can be written.
func (*EvalCtx) PCaptureOutput ¶
func (*EvalCtx) PCaptureOutputInner ¶ added in v0.10.0
func (*EvalCtx) PEval ¶
PEval evaluates an op in a protected environment so that calls to errorf are wrapped in an Error.
func (*EvalCtx) ResolveVar ¶
ResolveVar resolves a variable. When the variable cannot be found, nil is returned.
type Evaler ¶
type Evaler struct { Global Namespace Modules map[string]Namespace Daemon *api.Client ToSpawn *daemon.Daemon Editor Editor DataDir string // contains filtered or unexported fields }
Evaler is used to evaluate elvish sources. It maintains runtime context shared among all evalCtx instances.
func NewEvaler ¶
func NewEvaler(daemon *api.Client, toSpawn *daemon.Daemon, dataDir string, extraModules map[string]Namespace) *Evaler
NewEvaler creates a new Evaler.
func (*Evaler) Compile ¶
Compile compiles elvish code in the global scope. If the error is not nil, it always has type CompilationError.
func (*Evaler) EachExternal ¶ added in v0.6.0
EachExternal calls f for each name that can resolve to an external command.
func (*Evaler) Eval ¶
Eval sets up the Evaler with standard ports and evaluates an Op. The supplied name and text are used in diagnostic messages.
func (*Evaler) EvalWithPorts ¶ added in v0.9.0
EvalWithPorts sets up the Evaler with the given ports and evaluates an Op. The supplied name and text are used in diagnostic messages.
func (*Evaler) Search ¶
Search tries to resolve an external command and return the full (possibly relative) path.
func (*Evaler) SourceText ¶
SourceText evaluates a chunk of elvish source.
type Exception ¶ added in v0.6.0
type Exception struct { Cause error Traceback *util.SourceContext }
Exception represents an elvish exception. It is both a Value accessible to elvishscript, and the type of error returned by public facing evaluation methods like (*Evaler)PEval.
type ExternalCmd ¶
type ExternalCmd struct {
Name string
}
ExternalCmd is an external command.
func (ExternalCmd) Call ¶
func (e ExternalCmd) Call(ec *EvalCtx, argVals []Value, opts map[string]Value)
Call calls an external command.
func (ExternalCmd) Equal ¶ added in v0.10.0
func (e ExternalCmd) Equal(a interface{}) bool
func (ExternalCmd) Hash ¶ added in v0.10.0
func (e ExternalCmd) Hash() uint32
func (ExternalCmd) Kind ¶
func (ExternalCmd) Kind() string
func (ExternalCmd) Repr ¶
func (e ExternalCmd) Repr(int) string
type ExternalCmdExit ¶
type ExternalCmdExit struct { syscall.WaitStatus CmdName string Pid int }
ExternalCmdExit contains the exit status of external commands. If the command was stopped rather than terminated, the Pid field contains the pid of the process.
func FakeExternalCmdExit ¶
func FakeExternalCmdExit(name string, exit int, sig syscall.Signal) ExternalCmdExit
func (ExternalCmdExit) Error ¶
func (exit ExternalCmdExit) Error() string
type GlobPattern ¶
GlobPattern is en ephemeral Value generated when evaluating tilde and wildcards.
func (GlobPattern) Equal ¶ added in v0.10.0
func (gp GlobPattern) Equal(a interface{}) bool
func (GlobPattern) Hash ¶ added in v0.10.0
func (gp GlobPattern) Hash() uint32
func (GlobPattern) Index ¶
func (gp GlobPattern) Index(modifiers []Value) []Value
func (GlobPattern) Kind ¶
func (GlobPattern) Kind() string
func (GlobPattern) Repr ¶
func (gp GlobPattern) Repr(int) string
type Hasher ¶ added in v0.10.0
type Hasher interface {
Hash() uint32
}
Hasher is anything that knows how to compute its hash code.
type IndexOneAssocer ¶ added in v0.10.0
type IndexOneAssocer interface { IndexOneer Assocer }
IndexOneAssocer combines IndexOneer and Assocer.
type IndexOneer ¶
IndexOneer is anything that can be indexed by one Value and yields one Value.
type IndexOneerIndexer ¶
type IndexOneerIndexer struct {
IndexOneer
}
IndexOneerIndexer adapts an IndexOneer to an Indexer by calling all the indicies on the IndexOner and collect the results.
func (IndexOneerIndexer) Index ¶
func (ioi IndexOneerIndexer) Index(vs []Value) []Value
type IterableValue ¶ added in v0.7.0
type IterateKeyer ¶ added in v0.6.0
IterateKeyer is anything with keys that can be iterated.
type IteratePairer ¶ added in v0.10.0
IteratePairer is anything with key-value pairs that can be iterated.
type LValuesOp ¶
type LValuesOp struct { Func LValuesOpFunc Begin, End int }
LValuesOp is an operation on an EvalCtx that produce Variable's.
type LValuesOpFunc ¶
LValuesOpFunc is the body of an LValuesOp.
type List ¶
type List struct {
// contains filtered or unexported fields
}
List is a list of Value's.
func NewListFromVector ¶ added in v0.9.0
func (List) MarshalJSON ¶
type ListLike ¶
type ListLike interface { Lener Iterable IndexOneer }
type ListReprBuilder ¶
type ListReprBuilder struct { Indent int // contains filtered or unexported fields }
ListReprBuilder helps to build Repr of list-like Values.
func (*ListReprBuilder) String ¶
func (b *ListReprBuilder) String() string
func (*ListReprBuilder) WriteElem ¶
func (b *ListReprBuilder) WriteElem(v string)
type Map ¶
type Map struct {
// contains filtered or unexported fields
}
Map is a map from string to Value.
func ConvertToMap ¶ added in v0.10.0
ConvertToMap converts a native Go map to Map.
func (Map) IterateKey ¶ added in v0.6.0
func (Map) MarshalJSON ¶
type MapLike ¶
type MapLike interface { Lener IndexOneer Assocer HasKeyer IterateKeyer IteratePairer }
type MapReprBuilder ¶
type MapReprBuilder struct {
ListReprBuilder
}
MapReprBuilder helps building the Repr of a Map. It is also useful for implementing other Map-like values. The zero value of a MapReprBuilder is ready to use.
func (*MapReprBuilder) String ¶
func (b *MapReprBuilder) String() string
type Opt ¶ added in v0.8.0
Opt is a data structure for an option that is intended to be used in ScanOpts.
type PipelineError ¶ added in v0.6.0
type PipelineError struct {
Errors []*Exception
}
PipelineError represents the errors of pipelines, in which multiple commands may error.
func (PipelineError) Error ¶ added in v0.6.0
func (pe PipelineError) Error() string
func (PipelineError) Repr ¶ added in v0.6.0
func (pe PipelineError) Repr(indent int) string
type PwdVariable ¶
type PwdVariable struct {
// contains filtered or unexported fields
}
PwdVariable is a variable whose value always reflects the current working directory. Setting it changes the current working directory.
func (PwdVariable) Get ¶
func (PwdVariable) Get() Value
func (PwdVariable) Set ¶
func (pwd PwdVariable) Set(v Value)
type Rat ¶
type Rat struct {
// contains filtered or unexported fields
}
Rat is a rational number.
type Reprer ¶
type Reprer interface { // Repr returns a string that represents a Value. The string either be a // literal of that Value that is preferably deep-equal to it (like `[a b c]` // for a list), or a string enclosed in "<>" containing the kind and // identity of the Value(like `<fn 0xdeadcafe>`). // // If indent is at least 0, it should be pretty-printed with the current // indentation level of indent; the indent of the first line has already // been written and shall not be written in Repr. The returned string // should never contain a trailing newline. Repr(indent int) string }
Reprer is anything with a Repr method.
type String ¶
type String string
String is just a string.
type Stringer ¶
type Stringer interface {
String() string
}
Stringer is anything that can be converted to a string.
type Struct ¶
type Struct struct { Descriptor *StructDescriptor Fields []Value }
Struct is like a Map with fixed keys.
func (*Struct) Equal ¶ added in v0.10.0
Equal returns true if the rhs is MapLike and all pairs are equal.
func (*Struct) IterateKey ¶ added in v0.6.0
func (*Struct) IteratePair ¶ added in v0.10.0
type StructDescriptor ¶ added in v0.10.0
type StructDescriptor struct {
// contains filtered or unexported fields
}
func NewStructDescriptor ¶ added in v0.10.0
func NewStructDescriptor(fields ...string) *StructDescriptor
type Value ¶
Value is an elvish value.
func FromJSONInterface ¶
func FromJSONInterface(v interface{}) Value
FromJSONInterface converts a interface{} that results from json.Unmarshal to a Value.
type ValueUnwrapper ¶ added in v0.10.0
type ValueUnwrapper struct {
// contains filtered or unexported fields
}
ValueUnwrapper unwraps one Value.
func (ValueUnwrapper) Any ¶ added in v0.10.0
func (u ValueUnwrapper) Any() Value
func (ValueUnwrapper) Callable ¶ added in v0.10.0
func (u ValueUnwrapper) Callable() Callable
func (ValueUnwrapper) FdOrClose ¶ added in v0.10.0
func (u ValueUnwrapper) FdOrClose() int
func (ValueUnwrapper) Int ¶ added in v0.10.0
func (u ValueUnwrapper) Int() int
func (ValueUnwrapper) Iterable ¶ added in v0.10.0
func (u ValueUnwrapper) Iterable() Iterable
func (ValueUnwrapper) NonNegativeInt ¶ added in v0.10.0
func (u ValueUnwrapper) NonNegativeInt() int
func (ValueUnwrapper) String ¶ added in v0.10.0
func (u ValueUnwrapper) String() String
type ValuesOp ¶
type ValuesOp struct { Func ValuesOpFunc Begin, End int }
ValuesOp is an operation on an EvalCtx that produce Value's.
type ValuesUnwrapper ¶ added in v0.10.0
type ValuesUnwrapper struct {
// contains filtered or unexported fields
}
ValuesUnwrapper unwraps []Value.
func (ValuesUnwrapper) One ¶ added in v0.10.0
func (u ValuesUnwrapper) One() ValueUnwrapper
One unwraps the value to be exactly one value.
type Variable ¶
Variable represents an elvish variable.
func MakeRoVariableFromCallback ¶ added in v0.3.0
MakeRoVariableFromCallback makes a read-only variable from a get callback.
func MakeVariableFromCallback ¶ added in v0.3.0
MakeVariableFromCallback makes a variable from a set callback and a get callback.
func NewPtrVariable ¶
func NewPtrVariableWithValidator ¶ added in v0.3.0
func NewRoVariable ¶
Notes ¶
Bugs ¶
We rely on the fact that os.Unsetenv always returns nil.
When evaluating closures, async access to global variables and ports can be problematic.
Source Files ¶
- args_walker.go
- boilerplate.go
- bool.go
- builtin_fn.go
- builtin_namespace.go
- builtin_special.go
- chdir.go
- closure.go
- compilation_error.go
- compile_lvalue.go
- compile_op.go
- compile_value.go
- compiler.go
- daemon_namespace.go
- editor.go
- embedded_modules.go
- env_list.go
- eval.go
- exception.go
- external_cmd.go
- file.go
- glob.go
- interrupts.go
- list.go
- listlike.go
- map.go
- maplike.go
- must.go
- pipe.go
- port.go
- pwd.go
- rat.go
- search.go
- shared.go
- string.go
- struct.go
- unwrap.go
- util.go
- validator.go
- value.go
- variable.go