Kelvin Sherlock
298c601300
include trailing text with the ) token so redirection works correctly
2022-11-23 18:18:32 -05:00
Kelvin Sherlock
ce1a36eba5
add regular expression support for evaluate, if, etc.
...
eg:
evaluate abc =~ /(abc)®4/ # sets the '@4' environment variable.
evaluate abc !~ /[aA]bc/
MPW regular expressions are converted to c++11 std::regex regular expressions and evaluated.
Sadly, the // regular expression syntax interferes with unix-paths (if the / count is odd). quoting or ∂-escaping the /s is therefore necessary.
file globbing is not yet implemented.
2022-11-22 17:22:49 -05:00
Kelvin Sherlock
f125b533f7
Squashed commit of the following:
...
commit f0944a89f27e44b1764988806e655f09764e80df
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date: Tue Aug 30 12:24:08 2016 -0400
exit throws execution of input error w/ possible 0 value. catch it.
commit 9e7f9c1ae049aa26513413f4767268b47ee22e98
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date: Tue Aug 30 12:23:21 2016 -0400
builtins - more consistent argument handling.
commit be4c1c902f5a3a3f01e92ae52c7d6cc5d8731b65
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date: Tue Aug 30 12:23:01 2016 -0400
.
commit 68d0c29fec112c6e7bc3a672b41eb7eb758a8941
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date: Tue Aug 30 12:22:51 2016 -0400
exit command.
commit 25b0a7f7da9220b03026123bb5072c2da1d73fde
Author: Kelvin Sherlock <ksherlock@gmail.com>
Date: Tue Aug 30 12:21:16 2016 -0400
builtin quit command.
2016-08-30 12:25:43 -04:00
Kelvin Sherlock
33dd3228f8
update the parser/lexer to make it more reusable. For example, subshells are now handled.
2016-08-16 16:47:20 -04:00
Kelvin Sherlock
56f945ce29
simplify argv0 lookup a little bit.
2016-07-28 16:30:17 -04:00
Kelvin Sherlock
0524d10590
parse | pipe lines.
2016-07-26 14:20:11 -04:00
Kelvin Sherlock
c28cfb0710
rewrite phase-2 lexical analysis. It splits on ; ( ) || && and I've deferred the invalid string checks until later.
2016-07-23 11:54:46 -04:00
Kelvin Sherlock
b4db751cbe
fix parenthesis processing. left-paren is only a command when it's argv0. Otherwise it's a normal character. (but must be balanced with right-paren to know when right-paren is a separator. ).
2016-06-26 13:04:32 -04:00
Kelvin Sherlock
ef99bb40de
version bump
2016-06-16 21:55:39 -04:00
Kelvin Sherlock
92ddf18766
FOR var IN ... ; END support.
2016-06-16 00:04:29 -04:00
Kelvin Sherlock
322a32af65
support for Loop ... End, Break, and Continue.
2016-06-15 23:01:03 -04:00
Kelvin Sherlock
f58f6d4115
fixes for travis ci / abort support.
2016-02-05 12:42:22 -05:00
Kelvin Sherlock
475bd392ad
process vector of commands all at once.
2016-02-02 16:20:32 -05:00
Kelvin Sherlock
5723656988
lots of updates!
2016-02-01 20:38:29 -05:00
Kelvin Sherlock
1219a40d07
phase parsing improvements
2016-01-31 00:41:02 -05:00
Kelvin Sherlock
bc2a530355
update phase2
2016-01-30 12:44:42 -05:00
Kelvin Sherlock
2157dc0ba8
pipe-lined lexing/parsing.
2016-01-29 22:23:14 -05:00