[Xotcl] Extending nonposArgs in XOTcl

Gustaf Neumann neumann at wu-wien.ac.at
Wed Oct 26 13:35:02 CEST 2005


Dear Shawn,

>
> The tutorial shows that the syntax for extending nonposArgs is:
>  
>  /someobject|someclass/ *proc|instproc* methodName {?optional 
> arguments? argName args} {
>   ...
> }

actually, this should read most probably .... ?optional nonpositional 
arguments? ...


For the time being, define an "argument type" named "mtu" as in:

   xotcl::nonposArgs proc mtu {{-from 54} {-to 65535} name value} {
     if {$value < $from || $value > $to} {
       error "invalid argument $name: $value is not between $from and $to" 
     }
   }

   Class Foo
   Foo instproc setMtu {{-mtu:mtu "1500"}} {} {
     puts "setMtu mtu=$mtu"
   }

   Foo f
   f setMtu -mtu 66
   f setMtu -mtu 66999

Alternatively, one can use forward to be a little more generic, but 
still defining an
own type mtu:

   xotcl::nonposArgs forward mtu %self RANGE 43 65553
   xotcl::nonposArgs proc RANGE {from to name value} {
     if {$value < $from || $value > $to} {
       error "invalid argument $name: $value is not between $from and $to" 
     }
   }

Hope, this is acceptable for now.
-gustaf



More information about the Xotcl mailing list