remove tabs (+ ignore tabs option) from LexCore.hs
authorNils Schweinsberg <mail@n-sch.de>
Mon, 2 Jan 2012 23:48:04 +0000 (00:48 +0100)
committerIan Lynagh <igloo@earth.li>
Sun, 15 Jan 2012 15:11:07 +0000 (15:11 +0000)
compiler/parser/LexCore.hs

index b3d8d63..3e37e06 100644 (file)
@@ -1,11 +1,3 @@
-
-{-# OPTIONS -fno-warn-tabs #-}
--- The above warning supression flag is a temporary kludge.
--- While working on this module you are encouraged to remove it and
--- detab the module (please do the detabbing in a separate patch). See
---     http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#TabsvsSpaces
--- for details
-
 module LexCore where
 
 import ParserCoreUtils
@@ -15,39 +7,39 @@ import Numeric
 
 isNameChar :: Char -> Bool
 isNameChar c = isAlpha c || isDigit c || (c == '_') || (c == '\'')
-              || (c == '$') || (c == '-') || (c == '.')
+               || (c == '$') || (c == '-') || (c == '.')
 
 isKeywordChar :: Char -> Bool
-isKeywordChar c = isAlpha c || (c == '_') 
+isKeywordChar c = isAlpha c || (c == '_')
 
 lexer :: (Token -> P a) -> P a 
-lexer cont []          = cont TKEOF []
-lexer cont ('\n':cs)   = \line -> lexer cont cs (line+1)
+lexer cont []           = cont TKEOF []
+lexer cont ('\n':cs)    = \line -> lexer cont cs (line+1)
 lexer cont ('-':'>':cs) = cont TKrarrow cs
 
 lexer cont (c:cs) 
-      | isSpace c              = lexer cont cs
+      | isSpace c               = lexer cont cs
       | isLower c || (c == '_') = lexName cont TKname (c:cs)
-      | isUpper c              = lexName cont TKcname (c:cs)
+      | isUpper c               = lexName cont TKcname (c:cs)
       | isDigit c || (c == '-') = lexNum cont (c:cs)
 
-lexer cont ('%':cs)    = lexKeyword cont cs
-lexer cont ('\'':cs)   = lexChar cont cs
-lexer cont ('\"':cs)   = lexString [] cont cs 
-lexer cont ('#':cs)    = cont TKhash cs
-lexer cont ('(':cs)    = cont TKoparen cs
-lexer cont (')':cs)    = cont TKcparen cs
-lexer cont ('{':cs)    = cont TKobrace cs
-lexer cont ('}':cs)    = cont TKcbrace cs
+lexer cont ('%':cs)     = lexKeyword cont cs
+lexer cont ('\'':cs)    = lexChar cont cs
+lexer cont ('\"':cs)    = lexString [] cont cs 
+lexer cont ('#':cs)     = cont TKhash cs
+lexer cont ('(':cs)     = cont TKoparen cs
+lexer cont (')':cs)     = cont TKcparen cs
+lexer cont ('{':cs)     = cont TKobrace cs
+lexer cont ('}':cs)     = cont TKcbrace cs
 lexer cont ('=':cs)     = cont TKeq cs
 lexer cont (':':'=':':':cs) = cont TKcoloneqcolon cs
 lexer cont (':':':':cs) = cont TKcoloncolon cs
-lexer cont ('*':cs)    = cont TKstar cs
-lexer cont ('.':cs)    = cont TKdot cs
+lexer cont ('*':cs)     = cont TKstar cs
+lexer cont ('.':cs)     = cont TKdot cs
 lexer cont ('\\':cs)    = cont TKlambda cs
-lexer cont ('@':cs)    = cont TKat cs
-lexer cont ('?':cs)    = cont TKquestion cs
-lexer cont (';':cs)    = cont TKsemicolon cs
+lexer cont ('@':cs)     = cont TKat cs
+lexer cont ('?':cs)     = cont TKquestion cs
+lexer cont (';':cs)     = cont TKsemicolon cs
 -- 20060420 GHC spits out constructors with colon in them nowadays. jds
 -- 20061103 but it's easier to parse if we split on the colon, and treat them
 -- as several tokens
@@ -86,14 +78,14 @@ lexNum :: (Token -> String -> a) -> String -> a
 lexNum cont cs =
   case cs of
      ('-':cs) -> f (-1) cs
-     _               -> f 1 cs
+     _        -> f 1 cs
  where f sgn cs = 
          case span isDigit cs of
           (digits,'.':c:rest) 
-               | isDigit c -> cont (TKrational (fromInteger sgn * r)) rest'
-               where ((r,rest'):_) = readFloat (digits ++ ('.':c:rest))
-               -- When reading a floating-point number, which is
-               -- a bit complicated, use the standard library function
+                | isDigit c -> cont (TKrational (fromInteger sgn * r)) rest'
+                where ((r,rest'):_) = readFloat (digits ++ ('.':c:rest))
+                -- When reading a floating-point number, which is
+                -- a bit complicated, use the standard library function
                 -- "readFloat"
           (digits,rest) -> cont (TKinteger (sgn * (read digits))) rest
 
@@ -108,14 +100,14 @@ lexKeyword cont cs =
       ("module",rest) -> cont TKmodule rest
       ("data",rest)  -> cont TKdata rest
       ("newtype",rest) -> cont TKnewtype rest
-      ("forall",rest) -> cont TKforall rest    
-      ("rec",rest) -> cont TKrec rest  
-      ("let",rest) -> cont TKlet rest  
-      ("in",rest) -> cont TKin rest    
-      ("case",rest) -> cont TKcase rest        
-      ("of",rest) -> cont TKof rest    
-      ("cast",rest) -> cont TKcast rest        
-      ("note",rest) -> cont TKnote rest        
+      ("forall",rest) -> cont TKforall rest
+      ("rec",rest) -> cont TKrec rest
+      ("let",rest) -> cont TKlet rest
+      ("in",rest) -> cont TKin rest
+      ("case",rest) -> cont TKcase rest
+      ("of",rest) -> cont TKof rest
+      ("cast",rest) -> cont TKcast rest
+      ("note",rest) -> cont TKnote rest
       ("external",rest) -> cont TKexternal rest
       ("local",rest) -> cont TKlocal rest
       ("_",rest) -> cont TKwild rest