yapb-0.1.0: app/parser/Lexer.hs
module Lexer(lexerSpec) where
import Prelude hiding (EQ)
import CommonParserUtil
import Token
mkFn :: Token -> (String -> Maybe Token)
mkFn tok = \text -> Just tok
skip :: String -> Maybe Token
skip = \text -> Nothing
lexerSpec :: LexerSpec Token
lexerSpec = LexerSpec
{
endOfToken = END_OF_TOKEN,
lexerSpecList =
[ ("[ \t\n]", skip),
("[0-9]+" , mkFn INTEGER_NUMBER),
("\\(" , mkFn OPEN_PAREN),
("\\)" , mkFn CLOSE_PAREN),
("\\+" , mkFn ADD),
("\\-" , mkFn SUB),
("\\*" , mkFn MUL),
("\\/" , mkFn DIV),
("\\=" , mkFn EQ),
("\\;" , mkFn SEMICOLON),
("[a-zA-Z][a-zA-Z0-9]*" , mkFn IDENTIFIER)
]
}