on master help sign in
Changed to not affect normal expression parsing
commit2c91acc319bac05467a63030dd4729f55b872821 authorZack Grannan <zgrannan@gmail.com> dateMon 5 Oct 2015, 21:40 (11 years ago) parenta8f7652
3 files changed+20−6
src/Idris/REPLParser.hs+8−4 test/interactive010/expected+11−2 test/interactive010/input+1
src/Idris/REPLParser.hs+8−4
@@ -163,10 +163,9 @@ pCmd :: P.IdrisParser (Either String Command)
163163pCmd = choice [ do c <- cmd names; parser c
164164 | (names, _, _, parser) <- parserCommandsForHelp ++ parserCommands ]
165165 <|> unrecognized
166− <|> nop
166+ <|> nop
167167 <|> eval
168168 where nop = do eof; return (Right NOP)
169− eval = exprArg Eval ""
170169 unrecognized = do
171170 P.lchar ':'
172171 cmd <- many anyChar
@@ -194,6 +193,11 @@ noArgs cmd name = do
194193
195194 emptyArgs <|> failure
196195
196+eval :: P.IdrisParser (Either String Command)
197+eval = do
198+ t <- P.fullExpr defaultSyntax
199+ return $ Right (Eval t)
200+
197201exprArg :: (PTerm -> Command) -> String -> P.IdrisParser (Either String Command)
198202exprArg cmd name = do
199203 let noArg = do
@@ -201,9 +205,9 @@ exprArg cmd name = do
201205 return $ Left ("Usage is :" ++ name ++ " <expression>")
202206
203207 let justOperator = do
204− (op, fc) <- P.maybeWithNS P.operatorFC False []
208+ (op, fc) <- P.operatorFC
205209 eof
206− return $ Right $ cmd (PRef fc [] op)
210+ return $ Right $ cmd (PRef fc [] (sUN op))
207211
208212 let properArg = do
209213 t <- P.fullExpr defaultSyntax
test/interactive010/expected+11−2
@@ -3,11 +3,20 @@ Prelude.Strings.(++) : String -> String -> String
33Prelude.Classes./ : (__pi_arg : Float) →
44 (__pi_arg1 : Float) → Float
55Usage is :doc <functionname>
6+Usage is :wc <functionname>
67Usage is :printdef <functionname>
78prim__divFloat
89Prelude.Classes./
910
1011 : Float -> Float -> Float
11−prim__divFloat : Double -> Double -> Double
12−(input):Can't infer argument a to (++)
12+(input):1:1: error: expected: ":",
13+ dependent type signature,
14+ end of input
15+/<EOF>
16+^
17+(input):1:1: error: expected: ":",
18+ dependent type signature,
19+ end of input
20+++<EOF>
21+^
1322prim__divFloat
test/interactive010/input+1
@@ -1,6 +1,7 @@
11:type ++
22:core /
33:doc +
4+:wc +
45:printdef -
56:spec /
67:patt /