temporary constructor syntax

This commit is contained in:
crumbtoo
2023-12-06 10:29:20 -07:00
parent 22a27dca3b
commit 3a17eb473f
2 changed files with 8 additions and 0 deletions

View File

@@ -76,6 +76,7 @@ rlp :-
"module" { constTok TokenModule } "module" { constTok TokenModule }
"in" { constTok TokenIn } "in" { constTok TokenIn }
"where" { constTok TokenWhere } "where" { constTok TokenWhere }
"Pack" { constTok TokenPack } -- temp
"\\" { constTok TokenLambda } "\\" { constTok TokenLambda }
"λ" { constTok TokenLambda } "λ" { constTok TokenLambda }
@@ -106,6 +107,7 @@ data CoreToken = TokenLet
| TokenModule | TokenModule
| TokenWhere | TokenWhere
| TokenComma | TokenComma
| TokenPack -- temp
| TokenCase | TokenCase
| TokenOf | TokenOf
| TokenLambda | TokenLambda

View File

@@ -36,6 +36,8 @@ import Data.Default.Class (def)
where { Located _ _ _ TokenWhere } where { Located _ _ _ TokenWhere }
case { Located _ _ _ TokenCase } case { Located _ _ _ TokenCase }
of { Located _ _ _ TokenOf } of { Located _ _ _ TokenOf }
',' { Located _ _ _ TokenComma }
pack { Located _ _ _ TokenPack } -- temp
in { Located _ _ _ TokenIn } in { Located _ _ _ TokenIn }
litint { Located _ _ _ (TokenLitInt $$) } litint { Located _ _ _ (TokenLitInt $$) }
varname { Located _ _ _ (TokenVarName $$) } varname { Located _ _ _ (TokenVarName $$) }
@@ -119,8 +121,12 @@ Alter : litint ParList '->' Expr { Alter $1 $2 $4 }
Expr1 :: { Expr } Expr1 :: { Expr }
Expr1 : litint { IntE $1 } Expr1 : litint { IntE $1 }
| Id { Var $1 } | Id { Var $1 }
| PackCon { $1 }
| '(' Expr ')' { $2 } | '(' Expr ')' { $2 }
PackCon :: { Expr }
PackCon : pack '{' litint ',' litint '}' { Con $3 $5 }
Bindings :: { [Binding] } Bindings :: { [Binding] }
Bindings : Binding ';' Bindings { $1 : $3 } Bindings : Binding ';' Bindings { $1 : $3 }
| Binding ';' { [$1] } | Binding ';' { [$1] }