diff --git a/src/modules/argparsingtest-999999.0a1.0.tm b/src/modules/argparsingtest-999999.0a1.0.tm index 00a7bfc8..db32eaad 100644 --- a/src/modules/argparsingtest-999999.0a1.0.tm +++ b/src/modules/argparsingtest-999999.0a1.0.tm @@ -32,6 +32,9 @@ #*** !doctools #[section Overview] #[para] overview of argparsingtest +#[para] Comparative testing of argument parsing implementations across three +#[para] calling styles: keyed options only, 'tk style' (positionals first) and +#[para] 'tcl style' (positionals last). #[subsection Concepts] #[para] - @@ -47,10 +50,15 @@ package require Tcl 8.6- package require punk::args -package require struct::set +package require opt +package require cmdline +package require tepam #*** !doctools #[item] [package {Tcl 8.6}] #[item] [package {punk::args}] +#[item] [package {opt}] +#[item] [package {cmdline}] +#[item] [package {tepam}] # #package require frobz # #*** !doctools @@ -98,21 +106,872 @@ namespace eval argparsingtest::class { # ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ # ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ -# Base namespace +# Base namespace - timing/comparison harness (the parser implementations under +# test live in the per-style child namespaces argparsingtest::opts, +# argparsingtest::tkstyle and argparsingtest::tclstyle further below) # ++ +++ +++ +++ +++ +++ +++ +++ +++ +++ +++ namespace eval argparsingtest { namespace export {[a-z]*} ;# Convention: export all lowercase - #variable xyz #*** !doctools #[subsection {Namespace argparsingtest}] - #[para] Core API functions for argparsingtest + #[para] Core API functions for argparsingtest - parser discovery and timing harness + #[list_begin definitions] + + # Parsing-style registry. + # Each style holds: + # title - table section heading used by compare + # argvec - default timing argument vector for the style + # roster - parser proc name -> marker, where marker is one of: + # always - proc unconditionally defined in argparsingtest::