Parse .mima-flag files
This commit is contained in:
parent
c887e57dbd
commit
f1d097094d
3 changed files with 199 additions and 0 deletions
30
src/Mima/Parser/Lexeme.hs
Normal file
30
src/Mima/Parser/Lexeme.hs
Normal file
|
|
@ -0,0 +1,30 @@
|
|||
module Mima.Parser.Lexeme
|
||||
( space
|
||||
, lexeme
|
||||
, symbol
|
||||
, lNewline
|
||||
, lNewlines
|
||||
) where
|
||||
|
||||
import Control.Monad
|
||||
import qualified Data.Text as T
|
||||
import Text.Megaparsec
|
||||
import qualified Text.Megaparsec.Char as C
|
||||
import qualified Text.Megaparsec.Char.Lexer as L
|
||||
|
||||
import Mima.Parser.Common
|
||||
|
||||
space :: Parser ()
|
||||
space = L.space (void whitespace) empty empty
|
||||
|
||||
lexeme :: Parser a -> Parser a
|
||||
lexeme = L.lexeme space
|
||||
|
||||
symbol :: T.Text -> Parser T.Text
|
||||
symbol = L.symbol space
|
||||
|
||||
lNewline :: Parser ()
|
||||
lNewline = void $ lexeme C.newline
|
||||
|
||||
lNewlines :: Parser ()
|
||||
lNewlines = void (some lNewline) <|> eof
|
||||
Loading…
Add table
Add a link
Reference in a new issue