processOFL :: String -> IO()
processOFL input =
- let result = parseAsOFL input in do
+ let result = parseAsOFL input in
case result of
Left err -> putStrLn $ show err
Right ofl -> putStrLn $ show ofl
properties <- lCommaSep parseFortranParamProperty
return $ FortranParameter properties
-parseFortranParamProperty = do
- (parseNameProperty <|> parseTypeProperty <|> parseSpaceProperty <|> parseIndexedProperty) where
+parseFortranParamProperty =
+ parseNameProperty <|> parseTypeProperty <|> parseSpaceProperty <|> parseIndexedProperty where
parseNameProperty = do _ <- lSymbol "name"; name <- lParens lStringLiteral; return $ ParamName name
parseTypeProperty = do _ <- lSymbol "type"; fType <- lParens parseFortranType; return $ ParamType fType
parseSpaceProperty = do _ <- lSymbol "space"; info <- lParens parseSpaceInfo; return $ Space info
properties <- lCommaSep parsePPDFunctionSetProperty
return $ PPDFunctionSet properties
-parsePPDFunctionSetProperty = do
+parsePPDFunctionSetProperty =
parseBasisProperty <|> parseDataProperty where
parseBasisProperty = do _ <- lSymbol "basis"; ident <- lParens lIdentifier; return $ PPDBasis ident
parseDataProperty = do _ <- lSymbol "data"; ident <- lParens lIdentifier; return $ PPDData ident