[add pragmaExp to the lexer/parser
John Meacham <john@repetae.net>**20120216044837
 Ignore-this: 77393cb5bdd28fba526d57d26ac099b8
] hunk ./src/FrontEnd/HsParser.y 66
+      PRAGMAEXP { PragmaExp $$ }
hunk ./src/FrontEnd/HsParser.y 399
-      : PRAGMAINLINE srcloc optphasesn vars PRAGMAEND  { HsPragmaProps $2 $1 $4 }
+      : PRAGMAINLINE srcloc optphasesn vars PRAGMAEND { HsPragmaProps $2 $1 $4 }
hunk ./src/FrontEnd/HsParser.y 412
+pragmaexp  :: { Located HsPragmaExp }
+      : PRAGMAEXP srcloc texps srcloc PRAGMAEND
+        { located ($2,$4) $ HsPragmaExp $1 $3 }
+
hunk ./src/FrontEnd/HsSyn.hs 39
-    hsModuleName :: Module,
-    hsModuleSrcLoc :: SrcLoc,
+    hsModuleName    :: Module,
+    hsModuleSrcLoc  :: SrcLoc,
hunk ./src/FrontEnd/HsSyn.hs 43
-    hsModuleDecls :: [HsDecl],
+    hsModuleDecls   :: [HsDecl],
hunk ./src/FrontEnd/HsSyn.hs 45
-    hsModuleOpt :: Opt
+    hsModuleOpt     :: Opt
hunk ./src/FrontEnd/HsSyn.hs 64
-    hsImportDeclSrcLoc :: SrcLoc,
-    hsImportDeclModule :: Module,
+    hsImportDeclSrcLoc    :: SrcLoc,
+    hsImportDeclModule    :: Module,
hunk ./src/FrontEnd/HsSyn.hs 67
-    hsImportDeclAs :: (Maybe Module),
-    hsImportDeclSpec :: (Maybe (Bool,[HsExportSpec]))
+    hsImportDeclAs        :: (Maybe Module),
+    hsImportDeclSpec      :: (Maybe (Bool,[HsExportSpec]))
hunk ./src/FrontEnd/HsSyn.hs 233
+data HsPragmaExp = HsPragmaExp String [HsExp]
+
hunk ./src/FrontEnd/HsSyn.hs 251
-        hsConDeclName :: HsName,
+        hsConDeclName   :: HsName,
hunk ./src/FrontEnd/HsSyn.hs 257
-        hsConDeclName :: HsName,
+        hsConDeclName   :: HsName,
hunk ./src/FrontEnd/Lexer.hs 55
-    | PragmaInline String
-    | PragmaRules !Bool
+    | PragmaInline  String
+    | PragmaExp     String
+    | PragmaRules   !Bool
hunk ./src/FrontEnd/Lexer.hs 697
+pragmas_exp = [
+    ["CTYPE"]
+    ]
+
hunk ./src/FrontEnd/Lexer.hs 711
-pragmas = Map.fromList $ [ (y,Left x) | xs@(x:_)  <- pragmas_raw, y <- xs] ++  [ (y,Right w) | (xs@(~(x:_)),w)  <- pragmas_all , y <- xs] where
-    pragmas_all = pragmas_parsed ++ [ (xs,PragmaStart x) | xs@(~(x:_)) <- pragmas_std ]
+pragmas = Map.fromList $ [ (y,Left x) | xs@(x:_)  <- pragmas_raw, y <- xs] ++
+    [ (y,Right w) | (xs@(~(x:_)),w)  <- pragmas_all , y <- xs] where
+        pragmas_all = pragmas_parsed ++
+            [ (xs,PragmaStart x) | xs@(~(x:_)) <- pragmas_std ] ++
+            [ (xs,PragmaExp x) | xs@(~(x:_)) <- pragmas_exp ]