From 97cadac9aa768dbfd836011e59ed6cf3ca38725e Mon Sep 17 00:00:00 2001 From: darkf Date: Fri, 1 Nov 2013 19:17:09 -0700 Subject: [PATCH] parser2: add function call arguments --- parser2.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/parser2.hs b/parser2.hs index 052bab6..356bd46 100644 --- a/parser2.hs +++ b/parser2.hs @@ -12,8 +12,14 @@ statements :: [AST] statement :: AST = expr "." +args :: AST + = expr ("," expr)+ { TupleConst ($1 : $2) } + / expr? { case $1 of + Just x -> x + Nothing -> UnitConst } + expr :: AST - = expr "(" ")" { Call $1 UnitConst } + = expr "(" args ")" { Call $1 $2 } / expr "+" fact { Add $1 $2 } / expr "-" fact { Sub $1 $2 } / fact