diff options
author | Kyle Gunger <kgunger12@gmail.com> | 2022-04-13 17:29:33 -0400 |
---|---|---|
committer | Kyle Gunger <kgunger12@gmail.com> | 2022-04-13 17:29:33 -0400 |
commit | 658c2fa36f3359325665c744ebe57478d539b28d (patch) | |
tree | 84806babb5febe4a3306c9c0bfc0e4e9da1159e0 /tnslc/ast | |
parent | 6674b44eb75218e1f00a1cc63a82aab82c641806 (diff) |
Include ast, add function to print tokens
Diffstat (limited to 'tnslc/ast')
-rw-r--r-- | tnslc/ast/ast.tnsl | 4 | ||||
-rw-r--r-- | tnslc/ast/node.tnsl | 61 |
2 files changed, 3 insertions, 62 deletions
diff --git a/tnslc/ast/ast.tnsl b/tnslc/ast/ast.tnsl index 405a94a..466fe08 100644 --- a/tnslc/ast/ast.tnsl +++ b/tnslc/ast/ast.tnsl @@ -15,5 +15,5 @@ #/ /; export module ast - :import "node.tnsl" -;/
\ No newline at end of file + :include "ast/node.tnsl" +;/ 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 |