X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2FCmmLex.x;h=22741f86469b43cd7dc919343166409b1edfa83c;hb=24d49415d2833a1338dfb5fd8c5c1c84df6c282b;hp=dffb3553f8997cff25d541e6e58cfa6475dbbf8e;hpb=f2cc8b5bc34519a65581dc40b7bfebac97bffd73;p=ghc-hetmet.git diff --git a/compiler/cmm/CmmLex.x b/compiler/cmm/CmmLex.x index dffb355..22741f8 100644 --- a/compiler/cmm/CmmLex.x +++ b/compiler/cmm/CmmLex.x @@ -11,6 +11,13 @@ ----------------------------------------------------------------------------- { +{-# OPTIONS -Wwarn -w #-} +-- The above warning 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 +-- for details + module CmmLex ( CmmToken(..), cmmlex, ) where @@ -29,7 +36,7 @@ import Util --import TRACE } -$whitechar = [\ \t\n\r\f\v\xa0] +$whitechar = [\ \t\n\r\f\v\xa0] -- \xa0 is Unicode no-break space $white_no_nl = $whitechar # \n $ascdigit = 0-9 @@ -88,7 +95,8 @@ $white_no_nl+ ; "&&" { kw CmmT_BoolAnd } "||" { kw CmmT_BoolOr } - R@decimal { global_regN VanillaReg } + P@decimal { global_regN (\n -> VanillaReg n VGcPtr) } + R@decimal { global_regN (\n -> VanillaReg n VNonGcPtr) } F@decimal { global_regN FloatReg } D@decimal { global_regN DoubleReg } L@decimal { global_regN LongReg } @@ -138,8 +146,10 @@ data CmmToken | CmmT_if | CmmT_jump | CmmT_foreign + | CmmT_never | CmmT_prim | CmmT_return + | CmmT_returns | CmmT_import | CmmT_switch | CmmT_case @@ -150,6 +160,7 @@ data CmmToken | CmmT_bits64 | CmmT_float32 | CmmT_float64 + | CmmT_gcptr | CmmT_GlobalReg GlobalReg | CmmT_Name FastString | CmmT_String String @@ -214,8 +225,10 @@ reservedWordsFM = listToUFM $ ( "if", CmmT_if ), ( "jump", CmmT_jump ), ( "foreign", CmmT_foreign ), + ( "never", CmmT_never ), ( "prim", CmmT_prim ), ( "return", CmmT_return ), + ( "returns", CmmT_returns ), ( "import", CmmT_import ), ( "switch", CmmT_switch ), ( "case", CmmT_case ), @@ -225,7 +238,15 @@ reservedWordsFM = listToUFM $ ( "bits32", CmmT_bits32 ), ( "bits64", CmmT_bits64 ), ( "float32", CmmT_float32 ), - ( "float64", CmmT_float64 ) + ( "float64", CmmT_float64 ), +-- New forms + ( "b8", CmmT_bits8 ), + ( "b16", CmmT_bits16 ), + ( "b32", CmmT_bits32 ), + ( "b64", CmmT_bits64 ), + ( "f32", CmmT_float32 ), + ( "f64", CmmT_float64 ), + ( "gcptr", CmmT_gcptr ) ] tok_decimal span buf len