xref: /Universal-ctags/Units/parser-itcl.r/simple-itcl.d/input.tcl (revision 94e60171fa258ced41b42724ed870d97c6b765dd)
1#
2# Derived from class.n man page of itcl
3#
4package require Itcl
5
6itcl::class Toaster {
7    variable crumbs 0
8    method toast {nslices} {
9        if {$crumbs > 50} {
10            error "== FIRE! FIRE! =="
11        }
12        set crumbs [expr $crumbs+4*$nslices]
13    }
14    method clean {} {
15        set crumbs 0
16    }
17}
18
19itcl::class SmartToaster {
20    inherit Toaster
21    method toast {nslices} {
22        if {$crumbs > 40} {
23            clean
24        }
25        return [chain $nslices]
26    }
27
28    public method doSomethingPublic {} {
29    }
30    protected method doSomethingProtected {} {
31    }
32    private method doSomethingPrivate {} {
33    }
34
35    proc procNoProtection {} {
36    }
37
38    public proc procPublic {} {
39    }
40    protected proc procProtected {} {
41    }
42    private proc procPrivate {} {
43    }
44
45    common commonNoProtection 0
46
47    public proc commonPublic "a"
48    protected proc commonProtected "b"
49    private proc commonPrivate "c"
50}
51
52set toaster [SmartToaster #auto]
53$toaster toast 2
54
55