From 4b0c115b58211dcc063bcd09f8fe122e558b92ce Mon Sep 17 00:00:00 2001 From: Ralph Amissah Date: Tue, 20 Oct 2015 18:52:12 -0400 Subject: literate programming introduced, tangle not yet run --- org/ao_output_debugs.org | 402 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 402 insertions(+) create mode 100644 org/ao_output_debugs.org (limited to 'org/ao_output_debugs.org') diff --git a/org/ao_output_debugs.org b/org/ao_output_debugs.org new file mode 100644 index 0000000..c84ab82 --- /dev/null +++ b/org/ao_output_debugs.org @@ -0,0 +1,402 @@ +#+TITLE: Emacs config file written in org-mode +#+AUTHOR: Ralph Amissah +#+EMAIL: ralph.amissah@gmail.com +#+STARTUP: indent +#+LANGUAGE: en +#+OPTIONS: H:3 num:nil toc:t \n:nil @:t ::t |:t ^:nil -:t f:t *:t <:t +#+OPTIONS: TeX:t LaTeX:t skip:nil d:nil todo:t pri:nil tags:not-in-toc +#+OPTIONS: author:nil email:nil creator:nil timestamp:nil +#+OPTIONS: ^:nil _:nil#+OPTIONS: ^:nil _:nil +#+EXPORT_SELECT_TAGS: export +#+EXPORT_EXCLUDE_TAGS: noexport +#+TAGS: Amissah(A) Class(c) WEB(W) noexport(n) + +* output debugs +** (parent) +#+name: ao_output_debugs +#+BEGIN_SRC d :exports none +debug(parent) { + writeln(__FILE__, ":", __LINE__); + foreach (obj; contents) { + if (obj["use"] == "content") { + if (obj["is"] == "heading") { + writeln(scr_txt_marker["cyan"], + obj["ocn"], + " node: ", obj["node"], + " heading: ", obj["lvn"], + " ", obj["obj"], + ); + } else { + } + } + } +} +#+end_src +** (objects) +#+name: ao_output_debugs +#+BEGIN_SRC d :exports none +debug(objects) { + writeln("-------------------------------"); + writeln(__FILE__, ":", __LINE__); + foreach (obj; contents) { + if (obj["use"] == "content") { + writeln( + scr_txt_color["green"], + "* [", obj["ocn"], "]", + "[", obj["is"], "] ", + scr_txt_color["off"], + obj["obj"] + ); + } + } +} +#+end_src +** (headermakejson) +#+name: ao_output_debugs +#+BEGIN_SRC d :exports none +debug(headermakejson) { + writeln("document header, metadata & make instructions:"); + writeln(dochead); + writeln(pointer_head_main); + foreach (main_header; pointer_head_main) { + switch (main_header) { + case "make": + foreach (sub_header; pointer_head_sub_make) { + if (to!string(dochead[main_header][sub_header]).length > 2) { + writeln( + main_header, ":", + sub_header, ": ", + dochead[main_header][sub_header] + ); + } + } + break; + default: + break; + } + } +} +#+end_src +** (headermetadatajson) +#+name: ao_output_debugs +#+BEGIN_SRC d :exports none +debug(headermetadatajson) { + writeln("document header, metadata & make instructions:"); + writeln(dochead); + writeln(pointer_head_main); + foreach (main_header; pointer_head_main) { + switch (main_header) { + case "creator": + foreach (sub_header; pointer_head_sub_creator) { + if (to!string(dochead[main_header][sub_header]).length > 2) { + writeln(main_header, ":", + sub_header, ": ", + dochead[main_header][sub_header] + ); + } + } + break; + case "title": + foreach (sub_header; pointer_head_sub_title) { + if (to!string(dochead[main_header][sub_header]).length > 2) { + writeln(main_header, ":", + sub_header, ": ", + dochead[main_header][sub_header] + ); + } + } + break; + case "rights": + foreach (sub_header; pointer_head_sub_rights) { + if (to!string(dochead[main_header][sub_header]).length > 2) { + writeln(main_header, ":", + sub_header, ": ", + dochead[main_header][sub_header] + ); + } + } + break; + case "date": + foreach (sub_header; pointer_head_sub_date) { + if (to!string(dochead[main_header][sub_header]).length > 2) { + writeln(main_header, ":", + sub_header, ": ", + dochead[main_header][sub_header] + ); + } + } + break; + case "original": + foreach (sub_header; pointer_head_sub_original) { + if (to!string(dochead[main_header][sub_header]).length > 2) { + writeln(main_header, ":", + sub_header, ": ", + dochead[main_header][sub_header] + ); + } + } + break; + case "classify": + foreach (sub_header; pointer_head_sub_classify) { + if (to!string(dochead[main_header][sub_header]).length > 2) { + writeln(main_header, ":", + sub_header, ": ", + dochead[main_header][sub_header] + ); + } + } + break; + case "identifier": + foreach (sub_header; pointer_head_sub_identifier) { + if (to!string(dochead[main_header][sub_header]).length > 2) { + writeln(main_header, ":", + sub_header, ": ", + dochead[main_header][sub_header] + ); + } + } + break; + case "notes": + foreach (sub_header; pointer_head_sub_notes) { + if (to!string(dochead[main_header][sub_header]).length > 2) { + writeln(main_header, ":", + sub_header, ": ", + dochead[main_header][sub_header] + ); + } + } + break; + case "publisher": + foreach (sub_header; pointer_head_sub_publisher) { + if (to!string(dochead[main_header][sub_header]).length > 2) { + writeln(main_header, ":", + sub_header, ": ", + dochead[main_header][sub_header] + ); + } + } + break; + default: + break; + } + } +} +#+end_src +** (bookindex) +#+name: ao_output_debugs +#+BEGIN_SRC d :exports none +debug(bookindex) { + writeln("-------------------------------"); + writeln(__FILE__, ":", __LINE__); + auto bookindex = new BookIndexReport(); + bookindex.bookindex_report_sorted(bookindex_unordered_hashes); +} +#+end_src +** (summary) [+1] +#+name: ao_output_debugs +#+BEGIN_SRC d :exports none +debug(summary) { + string[string] check = [ + "last_ocn" : "NA [debug \"checkdoc\" not run]", + ]; +#+end_src +*** (checkdoc) +#+name: ao_output_debugs_summary +#+BEGIN_SRC d :exports none +debug(checkdoc) { + foreach (obj; contents) { + if (obj["use"] == "content") { + if (!empty(obj["ocn"])) { + check["last_ocn"] = obj["ocn"]; + } + } + } +} +#+end_src +*** (headings) +#+name: ao_output_debugs_summary +#+BEGIN_SRC d :exports none +debug(headings) { + writeln("-------------------------------"); + writeln(__FILE__, ":", __LINE__); + foreach (obj; contents) { + if (obj["is"] == "heading") { + writeln( + scr_txt_marker["yellow"], + obj["lev"], "~ ", + "[", obj["ocn"], "] ", + obj["obj"] + ); + } + } +} +writeln( + scr_txt_color["green"], + "-------------------------------", + scr_txt_color["off"], + "\n", fn_src, + "\nlength contents array: ", contents.length, + "\nlast ocn: ", check["last_ocn"], + "\nlength bookindex: ", bookindex_unordered_hashes.length, + "\n", __FILE__, ":", __LINE__, +); +#+end_src +*** compare number of ocn for known sisu markup output (checkdoc) +#+name: ao_output_debugs_summary +#+BEGIN_SRC d :exports none +debug(checkdoc) { + if (auto mfn=match(fn_src, rgx.src_fn)) { + if (actions["assert"] == "yes") { + switch (mfn.captures[2]) { + case "live-manual.ssm": + assert(check["last_ocn"] == + "1019","last ocn should be: 1019 (check test, document is frequently updated)"); // ok + break; + case "sisu_markup.sst": + assert(check["last_ocn"] == + "297","last ocn should be: 297"); // ok + // assert(check["last_ocn"] == "297","last ocn should be: 297"); + // notes for first divergance study sisu headings 247 250 + // sisu has issue with code that contains heading 1~ which results in no ocn! ?? + // sisu currently has incorrect last body ocn of 294! + // bug in sisu? attend + break; + // sisu-markup-samples: + case "accelerando.charles_stross.sst": + assert(check["last_ocn"] == + "2861","last ocn should be: 2861"); // ok + break; + case "alices_adventures_in_wonderland.lewis_carroll.sst": + assert(check["last_ocn"] == + "805","last ocn should be: 805"); // 808 + break; + case "autonomy_markup0.sst": + assert(check["last_ocn"] == + "77","last ocn should be: 77"); // ok endnotes + // assert(check["last_ocn"] == "78","last ocn should be: 78"); + break; + case "content.cory_doctorow.sst": + assert(check["last_ocn"] == + "953","last ocn should be: 953"); // 1007 way off, check ocn off switches + // assert(check["last_ocn"] == "953","last ocn should be: 953"); + break; + case "democratizing_innovation.eric_von_hippel.sst": + // fixed ERROR! range violation, broken check! endnotes, bookindex, biblio + // error in bookindex ... (ch1; ch6; ch8 ) + assert(check["last_ocn"] == + "905","last ocn should be: 905"); // 911 + break; + case "down_and_out_in_the_magic_kingdom.cory_doctorow.sst": + assert(check["last_ocn"] == + "1417","last ocn should be: 1417"); // 1455 check ocn off switches + break; + case "for_the_win.cory_doctorow.sst": + assert(check["last_ocn"] == + "3510","last ocn should be: 3510"); // 3569 check ocn off switches + break; + case "free_as_in_freedom_2.richard_stallman_and_the_free_software_revolution.sam_williams.richard_stallman.sst": + assert(check["last_ocn"] == + "1082","last ocn should be: 1082"); // check 1079 too few + break; + case "free_culture.lawrence_lessig.sst": + assert(check["last_ocn"] == + "1330","last ocn should be: 1330"); // 1312 + // fixed ERROR! range violation, broken check! + // error in bookindex ... sections piracy (ch1) & property (ch10 market concentration) fixed + break; + case "free_for_all.peter_wayner.sst": // endnotes, bookindex, biblio + assert(check["last_ocn"] == + "1559","last ocn should be: 1559"); // 1560, check ocn off switches, has endnotes so 2 too many + // assert(check["last_ocn"] == "1559","last ocn should be: 1559"); + break; + case "gpl2.fsf.sst": + assert(check["last_ocn"] == + "65","last ocn should be: 65"); // ok endnotes? check + // assert(check["last_ocn"] == "66","last ocn should be: 66"); + break; + case "gpl3.fsf.sst": + assert(check["last_ocn"] == + "123","last ocn should be: 123"); // ok + break; + case "gullivers_travels.jonathan_swift.sst": + assert(check["last_ocn"] == + "668","last ocn should be: 668"); // 674 + break; + case "little_brother.cory_doctorow.sst": + assert(check["last_ocn"] == + "3130","last ocn should be: 3130"); // 3204, check ocn off switches + break; + case "the_cathedral_and_the_bazaar.eric_s_raymond.sst": + assert(check["last_ocn"] == + "258","last ocn should be: 258"); // ok + break; + case "the_public_domain.james_boyle.sst": + assert(check["last_ocn"] == + "970","last ocn should be: 970"); // 978 + break; + case "the_wealth_of_networks.yochai_benkler.sst": // endnotes, bookindex + assert(check["last_ocn"] == + "829","last ocn should be: 829"); // ok + // assert(check["last_ocn"] == "832","last ocn should be: 832"); + // has endnotes and bookindex, issue with sisu.rb + break; + case "through_the_looking_glass.lewis_carroll.sst": + assert(check["last_ocn"] == + "949","last ocn should be: 949"); // 955 + break; + case "two_bits.christopher_kelty.sst": // endnotes, bookindex, biblio + assert(check["last_ocn"] == + "1190","last ocn should be: 1190"); // 1191 + // assert(check["last_ocn"] == "1193","last ocn should be: 1193"); // 1191 ok? + // has endnotes and bookindex, issue with sisu.rb + break; + // fixed ERROR! range violation! + // error in bookindex ... (ch3 the movement) + case "un_contracts_international_sale_of_goods_convention_1980.sst": + assert(check["last_ocn"] == + "377","last ocn should be: 377"); // ok + break; + case "viral_spiral.david_bollier.sst": // endnotes, bookindex + assert(check["last_ocn"] == + "1078","last ocn should be: 1078"); // 1100 + // fixed ERROR! range violation! + // error in bookindex ... (ch7 ... building the cc machine, an extra semi colon) + break; + default: + writeln(fn_src); + break; + } + } + } +} +#+end_src + +* tangles +** code structure: :ao_output_debugs.d: +#+name: tangle_ao_output_debugs +#+BEGIN_SRC d :tangle ../lib/sdp/ao_output_debugs.d :exports none :noweb yes +/* + output debugs + ao_output_debugs.d +*/ +template SiSUoutputDebugs() { + class SDPoutputDebugs { + auto abstract_doc_source_debugs( + string[string][] contents, + JSONValue[string] docmake, + JSONValue[string] dochead, + string[][string][string] bookindex_unordered_hashes, + JSONValue[] biblio, + string fn_src, + string[string] actions + ) { + mixin RgxInit; + mixin ScreenTxtColors; + auto rgx = new Rgx(); + <> + <> + } + } + } +} +#+end_src -- cgit v1.2.3