+function process(s) {
+ if(match(s,/^__docfor:(.*)/,data)){
+ s=docfor[data[1]];
+ }
+ return s;
+}
+
+function emit(s) {
+ lines[length(lines)] = s;
+}
+
+function emit_line() {
+ if (! line_done) emit(indent $0);
+ line_done = 0;
+}
+
+function emit_docfor(k) {
+ emit();
+ emit("__docfor:" k);
+ emit();
+}
+
+function emit_img(key) {
+ emit();
+ emit("![" key "][" key "]");
+ emit();
+}
+
+function done() { line_done = 1; }
+
+function check_begin_docfor(s){
+ if (match(s,/^\(\*D\[([^\]]*)\]/,data)) {
+ curdocblock = data[1];
+ } else if (match(s,/^D\[([^\]]*)\]/,data)) {
+ curdocblock = data[1];
+ } else {
+ curdocblock = "";
+ }
+}
+
+function store_docfor_if_docforblock(s) {
+ if (!line_done && curdocblock != "") {
+ docfor[curdocblock] = docfor[curdocblock] "\n" s;
+ done();
+ }
+}
+