File: class-include-nested1.mcl

package info (click to toggle)
mgmt 0.0.26.git.2024.10.25.85e1d6c0e8-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 9,364 kB
  • sloc: sh: 2,471; yacc: 1,285; makefile: 543; python: 196; lisp: 77
file content (36 lines) | stat: -rw-r--r-- 841 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
$top = "top-level"
class base($s) {
	test ["middle " + $s,] {}
	$middle = "inside base"
}

# syntactic sugar for the equivalent of defining a class `inner` inside of base.
class base:inner1($s) {
	test ["inner1 " + $s,] {}

	$last = "i am inner1 and i can see " + $middle
}

class base:inner2($s) {
	test ["inner2 " + $s,] {}

	$last = "i am inner2 and i can see " + $middle
}

# three deep!
class base:inner1:deep($s, $b) {
	test ["deep is " + $s,] {}

	$end = "i am deep and i can see " + $middle + " and last says " + $last
}

include base("world") as b0
include b0.inner1("hello") as b1	# inner comes out of `base`
include b0.inner2("hello") as b2	# inner comes out of `base`
include b1.deep("deep", true) as d	# deep comes out of `inner1`

test [$top,] {}
test [$b0.middle,] {}
test [$b1.last,] {}
test [$b2.last,] {}
test [$d.end,] {}