@@ -38,9 +38,11 @@ pCmd = do P.whiteSpace; try (do cmd ["q", "quit"]; eof; return Quit)
38 return (ModImport (toPath f)))
38 return (ModImport (toPath f)))
39 <|> try (do cmd ["e", "edit"]; eof; return Edit)
39 <|> try (do cmd ["e", "edit"]; eof; return Edit)
40 <|> try (do cmd ["exec", "execute"]; eof; return Execute)
40 <|> try (do cmd ["exec", "execute"]; eof; return Execute)
41− <|> try (do cmd ["c", "compile"]; f <- P.identifier; eof; return (Compile ViaC f))
41+ <|> try (do cmd ["c", "compile"]
42− <|> try (do cmd ["jc", "newcompile"]; f <- P.identifier; eof; return (Compile ViaJava f))
42+ c <- option ViaC codegenOption
43− <|> try (do cmd ["js", "javascript"]; f <- P.identifier; eof; return (Compile ViaJavaScript f))
43+ f <- P.identifier
45+ return (Compile c f))
44 <|> try (do cmd ["proofs"]; eof; return Proofs)
46 <|> try (do cmd ["proofs"]; eof; return Proofs)
45 <|> try (do cmd ["rmproof"]; n <- P.name; eof; return (RmProof n))
47 <|> try (do cmd ["rmproof"]; n <- P.name; eof; return (RmProof n))
46 <|> try (do cmd ["showproof"]; n <- P.name; eof; return (ShowProof n))
48 <|> try (do cmd ["showproof"]; n <- P.name; eof; return (ShowProof n))
@@ -118,6 +120,14 @@ pOption = do discard (P.symbol "errorcontext"); return ErrContext
118 <|> do discard (P.symbol "originalerrors"); return ShowOrigErr
120 <|> do discard (P.symbol "originalerrors"); return ShowOrigErr
119 <|> do discard (P.symbol "autosolve"); return AutoSolve
121 <|> do discard (P.symbol "autosolve"); return AutoSolve
123+codegenOption :: P.IdrisParser Codegen
124+codegenOption = do discard (P.symbol "javascript"); return ViaJavaScript
125+ <|> do discard (P.symbol "node"); return ViaNode
126+ <|> do discard (P.symbol "Java"); return ViaJava
127+ <|> do discard (P.symbol "llvm"); return ViaLLVM
128+ <|> do discard (P.symbol "bytecode"); return Bytecode
129+ <|> do discard (P.symbol "C"); return ViaC
121pConsoleWidth :: P.IdrisParser ConsoleWidth
131pConsoleWidth :: P.IdrisParser ConsoleWidth
122pConsoleWidth = do discard (P.symbol "auto"); return AutomaticWidth
132pConsoleWidth = do discard (P.symbol "auto"); return AutomaticWidth
123 <|> do discard (P.symbol "infinite"); return InfinitelyWide
133 <|> do discard (P.symbol "infinite"); return InfinitelyWide