X-Git-Url: http://nitlanguage.org diff --git a/contrib/pep8analysis/src/pep8analysis_web.nit b/contrib/pep8analysis/src/pep8analysis_web.nit index 1415c77..30c0849 100644 --- a/contrib/pep8analysis/src/pep8analysis_web.nit +++ b/contrib/pep8analysis/src/pep8analysis_web.nit @@ -19,7 +19,10 @@ # Takes the entire Pep/8 source code as argument and prints out the # analysis results. The result graph will be sent to the JavaScript function # `show_graph` with the source of the graph in Graphviz's dot. -module pep8analysis_web +module pep8analysis_web is + cpp_compiler_option("--std=c++11 --bind") + c_linker_option("--bind") +end import emscripten @@ -28,6 +31,17 @@ import ast import model import cfg import flow_analysis +intrude import standard::stream + +in "C++" `{ + #include + + using namespace emscripten; + + EMSCRIPTEN_BINDINGS(my_module) { + function("run_analysis", &NativeString_run_analysis, allow_raw_pointers()); + } +`} redef class AnalysisManager @@ -81,7 +95,7 @@ redef class AnalysisManager if notes.is_empty then print "Success: Nothing wrong detected" var of = new StringOStream - cfg.print_dot(of, true) + cfg.print_dot(of, false) of.close show_graph(of.to_s) @@ -102,8 +116,11 @@ class StringIStream redef var end_reached: Bool = false end -redef class Object - redef fun manager do return once new AnalysisManager +redef class NativeString + fun run_analysis do manager.run to_s end -manager.run args.first +fun dummy_set_callbacks import NativeString.run_analysis in "C++" `{ +`} + +dummy_set_callbacks