GenTokenParser
GenTokenParserという型は、レコードになっている
フィールドのそれぞれがフィールド名に対するparser
例えばcolonフィールドには、.をパースするためのparserが格納される
GenLanguageDefで定義したコメントはスキップするようなパーサーが作成される
ただし、入力の先頭のスペースはスキップされない
code:hs
data GenTokenParser s u m = TokenParser {
identifier :: ParsecT s u m String,
reserved :: String -> ParsecT s u m (),
operator :: ParsecT s u m String,
reservedOp :: String -> ParsecT s u m (),
charLiteral :: ParsecT s u m Char,
stringLiteral :: ParsecT s u m String,
natural :: ParsecT s u m Integer,
integer :: ParsecT s u m Integer,
float :: ParsecT s u m Double,
naturalOrFloat :: ParsecT s u m (Either Integer Double),
decimal :: ParsecT s u m Integer,
hexadecimal :: ParsecT s u m Integer,
octal :: ParsecT s u m Integer,
symbol :: String -> ParsecT s u m String,
lexeme :: forall a. ParsecT s u m a -> ParsecT s u m a,
whiteSpace :: ParsecT s u m (),
parens :: forall a. ParsecT s u m a -> ParsecT s u m a,
braces :: forall a. ParsecT s u m a -> ParsecT s u m a,
angles :: forall a. ParsecT s u m a -> ParsecT s u m a,
brackets :: forall a. ParsecT s u m a -> ParsecT s u m a,
squares :: forall a. ParsecT s u m a -> ParsecT s u m a,
semi :: ParsecT s u m String,
comma :: ParsecT s u m String,
colon :: ParsecT s u m String,
dot :: ParsecT s u m String,
semiSep :: forall a . ParsecT s u m a -> ParsecT s u m a, semiSep1 :: forall a . ParsecT s u m a -> ParsecT s u m a, commaSep :: forall a . ParsecT s u m a -> ParsecT s u m a, commaSep1 :: forall a . ParsecT s u m a -> ParsecT s u m a }