diff options
| author | Eugen Wissner <belka@caraus.de> | 2024-07-23 22:44:42 +0200 |
|---|---|---|
| committer | Eugen Wissner <belka@caraus.de> | 2024-07-23 22:44:42 +0200 |
| commit | 9d1f0385945e926e7084e60fc72fe5846e7139b2 (patch) | |
| tree | 96bd319dc0dc26059ce3f42d5a91f84624fe3ea0 /src/Language/Elna/Parser.hs | |
| parent | 01398f48bf2d17a3836a5d5b5467d0fb05e3f337 (diff) | |
| download | elna-9d1f0385945e926e7084e60fc72fe5846e7139b2.tar.gz | |
Split in lib and tests
Diffstat (limited to 'src/Language/Elna/Parser.hs')
| -rw-r--r-- | src/Language/Elna/Parser.hs | 37 |
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) |
