Commit Graph

969 Commits

Author SHA1 Message Date
Qi Xiao
5f3c41de5d Rename a validator. 2017-02-09 16:59:32 -08:00
Qi Xiao
450867eb17 Ditch eval.BoolExposer in favor of a variable with validator. 2017-02-09 16:54:37 -08:00
Qi Xiao
2f9f28f296 edit.MustBeFn -> eval.ShouldBeFn 2017-02-09 16:49:44 -08:00
Qi Xiao
16bc9c5a81 util.AllExecutables -> EachExecutable; callback instead of channel. 2017-02-09 15:57:16 -08:00
Qi Xiao
ed76fa5bc6 Set compiler position info in autogenerated boilerplate. 2017-02-04 15:13:31 -08:00
Qi Xiao
6776cb00e4 Fix compilation error report of Primary nodes. 2017-02-04 15:06:23 -08:00
Qi Xiao
404d5d22cc Add a newline when notifying about bg job directly into terminal. 2017-02-04 14:04:25 -08:00
Qi Xiao
3cedb306b3 Correct a filename, compile-go.go should be compile-op.go. 2017-02-04 09:27:08 -08:00
Qi Xiao
7da036e187 File renames, preferring dashes. 2017-02-03 20:53:22 -08:00
Qi Xiao
b7a2e7d0df Add a spacey assignment syntax.
This fixes #294.
2017-02-03 10:06:11 -08:00
Qi Xiao
656d3a216a Change no-match test of wildcards. 2017-02-02 16:15:18 -08:00
Qi Xiao
fc411c9c76 Support character sets, ranges and classes in wildcard modifiers.
This fixes #298.
2017-02-02 15:24:08 -08:00
Qi Xiao
43590f1709 Rename the modifier again to match-hidden. 2017-02-02 13:54:22 -08:00
Qi Xiao
70535f540e Glob modifier "all" -> "include-hidden". 2017-02-02 13:51:44 -08:00
Qi Xiao
aa9e2468a8 Make globs fail by default unless the pattern has a nomatch-ok modifer.
This fixes #318.
2017-02-02 13:23:20 -08:00
Qi Xiao
b855b29174 Fix last commit. 2017-02-02 13:13:08 -08:00
Qi Xiao
b0f7b41ce4 Make doGlob less stupid. 2017-02-02 13:00:48 -08:00
Qi Xiao
f2a58f53ca Make glob.Segment an interface. 2017-02-02 11:15:42 -08:00
Qi Xiao
22562555ee Find libraries in ~/.elvish/lib when use'ing. 2017-02-01 12:03:54 -08:00
Qi Xiao
216dad636e Print causes when pprinting PipelineError. 2017-01-29 18:35:18 +00:00
Qi Xiao
571e0879d0 Make util.Pprinter take an indent string. 2017-01-29 18:20:35 +00:00
Qi Xiao
9281abad90 Don't make PipelineError when only one command in a pipeline errs. 2017-01-29 18:19:31 +00:00
Qi Xiao
ddbbfb9d33 Clean up exception representation.
Exceptions are now already represented by eval.Exception, which consist of an
error and a traceback. eval.Error is dropped.
2017-01-29 02:30:04 +00:00
Qi Xiao
eb00571fae Add comments on error type. 2017-01-29 01:12:51 +00:00
Qi Xiao
568d664ded util.Exception -> .Thrown 2017-01-29 00:51:22 +00:00
Qi Xiao
ee81f0680c Use specific error types for parse, compile and eval.
Generic error types in util are ditched.
2017-01-28 14:39:52 +00:00
Qi Xiao
88b912bda4 Fix test case. 2017-01-28 14:23:26 +00:00
Qi Xiao
a2fcfcfae3 Remove store.DataDir and store the data dir in Evaler. 2017-01-27 21:25:32 +00:00
Qi Xiao
04e6c5c4b7 Ignore TTOU when eval'ing.
This fixes #314.
2017-01-17 00:42:16 +01:00
Christian Muehlhaeuser
764c61e3c4 Background processes get their own pgid (#309) 2017-01-13 14:50:14 +00:00
Qi Xiao
d32538efec Add builtins {has,search}-external for searching external commands.
This fixes #291.
2016-12-05 09:19:19 +08:00
Qi Xiao
410354b1df Add an experimental -ifaddrs builtin. 2016-11-06 10:47:20 +01:00
Qi Xiao
36271874d8 Remove elvish-stub. 2016-10-26 17:36:26 +08:00
Qi Xiao
590c5847f4 Fix eval.captureOutput to deal with exception correctly.
This fixes #274.
2016-10-22 21:02:27 +08:00
Qi Xiao
d44b3154f7 Separate e: and E:.
This fixes #285.
2016-10-18 22:17:15 +08:00
Qi Xiao
86993194ad Use sync.WaitGroup to synchronize pipelines. 2016-10-15 13:30:34 +08:00
Qi Xiao
dad5d9b6bc A pipeline's verdict is now that of the last form. 2016-10-15 13:18:14 +08:00
Qi Xiao
6a450a4b60 override-wcwidth -> -override-wcwidth. 2016-10-14 18:22:50 +08:00
Qi Xiao
6ea25a6822 Add a -time builtin. 2016-10-14 18:22:30 +08:00
Qi Xiao
ee2b062e8f Add builtin override-wcwidth.
This fixes #280.
2016-10-14 18:01:09 +08:00
Qi Xiao
d6604abec3 Add tests for builtins. 2016-10-14 00:06:03 +08:00
Qi Xiao
c57987f866 Remove unused code. 2016-10-13 23:54:31 +08:00
Qi Xiao
fb0731558a Add a blackhole; renames.
This fixes #276.
2016-10-13 23:44:28 +08:00
Qi Xiao
5dd62563ce Fix test cases. 2016-10-13 23:11:18 +08:00
Qi Xiao
7054a4f0fe Store a util.Traceback in util.PosError. 2016-10-13 23:03:17 +08:00
Qi Xiao
3ab967fc4d Make Evaler.Eval take compiled Op. 2016-10-13 22:05:52 +08:00
Qi Xiao
f0f8467fe3 Remove dead code.
Dead code was discovered by github.com/remyoudompheng/go-misc/deadcode.
2016-10-13 21:58:59 +08:00
Qi Xiao
db1c12cb48 EvalCtx.context -> .name 2016-10-13 21:51:51 +08:00
Qi Xiao
0c3995f8c0 Evaler.Eval now also takes a name. 2016-10-13 21:45:50 +08:00
Qi Xiao
1e6ee5c290 eval: Evaler.Eval -> .eval, .EvalInteractive -> .Eval. 2016-10-13 21:36:55 +08:00
Qi Xiao
93726224bf Don't hang when fd 0 is not tty. 2016-10-13 21:33:32 +08:00
Qi Xiao
84ce58494e Fix unclosed pipes.
This fixes #274.
2016-10-13 21:09:37 +08:00
Qi Xiao
1650b823f1 Add builtin from-lines. 2016-10-13 19:47:50 +08:00
Qi Xiao
4bd4c6e076 Fix a comment. 2016-10-13 19:42:53 +08:00
Qi Xiao
4fb3cab772 into-lines -> to-lines 2016-10-13 19:40:36 +08:00
Qi Xiao
fe82fb63a1 Test against 0x numbers in numerical builtins. 2016-10-13 19:30:32 +08:00
Qi Xiao
39eac3be8f eval: Use strconv.ParseInt in toInt. 2016-10-13 19:18:35 +08:00
Qi Xiao
684496677e When parsing numeric arguments, try strconv.ParseInt as well. 2016-10-13 19:05:24 +08:00
huiyiqun
a7a38ecbe7 remove history builtin, use $le:history instead (#267) 2016-10-13 18:44:02 +08:00
Qi Xiao
9ba96689cd Fix test case for wcswidth. 2016-10-13 18:09:09 +08:00
Qi Xiao
3e2ecce55c eval: Arrange builtins and add tests. 2016-10-13 18:07:08 +08:00
Qi Xiao
4d7d8d8911 util.RootStar -> FullNames 2016-10-13 17:02:42 +08:00
Qi Xiao
941ce30c73 Fix test case for unpack. 2016-10-13 15:49:10 +08:00
Qi Xiao
ed30289d4e Change unpack to work on argument instead of input.
This fixes #254.
2016-10-13 14:18:59 +08:00
Qi Xiao
7efd489df3 splice -> explode
The author just found out that he had a terrible misunderstanding of the
word "splice".
2016-10-13 14:12:14 +08:00
Qi Xiao
8cbd9bce59 Don't adapt indexer as fn.
This fixes #250.
2016-10-13 14:05:36 +08:00
Qi Xiao
f4afd245c1 eval: Don't try to patch interrupts. 2016-10-13 14:02:04 +08:00
Qi Xiao
d1b7647925 Relay SIG{INT,QUIT} correctly.
This fixes #225 and #265.
2016-10-12 23:11:09 +08:00
Qi Xiao
3f987e2867 Support completing namespaces.
This fixes #251.
2016-10-12 07:55:03 +08:00
Qi Xiao
cd3542d906 Show closure address only in (*Closure).Repr.
This fixes #259.
2016-10-12 02:03:25 +08:00
Qi Xiao
ebf34e1c64 Clarify error message for setting a read-only variable.
This addresses #255.
2016-10-12 00:51:46 +08:00
Qi Xiao
40dd2ec32a Implement error traceback.
This fixes #207.
2016-10-11 22:47:55 +08:00
Qi Xiao
258059b490 Make util.Traceback a singly-linked list; fix TracebackError formatting. 2016-10-11 22:11:42 +08:00
Qi Xiao
12fb85f014 Fix test case. 2016-10-11 21:48:36 +08:00
Qi Xiao
c643b6d514 Display one traceback entry correctly.
The traceback displayed is the innermost frame.
2016-10-11 21:37:27 +08:00
Qi Xiao
4266dee6d9 Introduce util.TracebackError and use it in eval.
There is little functionality change ATM though; only one entry of
traceback is shown.
2016-10-11 21:12:11 +08:00
Qi Xiao
55cc8e5c4e Support range lower upper step. 2016-10-11 13:35:14 +08:00
Qi Xiao
43cc5d174b Shanzhai the range builtin from Python. 2016-10-11 13:30:41 +08:00
Qi Xiao
e56e54307e Fix test cases for equality test builtins. 2016-10-11 11:57:26 +08:00
Qi Xiao
8a8d47afb7 eq now requires >= 2 arguments. 2016-10-11 11:54:59 +08:00
Qi Xiao
f045baca48 eq -> is; deepeq -> eq. 2016-10-11 11:54:17 +08:00
Qi Xiao
a7c4667b8d Add a generic comparison operator "eq". 2016-10-11 11:42:59 +08:00
Qi Xiao
a16d4e8766 Support multi-level module.
This fixes #249.
2016-10-11 00:07:57 +08:00
Qi Xiao
42c26ea993 Fix a comment. 2016-10-10 22:56:38 +08:00
Qi Xiao
10ff38e0b2 Redirect inputs of functions called by each and peach. 2016-10-10 22:55:59 +08:00
Qi Xiao
7d6c656e71 Move edit.NullClosedInput to eval. 2016-10-10 22:54:58 +08:00
Qi Xiao
3623e55480 Comment out a log. 2016-10-10 19:57:10 +08:00
Qi Xiao
5d1400e83a Don't let external commands discard channel input.
This fixes #246.
2016-10-10 18:53:05 +08:00
Qi Xiao
52644f4730 Make peach wait for all calls to terminate. 2016-10-10 12:52:18 +08:00
Qi Xiao
99a5191165 Add a parellel version of each, peach.
This fixes #244.
2016-10-10 12:31:14 +08:00
Qi Xiao
d6a1815fb7 In IterateInputs, avoid throwing exception in goroutines.
This fixes #226.
2016-10-10 03:23:23 +08:00
Qi Xiao
ad5a74d6c8 Support string indexing.
This fixes #243.
2016-10-10 02:42:32 +08:00
Qi Xiao
4f9716fea7 Don't adapt fn to indexer. 2016-10-10 02:25:44 +08:00
Qi Xiao
f8c419a967 Add builtins for comparing strings.
This fixes #238.
2016-10-10 01:35:03 +08:00
Qi Xiao
0cb1852cdf Implement numeric comparisons with a wrapper function. 2016-10-10 01:35:02 +08:00
Qi Xiao
b8b94ba93d The == builtin now treats args as numbers. 2016-10-10 01:35:02 +08:00
Qi Xiao
12d8119473 Remove builtins ":", rat, and rest. 2016-10-09 19:30:07 +02:00
Qi Xiao
a356967a32 Remove auto-use'ing. 2016-10-10 00:55:52 +08:00
Qi Xiao
8411fcfa29 In "use", make namespace before evaluating source.
This fixes #229.
2016-10-09 22:52:02 +08:00
Qi Xiao
b29c3f7fba The == builtin now requires at least 2 arguments. 2016-10-09 22:20:57 +08:00
Qi Xiao
bcd3339710 Get rid of (*EvalCtx).errorf. 2016-10-08 18:56:56 +08:00
Qi Xiao
1e0bc746b8 Add "wcswidth" builtin. 2016-10-07 19:23:35 +08:00
Qi Xiao
45ae52a449 The println builtin is now called echo. 2016-09-22 12:24:00 +02:00
Qi Xiao
d53b02809e In "if", only reset verdict to true when nothing was executed. 2016-09-16 21:57:51 +02:00
Qi Xiao
3c89cffdcf eval: predReturn -> verdict 2016-09-16 17:33:39 +02:00
Qi Xiao
8c2f11f924 Don't set predReturn = true for "for" and "try" controls. 2016-09-16 17:30:17 +02:00
Qi Xiao
1e07108639 eval: Test return values in eval_test.go. 2016-09-15 20:31:20 +02:00
Qi Xiao
0b854da23e Fix broken test. 2016-09-15 20:11:12 +02:00
Qi Xiao
593f12f15f Indicate false predReturn with ✗. 2016-09-15 18:28:46 +02:00
Qi Xiao
3fdd289105 Builtin == now throws when given 0 argument. 2016-09-15 15:31:08 +02:00
Qi Xiao
d38f5feefc Small reorganization. 2016-09-15 15:30:37 +02:00
Qi Xiao
e42d700d39 Fix the completion for "$@". 2016-09-15 13:33:16 +02:00
Qi Xiao
9f22efe8db Builtins print{,ln} now accept option sep for seperator. 2016-09-15 12:16:30 +02:00
Qi Xiao
29752726be Support options in eval.WrapFn; use it in the splits builtin. 2016-09-15 03:25:58 +02:00
Qi Xiao
83f68a6ab3 Builtins now accept options as well. 2016-09-15 02:45:44 +02:00
Qi Xiao
0a716b7109 Expose options as $opts in closures. 2016-09-15 00:00:52 +02:00
Qi Xiao
73d50f77cc Eval and pass options to forms.
They are ignored for now, however.
2016-09-14 23:34:10 +02:00
Qi Xiao
9a654e8b82 Add Stub.IntSignals to simplify INT signal capturing. 2016-09-14 14:56:00 +02:00
Qi Xiao
1647926f75 Preliminary support for bg jobs.
This addresses #193.
2016-09-13 12:02:30 +02:00
Qi Xiao
f71695575c Editor.notify -> .Notify 2016-09-11 19:46:49 +02:00
Qi Xiao
b31e124a67 Add a forgotten file. 2016-09-11 19:17:59 +02:00
Qi Xiao
a3b02b0d42 Add eval.Editor; Evaler.store -> .Store. 2016-09-11 19:17:08 +02:00
Qi Xiao
c0eeb30d09 Complete variable assignment.
This fixes #206.
2016-09-11 18:14:56 +02:00
Qi Xiao
0f664b5608 Add eval.Make{,Ro}VariableFromCallback. 2016-09-11 03:18:04 +02:00
Qi Xiao
d19b4d0afb Expose some functions from path/filepath. 2016-09-11 02:51:09 +02:00
Qi Xiao
1b84b34b5f Revert "The ":" builtin is now known as "nop"."
This reverts commit 885ec35546.

The name conflicts with the nop command in graphviz.
2016-09-11 02:29:47 +02:00
Qi Xiao
885ec35546 The ":" builtin is now known as "nop". 2016-09-11 02:28:57 +02:00
Qi Xiao
48fecc50be "-" now negates given only one argument. 2016-09-10 03:48:29 +02:00
Qi Xiao
6f7f13f1f0 Fix broken test. 2016-09-10 00:54:18 +02:00
Qi Xiao
31c186c393 No more external: and env: namespaces, just e: and E:. 2016-09-10 00:32:25 +02:00
Qi Xiao
3057420fca Expose command history via $le:history. 2016-09-08 18:02:04 +02:00
Qi Xiao
2ed904fe9b New builtin "constantly", a la Clojure 2016-09-07 21:08:55 +02:00
Qi Xiao
46591cb2fc Add missing files 2016-09-07 20:59:10 +02:00
Qi Xiao
ad92eb319e Add le:before-readline, a list of fn's called before each readline.
This fixes #203.
2016-09-07 20:51:55 +02:00
Qi Xiao
699d4b42ab Fix the error message of "cannot be spliced" 2016-09-07 20:17:51 +02:00
Qi Xiao
4738967962 Fix the try control structure; add tests. 2016-08-03 20:16:41 +02:00
Qi Xiao
1faee61c9e Include command names when reporting non-zero exit status of external commands. 2016-07-25 17:50:19 +02:00
Qi Xiao
eb2cfb6a0e Allow omitting component of list slice index. 2016-07-12 22:55:02 +02:00
Qi Xiao
c8f4f9dcdb Make ?() capture boolean exit.
This fixes #194.
2016-07-12 22:48:49 +02:00
Qi Xiao
a32294620b Fix test cases. 2016-07-12 22:45:13 +02:00
Qi Xiao
d9a0bbcd64 Support slicing lists. 2016-07-12 22:32:16 +02:00
Qi Xiao
f38fc024f6 Implement except e. 2016-07-11 16:48:10 +02:00
Qi Xiao
939c2bf0a1 Make ==, != and deepeq use the new predicate protocol. 2016-07-09 19:19:31 +02:00
Qi Xiao
c0a3ab9eee Separate boolean return value and exception.
This fixes #189.
2016-07-08 01:03:34 +02:00
Qi Xiao
87309e597c sleep -> esleep 2016-07-05 16:43:23 +02:00
Qi Xiao
d7dd1fa85d Add a catch-all ErrInterrupted raiser. 2016-06-28 23:22:30 +02:00
Qi Xiao
d69530f8b4 Globbing is now interruptable! 2016-06-28 23:08:15 +02:00
Qi Xiao
83235e13d0 Enable exception tracebacks; assign variables to "" when assignment fails.
This fixes #176.
2016-06-22 00:57:32 +02:00
Qi Xiao
c3218dfc6c Add builtins <= and >=. 2016-06-21 15:26:57 +00:00
Qi Xiao
ef5cf8e037 Allow * ^ < > as command names.
This fixes #188.
2016-06-21 15:23:32 +00:00
Qi Xiao
2353679267 Use / for division.
This fixes #186.
2016-06-20 22:16:43 +02:00
Qi Xiao
c926bda456 Forgot one file. 2016-04-20 01:07:18 +02:00
Qi Xiao
af4dc5cd7b Prevent panic in randint. 2016-04-14 17:40:13 +02:00
Qi Xiao
89c9c5ac93 Fix test cases. 2016-04-13 13:16:25 +02:00
Qi Xiao
b2a4f9786b Add builtin "slurp". 2016-04-12 17:38:07 +02:00
Qi Xiao
87096e97be {++,//} -> {join,split}s 2016-04-06 18:05:26 +02:00
Qi Xiao
99f1c061f2 Add builtins has-{pre,suf}fix. 2016-04-06 07:57:11 +02:00
Qi Xiao
425f19165f Add builtin resolve; change Repr of BuiltinFn. 2016-04-05 06:20:18 +02:00
Qi Xiao
713b98fd0d Add builtins to join and split strings.
They are known provisionally as ++ and //, due to `join` and `split` having
been taken.
2016-04-04 04:24:46 +02:00
Qi Xiao
bf2cd3386d Promote -{sleep,exec} to {sleep,exec}. 2016-04-02 03:21:34 +02:00
Qi Xiao
61ef7d09cf Finally, an exit builtin. 2016-04-02 03:19:11 +02:00
Qi Xiao
6af66d6027 Use defer to restore variables in temporary assignment.
So that variables are always restored, even if an error occured when evaling
other parts of the form.
2016-03-31 05:20:15 +02:00
Qi Xiao
43ccd121c3 Support temporary assignment (var=val cmd). 2016-03-31 05:13:39 +02:00
Qi Xiao
2b70e3feb6 Cleanups. 2016-03-30 19:02:20 +02:00
Qi Xiao
4c925b28c0 Remove (*Evaler).AddModule. 2016-03-30 18:55:22 +02:00
Qi Xiao
f3635715c9 Add a Pipe type.
This fully resolves #10.
2016-03-29 08:44:17 +02:00
Qi Xiao
504e0de9ed eval: Support redir from File object. 2016-03-29 08:27:08 +02:00
Qi Xiao
5eceba2a71 eval: Use callback to iterate inputs. 2016-03-21 02:29:55 +01:00
Qi Xiao
eae9cf0704 Teach completers and stylists of external modules.
This fixes #110.
2016-03-21 00:55:34 +01:00
Qi Xiao
a9d5672fad Export eval.ParseVariable. 2016-03-21 00:35:21 +01:00
Qi Xiao
42b2b42001 Preliminary support for completing getopt-ish commands. 2016-03-21 00:16:56 +01:00
Qi Xiao
05d60dc64d eval: Add a HasKey method to Map and Struct. 2016-03-20 16:18:08 +01:00
Qi Xiao
b7b4a6bdfa eval: Export WrapFn. 2016-03-20 15:53:47 +01:00
Qi Xiao
4e75796522 eval: Use callback instead of channel to iterate.
The name has been changed from Elemser to Iterator as well.
2016-03-20 15:24:25 +01:00
Qi Xiao
9b203c3ce8 eval: Truncate file when doing output redir. 2016-03-20 02:54:13 +01:00
Qi Xiao
b5e7ca5294 eval: Merge len into count. 2016-03-19 03:21:38 +01:00
Qi Xiao
613cb73294 Remove put-all and merge-to-chan. 2016-03-19 03:14:43 +01:00
Qi Xiao
8eaf1541ab Many builtins now accept inputs from the argument. 2016-03-19 03:11:54 +01:00
Qi Xiao
69411efbb7 Fix typo. 2016-03-19 02:44:04 +01:00
Qi Xiao
3c8a090735 Dead code elimination. 2016-03-19 02:34:12 +01:00
Qi Xiao
6cd0558c2c eval: Improve wrapFn.
It is now slightly cleaner and produces more helpful error messages.
2016-03-19 02:14:36 +01:00
Qi Xiao
44ebc91874 Change EvalCtx.evaling to take begin and end positions. 2016-03-19 01:35:37 +01:00
Qi Xiao
07c9adc310 In ExternalCmd.Call, don't loop forever after input channel gets closed. 2016-03-18 19:07:07 +01:00
Qi Xiao
80254b83f8 Add a new file type. 2016-03-18 01:10:37 +01:00
Qi Xiao
785aa20fc2 Slightly prettier Repr of closure. 2016-03-18 01:03:33 +01:00
Qi Xiao
d474ec3bc0 Seed with current time at startup. 2016-03-17 15:30:15 +01:00
Qi Xiao
2c78e210a8 Add builtin rand and randint. 2016-03-17 15:28:00 +01:00
Qi Xiao
d5d5bd7650 When calling ExternalCmd, discard all channel inputs.
This fixes #156.
2016-03-17 12:32:48 +01:00
Qi Xiao
fdaa61bc43 Comments and message strings. 2016-03-16 20:51:03 +01:00
Qi Xiao
079e835495 Most builtins using chan input now accepts byte pipe input as well.
This addresses #156.
2016-03-16 18:30:36 +01:00
Qi Xiao
0b1118f870 Add an ord builtin. 2016-03-14 17:50:20 +01:00
Qi Xiao
9cebb5b1a4 Add a % builtin. 2016-03-13 04:12:23 +01:00
Qi Xiao
5ef87a7e7a Add a "bool" builtin. 2016-03-10 20:48:59 +01:00
Qi Xiao
4c938c7393 Support positional variables like $0 and $-1.
This fixes #159.
2016-03-10 20:42:32 +01:00
Qi Xiao
7a74bb9b12 Add a "to-json" builtin. 2016-03-10 16:37:36 +01:00
Qi Xiao
e2122bd142 fix fix 2016-03-08 19:03:57 +01:00
Qi Xiao
69be6f4631 The equality builtin is now "==" instead of "=". 2016-03-08 18:51:24 +01:00
Qi Xiao
9eb414a9ba Let != take exactly two arguments. 2016-03-08 18:49:52 +01:00
Qi Xiao
f061c8e4c2 Fix eawk's delimiter. 2016-03-08 13:12:44 +01:00
Qi Xiao
2951307556 Add builtins != and rest; allow ! in barewords. 2016-03-08 03:01:30 +01:00