int main() { chipInit(); timer0Init(); //init_adc(ADC_CHANS, INT_VREF_TYPE); adcInit(0, AVCC_VREF_TYPE); uart_init(); w1Init(); sei(); ee_magic = MAGIC16; initCommands(); initVM(); ee_magic = 0; while (1) { char tticks = getClearTimerTicks(); while (tticks) { tticks--; ds18b20_step(0, TIME_UNIT); ds18b20_step(1, TIME_UNIT); vmStep(TIME_UNIT); handlePWM(TIME_UNIT); } handleIO(); } return 0; }
int runRepl() { initVM(); printf("\\\\/\"-\n"); printf(" \\_/ wren v0.0.0\n"); char line[MAX_LINE_LENGTH]; for (;;) { printf("> "); if (!fgets(line, MAX_LINE_LENGTH, stdin)) { printf("\n"); break; } // TODO: Handle failure. wrenInterpret(vm, line); // TODO: Automatically print the result of expressions. } freeVM(); return 0; }
int main(int argc, char *argv[]) { Class *array_class, *main_class; Object *system_loader, *array; MethodBlock *mb; InitArgs args; int class_arg; char *cpntr; int status; int i; setDefaultInitArgs(&args); class_arg = parseCommandLine(argc, argv, &args); args.main_stack_base = &array_class; if(!initVM(&args)) { printf("Could not initialise VM. Aborting.\n"); exit(1); } if((system_loader = getSystemClassLoader()) == NULL) goto error; mainThreadSetContextClassLoader(system_loader); for(cpntr = argv[class_arg]; *cpntr; cpntr++) if(*cpntr == '.') *cpntr = '/'; main_class = findClassFromClassLoader(argv[class_arg], system_loader); if(main_class != NULL) initClass(main_class); if(exceptionOccurred()) goto error; mb = lookupMethod(main_class, SYMBOL(main), SYMBOL(_array_java_lang_String__V)); if(mb == NULL || !(mb->access_flags & ACC_STATIC)) { signalException(java_lang_NoSuchMethodError, "main"); goto error; } /* Create the String array holding the command line args */ i = class_arg + 1; if((array_class = findArrayClass(SYMBOL(array_java_lang_String))) && (array = allocArray(array_class, argc - i, sizeof(Object*)))) { Object **args = ARRAY_DATA(array, Object*) - i; for(; i < argc; i++) if(!(args[i] = Cstr2String(argv[i]))) break; /* Call the main method */ if(i == argc) executeStaticMethod(main_class, mb, array); }
PyObject *__initialize__(PyObject *module, PyObject *args, PyObject *kwds) { PyObject *env = initVM(module, args, kwds); if (env == NULL) return NULL; java::lang::Class::initializeClass(false); java::lang::RuntimeException::initializeClass(false); return env; }
void runFile(const char* path) { // Use the directory where the file is as the root to resolve imports // relative to. char* root = NULL; const char* lastSlash = strrchr(path, '/'); if (lastSlash != NULL) { root = (char*)malloc(lastSlash - path + 2); memcpy(root, path, lastSlash - path + 1); root[lastSlash - path + 1] = '\0'; rootDirectory = root; } char* source = readFile(path); if (source == NULL) { fprintf(stderr, "Could not find file \"%s\".\n", path); exit(66); } initVM(); WrenInterpretResult result = wrenInterpret(vm, source); if (afterLoadFn != NULL) afterLoadFn(vm); if (result == WREN_RESULT_SUCCESS) { uv_run(loop, UV_RUN_DEFAULT); } freeVM(); free(source); free(root); // Exit with an error code if the script failed. if (result == WREN_RESULT_COMPILE_ERROR) exit(65); // EX_DATAERR. if (result == WREN_RESULT_RUNTIME_ERROR) exit(70); // EX_SOFTWARE. if (defaultExitCode != 0) exit(defaultExitCode); }
int main(int argc, char *argv[]) { Class *array_class, *main_class; Object *system_loader, *array; MethodBlock *mb; InitArgs args; int class_arg; char *cpntr; int status; int i; setDefaultInitArgs(&args); class_arg = parseCommandLine(argc, argv, &args); args.main_stack_base = &array_class; initVM(&args); if((system_loader = getSystemClassLoader()) == NULL) { printf("Cannot create system class loader\n"); printException(); exitVM(1); } mainThreadSetContextClassLoader(system_loader); for(cpntr = argv[class_arg]; *cpntr; cpntr++) if(*cpntr == '.') *cpntr = '/'; if((main_class = findClassFromClassLoader(argv[class_arg], system_loader)) != NULL) initClass(main_class); if(exceptionOccurred()) { printException(); exitVM(1); } mb = lookupMethod(main_class, SYMBOL(main), SYMBOL(_array_java_lang_String__V)); if(!mb || !(mb->access_flags & ACC_STATIC)) { printf("Static method \"main\" not found in %s\n", argv[class_arg]); exitVM(1); } /* Create the String array holding the command line args */ i = class_arg + 1; if((array_class = findArrayClass(SYMBOL(array_java_lang_String))) && (array = allocArray(array_class, argc - i, sizeof(Object*)))) { Object **args = (Object**)ARRAY_DATA(array) - i; for(; i < argc; i++) if(!(args[i] = Cstr2String(argv[i]))) break; /* Call the main method */ if(i == argc) executeStaticMethod(main_class, mb, array); } /* ExceptionOccurred returns the exception or NULL, which is OK for normal conditionals, but not here... */ if((status = exceptionOccurred() ? 1 : 0)) printException(); /* Wait for all but daemon threads to die */ mainThreadWaitToExitVM(); exitVM(status); }