diff options
author | welch <welch> | 1998-07-24 14:31:08 (GMT) |
---|---|---|
committer | welch <welch> | 1998-07-24 14:31:08 (GMT) |
commit | 8f081319f9e8507c94b6a2a0a58db00913ccdab9 (patch) | |
tree | 1ef2f1a187397c69fd3174ea1de0ce93b96b7b73 /tests/autoMkindex.tcl | |
parent | 31bbea25be0b7678d1c26d53f38aa3c266c62d99 (diff) | |
download | tcl-8f081319f9e8507c94b6a2a0a58db00913ccdab9.zip tcl-8f081319f9e8507c94b6a2a0a58db00913ccdab9.tar.gz tcl-8f081319f9e8507c94b6a2a0a58db00913ccdab9.tar.bz2 |
Initial revision
Diffstat (limited to 'tests/autoMkindex.tcl')
-rw-r--r-- | tests/autoMkindex.tcl | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/tests/autoMkindex.tcl b/tests/autoMkindex.tcl new file mode 100644 index 0000000..7a72fbe --- /dev/null +++ b/tests/autoMkindex.tcl @@ -0,0 +1,52 @@ +# Test file for: +# auto_mkindex +# +# This file provides example cases for testing the Tcl autoloading +# facility. Things are much more complicated with namespaces and classes. +# The "auto_mkindex" facility can no longer be built on top of a simple +# regular expression parser. It must recognize constructs like this: +# +# namespace eval foo { +# proc test {x y} { ... } +# namespace eval bar { +# proc another {args} { ... } +# } +# } +# +# Note that procedures and itcl class definitions can be nested inside +# of namespaces. +# +# Copyright (c) 1993-1998 Lucent Technologies, Inc. + +# This shouldn't cause any problems +namespace import -force blt::* + +# Should be able to handle "proc" definitions, even if they are +# preceded by white space. + +proc normal {x y} {return [expr $x+$y]} + proc indented {x y} {return [expr $x+$y]} + +# +# Should be able to handle proc declarations within namespaces, +# even if they have explicit namespace paths. +# +namespace eval buried { + proc inside {args} {return "inside: $args"} + + namespace export pub_* + proc pub_one {args} {return "one: $args"} + proc pub_two {args} {return "two: $args"} +} +proc buried::within {args} {return "within: $args"} + +namespace eval buried { + namespace eval under { + proc neath {args} {return "neath: $args"} + } + namespace eval ::buried { + proc relative {args} {return "relative: $args"} + proc ::top {args} {return "top: $args"} + proc ::buried::explicit {args} {return "explicit: $args"} + } +} |