X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fparser%2FLexer.x;h=fdbaeef3feaa773673b9bdec87c2e9d6220df075;hb=7ab880e6cbce4e095d8316d4289066aa2d50419b;hp=8ef2071b482cbef5c905e599c3f73d3222106f7a;hpb=33989e6eb745ca9d54ba638bc89bec7660cba4be;p=ghc-hetmet.git diff --git a/compiler/parser/Lexer.x b/compiler/parser/Lexer.x index 8ef2071..fdbaeef 100644 --- a/compiler/parser/Lexer.x +++ b/compiler/parser/Lexer.x @@ -376,6 +376,8 @@ data Token | ITccallconv | ITdotnet | ITmdo + | ITiso + | ITfamily -- Pragmas | ITinline_prag Bool -- True <=> INLINE, False <=> NOINLINE @@ -499,6 +501,8 @@ isSpecial ITunsafe = True isSpecial ITccallconv = True isSpecial ITstdcallconv = True isSpecial ITmdo = True +isSpecial ITiso = True +isSpecial ITfamily = True isSpecial _ = False -- the bitmap provided as the third component indicates whether the @@ -539,6 +543,8 @@ reservedWordsFM = listToUFM $ ( "forall", ITforall, bit tvBit), ( "mdo", ITmdo, bit glaExtsBit), + ( "iso", ITiso, bit glaExtsBit), + ( "family", ITfamily, bit glaExtsBit), ( "foreign", ITforeign, bit ffiBit), ( "export", ITexport, bit ffiBit), @@ -588,6 +594,9 @@ reservedSymsFM = listToUFM $ ,("→", ITrarrow, bit glaExtsBit) ,("←", ITlarrow, bit glaExtsBit) ,("⋯", ITdotdot, bit glaExtsBit) + -- ToDo: ideally, → and ∷ should be "specials", so that they cannot + -- form part of a large operator. This would let us have a better + -- syntax for kinds: ɑ∷*→* would be a legal kind signature. (maybe). #endif ]