#include #include #include #include "Compiler.h" #include "Test.h" #include "libraries/Time.h" #include "tokenizer/Tokenizer.h" #include "utils/Functions.h" #include "vm/Script.h" long getNanos() { struct timespec time; clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &time); return time.tv_nsec + time.tv_sec * 1000000000l; } static void start(int argAmount, const char** args) { if(argAmount >= 3 && strcmp(args[1], "test") == 0) { tsStart(args[2]); } else if(argAmount >= 2) { if(tTokenize(args[1])) { puts(tGetError()); printf("line: %d\n", tGetLine()); return; } ByteCode* code = cCompile(); if(code == NULL) { puts(cGetError()); printf("line: %d\n", cGetLine()); return; } Script* sc = sInit(code); long time = -getNanos(); sRun(sc); time += getNanos(); printf("----------------\n%ld ns\n", time); sDelete(sc); } } int main(int argAmount, const char** args) { gfsInit(); gstsInit(); lTimeRegister(); start(argAmount, args); gstsDelete(); gfsDelete(); return 0; }