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