aboutsummaryrefslogtreecommitdiff
path: root/src/yue.cpp
diff options
context:
space:
mode:
authorLi Jin <dragon-fly@qq.com>2022-11-11 09:29:01 +0800
committerLi Jin <dragon-fly@qq.com>2022-11-11 09:29:01 +0800
commit209fca096b0be5c47553f4c4a94d95de33b23d31 (patch)
treec170264dbab9c6bb2f076de17ca171782664872a /src/yue.cpp
parente02780668e0ce2ebf7088bad2e70ad94b6824b08 (diff)
downloadyuescript-209fca096b0be5c47553f4c4a94d95de33b23d31.tar.gz
yuescript-209fca096b0be5c47553f4c4a94d95de33b23d31.tar.bz2
yuescript-209fca096b0be5c47553f4c4a94d95de33b23d31.zip
refactor parser to be a little faster.
Diffstat (limited to 'src/yue.cpp')
-rw-r--r--src/yue.cpp13
1 files changed, 3 insertions, 10 deletions
diff --git a/src/yue.cpp b/src/yue.cpp
index f25c702..5b4dccc 100644
--- a/src/yue.cpp
+++ b/src/yue.cpp
@@ -9,7 +9,6 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
9#include "yuescript/yue_compiler.h" 9#include "yuescript/yue_compiler.h"
10#include "yuescript/yue_parser.h" 10#include "yuescript/yue_parser.h"
11 11
12#include <chrono>
13#include <cstdlib> 12#include <cstdlib>
14#include <fstream> 13#include <fstream>
15#include <future> 14#include <future>
@@ -472,19 +471,13 @@ int main(int narg, const char** args) {
472 } 471 }
473 } 472 }
474 if (dumpCompileTime) { 473 if (dumpCompileTime) {
475 auto start = std::chrono::high_resolution_clock::now(); 474 conf.profiling = true;
476 auto result = yue::YueCompiler{YUE_ARGS}.compile(s, conf); 475 auto result = yue::YueCompiler{YUE_ARGS}.compile(s, conf);
477 auto end = std::chrono::high_resolution_clock::now();
478 if (!result.codes.empty()) { 476 if (!result.codes.empty()) {
479 std::chrono::duration<double> diff = end - start;
480 start = std::chrono::high_resolution_clock::now();
481 yue::YueParser{}.parse<yue::File_t>(s);
482 end = std::chrono::high_resolution_clock::now();
483 std::chrono::duration<double> parseDiff = end - start;
484 std::ostringstream buf; 477 std::ostringstream buf;
485 buf << file.first << " \n"sv; 478 buf << file.first << " \n"sv;
486 buf << "Parse time: "sv << std::setprecision(5) << parseDiff.count() * 1000 << " ms\n"; 479 buf << "Parse time: "sv << std::setprecision(5) << result.parseTime * 1000 << " ms\n";
487 buf << "Compile time: "sv << std::setprecision(5) << (diff.count() - parseDiff.count()) * 1000 << " ms\n\n"; 480 buf << "Compile time: "sv << std::setprecision(5) << result.compileTime * 1000 << " ms\n\n";
488 return std::tuple{0, file.first, buf.str()}; 481 return std::tuple{0, file.first, buf.str()};
489 } else { 482 } else {
490 std::ostringstream buf; 483 std::ostringstream buf;