summaryrefslogtreecommitdiff
path: root/src/Language/Fiddle/Parser.hs
diff options
context:
space:
mode:
authorJosh Rahm <joshuarahm@gmail.com>2022-12-16 20:54:00 -0700
committerJosh Rahm <joshuarahm@gmail.com>2022-12-16 20:54:00 -0700
commitbf66c00aa9ee8a7f8058e396db167324076331b2 (patch)
tree22a18d010eec2527e6a27aa65b40374b78991931 /src/Language/Fiddle/Parser.hs
parent0eb6cb33982e2b00f5ffdedc300fa27ed4007967 (diff)
downloadfiddle-bf66c00aa9ee8a7f8058e396db167324076331b2.tar.gz
fiddle-bf66c00aa9ee8a7f8058e396db167324076331b2.tar.bz2
fiddle-bf66c00aa9ee8a7f8058e396db167324076331b2.zip
Start implementing "fiddle" code.
nothing is happening right now, but it's on its way.
Diffstat (limited to 'src/Language/Fiddle/Parser.hs')
-rw-r--r--src/Language/Fiddle/Parser.hs21
1 files changed, 21 insertions, 0 deletions
diff --git a/src/Language/Fiddle/Parser.hs b/src/Language/Fiddle/Parser.hs
new file mode 100644
index 0000000..3a44b31
--- /dev/null
+++ b/src/Language/Fiddle/Parser.hs
@@ -0,0 +1,21 @@
+{-# LANGUAGE ScopedTypeVariables #-}
+
+module Language.Fiddle.Parser where
+
+import Language.Fiddle.Types
+import Data.Functor.Identity
+import Data.Text
+import Text.Parsec
+
+newtype FiddleUnit a = FiddleUnit a
+
+parseUnit :: ParsecT s u m (FiddleUnit Metadata)
+parseUnit = undefined
+
+parseText :: String -> Text -> Either String (FiddleUnit Metadata)
+parseText sourceName txt = runIdentity $ do
+ res <- Text.Parsec.runParserT parseUnit () sourceName []
+ return $
+ case res of
+ Left pe -> Left (show pe)
+ Right a -> Right a