aboutsummaryrefslogtreecommitdiff
path: root/snug-clean/src
diff options
context:
space:
mode:
authorCamil Staps2023-06-20 22:17:17 +0200
committerCamil Staps2023-06-20 22:17:17 +0200
commita1e0ba56b9eed9d23c835bb66278e1a6019f6075 (patch)
tree07bb213e60c5dbfcd5821c150a37beacf4a06499 /snug-clean/src
parentUse StateT for CompileM; incorporate Globals and add label generator (diff)
Simplify case syntax (at least for now): do not allow nested patterns
Diffstat (limited to 'snug-clean/src')
-rw-r--r--snug-clean/src/Snug/Parse.icl2
-rw-r--r--snug-clean/src/Snug/Syntax.dcl2
2 files changed, 2 insertions, 2 deletions
diff --git a/snug-clean/src/Snug/Parse.icl b/snug-clean/src/Snug/Parse.icl
index 4347c34..783fc1a 100644
--- a/snug-clean/src/Snug/Parse.icl
+++ b/snug-clean/src/Snug/Parse.icl
@@ -80,7 +80,7 @@ where
caseAlternative = liftM2 CaseAlternative pattern (pToken TArrow *> expression)
complexPattern
- = liftM2 ConstructorPattern constructorIdent (many simpleOrParenthesizedPattern)
+ = liftM2 ConstructorPattern constructorIdent (many symbolIdent)
simplePattern
= pToken TUnderscore $> Wildcard
<<|> BasicValuePattern <$> basicValue
diff --git a/snug-clean/src/Snug/Syntax.dcl b/snug-clean/src/Snug/Syntax.dcl
index 865d5f7..5246dcd 100644
--- a/snug-clean/src/Snug/Syntax.dcl
+++ b/snug-clean/src/Snug/Syntax.dcl
@@ -21,7 +21,7 @@ definition module Snug.Syntax
= Wildcard
| BasicValuePattern !BasicValue
| IdentPattern !SymbolIdent
- | ConstructorPattern !ConstructorIdent ![Pattern]
+ | ConstructorPattern !ConstructorIdent ![SymbolIdent]
:: CaseAlternative
= CaseAlternative !Pattern !Expression