From 278ee46f0fa93a3db4ebdc6878fcd9b1d990094a Mon Sep 17 00:00:00 2001 From: Rose Hogenson Date: Sun, 7 Apr 2024 09:11:28 -0700 Subject: Add tests and fix variables. --- parser.sml | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'parser.sml') diff --git a/parser.sml b/parser.sml index af3dfd7..6efc4aa 100644 --- a/parser.sml +++ b/parser.sml @@ -447,7 +447,12 @@ struct const (Syntax.ELambda (p, e))))) <|> raiseExpr) st and expr : Syntax.expr parser = fn st => fnExpr st - and dec : Syntax.dec parser = fn st => (reserved "val" >> reserved "_" >> reserved "=" >> Syntax.DVal <$> expr) st + and dec : Syntax.dec parser = fn st => + (reserved "val" >> + bind pat (fn p => + reserved "=" >> + bind expr (fn e => + const (Syntax.DVal (p, e))))) st val program : Syntax.expr parser = (fn decs => Syntax.ELet (decs, Syntax.EInt 0)) <$> many dec fun parse (f : string) : (string, Syntax.expr) Result.either = runParser program f -- cgit v1.3.1