yapb-0.2: app/syntaxcompletion/Lexer.hs
module Lexer(lexerSpec) where
import Prelude hiding (EQ)
import CommonParserUtil
import Token
mkFn :: Token -> LexAction Token IO () -- (String -> Maybe Token)
mkFn tok = \text -> return (Just tok)
skip :: LexAction Token IO () -- String -> Maybe Token
skip = \text -> return Nothing
lexerSpec :: LexerSpec Token IO ()
lexerSpec = LexerSpec
{
endOfToken = END_OF_TOKEN,
lexerSpecList =
[ ("[ \t\n]", skip),
("\\(" , mkFn OPEN_PAREN),
("\\)" , mkFn CLOSE_PAREN),
("fn" , mkFn FN),
("let" , mkFn LET),
("in" , mkFn IN),
("end" , mkFn END),
("val" , mkFn VAL),
("=>" , mkFn ARROW),
("=" , mkFn EQ),
("[a-zA-Z][a-zA-Z0-9]*" , mkFn IDENTIFIER)
]
}