X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=blobdiff_plain;f=compiler%2Fcmm%2FCmmLex.x;h=0a1929056a00a5e59aedf104f85a3d6037ce005f;hp=bfc18c1844ae79bba90f1266050722b0cc48e86b;hb=927df6486bc0dcb598b82702ca40c8fad0d9b25f;hpb=2fe38b5fb0957f9428864afd69ad3ccd82fae3d0 diff --git a/compiler/cmm/CmmLex.x b/compiler/cmm/CmmLex.x index bfc18c1..0a19290 100644 --- a/compiler/cmm/CmmLex.x +++ b/compiler/cmm/CmmLex.x @@ -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,9 +23,7 @@ module CmmLex ( CmmToken(..), cmmlex, ) where -#include "HsVersions.h" - -import Cmm +import OldCmm import Lexer import SrcLoc @@ -76,7 +75,7 @@ $white_no_nl+ ; -- single-line line pragmas, of the form -- # "" \n $digit+ { setLine line_prag1 } - \" ($printable # \")* \" { setFile line_prag2 } + \" [^\"]* \" { setFile 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 -- -----------------------------------------------------------------------------