aboutsummaryrefslogtreecommitdiffstats
path: root/src/bootstrap/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/bootstrap/main.c')
-rwxr-xr-xsrc/bootstrap/main.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/bootstrap/main.c b/src/bootstrap/main.c
index 052f1c0..c589b2d 100755
--- a/src/bootstrap/main.c
+++ b/src/bootstrap/main.c
@@ -61,6 +61,7 @@ init(void) {
61 MAKE_ENV_PROC(global_env, "fixnum?", proc_is_fixnum); 61 MAKE_ENV_PROC(global_env, "fixnum?", proc_is_fixnum);
62 MAKE_ENV_PROC(global_env, "pair?", proc_is_pair); 62 MAKE_ENV_PROC(global_env, "pair?", proc_is_pair);
63 MAKE_ENV_PROC(global_env, "procedure?", proc_is_procedure); 63 MAKE_ENV_PROC(global_env, "procedure?", proc_is_procedure);
64 MAKE_ENV_PROC(global_env, "error?", proc_is_error);
64 MAKE_ENV_PROC(global_env, "not", proc_not); 65 MAKE_ENV_PROC(global_env, "not", proc_not);
65 MAKE_ENV_PROC(global_env, "and", proc_and); 66 MAKE_ENV_PROC(global_env, "and", proc_and);
66 MAKE_ENV_PROC(global_env, "or", proc_or); 67 MAKE_ENV_PROC(global_env, "or", proc_or);
@@ -74,6 +75,9 @@ init(void) {
74 MAKE_ENV_PROC(global_env, "eq?", proc_equal); 75 MAKE_ENV_PROC(global_env, "eq?", proc_equal);
75 MAKE_ENV_PROC(global_env, "def", proc_define); 76 MAKE_ENV_PROC(global_env, "def", proc_define);
76 MAKE_ENV_PROC(global_env, "set!", proc_set); 77 MAKE_ENV_PROC(global_env, "set!", proc_set);
78
79 // Runtime procedures.
80 MAKE_ENV_PROC(global_env, "supress-errors", proc_supress_errors);
77} 81}
78 82
79void 83void
@@ -125,7 +129,7 @@ run_repl(void) {
125 process_source(&sv); 129 process_source(&sv);
126 130
127 // Check if there were any errors. 131 // Check if there were any errors.
128 if (errors_n != 0) { 132 if (errors_n != 0 && !supress_errors) {
129 for (size_t i = 0; i < errors_n; i++) { 133 for (size_t i = 0; i < errors_n; i++) {
130 Error err = errors[i]; 134 Error err = errors[i];
131 for (size_t j = 0; j < err.col + sizeof(REPL_PROMPT) - 2; j++) { 135 for (size_t j = 0; j < err.col + sizeof(REPL_PROMPT) - 2; j++) {
@@ -168,7 +172,7 @@ run_file(char *file_name) {
168 process_source(&sv); 172 process_source(&sv);
169 173
170 // Check if there were any errors. 174 // Check if there were any errors.
171 if (errors_n != 0) { 175 if (errors_n != 0 && !supress_errors) {
172 for (size_t i = 0; i < errors_n; i++) { 176 for (size_t i = 0; i < errors_n; i++) {
173 Error err = errors[i]; 177 Error err = errors[i];
174 fprintf(stderr, "%s", file_name); 178 fprintf(stderr, "%s", file_name);
@@ -210,7 +214,7 @@ run_stdin(void) {
210 process_source(&sv); 214 process_source(&sv);
211 215
212 // Check if there were any errors. 216 // Check if there were any errors.
213 if (errors_n != 0) { 217 if (errors_n != 0 && !supress_errors) {
214 for (size_t i = 0; i < errors_n; i++) { 218 for (size_t i = 0; i < errors_n; i++) {
215 Error err = errors[i]; 219 Error err = errors[i];
216 fprintf(stderr, "stdin"); 220 fprintf(stderr, "stdin");