Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

45 lines (37 sloc) 1.173 kb
module Arsec
(
Comment
, comment
, semi
, showC
, unichar
, unichars
, module Control.Applicative
, module Control.Monad
, module Data.Char
, module Text.ParserCombinators.Parsec.Char
, module Text.ParserCombinators.Parsec.Combinator
, module Text.ParserCombinators.Parsec.Error
, module Text.ParserCombinators.Parsec.Prim
) where
import Control.Monad
import Control.Applicative
import Data.Char
import Numeric
import Text.ParserCombinators.Parsec.Char hiding (lower, upper)
import Text.ParserCombinators.Parsec.Combinator hiding (optional)
import Text.ParserCombinators.Parsec.Error
import Text.ParserCombinators.Parsec.Prim hiding ((<|>), many)
type Comment = String
unichar :: Parser Char
unichar = chr . fst . head . readHex <$> many1 hexDigit
unichars :: Parser [Char]
unichars = manyTill (unichar <* spaces) semi
semi :: Parser ()
semi = char ';' *> spaces *> pure ()
comment :: Parser Comment
comment = (char '#' *> manyTill anyToken (char '\n')) <|> string "\n"
showC :: Char -> String
showC c = "'\\x" ++ d ++ "'"
where h = showHex (ord c) ""
d = replicate (4 - length h) '0' ++ h
Jump to Line
Something went wrong with that request. Please try again.