module System.DotFS.Core.Lexers where
import Prelude hiding (lex)
import Text.Parsec
import Text.Parsec.Language
import Text.Parsec.Token as P
import Data.Functor.Identity
tagletter :: forall u. ParsecT [Char] u Data.Functor.Identity.Identity Char
tagletter = oneOf "~!@#$%^&*_+|`-=\\:<>?[]',./"
lang :: LanguageDef st
lang = javaStyle
{ reservedNames = ["commentstyle","tagstyle","if","else","true","false"]
, caseSensitive = True
, opStart = tagletter
, opLetter = tagletter
}
lex :: forall u. GenTokenParser String u Identity
lex = P.makeTokenParser lang
styleLang :: LanguageDef st
styleLang = emptyDef
{ opStart = tagletter
, opLetter = tagletter }
styleLex :: forall u. GenTokenParser String u Identity
styleLex = P.makeTokenParser styleLang