Changeset 38aaacc2 in mainline for uspace/app/sbi/src/builtin
- Timestamp:
- 2010-04-23T21:41:10Z (16 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- f4f866c
- Parents:
- 074444f
- Location:
- uspace/app/sbi/src/builtin
- Files:
-
- 2 added
- 3 edited
-
bi_boxed.c (added)
-
bi_boxed.h (added)
-
bi_error.c (modified) (2 diffs)
-
bi_fun.c (modified) (8 diffs)
-
bi_textfile.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
uspace/app/sbi/src/builtin/bi_error.c
r074444f r38aaacc2 36 36 #include "bi_error.h" 37 37 38 /** Declare error class hierarchy. */ 38 /** Declare error class hierarchy. 39 * 40 * @param bi Builtin object 41 */ 39 42 void bi_error_declare(builtin_t *bi) 40 43 { … … 57 60 "end\n");} 58 61 59 /** Bind error class hierarchy. */ 62 /** Bind error class hierarchy. 63 * 64 * @param bi Builtin object 65 */ 60 66 void bi_error_bind(builtin_t *bi) 61 67 { -
uspace/app/sbi/src/builtin/bi_fun.c
r074444f r38aaacc2 44 44 #include "bi_fun.h" 45 45 46 static void bi_fun_builtin_write(run_t *run); 46 47 static void bi_fun_builtin_writeline(run_t *run); 47 48 static void bi_fun_task_exec(run_t *run); 48 49 49 /** Declare builtin functions. */ 50 /** Declare builtin functions. 51 * 52 * @param bi Builtin object 53 */ 50 54 void bi_fun_declare(builtin_t *bi) 51 55 { … … 63 67 csi = stree_csi_new(csi_class); 64 68 csi->name = ident; 69 list_init(&csi->targ); 65 70 list_init(&csi->members); 66 71 … … 75 80 list_append(&bi->program->module->members, modm); 76 81 82 /* Declare Builtin.Write(). */ 83 84 fun_sym = builtin_declare_fun(csi, "Write"); 85 builtin_fun_add_arg(fun_sym, "arg"); 86 77 87 /* Declare Builtin.WriteLine(). */ 78 88 … … 88 98 } 89 99 90 /** Bind builtin functions. */ 100 /** Bind builtin functions. 101 * 102 * @param bi Builtin object 103 */ 91 104 void bi_fun_bind(builtin_t *bi) 92 105 { 106 builtin_fun_bind(bi, "Builtin", "Write", bi_fun_builtin_write); 93 107 builtin_fun_bind(bi, "Builtin", "WriteLine", bi_fun_builtin_writeline); 94 108 builtin_fun_bind(bi, "Task", "Exec", bi_fun_task_exec); 95 109 } 96 110 97 /** Write a line of output. */ 98 static void bi_fun_builtin_writeline(run_t *run) 111 /** Write to the console. 112 * 113 * @param run Runner object 114 */ 115 static void bi_fun_builtin_write(run_t *run) 99 116 { 100 117 rdata_var_t *var; … … 103 120 104 121 #ifdef DEBUG_RUN_TRACE 105 printf("Called Builtin.Write Line()\n");122 printf("Called Builtin.Write()\n"); 106 123 #endif 107 124 var = run_local_vars_lookup(run, strtab_get_sid("arg")); … … 109 126 110 127 switch (var->vc) { 128 case vc_bool: 129 printf("%s", var->u.bool_v->value ? "true" : "false"); 130 break; 111 131 case vc_char: 112 132 rc = bigint_get_value_int(&var->u.char_v->value, &char_val); 113 133 if (rc == EOK) 114 printf("%lc \n", char_val);134 printf("%lc", char_val); 115 135 else 116 printf("??? \n");136 printf("???"); 117 137 break; 118 138 case vc_int: 119 139 bigint_print(&var->u.int_v->value); 120 putchar('\n');121 140 break; 122 141 case vc_string: 123 printf("%s \n", var->u.string_v->value);142 printf("%s", var->u.string_v->value); 124 143 break; 125 144 default: 126 printf("Unimplemented: writeLine() with unsupported type.\n"); 127 exit(1); 128 } 129 } 130 131 /** Start an executable and wait for it to finish. */ 145 printf("Unimplemented: Write() with unsupported type.\n"); 146 exit(1); 147 } 148 } 149 150 /** Write a line of output. 151 * 152 * @param run Runner object 153 */ 154 static void bi_fun_builtin_writeline(run_t *run) 155 { 156 #ifdef DEBUG_RUN_TRACE 157 printf("Called Builtin.WriteLine()\n"); 158 #endif 159 bi_fun_builtin_write(run); 160 putchar('\n'); 161 } 162 163 /** Start an executable and wait for it to finish. 164 * 165 * @param run Runner object 166 */ 132 167 static void bi_fun_task_exec(run_t *run) 133 168 { … … 137 172 rdata_var_t *arg; 138 173 int idx, dim; 139 c har **cmd;174 const char **cmd; 140 175 141 176 #ifdef DEBUG_RUN_TRACE … … 178 213 cmd[dim] = '\0'; 179 214 180 if (os_exec( cmd) != EOK) {215 if (os_exec((char * const *)cmd) != EOK) { 181 216 printf("Error: Exec failed.\n"); 182 217 exit(1); -
uspace/app/sbi/src/builtin/bi_textfile.c
r074444f r38aaacc2 53 53 static void bi_textfile_is_eof(run_t *run); 54 54 55 /** Declare TextFile builtin. */ 55 /** Declare TextFile builtin. 56 * 57 * @param bi Builtin object 58 */ 56 59 void bi_textfile_declare(builtin_t *bi) 57 60 { … … 79 82 } 80 83 81 /** Bind TextFile builtin. */ 84 /** Bind TextFile builtin. 85 * 86 * @param bi Builtin object 87 */ 82 88 void bi_textfile_bind(builtin_t *bi) 83 89 { … … 90 96 } 91 97 92 /** Open a text file for reading. */ 98 /** Open a text file for reading. 99 * 100 * @param run Runner object 101 */ 93 102 static void bi_textfile_openread(run_t *run) 94 103 { 95 104 rdata_var_t *fname_var; 96 c har *fname;105 const char *fname; 97 106 FILE *file; 98 107 … … 130 139 } 131 140 132 /** Open a text file for writing. */ 141 /** Open a text file for writing. 142 * 143 * @param run Runner object 144 */ 133 145 static void bi_textfile_openwrite(run_t *run) 134 146 { 135 147 rdata_var_t *fname_var; 136 c har *fname;148 const char *fname; 137 149 FILE *file; 138 150 … … 170 182 } 171 183 172 /** Close a text file. */ 184 /** Close a text file. 185 * 186 * @param run Runner object 187 */ 173 188 static void bi_textfile_close(run_t *run) 174 189 { … … 205 220 206 221 207 /** Read one line from a text file. */ 222 /** Read one line from a text file. 223 * 224 * @param run Runner object 225 */ 208 226 static void bi_textfile_readline(run_t *run) 209 227 { … … 272 290 } 273 291 274 /** Write one line to a text file. */ 292 /** Write one line to a text file. 293 * 294 * @param run Runner object 295 */ 275 296 static void bi_textfile_writeline(run_t *run) 276 297 { … … 278 299 rdata_var_t *self_f_var; 279 300 rdata_var_t *line_var; 280 c har *line;301 const char *line; 281 302 282 303 run_proc_ar_t *proc_ar; … … 312 333 } 313 334 314 /** Return value of EOF flag. */ 335 /** Return value of EOF flag. 336 * 337 * @param run Runner object 338 */ 315 339 static void bi_textfile_is_eof(run_t *run) 316 340 {
Note:
See TracChangeset
for help on using the changeset viewer.
