More modules that need LANGUAGE BangPatterns
[ghc-hetmet.git] / compiler / cmm / CmmLex.x
index bfc18c1..50e9aea 100644 (file)
@@ -11,6 +11,7 @@
 -----------------------------------------------------------------------------
 
 {
+{-# 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
@@ -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> {
@@ -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
 
 -- -----------------------------------------------------------------------------