summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Ast/FileInterface.hs
diff options
context:
space:
mode:
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]
+-- }