@@ -47,6 +47,7 @@ module Language.PureScript.Parser.Lexer
4747 , comma
4848 , semi
4949 , at
50+ , underscore
5051 , semiSep
5152 , semiSep1
5253 , commaSep
@@ -105,6 +106,7 @@ data Token
105106 | Comma
106107 | Semi
107108 | At
109+ | Underscore
108110 | LName String
109111 | UName String
110112 | Qualifier String
@@ -133,6 +135,7 @@ prettyPrintToken Dot = "."
133135prettyPrintToken Comma = ","
134136prettyPrintToken Semi = ";"
135137prettyPrintToken At = "@"
138+prettyPrintToken Underscore = "_"
136139prettyPrintToken (Indent n) = "indentation at level " ++ show n
137140prettyPrintToken (LName s) = show s
138141prettyPrintToken (UName s) = show s
@@ -196,6 +199,7 @@ parseToken = P.choice
196199 , P.try $ P.char '.' *> P.notFollowedBy symbolChar *> pure Dot
197200 , P.try $ P.char ';' *> P.notFollowedBy symbolChar *> pure Semi
198201 , P.try $ P.char '@' *> P.notFollowedBy symbolChar *> pure At
202+ , P.try $ P.char '_' *> P.notFollowedBy identLetter *> pure Underscore
199203 , LName <$> parseLName
200204 , do uName <- parseUName
201205 (guard (validModuleName uName) >> Qualifier uName <$ P.char '.') <|> pure (UName uName)
@@ -349,6 +353,9 @@ semi = match Semi
349353at :: TokenParser ()
350354at = match At
351355
356+underscore :: TokenParser ()
357+underscore = match Underscore
358+
352359-- |
353360-- Parse zero or more values separated by semicolons
354361--