Commit Graph

3591 Commits

Author SHA1 Message Date
Cheer Xiao
84cdc6c50f parse: Remove outdated TODO 2013-10-06 13:07:45 +08:00
Cheer Xiao
e4db8e7d0d parse: Lex comments as ItemSpace (until we need fancier comment handling) 2013-10-06 10:45:16 +08:00
Cheer Xiao
7b20e5f45b parse: Fix unquoting of ItemSingleQuoted and termination of bareword
ItemSingleQuoted is now quoted with ` now.
2013-10-05 09:53:58 +08:00
Cheer Xiao
4a78397c7f parse: Lex (but not yet parse) ItemComment
Comments can only start at start of line or after spaces. Thus `echo a#`
doesn't have a comment.
2013-10-05 09:40:26 +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
b5319c9528 parse: Introduce ItemList node; allow empty pipeline 2013-10-05 00:11:28 +08:00
Cheer Xiao
755ff1a26e parse: Backquote is now used for single-quoting 2013-10-04 23:59:57 +08:00
Cheer Xiao
a24ad63573 parse: Terminate barewords at " ' too 2013-10-04 23:59:08 +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
9ea3d77043 parse: Document the grammar 2013-10-04 23:49:00 +08:00
Cheer Xiao
77342c2bd4 parse: Parse single-rune tokens more compactly 2013-10-04 23:25:30 +08:00
Cheer Xiao
1e0cebf749 parse: More compact use of switch/case 2013-10-04 23:21:14 +08:00
Cheer Xiao
257bb658e8 parse: Add tokens LParen and RParen 2013-10-04 23:18:52 +08:00
Cheer Xiao
a69cc93bec parse: Stricter rule for bareword termination 2013-10-04 23:15:17 +08:00
Cheer Xiao
bd584bcd3d edit: Implement editor actions as functions 2013-10-03 22:43:12 +08:00
Cheer Xiao
b518e84bab edit: Make prompt, line, tip and dot part of Editor 2013-10-03 22:20:27 +08:00
Cheer Xiao
ba15b37dc1 edit: Comment, cleanup 2013-10-03 22:10:57 +08:00
Cheer Xiao
55a3d41c00 edit: Support Ctrl-K 2013-10-03 22:00:40 +08:00
Cheer Xiao
f328cc6094 edit: Implement Left and Right 2013-10-03 21:59:23 +08:00
Cheer Xiao
b217131a13 edit: point -> dot, in spirit of acme (or maybe sam...) 2013-10-03 21:57:44 +08:00
Cheer Xiao
cb6ec7628b edit: Point-aware editor operations 2013-10-03 21:56:54 +08:00
Cheer Xiao
1598c02eaa eval: Keep the point as index into string 2013-10-03 21:52:46 +08:00
Cheer Xiao
5586825704 edit: Comments 2013-10-03 21:44:37 +08:00
Cheer Xiao
151708212e edit: Remove Editor.refresh 2013-10-03 21:37:43 +08:00
Cheer Xiao
84ff82d249 edit: Implement point (cursor as seen by user) 2013-10-03 21:37:07 +08:00
Cheer Xiao
f142655b09 edit: Let the writer handle \n in text; drop unprintable runes 2013-10-03 21:29:46 +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
e859c76275 main: Use heuristics to suppress excessive state update messages 2013-10-02 22:42:08 +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