DPM-0.1.0: src/DPM/Core/Lexer.x
{
{-# OPTIONS_GHC -w #-}
module DPM.Core.Lexer (scan, Token(..)) where
}
%wrapper "basic"
tokens :-
$white+ "+" $white+ { \_ -> TOr }
$white+ { \_ -> TAnd }
":" { \_ -> TSpecial }
"^" { \_ -> TNot }
"{" { \_ -> TOpen }
"}" { \_ -> TClose }
[^$white\+:\^\{\}]~$white* { TString }
{
data Token = TSpecial -- ':'
| TNot -- '^'
| TAnd -- ' '
| TOr -- ' + '
| TOpen -- '{'
| TClose -- '}'
| TString String
deriving (Eq,Show)
scan :: String -> [Token]
scan = alexScanTokens
}