|
Revision 1, 0.7 kB
(checked in by gnue, 4 years ago)
|
|
import project
|
| Line | |
|---|
| 1 | #!newt |
|---|
| 2 | |
|---|
| 3 | // inheritance sample code. |
|---|
| 4 | |
|---|
| 5 | begin |
|---|
| 6 | local frame := { |
|---|
| 7 | level: 0, |
|---|
| 8 | _proto: { |
|---|
| 9 | level: 1, |
|---|
| 10 | foo: func(x, t) |
|---|
| 11 | begin |
|---|
| 12 | if x then |
|---|
| 13 | begin |
|---|
| 14 | Print(t & "foo-1(true) [" & self.level & "]\n"); |
|---|
| 15 | inherited:foo(x, t & "\t"); |
|---|
| 16 | end else begin |
|---|
| 17 | Print(t & "foo-1(nil) [" & self.level & "]\n"); |
|---|
| 18 | end; |
|---|
| 19 | end, |
|---|
| 20 | _proto: { |
|---|
| 21 | level: 2, |
|---|
| 22 | foo: func(x, t) |
|---|
| 23 | begin |
|---|
| 24 | if x then |
|---|
| 25 | begin |
|---|
| 26 | Print(t & "foo-2(true) [" & self.level & "]\n"); |
|---|
| 27 | end else begin |
|---|
| 28 | Print(t & "foo-2(nil) [" & self.level & "]\n"); |
|---|
| 29 | end; |
|---|
| 30 | end |
|---|
| 31 | } |
|---|
| 32 | } |
|---|
| 33 | }; |
|---|
| 34 | |
|---|
| 35 | frame:foo(nil, ""); |
|---|
| 36 | frame:foo(true, ""); |
|---|
| 37 | frame._proto:foo(nil, ""); |
|---|
| 38 | frame._proto:foo(true, ""); |
|---|
| 39 | end |
|---|