delve/pkg/terminal
Alessandro Arzilli ed35dce7a3 terminal: adds embedded scripting language (#1466)
If the argument of 'source' ends in '.star' it will be interpreted as a
starlark script.
If the argument of 'source' is '-' an interactive starlark repl will be
started.

For documentation on how the starlark execution environment works see
Documentation/cli/starlark.md.

The starlark API is autogenerated from the JSON-RPC API by
script/gen-starlark-bindings.go.
In general for each JSON-RPC API a single global starlark function is
created.
When one of those functions is called (through a starlark script) the
arguments are converted to go structs using reflection. See
unmarshalStarlarkValue in pkg/terminal/starbind/conv.go.
If there are no type conversion errors the JSON-RPC call is executed.
The return value of the JSON-RPC call is converted back into a starlark
value by interfaceToStarlarkValue (same file):

* primitive types (such as integers, floats or strings) are converted
  by creating the corresponding starlark value.
* compound types (such as structs and slices) are converted by wrapping
  their reflect.Value object into a type that implements the relevant
  starlark interfaces.
* api.Variables are treated specially so that their Value field can be
  of the proper type instead of always being a string.

Implements #1415, #1443
2019-07-02 10:55:27 -07:00
..
starbind terminal: adds embedded scripting language (#1466) 2019-07-02 10:55:27 -07:00
command_test.go terminal: adds embedded scripting language (#1466) 2019-07-02 10:55:27 -07:00
command.go terminal: adds embedded scripting language (#1466) 2019-07-02 10:55:27 -07:00
config.go *: Update import name to github.com/go-delve/delve 2019-01-04 19:43:13 +01:00
disasmprint.go *: Update import name to github.com/go-delve/delve 2019-01-04 19:43:13 +01:00
docgen.go *: Update import name to github.com/go-delve/delve 2019-01-04 19:43:13 +01:00
starlark_test.go terminal: adds embedded scripting language (#1466) 2019-07-02 10:55:27 -07:00
starlark.go terminal: adds embedded scripting language (#1466) 2019-07-02 10:55:27 -07:00
terminal_other.go Move top-level packages into pkg 2017-02-08 12:17:19 -08:00
terminal_test.go *: Update import name to github.com/go-delve/delve 2019-01-04 19:43:13 +01:00
terminal_windows.go Move top-level packages into pkg 2017-02-08 12:17:19 -08:00
terminal.go terminal: adds embedded scripting language (#1466) 2019-07-02 10:55:27 -07:00