on master help sign in
fix parens parsing of ADTs

related to #226

commit610dfe7157ceec8ca46bd49c7bf7327f785527cd authorAgentM <agentm@themactionfaction.com> dateFri 16 Nov 2018, 09:59 (8 years ago) parentcb4706b
1 file changed+3−5
src/bin/TutorialD/Interpreter/Types.hs+3−5
src/bin/TutorialD/Interpreter/Types.hs+3−5
@@ -24,8 +24,7 @@ dataConstructorDefP = DataConstructorDef <$> capitalizedIdentifier <*> many data
2424
2525-- data *Either a b* = Left *a* | Right *b*
2626dataConstructorDefArgP :: Parser DataConstructorDefArg
27−dataConstructorDefArgP = parens (DataConstructorDefTypeConstructorArg <$> typeConstructorP) <|>
28− DataConstructorDefTypeConstructorArg <$> typeConstructorP <|>
27+dataConstructorDefArgP = DataConstructorDefTypeConstructorArg <$> (monoTypeConstructorP <|> parens typeConstructorP) <|>
2928 DataConstructorDefTypeVarNameArg <$> uncapitalizedIdentifier
3029
3130-- relation{a Int} in type construction (no tuples parsed)
@@ -44,9 +43,8 @@ attributeAndTypeNameP = AttributeAndTypeNameExpr <$> identifier <*> typeConstruc
4443-- *Either Int Text*, *Int*
4544typeConstructorP :: Parser TypeConstructor
4645typeConstructorP = relationTypeConstructorP <|>
47− TypeVariable <$> uncapitalizedIdentifier <|>
48− ADTypeConstructor <$> capitalizedIdentifier <*> many (parens typeConstructorP <|>
49− monoTypeConstructorP)
46+ ADTypeConstructor <$> capitalizedIdentifier <*> many (monoTypeConstructorP <|> parens typeConstructorP) <|>
47+ monoTypeConstructorP
5048
5149monoTypeConstructorP :: Parser TypeConstructor
5250monoTypeConstructorP = ADTypeConstructor <$> capitalizedIdentifier <*> pure [] <|>