# 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 is
- cpp_compiler_option("--std=c++11 --bind")
- c_linker_option("--bind")
+ cppflags "--std=c++11 --bind"
+ ldflags "--bind"
end
import emscripten
import model
import cfg
import flow_analysis
-intrude import standard::stream
+intrude import core::stream
import cpp
in "C++" `{
using namespace emscripten;
EMSCRIPTEN_BINDINGS(my_module) {
- function("run_analysis", &NativeString_run_analysis, allow_raw_pointers());
+ function("run_analysis", &CString_run_analysis, allow_raw_pointers());
}
`}
redef class AnalysisManager
- fun run(src: String)
+ fun run_web(src: String)
do
sys.suggest_garbage_collection
- var stream = new StringIStream(src)
+ var stream = new StringReader(src)
var ast = build_ast("web", stream)
if ast == null then return
print_notes
if notes.is_empty then print "Success: Nothing wrong detected"
- var of = new StringOStream
+ var of = new StringWriter
cfg.print_dot(of, false)
of.close
show_graph(of.to_s)
fun show_graph(content: String) do "show_graph('{content.escape_to_c}');".run_js
end
-redef class NativeString
- fun run_analysis do manager.run to_s
+redef class CString
+ fun run_analysis do manager.run_web to_s
end
-fun dummy_set_callbacks import NativeString.run_analysis in "C++" `{
+fun dummy_set_callbacks import CString.run_analysis in "C++" `{
`}
dummy_set_callbacks