Qi Xiao
d97c989219
Introduce edit:add-var and edit:add-vars.
...
This addresses #1138 .
2021-01-17 01:33:25 +00:00
Qi Xiao
56ceeedd21
pkg/eval: Store variable deletion information in *Ns.
...
This fixes #1213 .
2021-01-10 00:54:02 +00:00
Qi Xiao
9af4c83bf6
pkg/eval: Minor cleanups.
2021-01-05 16:05:34 +00:00
Qi Xiao
01612e291b
pkg/eval: Clean up closure call implementation.
...
- Remove reliance on scopeOp, concentrating all the scope for creating the local
scope in (*closure).call.
- Check options at the very beginning, and include all unsupported options in the
error.
2021-01-04 13:46:00 +00:00
Qi Xiao
6419f4524a
Implement namespaces using slices instead of maps.
...
More related improvements and cleanups will be done in followup commits.
This fixes #1139 .
2020-12-25 17:46:46 +00:00
Qi Xiao
2af7361bd5
pkg/eval: De-export Closure.
2020-09-04 22:18:50 +01:00
Qi Xiao
b04ea12d48
pkg/eval: Refactor effectOp and valuesOp, remove lvaluesOp.
...
* Make effectOp and valuesOp interfaces - implementations now handle the
range information themselves.
* Remove lvaluesOp; it is no longer used.
2020-08-22 19:57:11 +01:00
Qi Xiao
1e2ead56e2
pkg/eval: Rewrite the lvalue parsing code.
...
Also lift the restriction on rest variables and rest arguments - they may now
appear anywhere, as long as there is only one.
2020-08-20 13:15:00 +01:00
Qi Xiao
5874863991
pkg/eval: Use pseudo-structmap to implement closure introspection.
2020-06-29 00:32:00 +01:00
Qi Xiao
20979b44a2
pkg/parse: Use Source values, not pointers.
...
The Source type is small enough that using values is likely more efficient.
2020-04-25 19:22:38 +01:00
Qi Xiao
b8505c7065
pkg/eval/source.go -> pkg/parse/source.go.
2020-04-25 18:26:17 +01:00
Qi Xiao
07a9e781a6
pkg/eval: Report detailed ArityMismatch errors.
2020-04-13 00:47:33 +01:00
Qi Xiao
ffa9727f14
pkg/eval: Remove Frame.srcRange.
...
Maintaining a state of current range is error-prone. Instead, always keep track
of range information explicitly.
2020-04-09 20:44:09 +01:00
Qi Xiao
11919e83ec
[cleanup] pkg/eval: use diag.Ranging in op types.
2020-03-28 21:33:55 +00:00
Qi Xiao
b3a48ed510
pkg/eval: Revamp Source.
2020-01-11 03:01:30 +00:00
Qi Xiao
e45fdf7228
Move all libraries to new pkg/.
2019-12-23 20:00:59 +00:00