feat(library/init/lean/parser/term): add ifTerm

This commit is contained in:
Leonardo de Moura 2019-07-02 16:29:06 -07:00
parent 56007d7c97
commit 44730314ff
2 changed files with 5 additions and 0 deletions

View file

@ -30,6 +30,10 @@ namespace Term
@[builtinTermParser] def cdot := parser! symbol "·" maxPrec
@[inline] def parenSpecial : Parser := optional (", " >> sepBy termParser ", " <|> " : " >> termParser)
@[builtinTermParser] def paren := parser! symbol "(" maxPrec >> optional (termParser >> parenSpecial) >> ")"
@[inline] def optIdent : Parser := optional (try (ident >> " : "))
@[builtinTermParser] def ifTerm := parser! "if " >> optIdent >> termParser >> " then " >> termParser >> " else " >> termParser
-- @[builtinTermParser] def haveTerm := parser! "have " >> optIdent >> termParser >> " then " >> termParser >> " else " >> termParser
@[builtinTermParser] def app := tparser! pushLeading >> termParser maxPrec

View file

@ -23,4 +23,5 @@ testParser "()";
testParser "(f x)";
testParser "(f x : Type)";
testParser "h (f x) (g y)";
testParser "if x then f x else g x";
pure ()