trifecta-0.36.3: A modern parser combinator library with convenient diagnostics

Portabilitynon-portable
Stabilityexperimental
Maintainerekmett@gmail.com

Text.Trifecta.Parser.Token.Class

Description

 

Documentation

class MonadParser m => MonadTokenParser m whereSource

Methods

whiteSpace :: m ()Source

Parses any white space. White space consists of zero or more occurrences of a space, a line comment or a block (multi line) comment. Block comments may be nested. How comments are started and ended is defined by this method.

lexeme :: m a -> m aSource

lexeme p first applies parser p and then the whiteSpace parser, returning the value of p. Every lexical token (lexeme) is defined using lexeme, this way every parse starts at a point without white space. Parsers that use lexeme are called lexeme parsers in this document.

The only point where the whiteSpace parser should be called explicitly is the start of the main parser in order to skip any leading white space.

    mainParser  = do { whiteSpace
                     ; ds <- many (lexeme digit)
                     ; eof
                     ; return (sum ds)
                     }