summaryrefslogtreecommitdiff
path: root/Args/README.md
diff options
context:
space:
mode:
authorseh <henesy.dev@gmail.com>2019-03-18 16:36:39 -0500
committerseh <henesy.dev@gmail.com>2019-03-18 16:36:39 -0500
commit0283ccf588a5243b2a992d3d726c2f1344c5438a (patch)
tree72c7fd3b20f147299c52aebfc8829adcf4b158cc /Args/README.md
parent5cd0b7d8139f0cd5f4af1f9f3b82fe2cd3f37288 (diff)
stdlib modules have -M suffix for dir ;; frame for lists example
Diffstat (limited to 'Args/README.md')
-rw-r--r--Args/README.md62
1 files changed, 0 insertions, 62 deletions
diff --git a/Args/README.md b/Args/README.md
deleted file mode 100644
index 2320046..0000000
--- a/Args/README.md
+++ /dev/null
@@ -1,62 +0,0 @@
-# Command-Line Arguments
-
-Inferno has a dedicated module for processing commandline flags and arguments, [arg(2)](http://man.cat-v.org/inferno/2/arg).
-
-## Source
-
-### args.b:17,22
-
-The module `Arg` is loaded and initialized. As per the manual, the `arg->init()` function must be called before any other functions can be called from `Arg`.
-
-The usage message is also set pre-emptively for use later, if necessary.
-
-### args.b:24,37
-
-There are two flag arguments, `r` and `c` which set reversal of arguments and the list item indicator mark, respectively.
-
-The flag `r` is a binary option toggle, the flag's presence as an argument is sufficient to change the value of `rev`.
-
-The flag `c` takes an argument. The `arg->earg()` function is used to pop the flag's argument out of the list. Specifically with regards to `earg()` rather than `arg()` as per the manual, `earg()` will call `arg->usage()` if the relevant argument does not exist.
-
-Note: After the processing of all flags, `argv` is re-set from the value contained within `arg` to remove the elements (if any) utilized by flags and their arguments.
-
-### args.b:41,51
-
-This section utilizes the `rev` variable to (naively) reverse the list `argv`. After the `rev` check, the list `argv` is printed in order from beginning to end with each element being printed on a new line with the `mark` variable being prefixed to the list element currently at the head of the `argv` list each iteration during printout.
-
-## Demo
-
- ; limbo args.b
- ; args -h
- usage: args [-r] [-c mark] words...
- ; args a b c d
- Argc after flags: 4
- → a
- → b
- → c
- → d
- ; args -r a b c d
- Argc after flags: 4
- → d
- → c
- → b
- → a
- ; args -c 'quack: ' a b c d
- Argc after flags: 4
- quack: a
- quack: b
- quack: c
- quack: d
- ; args -r -c '-> ' d c b a
- Argc after flags: 4
- -> a
- -> b
- -> c
- -> d
- ;
-
-## Exercises
-
-- Can you trick `earg()` into accepting a nil value?
-- How would you pull an `int` out of `earg()`?
-- How would you trip the `usage()` message call-able from `earg()`?