summaryrefslogtreecommitdiff
path: root/tnslc/ast/ast.tnsl
diff options
context:
space:
mode:
Diffstat (limited to 'tnslc/ast/ast.tnsl')
-rw-r--r--tnslc/ast/ast.tnsl30
1 files changed, 29 insertions, 1 deletions
diff --git a/tnslc/ast/ast.tnsl b/tnslc/ast/ast.tnsl
index 466fe08..bece84e 100644
--- a/tnslc/ast/ast.tnsl
+++ b/tnslc/ast/ast.tnsl
@@ -15,5 +15,33 @@
#/
/; export module ast
- :include "ast/node.tnsl"
+ :include "ast/block.tnsl"
+ :include "ast/list.tnsl"
+ :include "ast/statement.tnsl"
+ :include "ast/tree.tnsl"
+ :include "ast/value.tnsl"
;/
+
+;{}charp CNULL = ""
+
+# AST node (non-block)
+;struct Node {
+ tnslc.Token
+ # associated token to the node
+ tok,
+
+ ~{}Node
+ # sub-nodes
+ sub
+}
+
+;enum NODE_TYPE [int] {
+ FILE = 9,
+ TYPE = 10,
+ VALUE = 11,
+ DEFN = 12,
+
+ #...
+
+ PREP = 1000
+} \ No newline at end of file