summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Ast/FileInterface.hs
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2024-09-25 00:17:19 -0600
committerJosh Rahm <joshuarahm@gmail.com>2024-09-25 00:17:19 -0600
commitfffe42ce4861f53dd86113ab8320e4754f2c570c (patch)
treed9fb492c4c821eec091b2012ffe626cda45f1bde /src/Language/Fiddle/Ast/FileInterface.hs
parent0c6ada2f5c8a3ac900fabd0384af558fb6bd334a (diff)
downloadfiddle-fffe42ce4861f53dd86113ab8320e4754f2c570c.tar.gz
fiddle-fffe42ce4861f53dd86113ab8320e4754f2c570c.tar.bz2
fiddle-fffe42ce4861f53dd86113ab8320e4754f2c570c.zip
Split the Ast file into multiple sub files.
Make some more changes to the generic implementation of EasySwitchStage.
Diffstat (limited to 'src/Language/Fiddle/Ast/FileInterface.hs')
-rw-r--r--src/Language/Fiddle/Ast/FileInterface.hs33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/Language/Fiddle/Ast/FileInterface.hs b/src/Language/Fiddle/Ast/FileInterface.hs
new file mode 100644
index 0000000..d29fc9d
--- /dev/null
+++ b/src/Language/Fiddle/Ast/FileInterface.hs
@@ -0,0 +1,33 @@
+module Language.Fiddle.Ast.FileInterface where
+
+-- Definitions for file interfaces. These interfaces contain an abstract
+-- representation of the symbols and information exported by a fiddle file.
+-- These interfaces are also serializable, and when compiling a fiddle file, all
+-- the import statements should supply an fdi (fiddle interface) file to speed
+-- up subsequent compilations.
+
+-- import Data.Text
+--
+-- data ObjectType = ObjectType
+-- { objectTypeSize :: Word32
+-- }
+--
+-- data Metatype
+-- = Object
+-- { objectLocation :: Word64,
+-- objectType :: Text
+-- }
+-- | Type
+-- { typeSizeBytes :: Word32
+-- }
+--
+-- data Element a = Element
+-- { elementFullyQualifiedSymbol :: Text,
+-- elementDocumentation :: Maybe Text,
+-- elementMetatype :: Metatype,
+-- elementAnnotation :: a
+-- }
+--
+-- data FileInterface a = FiddleInterface
+-- { exportedElements :: [Element a]
+-- }