churf/Grammar.cf
sebastianselander be3fcfc9e3 Typeinference/checking on expressions done.
Simplified the typechecker a bit, removed GADT solution for now.
Still not fully working
2023-01-24 16:39:22 +01:00

23 lines
460 B
CFEngine3

Program. Program ::= [Def] ;
DExp. Def ::= Ident ":" Type
Ident [Ident] "=" Exp ;
separator Def "";
separator Ident "";
separator Type "->";
EId. Exp3 ::= Ident ;
EInt. Exp3 ::= Integer ;
EApp. Exp2 ::= Exp2 Exp3 ;
EAdd. Exp1 ::= Exp1 "+" Exp2 ;
EAbs. Exp ::= "\\" Ident ":" Type "." Exp ;
coercions Exp 3 ;
TInt. Type1 ::= "Int" ;
TPol. Type1 ::= Ident ;
TFun. Type ::= [Type] ;
coercions Type 1 ;
comment "--" ;
comment "{-" "-}" ;