projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Retrieving the datacon of an arbitrary closure
[ghc-hetmet.git]
/
compiler
/
cmm
/
CmmLex.x
diff --git
a/compiler/cmm/CmmLex.x
b/compiler/cmm/CmmLex.x
index
c2efd17
..
fb1179f
100644
(file)
--- a/
compiler/cmm/CmmLex.x
+++ b/
compiler/cmm/CmmLex.x
@@
-1,5
+1,6
@@
-----------------------------------------------------------------------------
-----------------------------------------------------------------------------
--- (c) The University of Glasgow, 2004
+--
+-- (c) The University of Glasgow, 2004-2006
--
-- Lexer for concrete Cmm. We try to stay close to the C-- spec, but there
-- are a few minor differences:
--
-- Lexer for concrete Cmm. We try to stay close to the C-- spec, but there
-- are a few minor differences:
@@
-24,7
+25,7
@@
import UniqFM
import StringBuffer
import FastString
import Ctype
import StringBuffer
import FastString
import Ctype
-import Util ( readRational )
+import Util
--import TRACE
}
--import TRACE
}
@@
-137,6
+138,7
@@
data CmmToken
| CmmT_if
| CmmT_jump
| CmmT_foreign
| CmmT_if
| CmmT_jump
| CmmT_foreign
+ | CmmT_prim
| CmmT_import
| CmmT_switch
| CmmT_case
| CmmT_import
| CmmT_switch
| CmmT_case
@@
-211,6
+213,7
@@
reservedWordsFM = listToUFM $
( "if", CmmT_if ),
( "jump", CmmT_jump ),
( "foreign", CmmT_foreign ),
( "if", CmmT_if ),
( "jump", CmmT_jump ),
( "foreign", CmmT_foreign ),
+ ( "prim", CmmT_prim ),
( "import", CmmT_import ),
( "switch", CmmT_switch ),
( "case", CmmT_case ),
( "import", CmmT_import ),
( "switch", CmmT_switch ),
( "case", CmmT_case ),
@@
-274,7
+277,7
@@
lexToken = do
sc <- getLexState
case alexScan inp sc of
AlexEOF -> do let span = mkSrcSpan loc1 loc1
sc <- getLexState
case alexScan inp sc of
AlexEOF -> do let span = mkSrcSpan loc1 loc1
- setLastToken span 0
+ setLastToken span 0 0
return (L span CmmT_EOF)
AlexError (loc2,_) -> do failLocMsgP loc1 loc2 "lexical error"
AlexSkip inp2 _ -> do
return (L span CmmT_EOF)
AlexError (loc2,_) -> do failLocMsgP loc1 loc2 "lexical error"
AlexSkip inp2 _ -> do
@@
-283,7
+286,7
@@
lexToken = do
AlexToken inp2@(end,buf2) len t -> do
setInput inp2
let span = mkSrcSpan loc1 end
AlexToken inp2@(end,buf2) len t -> do
setInput inp2
let span = mkSrcSpan loc1 end
- span `seq` setLastToken span len
+ span `seq` setLastToken span len len
t span buf len
-- -----------------------------------------------------------------------------
t span buf len
-- -----------------------------------------------------------------------------