feat(library/init/lean/parser/term): add ifTerm
This commit is contained in:
parent
56007d7c97
commit
44730314ff
2 changed files with 5 additions and 0 deletions
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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 ()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue