From 8f19894e3287e10ea523c4752b4178e703673b5d Mon Sep 17 00:00:00 2001 From: yhirose Date: Fri, 3 Jun 2022 19:25:49 -0400 Subject: [PATCH] Updated playground to show profiling result --- docs/index.html | 10 +++++++++- docs/index.js | 50 ++++++++++++++++++++++++----------------------- docs/native.cpp | 8 ++++++++ docs/native.wasm | Bin 405687 -> 414625 bytes lint/peglint.cc | 4 ++-- peglib.h | 34 ++++++++++++++++---------------- 6 files changed, 62 insertions(+), 44 deletions(-) diff --git a/docs/index.html b/docs/index.html index 8dd89eb..f33c676 100644 --- a/docs/index.html +++ b/docs/index.html @@ -20,13 +20,21 @@
  • Valid
  • {{source}}
    +
    + +
    +
    AST
    
         
    Optimized AST     mode: 
    
    -    
    +
    Profile
    +
    diff --git a/docs/index.js b/docs/index.js index 0efddd8..e4eba47 100644 --- a/docs/index.js +++ b/docs/index.js @@ -1,34 +1,34 @@ // Setup editros -const grammar = ace.edit("grammar-editor"); -grammar.setShowPrintMargin(false); -grammar.setValue(localStorage.getItem('grammarText') || ''); -grammar.moveCursorTo(0, 0); +function setupInfoArea(id) { + const e = ace.edit(id); + e.setShowPrintMargin(false); + e.setOptions({ + readOnly: true, + highlightActiveLine: false, + highlightGutterLine: false + }) + e.renderer.$cursorLayer.element.style.opacity=0; + return e; +} -const code = ace.edit("code-editor"); -code.setShowPrintMargin(false); -code.setValue(localStorage.getItem('codeText') || ''); -code.moveCursorTo(0, 0); +function setupEditorArea(id, lsKey) { + const e = ace.edit(id); + e.setShowPrintMargin(false); + e.setValue(localStorage.getItem(lsKey) || ''); + e.moveCursorTo(0, 0); + return e; +} -const codeAst = ace.edit("code-ast"); -codeAst.setShowPrintMargin(false); -codeAst.setOptions({ - readOnly: true, - highlightActiveLine: false, - highlightGutterLine: false -}) -codeAst.renderer.$cursorLayer.element.style.opacity=0; +const grammar = setupEditorArea("grammar-editor", "grammarText"); +const code = setupEditorArea("code-editor", "codeText"); -const codeAstOptimized = ace.edit("code-ast-optimized"); -codeAstOptimized.setShowPrintMargin(false); -codeAstOptimized.setOptions({ - readOnly: true, - highlightActiveLine: false, - highlightGutterLine: false -}) -codeAstOptimized.renderer.$cursorLayer.element.style.opacity=0; +const codeAst = setupInfoArea("code-ast"); +const codeAstOptimized = setupInfoArea("code-ast-optimized"); +const profile = setupInfoArea("profile"); $('#opt_mode').val(localStorage.getItem('optimazationMode') || 'all'); +// Parse function escapeHtml(unsafe) { return unsafe .replace(/&/g, "&") @@ -71,6 +71,7 @@ function parse() { $codeValidation.hide(); codeAst.setValue(''); codeAstOptimized.setValue(''); + profile.setValue(''); if (grammarText.length === 0) { return; @@ -84,6 +85,7 @@ function parse() { codeAst.insert(data.ast); codeAstOptimized.insert(data.astOptimized); + profile.insert(data.profile); if (data.source_valid) { $codeValidation.removeClass('editor-validation-invalid').text('Valid').show(); diff --git a/docs/native.cpp b/docs/native.cpp index 8f56a21..04d4f1b 100644 --- a/docs/native.cpp +++ b/docs/native.cpp @@ -59,14 +59,21 @@ std::string lint(const std::string &grammarText, const std::string &codeText, bo std::string codeResult; std::string astResult; std::string astResultOptimized; + std::string profileResult; peg::parser peg; auto is_grammar_valid = parse_grammar(grammarText, peg, grammarResult); auto is_source_valid = false; if (is_grammar_valid && peg) { + std::stringstream ss; + peg::enable_profiling(peg, ss); + std::shared_ptr ast; is_source_valid = parse_code(codeText, peg, codeResult, ast); + + profileResult = escape_json(ss.str()); + if (ast) { astResult = escape_json(peg::ast_to_s(ast)); astResultOptimized = escape_json( @@ -83,6 +90,7 @@ std::string lint(const std::string &grammarText, const std::string &codeText, bo json += ",\"code\":" + codeResult; json += ",\"ast\":\"" + astResult + "\""; json += ",\"astOptimized\":\"" + astResultOptimized + "\""; + json += ",\"profile\":\"" + profileResult + "\""; } json += "}"; diff --git a/docs/native.wasm b/docs/native.wasm index 03951e2d06d5c7c5fd5d206a9ad887933894abba..b85a586afaa53ebc896b4d1109af83cd203672b4 100755 GIT binary patch delta 94884 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 delta 86933 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 Ut+g~V>OXe5RsHFCj&Z*K0KqF|NB{r; diff --git a/lint/peglint.cc b/lint/peglint.cc index 724458a..c78b9b2 100644 --- a/lint/peglint.cc +++ b/lint/peglint.cc @@ -130,11 +130,11 @@ int main(int argc, const char **argv) { if (opt_packrat) { parser.enable_packrat_parsing(); } if (opt_trace) { - enable_tracing(parser); + enable_tracing(parser, std::cout); } if (opt_profile) { - enable_profiling(parser); + enable_profiling(parser, std::cout); } parser.set_verbose_trace(opt_verbose); diff --git a/peglib.h b/peglib.h index d7895b0..facd906 100644 --- a/peglib.h +++ b/peglib.h @@ -4393,7 +4393,8 @@ public: } void enable_trace(TracerEnter tracer_enter, TracerLeave tracer_leave, - TracerStartOrEnd tracer_start, TracerStartOrEnd tracer_end) { + TracerStartOrEnd tracer_start, + TracerStartOrEnd tracer_end) { if (grammar_ != nullptr) { auto &rule = (*grammar_)[start_]; rule.tracer_enter = tracer_enter; @@ -4450,7 +4451,7 @@ private: * enable_tracing *---------------------------------------------------------------------------*/ -inline void enable_tracing(parser &parser) { +inline void enable_tracing(parser &parser, std::ostream &os) { size_t prev_pos = 0; parser.enable_trace( [&](auto &ope, auto s, auto, auto &, auto &c, auto &, auto &) { @@ -4468,8 +4469,8 @@ inline void enable_tracing(parser &parser) { auto lit = dynamic_cast(&ope); if (lit) { name += " '" + peg::escape_characters(lit->lit_) + "'"; } } - std::cout << "E " << pos << backtrack << "\t" << indent << "┌" << name - << " #" << c.trace_ids.back() << std::endl; + os << "E " << pos << backtrack << "\t" << indent << "┌" << name << " #" + << c.trace_ids.back() << std::endl; prev_pos = static_cast(pos); }, [&](auto &ope, auto s, auto, auto &sv, auto &c, auto &, auto len, @@ -4498,9 +4499,9 @@ inline void enable_tracing(parser &parser) { peg::TokenChecker::is_token(const_cast(ope))) { matched = ", match '" + peg::escape_characters(s, len) + "'"; } - std::cout << "L " << pos << "\t" << indent << ret << name << " #" - << c.trace_ids.back() << choice.str() << token << matched - << std::endl; + os << "L " << pos << "\t" << indent << ret << name << " #" + << c.trace_ids.back() << choice.str() << token << matched + << std::endl; }, [&](auto &) {}, [&](auto &) {}); } @@ -4509,7 +4510,7 @@ inline void enable_tracing(parser &parser) { * enable_profiling *---------------------------------------------------------------------------*/ -inline void enable_profiling(parser &parser) { +inline void enable_profiling(parser &parser, std::ostream &os) { struct Stats { struct Item { std::string name; @@ -4522,8 +4523,7 @@ inline void enable_profiling(parser &parser) { }; parser.enable_trace( - [&](auto &ope, auto, auto, auto &, auto &, auto &, - std::any &trace_data) { + [&](auto &ope, auto, auto, auto &, auto &, auto &, std::any &trace_data) { if (auto holder = dynamic_cast(&ope)) { auto &stats = *std::any_cast(trace_data); @@ -4550,9 +4550,9 @@ inline void enable_profiling(parser &parser) { } if (index == 0) { size_t id = 0; - std::cout << " id total % success fail " - "definition" - << std::endl; + os << " id total % success fail " + "definition" + << std::endl; size_t total_total, total_success = 0, total_fail = 0; char buff[BUFSIZ]; for (auto &[name, success, fail] : stats.items) { @@ -4562,18 +4562,18 @@ inline void enable_profiling(parser &parser) { auto ratio = total * 100.0 / stats.total; sprintf(buff, "%4zu %10lu %5.2f %10lu %10lu %s", id, total, ratio, success, fail, name.c_str()); - std::cout << buff << std::endl; + os << buff << std::endl; id++; } - std::cout << std::endl; + os << std::endl; total_total = total_success + total_fail; sprintf(buff, "%4s %10lu %5s %10lu %10lu %s", "", total_total, "", total_success, total_fail, "Total counters"); - std::cout << buff << std::endl; + os << buff << std::endl; sprintf(buff, "%4s %10s %5s %10.2f %10.2f %s", "", "", "", total_success * 100.0 / total_total, total_fail * 100.0 / total_total, "% success/fail"); - std::cout << buff << std::endl; + os << buff << std::endl; } } },