| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Language.Lexer.Applicative
Description
For an example, see https://ro-che.info/articles/2015-01-02-lexical-analysis
Documentation
Arguments
| :: RE Char token | regular expression for tokens |
| -> RE Char () | regular expression for whitespace and comments |
| -> String | source file name (used in locations) |
| -> String | source text |
| -> [L token] |
The lexer.
In case of a lexical error, throws the LexicalError exception.
This may seem impure compared to using Either, but it allows to
consume the token list lazily.
Both token and whitespace regexes consume as many characters as possible (the maximal munch rule). When a regex returns without consuming any characters, a lexical error is signaled.
Arguments
| :: RE Char token | regular expression for tokens |
| -> RE Char () | regular expression for whitespace and comments |
| -> String | source file name (used in locations) |
| -> String | source text |
| -> Either LexicalError [L token] |
Like tokens, but returns Left instead of throwing an exception.
This function may be useful occasionally, but most of the time you
should be using tokens instead. If you want to catch LexicalError,
catch it after you plug tokens into a parser, not before, like this
function does.