@@ -82,7 +82,9 @@ loadSource f = do iLOG ("Reading " ++ f)
84parseExpr i = runParser (pFullExpr defaultSyntax) i "(input)"
84parseExpr i = runParser (pFullExpr defaultSyntax) i "(input)"
85−parseTac i = runParser (pTactic defaultSyntax) i "(proof)"
85+parseTac i = runParser (do t <- pTactic defaultSyntax
87+ return t) i "(proof)"
87parseImports :: FilePath -> String -> Idris ([String], String, SourcePos)
89parseImports :: FilePath -> String -> Idris ([String], String, SourcePos)
88parseImports fname input
90parseImports fname input
@@ -751,6 +753,10 @@ pTactic syn = do reserved "intro"; ns <- sepBy pName (lchar ',')
751 <|> do reserved "rewrite"; t <- pExpr syn;
753 <|> do reserved "rewrite"; t <- pExpr syn;
752 i <- getState
754 i <- getState
753 return $ Rewrite (desugar syn i t)
755 return $ Rewrite (desugar syn i t)
756+ <|> do reserved "let"; n <- pName; lchar '=';
759+ return $ LetTac n (desugar syn i t)
754 <|> do reserved "focus"; n <- pName
760 <|> do reserved "focus"; n <- pName
755 return $ Focus n
761 return $ Focus n
756 <|> do reserved "exact"; t <- pExpr syn;
762 <|> do reserved "exact"; t <- pExpr syn;