summaryrefslogtreecommitdiff
path: root/tnslc/compile/function.tnsl
blob: cf42db19e33d4973ebb03f86bd81bc53b967f384 (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
36

struct Function {
  ~uint8 name,
  utils.Vector
    inputs,
    outputs,
  ~parse.Node body
}

/; method Function
  /; init (~uint8 name)
    self.name = name
    Var v
    self.inputs.init(len v)
    self.outputs.init(len v)
  ;/

  /; end
    _delete(self.name)
    self.body`.end()

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

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