Commit Graph

131 Commits

Author SHA1 Message Date
Cheer Xiao
1d59566aaf Implement module file search mechanism for "use"
This resolves issue #44.
2015-02-23 18:36:46 +01:00
Cheer Xiao
1ee7200cdd eval: captured -> up
This agrees with the more common term "upvalue" for closures.
2015-02-10 12:48:56 +01:00
Cheer Xiao
c7054dcbcd Implement if as a special form
This concludes issue #14.
2015-02-10 11:43:01 +01:00
Cheer Xiao
9fadb23e7e eval: Export less, document more 2015-01-26 19:05:42 +01:00
Cheer Xiao
b20b0acf9d Make store.Store part of Evaluator 2015-01-26 16:43:32 +01:00
Cheer Xiao
b9c20d4e45 Eliminate String() from Value interface 2015-01-26 16:21:13 +01:00
Cheer Xiao
b10cf7ea1d Environment variables are now accessed via the env: namespace. 2015-01-25 00:05:47 +01:00
Cheer Xiao
c6fb52c39d Variable is now an interface.
The former Variable is now known as InternalVariable.
2015-01-24 23:40:34 +01:00
Cheer Xiao
d0740a7607 Implement local, captured and builtin namespaces 2015-01-23 01:27:51 +01:00
Cheer Xiao
3072e09d2f Add static type information to the variable in runtime. 2015-01-22 19:06:24 +01:00
Cheer Xiao
27a625387e Use exitus type to represent exit status. 2015-01-21 23:43:30 +01:00
Cheer Xiao
e143c65087 Implement and test fn properly as a special form 2015-01-21 18:06:14 +01:00
Cheer Xiao
1c9aa72b67 Test scope shadowing 2015-01-20 22:20:56 +01:00
Cheer Xiao
6b316a79d4 Fix and test variable enclosure of closure 2015-01-20 21:54:44 +01:00
Cheer Xiao
29c05aaf04 Implement and test closure argument passing
The dollar is now required in the parameter list.
2015-01-20 21:48:31 +01:00
Cheer Xiao
11c10b7457 Add test case for channel capture 2015-01-20 21:33:01 +01:00
Cheer Xiao
142c0f6bca Fix static type of Compound 2015-01-19 22:19:13 +01:00
Cheer Xiao
4651821da9 Revert to more human, albeit less compact syntax for var and set 2015-01-19 16:46:40 +01:00
Cheer Xiao
1ad8fcaa1f **.go: xiaq/elvish -> elves/elvish 2014-10-29 20:50:10 +01:00
Cheer Xiao
3c1fe5b579 Cosmetics 2014-09-25 23:47:27 +02:00
Cheer Xiao
91b16c3b54 eval: Also Test for eval errors 2014-09-25 23:43:52 +02:00
Cheer Xiao
dafd3155b1 Change the syntax of var/set forms. 2014-09-25 23:27:38 +02:00
Cheer Xiao
5cd0d675ce eval: Test status capture 2014-09-25 00:18:37 +02:00
Cheer Xiao
be27673a1e eval: Add test cases 2014-09-25 00:08:37 +02:00
Cheer Xiao
a3a7380021 eval: Add test cases
Coverage of eval is now 28.0% (was 2.6%).
2014-09-21 00:10:29 +02:00
Cheer Xiao
c97b662434 Remove unused func in test 2014-09-19 00:32:18 +02:00
Cheer Xiao
4adbce6171 eval: Value.{String Repr} no longer takes *Evaluator as arg 2014-04-30 13:33:43 +08:00
Cheer Xiao
b25e17fa26 Implement closure enclosure.
Scopes are now represented by map[string]*Value instead of map[string]Value,
allowing multiple scopes to share the same Value instance.
2014-03-30 10:32:06 +08:00
Cheer Xiao
f5d6fdc6da Make eval.Env zero value useful by populating it on use 2014-02-10 21:35:15 +08:00
Cheer Xiao
72bafcae3d I always forget to gofmt... 2014-01-29 21:17:04 +08:00
Cheer Xiao
e029bc4aea Add eval/eval_test.go (even more preliminary) 2014-01-28 15:02:48 +08:00