diff options
Diffstat (limited to 'compiler/parser/LexCore.hs')
-rw-r--r-- | compiler/parser/LexCore.hs | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/compiler/parser/LexCore.hs b/compiler/parser/LexCore.hs index 1a545a3e43..32ea6a8395 100644 --- a/compiler/parser/LexCore.hs +++ b/compiler/parser/LexCore.hs @@ -5,7 +5,8 @@ import Ratio import Char import qualified Numeric( readFloat, readDec ) -isNameChar c = isAlpha c || isDigit c || (c == '_') || (c == '\'') +isNameChar c = isAlpha c || isDigit c || (c == '_') || (c == '\'') + || (c == ':') || (c == '$') isKeywordChar c = isAlpha c || (c == '_') lexer :: (Token -> P a) -> P a @@ -35,6 +36,10 @@ lexer cont ('\\':cs) = cont TKlambda cs lexer cont ('@':cs) = cont TKat cs lexer cont ('?':cs) = cont TKquestion cs lexer cont (';':cs) = cont TKsemicolon cs +-- 20060420 GHC spits out constructors with colon in them nowadays. jds +lexer cont (':':cs) = lexName cont TKcname (':':cs) +-- 20060420 Likewise does it create identifiers starting with dollar. jds +lexer cont ('$':cs) = lexName cont TKname ('$':cs) lexer cont (c:cs) = failP "invalid character" [c] |