# HG changeset patch # User Edouard Tisserant # Date 1585491081 -7200 # Node ID 92d115d8828da6ce3ca9a97bac34e31e8bc24271 # Parent 881d0248b3ce19200a93be4191cf91632829dd43 SVGHMI: collect debug data through xslt reflectivity instead of yml2/python trick diff -r 881d0248b3ce -r 92d115d8828d svghmi/detachable_pages.ysl2 --- a/svghmi/detachable_pages.ysl2 Fri Mar 27 14:25:24 2020 +0100 +++ b/svghmi/detachable_pages.ysl2 Sun Mar 29 16:11:21 2020 +0200 @@ -153,7 +153,11 @@ template "*", mode="per_page_widget_template"; -function "debug_detachables" { + +reflect:detachable_pages; + +template "reflect:detachable-pages", mode="debug" { + | DETACHABLES: foreach "$detachable_elements"{ | «@id» @@ -163,4 +167,3 @@ | «.» } } -!debug_output_calls.append("debug_detachables") diff -r 881d0248b3ce -r 92d115d8828d svghmi/gen_index_xhtml.xslt --- a/svghmi/gen_index_xhtml.xslt Fri Mar 27 14:25:24 2020 +0100 +++ b/svghmi/gen_index_xhtml.xslt Sun Mar 29 16:11:21 2020 +0200 @@ -1,5 +1,5 @@ - + @@ -154,6 +154,7 @@ + @@ -174,7 +175,7 @@ - + Raw HMI tree @@ -191,7 +192,8 @@ - + + ID, x, y, w, h @@ -453,7 +455,8 @@ - + + DETACHABLES: @@ -582,7 +585,10 @@ - + + + Unlinked : + @@ -1166,46 +1172,18 @@ ], + + + + : + + + + Made with SVGHMI. https://beremiz.org - - - - debug_hmitree: - - - - - - - - - debug_geometry: - - - - - - - - - debug_detachables: - - - - - - - - - debug_unlink: - - - - - diff -r 881d0248b3ce -r 92d115d8828d svghmi/gen_index_xhtml.ysl2 --- a/svghmi/gen_index_xhtml.ysl2 Fri Mar 27 14:25:24 2020 +0100 +++ b/svghmi/gen_index_xhtml.ysl2 Sun Mar 29 16:11:21 2020 +0200 @@ -17,22 +17,6 @@ in xsl decl svgtmpl(match, xmlns="http://www.w3.org/2000/svg") alias template; in xsl decl svgfunc(name, xmlns="http://www.w3.org/2000/svg") alias template; -!! -debug_output_calls = [] -def gen_debug_calls(): - # '&bug' is a workaround for pyPEG that choke on - # yml2 python results not parsing down into a single yml2 call - return ("&bug {"+ - "\n".join([""" - comment { - | - | %s: - call "%s"; - | - }"""%(n,n) for n in debug_output_calls])+ - "}") -!! - istylesheet /* From Inkscape */ xmlns:dc="http://purl.org/dc/elements/1.1/" @@ -43,11 +27,12 @@ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:xhtml="http://www.w3.org/1999/xhtml" + xmlns:reflect="reflect" /* Our namespace to invoke python code */ xmlns:ns="beremiz" extension-element-prefixes="ns func exsl regexp str dyn" - exclude-result-prefixes="ns str regexp exsl func dyn" { + exclude-result-prefixes="ns str regexp exsl func dyn reflect" { const "hmi_elements", "//svg:*[starts-with(@inkscape:label, 'HMI:')]"; @@ -64,11 +49,18 @@ include widget_*.ysl2 + template "*[namespace-uri()='reflect']", mode="debug_as_comment" { + comment { + | «local-name()» : + apply ".", mode="debug"; + } + } + template "/" { comment > Made with SVGHMI. https://beremiz.org - // use python to call all debug output from included definitions - python gen_debug_calls; + // all debug output from included definitions, as comments + // apply "document('')/*/reflect:*", mode="debug_as_comment"; html xmlns="http://www.w3.org/1999/xhtml" xmlns:svg="http://www.w3.org/2000/svg" diff -r 881d0248b3ce -r 92d115d8828d svghmi/geometry.ysl2 --- a/svghmi/geometry.ysl2 Fri Mar 27 14:25:24 2020 +0100 +++ b/svghmi/geometry.ysl2 Sun Mar 29 16:11:21 2020 +0200 @@ -7,13 +7,14 @@ // const "geometry", "ns:GetSVGGeometry()"; +reflect:geometry; + // Debug data -function "debug_geometry" { +template "reflect:geometry", mode="debug" { | ID, x, y, w, h foreach "$geometry" | «@Id» «@x» «@y» «@w» «@h» } -!debug_output_calls.append("debug_geometry") // Rates 1D intersection of 2 segments A and B // described respectively with a0,a1 and b0,b1 diff -r 881d0248b3ce -r 92d115d8828d svghmi/hmi_tree.ysl2 --- a/svghmi/hmi_tree.ysl2 Fri Mar 27 14:25:24 2020 +0100 +++ b/svghmi/hmi_tree.ysl2 Sun Mar 29 16:11:21 2020 +0200 @@ -124,6 +124,8 @@ result "$class_a and $class_b and $class_a = $class_b"; } +reflect:hmi_tree; + // Debug data template "*", mode="testtree"{ param "indent", "''"; @@ -134,7 +136,7 @@ with "indent" value "concat($indent,'>')" }; } -function "debug_hmitree" { +template "reflect:hmi-tree", mode="debug" { | Raw HMI tree apply "$hmitree", mode="testtree"; | @@ -145,4 +147,3 @@ copy "_parsed_widgets"; apply "$parsed_widgets", mode="testtree"; } -!debug_output_calls.append("debug_hmitree") diff -r 881d0248b3ce -r 92d115d8828d svghmi/inline_svg.ysl2 --- a/svghmi/inline_svg.ysl2 Fri Mar 27 14:25:24 2020 +0100 +++ b/svghmi/inline_svg.ysl2 Sun Mar 29 16:11:21 2020 +0200 @@ -112,9 +112,10 @@ const "result_svg" apply "/", mode="inline_svg"; const "result_svg_ns", "exsl:node-set($result_svg)"; -function "debug_unlink" { +reflect:inline_svg; +template "reflect:inline-svg", mode="debug" { + | Unlinked : foreach "$to_unlink"{ | «@id» } } -!debug_output_calls.append("debug_unlink")