{- 
   Lexing rules:

   case (
      if next is \,                                         -> Llparen
      if next is symbol, take symbols and expect closing )  -> Lvar
      if next is :, take tail-ident-chars, expect closing ) -> Lcon
      otherwise                                             -> Llparen

   case `
      if next A-Z, take tail-ident-chars, expect `          -> Lconop
      if next a-z, take tail-ident-chars, expect `          -> Lvarop
      otherwise                                             -> error

   case A-Z
      take tail-ident-chars                                 -> Lcon

   case a-z
      take tail-ident-chars                                 -> Lvar

   case 0-9
      take 0-9s                                             -> Lintlit

   case '
      expect a lit-char, then '                             -> charlit

   case "
      expect lit-chars, then "                              -> stringlit

   case {
      case -                                                -> run_comment
      otherwise                                             -> Llbrace

   case }                                                   -> Lrbrace

   case )                                                   -> Lrparen

   case [                                                   -> Llbrack
   case ]                                                   -> Lrbrack

   case ;                                                   -> Lsemi
   case ,                                                   -> Lcomma
   case _                                                   -> Lunder
   case -
      case -                                                -> line_comment
      case >                                                -> Larrow
      otherwise                                             -> Lminus

   case # in column 1: this is a preprocessor line

   case :!#$%&*+./<=>?@\^|~
      take symbols, then case resulting
         "="                                                -> Lequals
         "|"                                                -> Lbar
         "\"                                                -> Lslash
         otherwise
            if starts with :                                -> Lconop
            else                                            -> lvarop
-}



-- ==========================================================--
--
leLex :: Int -> Int -> String -> [Token]

leLex l n [] 
   = repeat (99997, 99997, Leof, "")
leLex :: Int -> Int -> String -> [Token]
leLex l n [] 
   = repeat (99997, 99997, Leof, "")
leLex l n [] 
   = repeat (99997, 99997, Leof, "")