summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/GenericTree.hs
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-09-20 10:43:43 -0600
committerJosh Rahm <joshuarahm@gmail.com>2024-09-20 10:43:43 -0600
commitf0c4da33e9576d2509b8c6330b1663e044e2dff3 (patch)
tree15120a7b0ca3795fc7b35478f708d54c1c988ec5 /src/Language/Fiddle/GenericTree.hs
parentf1128c7c60809d1e96009eaed98c0756831fe29f (diff)
downloadfiddle-f0c4da33e9576d2509b8c6330b1663e044e2dff3.tar.gz
fiddle-f0c4da33e9576d2509b8c6330b1663e044e2dff3.tar.bz2
fiddle-f0c4da33e9576d2509b8c6330b1663e044e2dff3.zip
Some major changes to the structure of the language.
Added structures and unions to better define the layout and model overlapping concerns. renamed objtype -> type and object -> instance. added reserved statements for types.
Diffstat (limited to 'src/Language/Fiddle/GenericTree.hs')
-rw-r--r--src/Language/Fiddle/GenericTree.hs16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/Language/Fiddle/GenericTree.hs b/src/Language/Fiddle/GenericTree.hs
index 668c290..00824ed 100644
--- a/src/Language/Fiddle/GenericTree.hs
+++ b/src/Language/Fiddle/GenericTree.hs
@@ -174,6 +174,8 @@ instance (GToGenericSyntaxTree r f a) => (GToGenericSyntaxTree (M1 i c r) f a) w
deriving instance (ToGenericSyntaxTree Identifier)
+deriving instance (ToGenericSyntaxTree BodyType)
+
deriving instance (Context stage) => (ToGenericSyntaxTree (FiddleUnit stage))
deriving instance (Context stage) => (ToGenericSyntaxTree (FiddleDecl stage))
@@ -206,6 +208,20 @@ instance (Context stage) => (ToGenericSyntaxTree (ObjTypeDecl stage)) where
toGenericSyntaxTree t = case t of
(AssertPosStatement expr a) ->
SyntaxTreeObject "AssertPosStatement" [toGenericSyntaxTree expr] a t
+ (TypeSubStructure body mIdent a) ->
+ SyntaxTreeObject
+ "TypeSubStructure"
+ ( Data.Foldable.toList (toGenericSyntaxTree <$> body)
+ ++ Data.Foldable.toList (toGenericSyntaxTree <$> mIdent)
+ )
+ a
+ t
+ (ReservedDecl expr a) ->
+ SyntaxTreeObject
+ "ReservedDecl"
+ [toGenericSyntaxTree expr]
+ a
+ t
(RegisterDecl mMod mIdent expr mBody a) ->
SyntaxTreeObject
"RegisterDecl"