on master help sign in
Fix parser bug: whitespace now allowed at the top of modules
commita12ecc281d543215c8b087a89560ca5bf80989cd authorEdwin Brady <eb@cs.st-andrews.ac.uk> dateThu 23 Feb 2012, 15:25 (15 years ago) parenta5b7eed
1 file changed+5−4
src/Idris/Parser.hs+5−4
src/Idris/Parser.hs+5−4
@@ -141,22 +141,23 @@ parseTac i = runParser (do t <- pTactic defaultSyntax
141141parseImports :: FilePath -> String -> Idris ([String], [String], String, SourcePos)
142142parseImports fname input
143143 = do i <- get
144− case (runParser (do mname <- pHeader
144+ case (runParser (do whiteSpace
145+ mname <- pHeader
145146 ps <- many pImport
146147 rest <- getInput
147148 pos <- getPosition
148149 return ((mname, ps, rest, pos), i)) i fname input) of
149− Left err -> fail (ishow err)
150+ Left err -> fail (show err)
150151 Right (x, i) -> do put i
151152 return x
152153 where ishow err = let ln = sourceLine (errorPos err) in
153154 fname ++ ":" ++ show ln ++ ":parse error"
154−-- show (map messageString (errorMessages err))
155+-- ++ show (map messageString (errorMessages err))
155156
156157pHeader :: IParser [String]
157158pHeader = try (do reserved "module"; i <- identifier; option ';' (lchar ';')
158159 return (parseName i))
159− <|> return []
160+ <|> return []
160161 where parseName x = case span (/='.') x of
161162 (x, "") -> [x]
162163 (x, '.':y) -> x : parseName y