module Language.JavaScript.Parser.LexerUtils
( StartCode
, symbolToken
, mkString
, commentToken
, wsToken
, regExToken
, decimalToken
, hexIntegerToken
, octalToken
, stringToken
) where
import Language.JavaScript.Parser.Token as Token
import Language.JavaScript.Parser.SrcLocation
import Prelude hiding (span)
type StartCode = Int
symbolToken :: Monad m => (TokenPosn -> [CommentAnnotation] -> Token) -> TokenPosn -> Int -> String -> m Token
symbolToken mkToken location _ _ = return (mkToken location [])
mkString :: (Monad m) => (TokenPosn -> String -> Token) -> TokenPosn -> Int -> String -> m Token
mkString toToken loc len str = return (toToken loc (take len str))
decimalToken :: TokenPosn -> String -> Token
decimalToken loc str = DecimalToken loc str []
hexIntegerToken :: TokenPosn -> String -> Token
hexIntegerToken loc str = HexIntegerToken loc str []
octalToken :: TokenPosn -> String -> Token
octalToken loc str = OctalToken loc str []
regExToken :: TokenPosn -> String -> Token
regExToken loc str = RegExToken loc str []
stringToken :: TokenPosn -> String -> Token
stringToken loc str = StringToken loc str []
commentToken :: TokenPosn -> String -> Token
commentToken loc str = CommentToken loc str []
wsToken :: TokenPosn -> String -> Token
wsToken loc str = WsToken loc str []