Timothy Sample
eae9857f5e
Add case and cond support
...
* geesh/eval.scm (eval-sh) Handle '<sh-case>' and '<sh-cond>' cases.
2018-12-05 16:08:09 -05:00
Timothy Sample
4d6e91565e
Add while and until loop support
...
* geesh/eval.scm (eval-sh): Handle '<sh-while>' and '<sh-until>'
cases.
2018-12-05 16:08:09 -05:00
Timothy Sample
1601a8d8b3
Add pattern returns from 'expand-word'
...
* geesh/word.scm (expand-word): Change the 'split?' keyword argument
to 'output', accepting one of 'fields', 'string', or 'pattern'.
(word->qword): Update calls.
* geesh/eval.scm (eval-word): Same as 'expand-word' above.
(eval-redir): Update call.
(eval-sh): Update calls.
2018-12-05 16:08:09 -05:00
Timothy Sample
76bbe01edc
Let the 'exec' built-in manipulate files
...
* geesh/shell.scm (sh:set-redirects): New public function.
* geesh/eval.scm (eval-sh): Use it to handle 'exec' specially when
called with redirects but no arguments.
2018-12-05 16:08:09 -05:00
Timothy Sample
5a4816dabf
Add 'exec-let' support
...
* geesh/eval.scm (eval-sh): Handle '<sh-exec-let>'.
2018-12-05 16:08:09 -05:00
Timothy Sample
d0e5c3f5ae
Handle redirect errors in 'eval'
...
* geesh/eval.scm (eval-sh): Handle redirect errors.
2018-12-05 16:08:09 -05:00
Timothy Sample
3fad06a756
Add function definition support
...
* geesh/eval.scm (eval-sh): Handle '<sh-defun>'.
2018-12-03 20:19:56 -05:00
Timothy Sample
2db7833d61
Add for-loop support
...
* geesh/eval.scm (eval-sh): Handle '<sh-for>'.
2018-12-03 20:13:23 -05:00
Timothy Sample
46ae7129d5
Add boolean support
...
* geesh/eval.scm (eval-sh): Handle '<sh-and>', '<sh-not>', and '<sh-or>'.
2018-12-03 20:12:22 -05:00
Timothy Sample
211e73ca43
Add pipeline support
...
* geesh/eval.scm (eval-sh): Handle '<sh-pipeline>'.
2018-12-03 20:11:28 -05:00
Timothy Sample
a6ceb8f3f2
Add command substitution support
...
* geesh/eval.scm (eval-word): Parameterize 'eval-cmd-sub' so that the
word module can substitute commands.
2018-12-03 20:07:06 -05:00
Timothy Sample
3148f66a21
Add subshell support
...
* geesh/eval.scm (exps->thunk): New function.
(eval-sh): Handle '<sh-subshell>'.
2018-12-03 20:04:55 -05:00
Timothy Sample
b5e77fc27b
Add support for '<sh-begin>'
...
* geesh/eval.scm (eval-sh): Handle '<sh-begin>'.
2018-11-28 23:07:03 -05:00
Timothy Sample
d171a8cd15
Add support for setting variables
...
* geesh/eval.scm (eval-sh): Handle '<sh-set!>' forms.
2018-11-28 23:07:03 -05:00
Timothy Sample
5384009f75
Add redirect support
...
* geesh/eval.scm (eval-redir): New function.
(exp->thunk): New function.
(eval-sh): Handle '<sh-with-redirects>' forms.
2018-11-28 23:07:03 -05:00
Timothy Sample
83c5d603ee
Add eval module
...
* geesh/eval.scm: New file.
* Makefile.am: Add it.
2018-11-28 23:07:03 -05:00