Commit bddb8cea by Zachary Snow

fix multiple instantiations on one line

parent b5b9fdb3
......@@ -124,7 +124,7 @@ parseDTsAsModuleItems tokens =
-- internal; parser for module instantiations
parseDTsAsIntantiations :: [DeclToken] -> [ModuleItem]
parseDTsAsIntantiations (DTIdent name : tokens) =
if not (all isInstance rest)
if not (all isInstanceOrComma rest)
then error $ "instantiations mixed with other items: " ++ (show rest)
else map (uncurry $ Instance name params) instances
where
......@@ -132,10 +132,13 @@ parseDTsAsIntantiations (DTIdent name : tokens) =
case head tokens of
DTParams ps -> (ps, tail tokens)
_ -> ([], tokens)
instances = map (\(DTInstance inst) -> inst) rest
isInstance :: DeclToken -> Bool
isInstance (DTInstance _) = True
isInstance _ = False
instances =
map (\(DTInstance inst) -> inst) $
filter (DTComma /=) $ rest
isInstanceOrComma :: DeclToken -> Bool
isInstanceOrComma (DTInstance _) = True
isInstanceOrComma DTComma = True
isInstanceOrComma _ = False
parseDTsAsIntantiations tokens =
error $
"DeclTokens contain instantiations, but start with non-ident: "
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment