From 658c2fa36f3359325665c744ebe57478d539b28d Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Wed, 13 Apr 2022 17:29:33 -0400 Subject: Include ast, add function to print tokens --- tnslc/ast/ast.tnsl | 4 ++-- tnslc/ast/node.tnsl | 61 +---------------------------------------------------- 2 files changed, 3 insertions(+), 62 deletions(-) (limited to 'tnslc/ast') 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 -- cgit v1.2.3