summaryrefslogtreecommitdiff
path: root/src/Language/Elna/Parser.hs
diff options
context:
space:
mode:
authorEugen Wissner <belka@caraus.de>2024-07-23 22:44:42 +0200
committerEugen Wissner <belka@caraus.de>2024-07-23 22:44:42 +0200
commit9d1f0385945e926e7084e60fc72fe5846e7139b2 (patch)
tree96bd319dc0dc26059ce3f42d5a91f84624fe3ea0 /src/Language/Elna/Parser.hs
parent01398f48bf2d17a3836a5d5b5467d0fb05e3f337 (diff)
downloadelna-9d1f0385945e926e7084e60fc72fe5846e7139b2.tar.gz
Split in lib and tests
Diffstat (limited to 'src/Language/Elna/Parser.hs')
-rw-r--r--src/Language/Elna/Parser.hs37
1 files changed, 0 insertions, 37 deletions
diff --git a/src/Language/Elna/Parser.hs b/src/Language/Elna/Parser.hs
deleted file mode 100644
index 87ebc44..0000000
--- a/src/Language/Elna/Parser.hs
+++ /dev/null
@@ -1,37 +0,0 @@
-module Language.Elna.Parser
- ( Parser
- , programP
- ) where
-
-import Control.Monad (void)
-import Data.Text (Text)
-import Data.Void (Void)
-import Language.Elna.AST
- ( Statement(..)
- , Program(..)
- )
-import Text.Megaparsec (Parsec)
-import Text.Megaparsec.Char (space1)
-import qualified Text.Megaparsec.Char.Lexer as Lexer
-
-type Parser = Parsec Void Text
-
-space :: Parser ()
-space = Lexer.space space1 (Lexer.skipLineComment "//")
- $ Lexer.skipBlockComment "{" "}"
-
-lexeme :: forall a. Parser a -> Parser a
-lexeme = Lexer.lexeme space
-
-symbol :: Text -> Parser Text
-symbol = Lexer.symbol space
-
-beginP :: Parser ()
-beginP = void $ symbol "begin"
-
-endP :: Parser ()
-endP = void $ symbol "end"
-
-programP :: Parser Program
-programP = beginP >> endP >> symbol "."
- >> pure (Program mempty $ CompoundStatement mempty)