feat: add checkColGt at app

@Kha Only one example broke :)
This commit is contained in:
Leonardo de Moura 2020-09-28 11:37:43 -07:00
parent ba28435ef7
commit 08d54b6043
2 changed files with 9 additions and 6 deletions

View file

@ -61,7 +61,7 @@ checkPrec prec >> symbol sym >> termParser (prec+1)
def typeAscription := parser! " : " >> termParser
def tupleTail := parser! ", " >> sepBy1 termParser ", "
def parenSpecial : Parser := optional (tupleTail <|> typeAscription)
@[builtinTermParser] def paren := parser! "(" >> optional (termParser >> parenSpecial) >> ")"
@[builtinTermParser] def paren := parser! "(" >> withoutPosition (optional (termParser >> parenSpecial)) >> ")"
@[builtinTermParser] def anonymousCtor := parser! "⟨" >> sepBy termParser ", " >> "⟩"
def optIdent : Parser := optional (try (ident >> " : "))
@[builtinTermParser] def «if» := parser!:leadPrec "if " >> optIdent >> termParser >> " then " >> termParser >> " else " >> termParser
@ -165,7 +165,10 @@ def attributes := parser! "@[" >> sepBy1 attrInstance ", " >> "]"
def namedArgument := parser! try ("(" >> ident >> " := ") >> termParser >> ")"
def ellipsis := parser! ".."
@[builtinTermParser] def app := tparser!:(maxPrec-1) many1 (checkWsBefore "expected space" >> (namedArgument <|> termParser maxPrec <|> ellipsis))
@[builtinTermParser] def app := tparser!:(maxPrec-1) many1 $
checkWsBefore "expected space" >>
checkColGt "expected to be indented" >>
(namedArgument <|> termParser maxPrec <|> ellipsis)
@[builtinTermParser] def proj := tparser! symbolNoWs "." >> (fieldIdx <|> ident)
@[builtinTermParser] def arrow := tparser! unicodeInfixR " → " " -> " 25

View file

@ -17,10 +17,10 @@ FS.withFile "stdout1.txt" IO.FS.Mode.write $ fun h₁ => do
withStdout (Stream.ofHandle h₁) $ do
println "line 1";
catch
( do
withStdout (Stream.ofHandle h₂) $ println "line 2";
throw $ IO.userError "my error" )
( fun e => println e );
( do
withStdout (Stream.ofHandle h₂) $ println "line 2";
throw $ IO.userError "my error" )
( fun e => println e );
println "line 3" };
println "line 4";
println "\n> stdout1.txt";