summaryrefslogtreecommitdiff
path: root/tnslc/src/ast/node.tnsl
diff options
context:
space:
mode:
Diffstat (limited to 'tnslc/src/ast/node.tnsl')
-rw-r--r--tnslc/src/ast/node.tnsl85
1 files changed, 0 insertions, 85 deletions
diff --git a/tnslc/src/ast/node.tnsl b/tnslc/src/ast/node.tnsl
deleted file mode 100644
index 5eeac91..0000000
--- a/tnslc/src/ast/node.tnsl
+++ /dev/null
@@ -1,85 +0,0 @@
-/##
- Copyright 2021 Kyle Gunger
-
- This file is licensed under the CDDL 1.0 (the License)
- and may only be used in accordance with the License.
- You should have received a copy of the License with this
- software/source code. If you did not, a copy can be found
- at the following URL:
-
- https://opensource.org/licenses/CDDL-1.0
-
- THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO
- WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE
- EXPRESS OR IMPLIED
-#/
-
-# AST node (non-block)
-;struct Node {
- tnslc.parse.Token
- # associated token to the node
- data,
-
- ~{}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