summaryrefslogtreecommitdiff
path: root/tnslc/compile/scope.tnsl
blob: f4eefdd1110f66800d79f2ef897b577303564791 (plain)
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
struct Scope {
	~uint8 name,
	~Module mod,
	~CompBuf cb,
	
	~Scope parent,

	utils.Vector
		vars
}

/; method Scope
	/; init (~Module mod, ~CompBuf cb, ~uint8 name)
		self.name = utils.strcpy(name)
		self.mod = mod
		self.cb = cb

		Var v
		self.vars.init(len v)
	;/
	
	/; _compile_statements (~parse.Node up, int o)
	;/

	/; end
		_delete(self.name)

		~Var v
		/; loop (int i = 0; i < self.vars.count) [i++]
			v = self.vars.get(i)
			v`.end()
		;/
	;/
;/