logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

tcl::prefix - facilities for prefix matching

Description

       This  document  describes  commands looking up a prefix in a list of strings.  The following commands are
       supported:

       ::tcl::prefixalltablestring
              Returns a list of all elements in table that begin with the prefix string.

       ::tcl::prefixlongesttablestring
              Returns the longest common prefix of all elements in table that begin with the prefix string.

       ::tcl::prefixmatch ?option...? tablestring
              If string equals one element in table or is a prefix to exactly one element, the  matched  element
              is returned. If not, the result depends on the -error option. (It is recommended that the table be
              sorted before use with this subcommand, so that the list of matches presented in the error message
              also  becomes  sorted,  though this is not strictly necessary for the operation of this subcommand
              itself.) The following options are supported:

              -exact Accept only exact matches.

              -messagestring
                     Use string in the error message at a mismatch. Default is “option”.

              -erroroptions
                     The options are used when no match is found. If options is empty, no error is generated and
                     an empty string is returned.  Otherwise  the  options  are  used  as  return  options  when
                     generating  the  error message. The default corresponds to setting “-level 0”.  Example: If
                     “-error {-errorcode MyError -level 1}” is used, an error would be generated as:

                            return -errorcode MyError -level 1 -code error \
                                   "ambiguous option ..."

Examples

       Basic use:

              namespace import ::tcl::prefix
              prefixmatch {apa bepa cepa} apa
                   apaprefixmatch {apa bepa cepa} a
                   apaprefixmatch -exact {apa bepa cepa} a
                   badoption"a":mustbeapa,bepa,orcepaprefixmatch -message "switch" {apa ada bepa cepa} a
                   ambiguousswitch"a":mustbeapa,ada,bepa,orcepaprefixlongest {fblocked fconfigure fcopy file fileevent flush} fc
                   fcoprefixall {fblocked fconfigure fcopy file fileevent flush} fc
                   fconfigurefcopy

       Simplifying option matching:

              array set opts {-apa 1 -bepa "" -cepa 0}
              foreach {arg val} $args {
                  set opts([prefixmatch {-apa -bepa -cepa} $arg]) $val
              }

       Creating a switch that supports prefixes:

              switch [prefixmatch {apa bepa cepa} $arg] {
                  apa  { }
                  bepa { }
                  cepa { }
              }

Keywords

       prefix, table lookup

Tcl                                                    8.6                                          prefix(3tcl)

Name

       tcl::prefix - facilities for prefix matching

See Also

lsearch(3tcl), namespace(3tcl), string(3tcl), Tcl_GetIndexFromObj(3tcl)

Synopsis

::tcl::prefixalltablestring::tcl::prefixlongesttablestring::tcl::prefixmatch ?option...? tablestring
________________________________________________________________________________________________________________

See Also