summaryrefslogtreecommitdiff
path: root/tnslc/ast/node.tnsl
diff options
context:
space:
mode:
Diffstat (limited to 'tnslc/ast/node.tnsl')
-rw-r--r--tnslc/ast/node.tnsl61
1 files changed, 1 insertions, 60 deletions
diff --git a/tnslc/ast/node.tnsl b/tnslc/ast/node.tnsl
index 5eeac91..d1db325 100644
--- a/tnslc/ast/node.tnsl
+++ b/tnslc/ast/node.tnsl
@@ -18,68 +18,9 @@
;struct Node {
tnslc.parse.Token
# associated token to the node
- data,
+ tok,
~{}Node
# sub-nodes
sub
}
-
-# AST node (block)
-;struct BlockNode extends Node {
- super,
-
- ~{}Node
- # block inputs and outputs
- blockIn,
- blockOut,
-
- ~{}tnslc.parse.Token
- # block qualifiers
- blockQs
-}
-
-# Node methods
-/; method Node
-
- /; operator delete
- ;delete this.data, this.sub
- ;/
-
- /; push_sub (Node node) [uint]
- ;uint len = this.sub.length
- ;alloc this.sub, len + 1
- ;this.sub{len} = node
- ;return len + 1
- ;/
-;/
-
-# Extended block node methods
-/; method BlockNode
-
- /; operator delete
- ;super()
- ;delete this.blockQs, this.blockIn, this.blockOut
- ;/
-
- /; push_blockQ (tnslc.parse.Token token) [uint]
- ;uint len = this.blockQs.length
- ;alloc this.blockQs, len + 1
- ;this.blockQs{len} = token
- ;return len + 1
- ;/
-
- /; push_blockIn (Node node) [uint]
- ;uint len = this.blockIn.length
- ;alloc this.blockIn, len + 1
- ;this.blockIn{len} = node
- ;return len + 1
- ;/
-
- /; push_blockOut (Node node) [uint]
- ;uint len = this.blockOut.length
- ;alloc this.blockOut, len + 1
- ;this.blockOut{len} = node
- ;return len + 1
- ;/
-;/ \ No newline at end of file