Commit Graph

638 Commits

Author SHA1 Message Date
Cheer Xiao
cc932baab5 eval: Evaluate dollar forms 2013-10-06 15:10:27 +08:00
Cheer Xiao
c925871ef4 parse: Always use *ListNode for Term's 2013-10-06 14:55:28 +08:00
Cheer Xiao
585e047ca5 parse: Introduce FactorNode to represent Factor 2013-10-06 14:27:00 +08:00
Cheer Xiao
4471583e1c eval: A little reorg 2013-10-05 00:38:18 +08:00
Cheer Xiao
c9d6a8f7ba eval: Evaluate terms as Cartesian products of factors 2013-10-05 00:38:07 +08:00
Cheer Xiao
a4301d195f Parse and evaluate factor of term list
Note: the evaluation is currently a stub.
2013-10-05 00:19:40 +08:00
Cheer Xiao
c9b29f6447 Implement parsing & evaluation of terms
What used to be terms are now just factors.
2013-10-04 23:57:49 +08:00
Cheer Xiao
526dc33aac eval: Update comment 2013-10-02 22:58:16 +08:00
Cheer Xiao
c33c1d56ea eval: Add builtin printchan 2013-10-02 22:56:56 +08:00
Cheer Xiao
dc71fe5bec eval: Close the pipe channel in builtin implementation 2013-10-02 22:56:34 +08:00
Cheer Xiao
f2ccd56f27 eval: Don't close pipe channels; document redir file closing 2013-10-02 22:55:50 +08:00
Cheer Xiao
80060cc269 eval: Let builtin implementations return a string 2013-10-02 22:44:28 +08:00
Cheer Xiao
376fece703 eval: Connect pipes in ExecPipeline; support channel pipes 2013-10-02 22:41:13 +08:00
Cheer Xiao
13049b3f34 eval: Distinguish &io{} and (*io)(nil) 2013-10-02 22:24:48 +08:00
Cheer Xiao
b4cdb39195 eval: Add builtin println
Needed for testing since \n is not yet implemented
2013-10-02 22:15:45 +08:00
Cheer Xiao
ffe86e7626 eval: Make some names private 2013-10-02 22:12:38 +08:00
Cheer Xiao
571f43eb53 eval: Support running builtins (chan IO still not supported yet) 2013-10-02 22:10:21 +08:00
Cheer Xiao
29061872c7 eval: Add builtin "print" 2013-10-02 22:10:07 +08:00
Cheer Xiao
39abd54013 eval: Update a comment 2013-10-02 21:57:41 +08:00
Cheer Xiao
5e7e5caadd eval: Use a channel of StateUpdate to keep track of command states.
This is more generic than returning pids, and is suitable for builtins.
2013-10-02 19:25:25 +08:00
Cheer Xiao
0838d80757 eval: Regard nil IO as closing as well 2013-10-02 18:50:57 +08:00
Cheer Xiao
0f726af1cf eval: Simpler IO handling.
Also, fdIO -> fileIO
2013-10-02 18:47:54 +08:00
Cheer Xiao
3b10b1d99e eval: Support evaluating builtin commands and structured pipes.
They cannot be executed, however...
2013-10-01 21:34:49 +08:00
Cheer Xiao
524b7669f1 eval: Fix env initing 2013-10-01 21:25:43 +08:00
Cheer Xiao
8d5e7ddfd4 eval: Cleanup 2013-09-28 15:56:44 +08:00
Cheer Xiao
939d9c74bb eval: Separate evalCommand func 2013-09-28 15:32:29 +08:00
Cheer Xiao
9a65a6ca89 eval: add builtinCommand struct 2013-09-28 14:45:07 +08:00
Cheer Xiao
b7e9833317 eval: Use intermediate command struct to build commands 2013-09-28 14:43:12 +08:00
Cheer Xiao
3613781db2 eval: Change ExecCommand to take additional cmdType arg 2013-09-28 11:29:52 +08:00
Cheer Xiao
a756e800bb eval: Remove outdated comment 2013-09-27 21:32:00 +08:00
Cheer Xiao
e5ea03e0c7 eval: FILE_{CLOSE,NONE} -> FD_NIL, add comment 2013-09-19 18:15:23 +08:00
Cheer Xiao
e6f0375f64 Use uintptr for fd in IO redirections.
IO redirections use os module now, which uses uintptr for fd.
2013-09-19 18:11:01 +08:00
Cheer Xiao
40b85fdf51 eval: Small fixes 2013-09-19 17:58:52 +08:00
Cheer Xiao
5458975198 eval: Connect the pipes
Also fixed an unclosed fd by using os.OpenFile instead of syscall.Open.
2013-09-19 17:52:38 +08:00
Cheer Xiao
f2d35b8c39 Evaluate pipeline. Pipes are not yet connected. 2013-09-19 13:20:55 +08:00
Cheer Xiao
cd43635cd3 eval: Little cleanup 2013-09-18 22:57:51 +08:00
Cheer Xiao
7fb680c98f eval: Use defer to close files in ExecCommand 2013-09-18 22:56:30 +08:00
Cheer Xiao
0789faf57f eval: Move evaluation & execution into package eval 2013-09-18 22:51:48 +08:00