parser2: add lambda and definitions

This commit is contained in:
darkf 2013-11-01 21:17:36 -07:00
parent 1d4d773cec
commit 10b5825278
1 changed files with 8 additions and 0 deletions

View File

@ -63,11 +63,19 @@ tuple :: AST
doblock :: AST
= "do" semistatements "end" { Block $1 }
lambda :: AST
= "\\" funpattern "->" expr { Lambda [($1, $2)] }
def :: AST
= pattern "=" expr { Def $1 $2 }
expr :: AST
= expr "(" args ")" { Call $1 $2 }
/ expr "::" expr { Cons $1 $2 }
/ expr "+" fact { Add $1 $2 }
/ expr "-" fact { Sub $1 $2 }
/ def
/ lambda
/ identifier "(" funpattern ")" "->" expr { Defun $1 (Lambda [($2, $3)]) }
/ fact