Commit Graph

17 Commits

Author SHA1 Message Date
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