mirror of
https://github.com/macocianradu/RosettaHaskellCompiler.git
synced 2026-03-18 21:10:07 +00:00
Added haddock documentation
This commit is contained in:
@@ -7,6 +7,7 @@ import Text.Megaparsec.Char
|
||||
import Text.Megaparsec
|
||||
import Parser.General
|
||||
|
||||
-- |Parses a type declaration statement in Rosetta into an Type
|
||||
typeParser :: Parser Type
|
||||
typeParser =
|
||||
do
|
||||
@@ -17,6 +18,7 @@ typeParser =
|
||||
tAttributes <- many $ try typeAttributeParser
|
||||
return (MakeType tName tSuper tDescription tAttributes)
|
||||
|
||||
-- |Parses the super class declaration statement in Rosetta into an Type
|
||||
superTypeParser :: Parser Type
|
||||
superTypeParser =
|
||||
do
|
||||
@@ -24,6 +26,7 @@ superTypeParser =
|
||||
name <- pascalNameParser
|
||||
return $ MakeType name Nothing Nothing []
|
||||
|
||||
-- |Parses a declared type attribute in Rosetta into a TypeAttribute
|
||||
typeAttributeParser :: Parser TypeAttribute
|
||||
typeAttributeParser =
|
||||
do
|
||||
@@ -33,11 +36,13 @@ typeAttributeParser =
|
||||
desc <- optional descriptionParser
|
||||
return (MakeTypeAttribute aName (MakeType aType Nothing Nothing []) card desc)
|
||||
|
||||
-- |Parses the cardinality of a type attribute in Rosetta into a Cardinality
|
||||
cardinalityParser :: Parser Cardinality
|
||||
cardinalityParser =
|
||||
do
|
||||
try parseBounded <|> try parseSemiBounded <|> try parseUnbounded
|
||||
|
||||
-- |Parses a bounded cardinality statement in Rosetta into a Cardinality
|
||||
parseBounded :: Parser Cardinality
|
||||
parseBounded =
|
||||
do
|
||||
@@ -48,7 +53,7 @@ parseBounded =
|
||||
_ <- lexeme $ char ')'
|
||||
return $ Bounds (read low, read up)
|
||||
|
||||
|
||||
-- |Parses a one bounded cardinality statement in Rosetta into a Cardinality
|
||||
parseSemiBounded :: Parser Cardinality
|
||||
parseSemiBounded =
|
||||
do
|
||||
@@ -57,13 +62,14 @@ parseSemiBounded =
|
||||
_ <- lexeme $ string "..*)"
|
||||
return $ OneBound $ read low
|
||||
|
||||
|
||||
-- |Parses an unbounded cardinality statement in Rosetta into a Cardinality
|
||||
parseUnbounded :: Parser Cardinality
|
||||
parseUnbounded =
|
||||
do
|
||||
_ <- lexeme $ string "(*..*)"
|
||||
return NoBounds
|
||||
|
||||
-- |Parses the name of a type in Rosetta into a String
|
||||
typeNameParser :: Parser String
|
||||
typeNameParser =
|
||||
do
|
||||
|
||||
Reference in New Issue
Block a user