<ruleset> is a single digit number or an asterisk to mean all rulesets.
<letter> is a single alpha letter.
<word> is an uninterrupted collection of 1 or more <letters>.
<filename> is a filename.
Parenthesis () are not literal - they show grouping here.
| & mean "or" and "and" respectively.


Assignment
----------
<letter> -> <letter>
<letter> -> <letter> in <ruleset>
<word> -> <word>
<word> -> <word> in <ruleset>

Marking
-------
Mark <letter> as (vowel|consonant|exact|weak)
Mark <letter> as (vowel|consonant|exact|weak) in <ruleset>

Showing and Sorting
-------------------
Show initial
Show letters
Show final
Sort by ctxt
Sort by freq
Sort by ptxt

Changing Ruleset
----------------
Ruleset in <ruleset>

Clearing, Copying Rulesets
--------------------------
Clear <letter>
Clear <letter> in <ruleset>
Clear <ruleset>
Copy <ruleset> in <ruleset>

Saving and Restoring the Program
--------------------------------
save <filename>
restore <filename>

1- Remove double spaces
2- Remove beginning/ending spaces
3- If < IN > exists, put <ruleset> in ctl.tkn[1].  otherwise ctl.tkn[1]=0.

token[1]   0: no/current target ruleset,   1-9 ruleset,   10 all rulesets
