More modules that need LANGUAGE BangPatterns
[ghc-hetmet.git] / compiler / cmm / CmmLex.x
index da5e4df..50e9aea 100644 (file)
@@ -11,8 +11,9 @@
 -----------------------------------------------------------------------------
 
 {
-{-# OPTIONS -w #-}
--- The above warning supression flag is a temporary kludge.
+{-# LANGUAGE BangPatterns #-}
+{-# OPTIONS -Wwarn -w #-}
+-- The above -Wwarn supression flag is a temporary kludge.
 -- While working on this module you are encouraged to remove it and fix
 -- any warnings in the module. See
 --     http://hackage.haskell.org/trac/ghc/wiki/Commentary/CodingStyle#Warnings
@@ -22,8 +23,6 @@ module CmmLex (
    CmmToken(..), cmmlex,
   ) where
 
-#include "HsVersions.h"
-
 import Cmm
 import Lexer
 
@@ -76,7 +75,7 @@ $white_no_nl+         ;
 -- single-line line pragmas, of the form
 --    # <line> "<file>" <extra-stuff> \n
 <line_prag> $digit+                    { setLine line_prag1 }
-<line_prag1> \" ($printable # \")* \"  { setFile line_prag2 }
+<line_prag1> \" [^\"]* \"      { setFile line_prag2 }
 <line_prag2> .*                                { pop }
 
 <0> {
@@ -269,7 +268,7 @@ tok_string str = CmmT_String (read str)
 setLine :: Int -> Action
 setLine code span buf len = do
   let line = parseUnsignedInteger buf len 10 octDecDigit
-  setSrcLoc (mkSrcLoc (srcSpanFile span) (fromIntegral line - 1) 0)
+  setSrcLoc (mkSrcLoc (srcSpanFile span) (fromIntegral line - 1) 1)
        -- subtract one: the line number refers to the *following* line
   -- trace ("setLine "  ++ show line) $ do
   popLexState
@@ -300,7 +299,7 @@ lexToken = do
   sc <- getLexState
   case alexScan inp sc of
     AlexEOF -> do let span = mkSrcSpan loc1 loc1
-                 setLastToken span 0 0
+                 setLastToken span 0
                  return (L span CmmT_EOF)
     AlexError (loc2,_) -> do failLocMsgP loc1 loc2 "lexical error"
     AlexSkip inp2 _ -> do
@@ -309,7 +308,7 @@ lexToken = do
     AlexToken inp2@(end,buf2) len t -> do
        setInput inp2
        let span = mkSrcSpan loc1 end
-       span `seq` setLastToken span len len
+       span `seq` setLastToken span len
        t span buf len
 
 -- -----------------------------------------------------------------------------