unix: Add option to only compile, and not execute code.

This commit is contained in:
Damien George 2014-04-10 11:30:35 +01:00
parent 87bb093eb6
commit f22626ee4f

View File

@ -29,7 +29,8 @@
#include <readline/history.h> #include <readline/history.h>
#endif #endif
// Default emit options // Command line options, with their defaults
bool compile_only = false;
uint emit_opt = MP_EMIT_OPT_NONE; uint emit_opt = MP_EMIT_OPT_NONE;
#if MICROPY_ENABLE_GC #if MICROPY_ENABLE_GC
@ -87,6 +88,10 @@ STATIC void execute_from_lexer(mp_lexer_t *lex, mp_parse_input_kind_t input_kind
return; return;
} }
if (compile_only) {
return;
}
// execute it // execute it
nlr_buf_t nlr; nlr_buf_t nlr;
if (nlr_push(&nlr) == 0) { if (nlr_push(&nlr) == 0) {
@ -226,6 +231,7 @@ int usage(char **argv) {
); );
int impl_opts_cnt = 0; int impl_opts_cnt = 0;
printf( printf(
" compile-only -- parse and compile only\n"
" emit={bytecode,native,viper} -- set the default code emitter\n" " emit={bytecode,native,viper} -- set the default code emitter\n"
); );
impl_opts_cnt++; impl_opts_cnt++;
@ -273,6 +279,8 @@ void pre_process_options(int argc, char **argv) {
exit(usage(argv)); exit(usage(argv));
} }
if (0) { if (0) {
} else if (strcmp(argv[a + 1], "compile-only") == 0) {
compile_only = true;
} else if (strcmp(argv[a + 1], "emit=bytecode") == 0) { } else if (strcmp(argv[a + 1], "emit=bytecode") == 0) {
emit_opt = MP_EMIT_OPT_BYTE_CODE; emit_opt = MP_EMIT_OPT_BYTE_CODE;
} else if (strcmp(argv[a + 1], "emit=native") == 0) { } else if (strcmp(argv[a + 1], "emit=native") == 0) {