diff options
| author | Ralph Amissah <ralph@amissah.com> | 2015-11-10 19:10:31 -0500 | 
|---|---|---|
| committer | Ralph Amissah <ralph@amissah.com> | 2015-11-10 19:30:43 -0500 | 
| commit | a012afaa46a7983fdcf07590f5385403fea044fc (patch) | |
| tree | 8761b98fbf92218565ba94f9997228330aa34719 | |
| parent | minor, place sdp.d in lib/ rather than lib/sdp (diff) | |
org babel block delimiters
| -rw-r--r-- | maker.org | 98 | ||||
| -rw-r--r-- | org/ao_abstract_doc_source.org | 110 | ||||
| -rw-r--r-- | org/ao_assertions.org | 8 | ||||
| -rw-r--r-- | org/ao_defaults.org | 12 | ||||
| -rw-r--r-- | org/ao_emitters_and_interfaces.org | 50 | ||||
| -rw-r--r-- | org/ao_markup_source_raw.org | 12 | ||||
| -rw-r--r-- | org/ao_object_setter.org | 14 | ||||
| -rw-r--r-- | org/ao_output_debugs.org | 22 | ||||
| -rw-r--r-- | org/ao_rgx.org | 39 | ||||
| -rw-r--r-- | org/ao_scan_inserts.org | 16 | ||||
| -rw-r--r-- | org/ao_utils.org | 6 | ||||
| -rw-r--r-- | org/sdp.org | 19 | 
12 files changed, 192 insertions, 214 deletions
| @@ -16,57 +16,51 @@  ** settings [+2]                                                   :settings:  *** alternative D compilers [+1]                                   :compiler:  **** dmd                                                                 :dmd: -#+name: makefile_maker -#+BEGIN_SRC makefile                                          :exports none +#+BEGIN_SRC makefile   :padline no                              :tangle makefile  DMD=dmd  DMD_FLAGS=-de -w  DMD_FLAGS_RELEASE=-release  DMD_FLAG_BINOF=-of +#+END_SRC -#+end_src  **** ldc2                                                                :ldc: -#+name: makefile_maker -#+BEGIN_SRC makefile                                          :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  LDC=ldc2  LDC_FLAGS=-w  LDC_FLAGS_RELEASE=-release  LDC_FLAG_BINOF=-of= +#+END_SRC -#+end_src  **** gdc                                                                 :gdc: -#+name: makefile_maker -#+BEGIN_SRC makefile                                          :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  GDC=gdc  #GDC=gdc-5  GDC_FLAGS=  GDC_FLAGS_RELEASE=-frelease  GDC_FLAG_BINOF=-o +#+END_SRC -#+end_src  *** set/select: ~D compiler~ & ~debug flags~ [+1] [2/2]              :select:  - [X] Set D_COMPILER (one of DMD LDC or GDC)  - [X] Set debug flags (using DMD standard flag -debug=)  **** SET compiler: "SET_D_COMPILER=":                         :compiler:select:  Set D_COMPILER one of DMD LDC or GDC e.g.:    SET_D_COMPILER=DMD -#+name: makefile_maker -#+BEGIN_SRC makefile                                          :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  # set D_COMPILER one of DMD LDC or GDC:  SET_D_COMPILER=LDC +#+END_SRC -#+end_src  **** SET debug flags: "SET_DC_FLAGS_DEBUG_EXTRA=-debug=": :compiler:flags:debug:  Set debug flags using DMD standard flag -debug= e.g.:    SET_DC_FLAGS_DEBUG_EXTRA=-debug=headings -debug=bookindex -#+name: makefile_maker -#+BEGIN_SRC makefile                                          :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  SET_DC_FLAGS_DEBUG_EXTRA=-debug=headings -debug=bookindex +#+END_SRC -#+end_src  *** D compiler settings [+1]                              :settings:compiler:  **** compiler settings -#+name: makefile_maker -#+BEGIN_SRC makefile                                          :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  DC=$($(SET_D_COMPILER))  DC_FLAGS=$($(shell echo $(SET_D_COMPILER)_FLAGS))  DC_FLAGS_RELEASE=$($(shell echo $(SET_D_COMPILER)_FLAGS_RELEASE)) @@ -74,11 +68,10 @@ DC_FLAG_BINOF=$($(shell echo $(SET_D_COMPILER)_FLAG_BINOF))  DC_FLAGS_DEBUG_DEFAULT_SET=-unittest -debug=checkdoc -debug=summary  DC_FLAGS_DEBUG_SET=\  	$(shell echo $(DC_FLAGS_DEBUG_DEFAULT_SET) $(SET_DC_FLAGS_DEBUG_EXTRA)) +#+END_SRC -#+end_src  **** compiler conditional settings (depending on selected D compiler) -#+name: makefile_maker -#+BEGIN_SRC makefile                                          :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  ifeq ($(DC), $(DMD))  	DC_FLAGS_DEBUG :=$(shell echo $(DC_FLAGS_DEBUG_SET))  endif @@ -88,21 +81,19 @@ endif  ifeq ($(DC), $(GDC))  	DC_FLAGS_DEBUG :=$(shell echo $(DC_FLAGS_DEBUG_SET)| sed -e "s/-debug/-fdebug/g")  endif +#+END_SRC -#+end_src  *** Project Details                                             :project:sdp: -#+name: makefile_maker -#+BEGIN_SRC makefile                                           :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  PRG_NAME=sdp  PRG_SRC=$(PRG_NAME).d  PRG_SRCDIR=./lib  PRG_BIN=$(PRG_NAME)  PRG_BINDIR=bin +#+END_SRC -#+end_src  *** Emacs Org settings                                  :settings:emacs:org: -#+name: makefile_maker -#+BEGIN_SRC makefile                                           :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  # ORG  EMACSLISP=/usr/share/emacs/site-lisp  EMACSLISP_ORG=~/.emacs.d/elpa/org-20151005 @@ -110,8 +101,8 @@ EMACSLISP_ORG_CONTRIB=~/.emacs.d/elpa/org-plus-contrib-20151005  ORGFILELIST=$(shell echo `ls -1 maker.org org/*.org`)  ORGFILES=""  ORGDIR=$(shell echo `pwd`) +#+END_SRC -#+end_src  ** "make" commands [+2]                                       :make:commands:  - build commands    - build @@ -130,8 +121,7 @@ ORGDIR=$(shell echo `pwd`)  *** build commands [+1]  **** build rebuild -#+name: makefile_maker -#+BEGIN_SRC makefile                                           :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  all: build  build: $(PRG_SRCDIR)/$(PRG_SRC) @@ -140,11 +130,10 @@ build: $(PRG_SRCDIR)/$(PRG_SRC)  	$(PRG_SRCDIR)/$(PRG_SRC)  rebuild: $(PRG_SRCDIR)/$(PRG_SRC) $(PRG_BINDIR)/$(PRG_BIN).o clean build -#+end_src -**** debug -#+name: makefile_maker -#+BEGIN_SRC makefile                                           :exports none +#+END_SRC +**** debug +#+BEGIN_SRC makefile                                            :tangle makefile  debug: $(PRG_SRCDIR)/$(PRG_SRC)  	$(DC) $(DC_FLAGS) $(DC_FLAGS_DEBUG) \  	$(DC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \ @@ -164,20 +153,18 @@ debug_gdc: $(PRG_SRCDIR)/$(PRG_SRC)  	$(GDC) $(GDC_FLAGS) $(GDC_FLAGS_DEBUG) \  	$(GDC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \  	$(PRG_SRCDIR)/$(PRG_SRC) -#+end_src -**** release -#+name: makefile_maker -#+BEGIN_SRC makefile                                           :exports none +#+END_SRC +**** release +#+BEGIN_SRC makefile                                            :tangle makefile  release: distclean_and_init tangle $(PRG_SRCDIR)/$(PRG_SRC)  	$(DC) $(DC_FLAGS) $(DC_FLAGS_RELEASE) \  	$(DC_FLAG_BINOF)$(PRG_BINDIR)/$(PRG_BIN) \  	$(PRG_SRCDIR)/$(PRG_SRC) +#+END_SRC -#+end_src  *** init clean distclean etc. -#+name: makefile_maker -#+BEGIN_SRC makefile                                             :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  init:  	mkdir -p $(PRG_SRCDIR); \  	mkdir -p $(PRG_BINDIR); @@ -194,11 +181,10 @@ distclean: init $(PRG_BINDIR) expunge  distclean_and_init: init $(PRG_BINDIR) expunge  	mkdir -p $(PRG_SRCDIR); \  	mkdir -p $(PRG_BINDIR); +#+END_SRC -#+end_src  *** Org Babel Tangle batch process command -#+name: makefile_maker -#+BEGIN_SRC makefile                                             :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  tangle:  	for f in $(ORGFILELIST); do \  		ORGFILES="$$ORGFILES \"$$f\""; \ @@ -217,27 +203,26 @@ tangle:  		    (setq-local org-src-preserve-indentation t) \  			(org-babel-tangle) \  			(kill-buffer)) '($$ORGFILES)))" 2>&1 +#+END_SRC -#+end_src  *** Git snapshot -#+name: makefile_maker -#+BEGIN_SRC makefile                                             :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  gitsnapshot: distclean_and_init tangle  	git commit -a +#+END_SRC -#+end_src  ** phony -#+name: makefile_maker -#+BEGIN_SRC makefile                                               :exports none +#+BEGIN_SRC makefile                                            :tangle makefile  .PHONY : all build rebuild debug release \  	clean distclean init \  	tangle +#+END_SRC -#+end_src  * sh script to batch process emacs org babel tangle     :shell_script:tangle:    [http://orgmode.org/manual/Batch-execution.html]  creates a shell batch script called "tangle", that will tangle (emacs org babel tangle) org files in ./org/ to create .d source files in ./lib/sdp/ (similar functionality is contained within the "makefile" created by this "maker.org" file make tangle) -#+BEGIN_SRC sh :tangle tangle :tangle-mode (identity #o755) :shebang #!/bin/sh + +#+BEGIN_SRC sh :tangle tangle :padline no :tangle-mode (identity #o755) :shebang #!/bin/sh  # -*- mode: shell-script -*-  # tangle files with org-mode  DIR=`pwd` @@ -247,7 +232,7 @@ EMACSLISP_ORG=~/.emacs.d/elpa/org-20151005  EMACSLISP_ORG_CONTRIB=~/.emacs.d/elpa/org-plus-contrib-20151005  # wrap each argument in the code required to call tangle on it  for i in $@; do - ORGFILES="$ORGFILES \"$i\"" +  ORGFILES="$ORGFILES \"$i\""  done  emacs --batch -Q -q \  --eval "(progn @@ -260,11 +245,4 @@ emacs --batch -Q -q \    (setq-local org-src-preserve-indentation t)    (org-babel-tangle)    (kill-buffer)) '($ORGFILES)))" 2>&1 #|grep tangled -#+end_src - -* tangle                                                             :tangle: -** makefile:                                                   :makefile: -#+name: tangle_ao_rgx -#+BEGIN_SRC makefile  :tangle makefile     :exports none   :noweb yes -<<makefile_maker>> -#+end_src +#+END_SRC diff --git a/org/ao_abstract_doc_source.org b/org/ao_abstract_doc_source.org index 257213c..bfda427 100644 --- a/org/ao_abstract_doc_source.org +++ b/org/ao_abstract_doc_source.org @@ -146,7 +146,7 @@ scope(exit) {  }  auto dochead_make = parseJSON(header_make_jsonstr).object;  auto dochead_metadata = parseJSON(header_metadata_jsonstr).object; -#+end_src +#+END_SRC  ** loop: process document body [+7]  *** scope @@ -173,7 +173,7 @@ debug(srclines) {      writeln(scr_txt_marker["green"], line);    }  } -#+end_src +#+END_SRC  *** check whether ocn is on or turned off  #+name: abs_loop_body_00  #+BEGIN_SRC d                                                  :exports none @@ -216,7 +216,7 @@ if ((!line.empty) && (ft["ocn_status_multi_obj"] == 0)) {      }    }  } -#+end_src +#+END_SRC  *** separate regular markup text from code blocks [+6]  **** code blocks  #+name: abs_loop_body_00 @@ -252,13 +252,13 @@ if (ft["code"] == 1) {        object["obj"] ~= line ~= "\n";             // code (tic) line      }    } -#+end_src +#+END_SRC  **** non code objects (other blocks or regular text) [+5]  #+name: abs_loop_body_00  #+BEGIN_SRC d                                                  :exports none  } else if (!match(line, rgx.regular_parse_skip)) {  /* object other than code block object (includes regular text paragraph) */ -#+end_src +#+END_SRC  ***** within block group [+1]  ****** within block group: biblio  #+name: abs_loop_body_non_code_obj @@ -347,7 +347,7 @@ if (((match(line, rgx.heading_biblio)      biblio_arr_json[count_biblio_entry] = s;      biblio_tag_entry="";    } -#+end_src +#+END_SRC  ****** within block group: poem  #+name: abs_loop_body_non_code_obj  #+BEGIN_SRC d                                                  :exports none @@ -548,7 +548,7 @@ if (((match(line, rgx.heading_biblio)        }      }    } -#+end_src +#+END_SRC  ****** within block group: group  #+name: abs_loop_body_non_code_obj  #+BEGIN_SRC d                                                  :exports none @@ -583,7 +583,7 @@ if (((match(line, rgx.heading_biblio)        object["obj"] ~= line ~= "\n";           // build group array (or string)      }    } -#+end_src +#+END_SRC  ****** within block group: block  #+name: abs_loop_body_non_code_obj  #+BEGIN_SRC d                                                  :exports none @@ -618,7 +618,7 @@ if (((match(line, rgx.heading_biblio)        object["obj"] ~= line ~= "\n";           // build block array (or string)      }    } -#+end_src +#+END_SRC  ****** within block group: quote  #+name: abs_loop_body_non_code_obj  #+BEGIN_SRC d                                                  :exports none @@ -653,7 +653,7 @@ if (((match(line, rgx.heading_biblio)        object["obj"] ~= line ~= "\n";           // build quote array (or string)      }    } -#+end_src +#+END_SRC  ****** within block group: table  #+name: abs_loop_body_non_code_obj  #+BEGIN_SRC d                                                  :exports none @@ -688,13 +688,13 @@ if (((match(line, rgx.heading_biblio)        object["obj"] ~= line ~= "\n";           // build table array (or string)      }    } -#+end_src +#+END_SRC  ***** not within block group [+4]  #+name: abs_loop_body_non_code_obj  #+BEGIN_SRC d                                                  :exports none  } else {  /* not within a block group */ -#+end_src +#+END_SRC  ****** assert  #+name: abs_loop_body_open_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -704,7 +704,7 @@ assert(    "block status: none or closed"  );  assertions_flag_types_block_status_none_or_closed(ft); -#+end_src +#+END_SRC  ****** open curly block group [+1]  ******* open block group: code  #+name: abs_loop_body_open_block_obj @@ -722,7 +722,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["blocks"] = 1;    ft["code"] = 1;    ft["curly_code"] = 1; -#+end_src +#+END_SRC  ******* open block group: poem  #+name: abs_loop_body_open_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -747,7 +747,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["verse_new"] = 1;    ft["poem"] = 1;    ft["curly_poem"] = 1; -#+end_src +#+END_SRC  ******* open block group: group  #+name: abs_loop_body_open_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -764,7 +764,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["blocks"] = 1;    ft["group"] = 1;    ft["curly_group"] = 1; -#+end_src +#+END_SRC  ******* open block group: block  #+name: abs_loop_body_open_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -781,7 +781,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["blocks"] = 1;    ft["block"] = 1;    ft["curly_block"] = 1; -#+end_src +#+END_SRC  ******* open block group: quote  #+name: abs_loop_body_open_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -798,7 +798,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["blocks"] = 1;    ft["quote"] = 1;    ft["curly_quote"] = 1; -#+end_src +#+END_SRC  ******* open block group: table  #+name: abs_loop_body_open_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -815,7 +815,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["blocks"] = 1;    ft["table"] = 1;    ft["curly_table"] = 1; -#+end_src +#+END_SRC  ****** open tic block group [+1]  ******* open block group: code  #+name: abs_loop_body_open_block_obj @@ -833,7 +833,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["blocks"] = 1;    ft["code"] = 1;    ft["tic_code"] = 1; -#+end_src +#+END_SRC  ******* open block group: poem  #+name: abs_loop_body_open_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -858,7 +858,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["verse_new"] = 1;    ft["poem"] = 1;    ft["tic_poem"] = 1; -#+end_src +#+END_SRC  ******* open block group: group  #+name: abs_loop_body_open_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -875,7 +875,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["blocks"] = 1;    ft["group"] = 1;    ft["tic_group"] = 1; -#+end_src +#+END_SRC  ******* open block group: block  #+name: abs_loop_body_open_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -892,7 +892,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["blocks"] = 1;    ft["block"] = 1;    ft["tic_block"] = 1; -#+end_src +#+END_SRC  ******* open block group: quote  #+name: abs_loop_body_open_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -909,7 +909,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["blocks"] = 1;    ft["quote"] = 1;    ft["tic_quote"] = 1; -#+end_src +#+END_SRC  ******* open block group: table  #+name: abs_loop_body_open_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -926,14 +926,14 @@ if (auto m = match(line, rgx.block_curly_code_open)) {    ft["blocks"] = 1;    ft["table"] = 1;    ft["tic_table"] = 1; -#+end_src +#+END_SRC  ****** line not empty [+3]  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none  } else if (!line.empty) {  /* line not empty */  /* non blocks (headers, paragraphs) & closed blocks */ -#+end_src +#+END_SRC  ******* asserts  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -958,7 +958,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {        || ft["book_index"] == 1      );    } -#+end_src +#+END_SRC  ******* book index  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1001,13 +1001,13 @@ if (auto m = match(line, rgx.block_curly_code_open)) {      } else {        book_idx_tmp ~= line;      } -#+end_src +#+END_SRC  ******* not book index [+2]  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none    } else {    /* not book_index */ -#+end_src +#+END_SRC  ******** matched: comment  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1035,7 +1035,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {        ft["heading"] = 0;        ft["para"] = 0;        counter++; -#+end_src +#+END_SRC  ******** matched: header make  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1051,7 +1051,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {        ft["para"] = 0;        line_occur["header_make"]++;        object["obj"] ~= line ~= "\n"; -#+end_src +#+END_SRC  ******** matched: header metadata  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1067,7 +1067,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {        ft["para"] = 0;        line_occur["header_metadata"]++;        object["obj"] ~= line ~= "\n"; -#+end_src +#+END_SRC  ******** flag set: header make  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1082,7 +1082,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {          line_occur["header_make"]++;          object["obj"] ~= line ~= "\n";        } -#+end_src +#+END_SRC  ******** flag set: header metadata  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1097,7 +1097,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {          line_occur["header_metadata"]++;          object["obj"] ~= line ~= "\n";        } -#+end_src +#+END_SRC  ******** flag not set & line not exist: heading or para [+1]  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1106,7 +1106,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {      && ((ft["para"] == 0)      && (ft["heading"] == 0))) {      /* heading or para but neither flag nor line exists */ -#+end_src +#+END_SRC  ********* headings found  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1176,7 +1176,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {          }          ft["make_headings"] = 1;        } -#+end_src +#+END_SRC  ********* headings make set  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1229,7 +1229,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {            }          }        } -#+end_src +#+END_SRC  ********* headings match  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1356,7 +1356,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {          debug(heading) {                         // heading            tell_l("yellow", strip(line));          } -#+end_src +#+END_SRC  ********* para matches  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1407,7 +1407,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {          }          line_occur["para"]++;        } -#+end_src +#+END_SRC  ******** line exist: header make  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1419,7 +1419,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {        }        object["obj"] ~= line ~= "\n";        line_occur["header_make"]++; -#+end_src +#+END_SRC  ******** line exist: header metadata  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1431,7 +1431,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {        }        object["obj"] ~= line ~= "\n";        line_occur["header_metadata"]++; -#+end_src +#+END_SRC  ******** line exist: heading  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1442,7 +1442,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {        }        object["obj"] ~= line ~= "\n";        line_occur["heading"]++; -#+end_src +#+END_SRC  ******** line exist: para  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1455,7 +1455,7 @@ if (auto m = match(line, rgx.block_curly_code_open)) {        line_occur["para"]++;      }    } -#+end_src +#+END_SRC  ****** line empty, with block flag  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none @@ -1670,13 +1670,13 @@ if (auto m = match(line, rgx.block_curly_code_open)) {      ft["blocks"] = 0;      ft["quote"] = 0;    } -#+end_src +#+END_SRC  ****** line empty [+1]  #+name: abs_loop_body_not_block_obj  #+BEGIN_SRC d                                                  :exports none  } else {  /* line empty */ -#+end_src +#+END_SRC  ******* assert line empty  #+name: abs_loop_body_not_block_obj_line_empty  #+BEGIN_SRC d                                                  :exports none @@ -1689,7 +1689,7 @@ assert(    (ft["blocks"] == 0),    "code block status: none"  ); -#+end_src +#+END_SRC  ******* header_make instructions  #+name: abs_loop_body_not_block_obj_line_empty  #+BEGIN_SRC d                                                  :exports none @@ -1714,7 +1714,7 @@ if ((ft["header_make"] == 1)    object.remove("attrib");    object.remove("bookindex");    processing.remove("verse"); -#+end_src +#+END_SRC  ******* header_metadata  #+name: abs_loop_body_not_block_obj_line_empty  #+BEGIN_SRC d                                                  :exports none @@ -1741,7 +1741,7 @@ if ((ft["header_make"] == 1)    object.remove("attrib");    object.remove("bookindex");    processing.remove("verse"); -#+end_src +#+END_SRC  ******* heading object  #+name: abs_loop_body_not_block_obj_line_empty  #+BEGIN_SRC d                                                  :exports none @@ -1799,7 +1799,7 @@ if ((ft["header_make"] == 1)    object.remove("bookindex");    processing.remove("verse");    counter++; -#+end_src +#+END_SRC  ******* paragraph object  #+name: abs_loop_body_not_block_obj_line_empty  #+BEGIN_SRC d                                                  :exports none @@ -1859,14 +1859,14 @@ if ((ft["header_make"] == 1)    );    // check what happens when paragraph separated by 2 newlines  } -#+end_src +#+END_SRC  *** close non code objects (regular text)  #+name: abs_loop_body_00_closed  #+BEGIN_SRC d                                                  :exports none      } // close else for line empty    } // close else for not the above  } // close after non code, other blocks or regular text -#+end_src +#+END_SRC  *** regular text objects  #+name: abs_loop_body_01  #+BEGIN_SRC d                                                  :exports none @@ -1882,7 +1882,7 @@ if (((contents_arbitrary_max_length_set[counter-1]["is"] == "para")      notesection.gather_notes_for_endnote_section(contents_arbitrary_max_length_set, counter-1);    }  } -#+end_src +#+END_SRC  ** post loop processing  #+name: abs_post @@ -1983,12 +1983,12 @@ auto t =      biblio_ordered    );  return t; -#+end_src +#+END_SRC  * tangles  ** code structure:                                :ao_abstract_doc_source.d:  #+name: tangle_ao_abstract_doc_source -#+BEGIN_SRC d  :tangle ../lib/sdp/ao_abstract_doc_source.d  :exports none :noweb yes +#+BEGIN_SRC d :tangle ../lib/sdp/ao_abstract_doc_source.d :padline no :exports none :noweb yes  /*    document abstraction    ao_abstract_doc_source.d @@ -2013,4 +2013,4 @@ mixin template SiSUdocAbstraction() {      }    }  } -#+end_src +#+END_SRC diff --git a/org/ao_assertions.org b/org/ao_assertions.org index c6b09bb..1c29be9 100644 --- a/org/ao_assertions.org +++ b/org/ao_assertions.org @@ -214,7 +214,7 @@ mixin template AssertionsOnMarkupDocumentStructure() {      }    }  } -#+end_src +#+END_SRC  ** mixin template: assertions on blocks  #+name: ao_assertions  #+BEGIN_SRC d                                                  :exports none @@ -237,15 +237,15 @@ mixin template AssertionsOnBlocks() {        "block status: none or closed");    }  } -#+end_src +#+END_SRC  * tangle  ** code structure:                                           :ao_assertions.d:  #+name: tangle_ao_assertions -#+BEGIN_SRC d  :tangle ../lib/sdp/ao_assertions.d  :exports none :noweb yes +#+BEGIN_SRC d :tangle ../lib/sdp/ao_assertions.d :padline no :exports none :noweb yes  /*    assertions    ao_assertions.d  */  <<ao_assertions>> -#+end_src +#+END_SRC diff --git a/org/ao_defaults.org b/org/ao_defaults.org index e16ed59..391abbb 100644 --- a/org/ao_defaults.org +++ b/org/ao_defaults.org @@ -179,7 +179,7 @@ template SiSUheader() {    auto config_jsonstr = `{    }`;  } -#+end_src +#+END_SRC  ** template: flags regex initialize  #+name: ao_defaults_templates  #+BEGIN_SRC d                                                  :exports none @@ -217,7 +217,7 @@ template SiSUrgxInitFlags() {      "book_index"           : 0,    ];  } -#+end_src +#+END_SRC  ** template: bibliography  #+name: ao_defaults_templates  #+BEGIN_SRC d                                                  :exports none @@ -268,7 +268,7 @@ template SiSUbiblio() {      "sn"                               : "short_name"    ]; // is: book, article, magazine, newspaper, blog, other  } -#+end_src +#+END_SRC  ** template: internal markup  #+name: ao_defaults_templates  #+BEGIN_SRC d                                                  :exports none @@ -278,15 +278,15 @@ template InternalMarkup() {      auto en_b_o = "〖"; auto en_b_c = "〗";    }  } -#+end_src +#+END_SRC  * tangles  ** code structure:                                               :ao_defaults.d:  #+name: tangle_ao_defaults -#+BEGIN_SRC d  :tangle ../lib/sdp/ao_defaults.d  :exports none :noweb yes +#+BEGIN_SRC d :tangle ../lib/sdp/ao_defaults.d :padline no :exports none :noweb yes  /*    defaults    ao_defaults.d  */  <<ao_defaults_templates>> -#+end_src +#+END_SRC diff --git a/org/ao_emitters_and_interfaces.org b/org/ao_emitters_and_interfaces.org index 8729a74..d016f7c 100644 --- a/org/ao_emitters_and_interfaces.org +++ b/org/ao_emitters_and_interfaces.org @@ -34,7 +34,7 @@ class CLI {      return actions;    }  } -#+end_src +#+END_SRC  ** e&i: ocn  *** emitter  #+name: ao_emitter @@ -54,7 +54,7 @@ class OCNemitter : AssertOCN {    invariant() {    }  } -#+end_src +#+END_SRC  *** interface assert  #+name: ao_interface  #+BEGIN_SRC d                                                  :exports none @@ -63,7 +63,7 @@ interface AssertOCN {      in { assert(ocn_status_flag <= 2); }      out(ocn) { assert(ocn >= 0); }  } -#+end_src +#+END_SRC  ** e:   object attributes  *** emitter  #+name: ao_emitter @@ -220,7 +220,7 @@ class ObjAttributes {    invariant() {    }  } -#+end_src +#+END_SRC  ** e:   object inline markup munge  *** emitter  #+name: ao_emitter @@ -404,7 +404,7 @@ class ObjInlineMarkupMunge {    invariant() {    }  } -#+end_src +#+END_SRC  ** e&i: object inline markup  *** emitter  #+name: ao_emitter @@ -464,7 +464,7 @@ class ObjInlineMarkup : AssertObjInlineMarkup {    invariant() {    }  } -#+end_src +#+END_SRC  *** interface assert  #+name: ao_interface  #+BEGIN_SRC d                                                  :exports none @@ -475,7 +475,7 @@ interface AssertObjInlineMarkup {      out(inline_markup) {      }  } -#+end_src +#+END_SRC  ** e&i: object attrib  *** emitter  #+name: ao_emitter @@ -566,7 +566,7 @@ class ObjAttrib : AssertObjAttrib {    invariant() {    }  } -#+end_src +#+END_SRC  *** interface assert  #+name: ao_interface  #+BEGIN_SRC d                                                  :exports none @@ -577,7 +577,7 @@ interface AssertObjAttrib {      out(obj_attrib_json) {      }  } -#+end_src +#+END_SRC  ** e:   header document metadata in json  *** emitter  #+name: ao_emitter @@ -772,7 +772,7 @@ class HeaderDocMetadataMakeJson {      return t;    }  } -#+end_src +#+END_SRC  ** e:   header document metadata as hash  *** emitter  #+name: ao_emitter @@ -825,7 +825,7 @@ class HeaderMetadataMakeHash {    invariant() {    }  } -#+end_src +#+END_SRC  ** e&i: book index nugget hash  *** emitter  #+name: ao_emitter @@ -891,7 +891,7 @@ class BookIndexNuggetHash : AssertBookIndexNuggetHash {    invariant() {    }  } -#+end_src +#+END_SRC  *** interface assert  #+name: ao_interface  #+BEGIN_SRC d                                                  :exports none @@ -911,7 +911,7 @@ interface AssertBookIndexNuggetHash {      out(hash_nugget) {      }  } -#+end_src +#+END_SRC  ** e&i: book index report  *** emitter  #+name: ao_emitter @@ -940,7 +940,7 @@ class BookIndexReport {      }    }  } -#+end_src +#+END_SRC  *** interface assert  #+name: ao_interface  #+BEGIN_SRC d                                                  :exports none @@ -949,7 +949,7 @@ interface AssertBookIndexReport {      in {      }  } -#+end_src +#+END_SRC  ** e:   book index report indented  *** emitter  #+name: ao_emitter @@ -980,7 +980,7 @@ class BookIndexReportIndent {      }    }  } -#+end_src +#+END_SRC  ** e:   book index report section  *** emitter  #+name: ao_emitter @@ -1146,7 +1146,7 @@ class BookIndexReportSection {      return bookindex;    }  } -#+end_src +#+END_SRC  ** e:   (end)notes section  *** emitter  #+name: ao_emitter @@ -1271,7 +1271,7 @@ class NotesSection {      return t;    }  } -#+end_src +#+END_SRC  ** e:   bibliography  *** emitter  #+name: ao_emitter @@ -1343,7 +1343,7 @@ class Bibliography {      }    }  } -#+end_src +#+END_SRC  ** e&i: node structure metadata  *** emitter  #+name: ao_emitter @@ -1470,7 +1470,7 @@ class NodeStructureMetadata : AssertNodeJSON {    invariant() {    }  } -#+end_src +#+END_SRC  *** interface assert  #+name: ao_interface @@ -1573,11 +1573,11 @@ interface AssertNodeJSON {      }    }  } -#+end_src +#+END_SRC  * tangles  ** code structure:                                                :ao_emitter.d:  #+name: tangle_ao_emitter -#+BEGIN_SRC d  :tangle ../lib/sdp/ao_emitter.d  :exports none :noweb yes +#+BEGIN_SRC d :tangle ../lib/sdp/ao_emitter.d :padline no :exports none :noweb yes  /*    emitters    ao_emitters.d @@ -1586,10 +1586,10 @@ mixin template Emitters() {    mixin InternalMarkup;    <<ao_emitter>>  } -#+end_src +#+END_SRC  ** code structure:                                             :ao_interface.d:  #+name: tangle_ao_interface -#+BEGIN_SRC d  :tangle ../lib/sdp/ao_interface.d  :exports none :noweb yes +#+BEGIN_SRC d :tangle ../lib/sdp/ao_interface.d :padline no :exports none :noweb yes  /*    interface    ao_interface.d @@ -1597,4 +1597,4 @@ mixin template Emitters() {  mixin template Interfaces() {    <<ao_interface>>  } -#+end_src +#+END_SRC diff --git a/org/ao_markup_source_raw.org b/org/ao_markup_source_raw.org index ec94448..13bce8d 100644 --- a/org/ao_markup_source_raw.org +++ b/org/ao_markup_source_raw.org @@ -39,7 +39,7 @@ final private string markupSourceString(in char[] fn_src) {    std.utf.validate(source_txt_str);    return source_txt_str;  } -#+end_src +#+END_SRC  ** source line array  #+name: ao_markup_source_raw  #+BEGIN_SRC d                                                  :exports none @@ -48,7 +48,7 @@ final private char[][] markupSourceLineArray(in string src_text) {      split(cast(char[]) src_text, rgx.line_delimiter);    return source_line_arr;  } -#+end_src +#+END_SRC  ** insert source content raw line array  #+name: ao_markup_source_raw  #+BEGIN_SRC d                                                  :exports none @@ -61,7 +61,7 @@ final char[][] markupInsertSourceContentRawLineArray(in char[] fn_src) {    auto source_line_arr = markupSourceLineArray(source_txt_str);    return source_line_arr;  } -#+end_src +#+END_SRC  ** source content raw line array  #+name: ao_markup_source_raw  #+BEGIN_SRC d                                                  :exports none @@ -74,12 +74,12 @@ final char[][] markupSourceContentRawLineArray(in char[] fn_src) {    auto source_line_arr = markupSourceLineArray(source_txt_str);    return source_line_arr;  } -#+end_src +#+END_SRC  * tangles  ** code structure:                                   :ao_markup_source_raw.d:  #+name: tangle_ao_markup_source_raw -#+BEGIN_SRC d  :tangle ../lib/sdp/ao_markup_source_raw.d  :exports none :noweb yes +#+BEGIN_SRC d :tangle ../lib/sdp/ao_markup_source_raw.d :padline no :exports none :noweb yes  /*    markup source raw    ao_markup_source_raw.d @@ -90,4 +90,4 @@ mixin template SiSUmarkupRaw() {      <<ao_markup_source_raw>>    }  } -#+end_src +#+END_SRC diff --git a/org/ao_object_setter.org b/org/ao_object_setter.org index b6d2680..83425a3 100644 --- a/org/ao_object_setter.org +++ b/org/ao_object_setter.org @@ -24,7 +24,7 @@ string[string] contents_comment(in string object) {    object_set["obj"]           = object;    return object_set;  } -#+end_src +#+END_SRC  ** heading  #+name: ao_object_setter  #+BEGIN_SRC d                                                  :exports none @@ -50,7 +50,7 @@ string[string] contents_heading(    object_set["attrib"]        = attrib;    return object_set;  } -#+end_src +#+END_SRC  ** para  #+name: ao_object_setter  #+BEGIN_SRC d                                                  :exports none @@ -75,7 +75,7 @@ string[string] contents_para(    object_set["attrib"]        = attrib;    return object_set;  } -#+end_src +#+END_SRC  ** block  #+name: ao_object_setter  #+BEGIN_SRC d                                                  :exports none @@ -94,7 +94,7 @@ string[string] contents_block(    object_set["attrib"]        = attrib;    return object_set;  } -#+end_src +#+END_SRC  ** block ocn string  #+name: ao_object_setter  #+BEGIN_SRC d                                                  :exports none @@ -113,12 +113,12 @@ string[string] contents_block_ocn_string(    object_set["node"]          = node;    return object_set;  } -#+end_src +#+END_SRC  * tangles  ** code structure:                                          :ao_object_setter.d:  #+name: tangle_ao_object_setter -#+BEGIN_SRC d  :tangle ../lib/sdp/ao_object_setter.d  :exports none :noweb yes +#+BEGIN_SRC d :tangle ../lib/sdp/ao_object_setter.d :padline no :exports none :noweb yes  /*    object setter    ao_object_setter.d @@ -129,4 +129,4 @@ mixin template ObjectSetters() {      <<ao_object_setter>>    }  } -#+end_src +#+END_SRC diff --git a/org/ao_output_debugs.org b/org/ao_output_debugs.org index f63fcad..0e730ef 100644 --- a/org/ao_output_debugs.org +++ b/org/ao_output_debugs.org @@ -32,7 +32,7 @@ debug(parent) {      }    }  } -#+end_src +#+END_SRC  ** (objects)  #+name: ao_output_debugs  #+BEGIN_SRC d                                                  :exports none @@ -51,7 +51,7 @@ debug(objects) {      }    }  } -#+end_src +#+END_SRC  ** (headermakejson)  #+name: ao_output_debugs  #+BEGIN_SRC d                                                  :exports none @@ -77,7 +77,7 @@ debug(headermakejson) {      }    }  } -#+end_src +#+END_SRC  ** (headermetadatajson)  #+name: ao_output_debugs  #+BEGIN_SRC d                                                  :exports none @@ -182,7 +182,7 @@ debug(headermetadatajson) {      }    }  } -#+end_src +#+END_SRC  ** (bookindex)  #+name: ao_output_debugs  #+BEGIN_SRC d                                                  :exports none @@ -192,7 +192,7 @@ debug(bookindex) {    auto bookindex = new BookIndexReport();    bookindex.bookindex_report_sorted(bookindex_unordered_hashes);  } -#+end_src +#+END_SRC  ** (summary) [+1]  #+name: ao_output_debugs  #+BEGIN_SRC d                                                  :exports none @@ -200,7 +200,7 @@ debug(summary) {    string[string] check = [      "last_ocn" : "NA [debug \"checkdoc\" not run]",    ]; -#+end_src +#+END_SRC  *** (checkdoc)  #+name: ao_output_debugs_summary  #+BEGIN_SRC d                                                  :exports none @@ -213,7 +213,7 @@ debug(checkdoc) {      }    }  } -#+end_src +#+END_SRC  *** (headings)  #+name: ao_output_debugs_summary  #+BEGIN_SRC d                                                  :exports none @@ -241,7 +241,7 @@ writeln(    "\nlength bookindex: ", bookindex_unordered_hashes.length,    "\n", __FILE__, ":", __LINE__,  ); -#+end_src +#+END_SRC  *** compare number of ocn for known sisu markup output (checkdoc)  #+name: ao_output_debugs_summary  #+BEGIN_SRC d                                                  :exports none @@ -370,12 +370,12 @@ debug(checkdoc) {      }    }  } -#+end_src +#+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 +#+BEGIN_SRC d :tangle ../lib/sdp/ao_output_debugs.d :padline no :exports none :noweb yes  /*    output debugs    ao_output_debugs.d @@ -400,4 +400,4 @@ template SiSUoutputDebugs() {      }    }  } -#+end_src +#+END_SRC diff --git a/org/ao_rgx.org b/org/ao_rgx.org index f168e7a..ff7f207 100644 --- a/org/ao_rgx.org +++ b/org/ao_rgx.org @@ -37,13 +37,14 @@ static para_delimiter            = ctRegex!("\n[ ]*\n+");  static levels_markup             = ctRegex!(`^[A-D1-4]$`);  static levels_numbered           = ctRegex!(`^[0-9]$`);  static levels_numbered_headings  = ctRegex!(`^[0-7]$`); -#+end_src +#+END_SRC  ** markup insert file  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none  /* insert markup file */  static insert_src_fn_ssi_or_sst  = ctRegex!(`^<<\s*(?P<path>[a-zA-Z0-9._-]+/)*(?P<filename>[a-zA-Z0-9._-]+[.]ss[ti])$`); -#+end_src +// static insert_ssi_or_sst_fn      = ctRegex!(`^<<\s*[a-zA-Z0-9._-]+[.]ss[ti]`); +#+END_SRC  ** header & comments  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -55,7 +56,7 @@ static header_metadata           = ctRegex!(`^@([a-z_]+):(?:\s|$)`);  static header_sub                = ctRegex!(`^[ ]+:([a-z_]+):\s`);  static head_main                 = ctRegex!(`^@([a-z_]+):\s*(.*)`, "m");  static head_sub                  = ctRegex!(`^[ ]*:([a-z_]+):\s+(.+)`, "m"); -#+end_src +#+END_SRC  ** header & paragraph operators  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -71,7 +72,7 @@ static para_bullet_indent = ctRegex!(`^_([1-9])[*] `);  static para_indent        = ctRegex!(`^_([1-9]) `);  static para_indent_hang   = ctRegex!(`^_([0-9])_([0-9]) `);  static para_attribs       = ctRegex!(`^_(([0-9])(_([0-9]))?|_([1-9])?[*]) `); -#+end_src +#+END_SRC  ** blocked markup tics  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -83,7 +84,7 @@ static block_tic_block_open      = ctRegex!("^`{3} (block)");  static block_tic_quote_open      = ctRegex!("^`{3} (quote)");  static block_tic_table_open      = ctRegex!("^`{3} (table)");  static block_tic_close           = ctRegex!("^(`{3})$","m"); -#+end_src +#+END_SRC  ** blocked markup curly  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -100,7 +101,7 @@ static block_curly_quote_open    = ctRegex!(`^(quote[{].*?$)`);  static block_curly_quote_close   = ctRegex!(`^([}]quote)`);  static block_curly_table_open    = ctRegex!(`^(table[{].*?$)`);  static block_curly_table_close   = ctRegex!(`^([}]table)`); -#+end_src +#+END_SRC  ** inline markup font face mod  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -113,7 +114,7 @@ static inline_subscript          = ctRegex!(`,\{(?P<text>.+?)\},`);  static inline_strike             = ctRegex!(`-\{(?P<text>.+?)\}-`);  static inline_insert             = ctRegex!(`\+\{(?P<text>.+?)\}\+`);  static inline_mono               = ctRegex!(`#\{(?P<text>.+?)\}#`); -#+end_src +#+END_SRC  ** inline markup footnotes  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -144,7 +145,7 @@ static inline_notes_square                   = ctRegex!(`~\[\s*(.+?)\]~`, "mg");  static inline_text_and_note_square_sp        = ctRegex!(`(.+?)~\[[*+]+\s+(.+?)\]~`, "mg");  static inline_text_and_note_square           = ctRegex!(`(.+?)~\[\s*(.+?)\]~`, "mg");  static inline_note_square_delimiters         = ctRegex!(`(~\[\s*)(.+?)(\]~)`, "mg"); -#+end_src +#+END_SRC  ** inline markup book index  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -152,7 +153,7 @@ static inline_note_square_delimiters         = ctRegex!(`(~\[\s*)(.+?)(\]~)`, "m  static book_index                = ctRegex!(`^=\{\s*(.+?)\}$`, "m");  static book_index_open           = ctRegex!(`^=\{\s*([^}]+?)$`);  static book_index_close          = ctRegex!(`^(.*?)\}$`, "m"); // strip -#+end_src +#+END_SRC  ** no ocn object  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -160,7 +161,7 @@ static book_index_close          = ctRegex!(`^(.*?)\}$`, "m"); // strip  static ocn_off                   = ctRegex!(`~#$`, "m");  static ocn_off_dh                = ctRegex!(`-#$`, "m");  static ocn_off_all               = ctRegex!(`[~-]#$`, "m"); -#+end_src +#+END_SRC  ** no ocn block  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -170,13 +171,13 @@ static ocn_off_block_dh          = ctRegex!(`^---#$`);  static ocn_off_block_close       = ctRegex!(`^--\+#$`);  // static auto_ocn_ignore           = ctRegex!(`^[+~*$-]{3,}$`); // reminder  static ocn_block_marks           = ctRegex!(`^--[+~-]#$`); -#+end_src +#+END_SRC  ** ignore outside code blocks  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none  /* ignore outside code blocks */  static regular_parse_skip        = ctRegex!(`^(--[+~-]#|-[\\]{2}-|=[.\\]{2}=)$`); // not structural info -#+end_src +#+END_SRC  ** line & page breaks  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -189,13 +190,13 @@ static break_page_line_across    = ctRegex!(`^=[.]{2}=$`);  static break_string              = ctRegex!(`』`);  // ancestry, parent  static parent                    = ctRegex!(`([0-7]):([0-9]+)`); -#+end_src +#+END_SRC  ** json  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none  /* json */  static tailing_comma             = ctRegex!(`,$`, "m"); -#+end_src +#+END_SRC  ** head  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -211,14 +212,14 @@ static subhead_identifier        = ctRegex!(`^(?:oclc|pg|isbn)$`, "m");  static subhead_notes             = ctRegex!(`^(?:abstract|description)$`, "m");  static subhead_publisher         = ctRegex!(`^(?:name)$`, "m");  static subhead_make              = ctRegex!(`^(?:cover_image|home_button_image|home_button_text|footer|headings|num_top|breaks|substitute|bold|italics|emphasis|texpdf_font|css)$`, "m"); -#+end_src +#+END_SRC  ** biblio tags  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none  /* biblio tags */  static biblio_tags               = ctRegex!(`^(is|au|author_raw|author|author_arr|editor_raw|ed|editor_arr|ti|title|subtitle|fulltitle|lng|language|trans|src|jo|journal|in|vol|volume|edn|edition|yr|year|pl|place|pb|pub|publisher|url|pg|pages|note|short_name|id):\s+(.+)`);  static biblio_abbreviations      = ctRegex!(`^(au|ed|ti|lng|jo|vol|edn|yr|pl|pb|pub|pg|pgs|sn)$`); -#+end_src +#+END_SRC  ** bookindex split  #+name: ao_rgx  #+BEGIN_SRC d                                                  :exports none @@ -227,11 +228,11 @@ static bi_main_terms_split       = ctRegex!(`\s*;\s*`);  static bi_main_term_plus_rest_split = ctRegex!(`\s*:\s*`);  static bi_sub_terms_plus_ocn_offset_split = ctRegex!(`\s*\|\s*`);  static bi_term_and_ocns_match    = ctRegex!(`^(.+?)\+(\d+)`); -#+end_src +#+END_SRC  * tangles  ** code structure:                                                   :ao_rgx.d:  #+name: tangle_ao_rgx -#+BEGIN_SRC d  :tangle ../lib/sdp/ao_rgx.d  :exports none :noweb yes +#+BEGIN_SRC d :tangle ../lib/sdp/ao_rgx.d :padline no :exports none :noweb yes  /*    regex    ao_rgx.d @@ -241,4 +242,4 @@ mixin template RgxInit() {      <<ao_rgx>>    }  } -#+end_src +#+END_SRC diff --git a/org/ao_scan_inserts.org b/org/ao_scan_inserts.org index 167553a..8aaf377 100644 --- a/org/ao_scan_inserts.org +++ b/org/ao_scan_inserts.org @@ -33,7 +33,7 @@ int tell_l(string color, in char[] line) {  }  auto fn_pth_full = match(fn_src, rgx.src_pth);  auto markup_src_file_path = fn_pth_full.captures[1]; -#+end_src +#+END_SRC  *** loop insert (sub-document)  #+name: ao_inserts_scan_loop  #+BEGIN_SRC d                                                  :exports none @@ -116,14 +116,14 @@ if (ft1["curly_code"] == 1) {    cont_arbitrary_max_length_set_[counter["add"]] = line;    ++counter["add"]; ++add;  } -#+end_src +#+END_SRC  *** post loop  #+name: ao_inserts_scan_post  #+BEGIN_SRC d                                                  :exports none  auto contents_ = cont_arbitrary_max_length_set_[0 .. counter["add"]].dup;  auto t = tuple(contents_, add);  return t; -#+end_src +#+END_SRC  ** scan document source  *** scan doc source  #+name: ao_doc_scan @@ -143,7 +143,7 @@ int tell_l(string color, in char[] line) {  }  auto fn_pth_full = match(fn_src, rgx.src_pth);  auto markup_src_file_path = fn_pth_full.captures[1]; -#+end_src +#+END_SRC  *** loop insert (document)  #+name: ao_doc_scan_loop  #+BEGIN_SRC d                                                  :exports none @@ -238,7 +238,7 @@ if (ft["curly_code"] == 1) {    cont_arbitrary_max_length_set[add] = line;    ++add;  } -#+end_src +#+END_SRC  *** post loop  #+name: ao_doc_scan_post  #+BEGIN_SRC d                                                  :exports none @@ -249,12 +249,12 @@ debug(insert) {                              // insert file    writeln(add);  }  return contents; -#+end_src +#+END_SRC  * tangles  ** code structure:                                                 :ao_inserts.d:  #+name: tangle_ao_inserts -#+BEGIN_SRC d  :tangle ../lib/sdp/ao_scan_inserts.d  :exports none :noweb yes +#+BEGIN_SRC d :tangle ../lib/sdp/ao_scan_inserts.d :padline no :exports none :noweb yes  /*    inserts    ao_inserts.d @@ -279,4 +279,4 @@ mixin template SiSUdocInserts() {      }    }  } -#+end_src +#+END_SRC diff --git a/org/ao_utils.org b/org/ao_utils.org index 8e6801f..2c3e342 100644 --- a/org/ao_utils.org +++ b/org/ao_utils.org @@ -83,12 +83,12 @@ string[string] scr_txt_marker = [    "navy"          : "\033[34m*\033[0m ",    "black"         : "\033[30m*\033[0m "  ]; -#+end_src +#+END_SRC  * tangles  ** code structure:                                                   :ao_util.d:  #+name: tangle_ao_utils -#+BEGIN_SRC d  :tangle ../lib/sdp/ao_utils.d  :exports none :noweb yes +#+BEGIN_SRC d :tangle ../lib/sdp/ao_utils.d :padline no :exports none :noweb yes  /*    utils    ao_util.d @@ -96,4 +96,4 @@ string[string] scr_txt_marker = [  mixin template ScreenTxtColors() {    <<ao_utils>>  } -#+end_src +#+END_SRC diff --git a/org/sdp.org b/org/sdp.org index da8dc43..70b68f5 100644 --- a/org/sdp.org +++ b/org/sdp.org @@ -48,7 +48,7 @@ import    lib.sdp.ao_utils;                // sdp/ao_utils.d               ao_utils.org    // std.conv;  import std.conv : to; -#+end_src +#+END_SRC  ** argv [+3]  *** argv mixins  #+name: sdp_argv @@ -101,7 +101,7 @@ scope(failure) {    }    // writeln("1");  } -#+end_src +#+END_SRC  *** argv loop  #+name: sdp_argv  #+BEGIN_SRC d                                                  :exports none @@ -114,7 +114,7 @@ foreach(cmdlnins; argv) {      file_count++;    }  } -#+end_src +#+END_SRC  *** each file [+2]  **** filename provided [+1]  ***** scope @@ -146,7 +146,7 @@ enforce(    match(fn_src, rgx.src_pth),    "not a sisu markup filename"  ); -#+end_src +#+END_SRC  ***** send for processing  #+name: sdp_each_file_do  #+BEGIN_SRC d                                                  :exports none @@ -190,7 +190,7 @@ auto make_json = t[2];  auto bookindex_unordered_hashes = t[3];  auto biblio = t[4];  // destroy(t); -#+end_src +#+END_SRC  ***** debug document parts (checkdoc)  #+name: sdp_each_file_do  #+BEGIN_SRC d                                                  :exports none @@ -208,7 +208,7 @@ debug(checkdoc) {  }  // compose abstract document markup state  // append book index -#+end_src +#+END_SRC  ***** on exit  #+name: sdp_each_file_do  #+BEGIN_SRC d                                                  :exports none @@ -222,7 +222,7 @@ scope(exit) {    destroy(fn_src);    destroy(biblio);  } -#+end_src +#+END_SRC  **** no filename provided  #+name: sdp_no_filename_provided  #+BEGIN_SRC d                                                  :exports none @@ -230,12 +230,11 @@ scope(exit) {  writeln("no recognized filename");  break;  // terminate, stop -#+end_src +#+END_SRC  * tangles                                                            :tangle:  ** code structure                                                    :sdp.d:  #+name: tangle_sdp -#+BEGIN_SRC d  :tangle ../lib/sdp.d  :exports none :noweb yes -#!/usr/bin/env rdmd +#+begin_src d  :tangle ../lib/sdp.d :shebang #!/usr/bin/env rdmd  :exports none :noweb yes  /*    sdp    sdp.d | 
