void AstNodeFTaskRef::dump(ostream& str) { this->AstNode::dump(str); str<<" -> "; if (dotted()!="") { str<<dotted()<<". - "; } if (taskp()) { taskp()->dump(str); } else { str<<"UNLINKED"; } }
/* read the next troff request; return zero if a request was executed. */ int tr_nextreq(void) { char *mac; char *arg0 = NULL; int c; if (!tr_nl) return 1; c = cp_next(); /* transparent line indicator */ if (c == c_ec) { int c2 = cp_next(); if (c2 == '!') { char *args[NARGS + 3] = {"\\!"}; struct sbuf sbuf; sbuf_init(&sbuf); cp_copymode(1); mkargs_eol(&sbuf); cp_copymode(0); chopargs(&sbuf, args + 1); tr_transparent(args); sbuf_done(&sbuf); return 0; } cp_back(c2); } /* not a request, a blank line, or a line with leading spaces */ if (c < 0 || (c != c_cc && c != c_c2 && (c != '\n' || tr_bm < 0) && (c != ' ' || tr_sm < 0))) { cp_back(c); return 1; } cp_reqbeg(); if (c == '\n') { /* blank line macro */ mac = malloc(strlen(map_name(tr_bm)) + 1); strcpy(mac, map_name(tr_bm)); arg0 = dotted(mac, '.'); tr_nextreq_exec(mac, arg0, 0); } else if (c == ' ') { /* leading space macro */ int i; mac = malloc(strlen(map_name(tr_sm)) + 1); strcpy(mac, map_name(tr_sm)); for (i = 0; c == ' '; i++) c = cp_next(); cp_back(c); n_lsn = i; arg0 = dotted(mac, '.'); tr_nextreq_exec(mac, arg0, 0); } else { mac = read_name(n_cp); arg0 = dotted(mac, c); tr_nextreq_exec(mac, arg0, 1); } free(arg0); free(mac); return 0; }
/* RESTS should have a third parameter OFFSET. At present we in effect assume OFFSET+LENGTH to be a multiple of METERDENOM. */ Char *rests(Char *Result, short len, short meterdenom, boolean blind) { Char r[256], bl[256]; Char STR1[256]; if (blind) strcpy(bl, "b"); else *bl = '\0'; if (len == 0) return strcpy(Result, ""); else { if (len == meterdenom * 128) { sprintf(Result, "r9%s ", bl); return Result; } else { if (dotted(len)) { rests(r, len - len / 3, meterdenom, false); r[2] = 'd'; sprintf(Result, "%s%s ", r, bl); return Result; } else if (len >= 64 / meterdenom) { sprintf(Result, "%sr%c%s ", rests(STR1, len - 64 / meterdenom, meterdenom, blind), durations[whole + logTwo(meterdenom) - 1], bl); return Result; } else return (rests(Result, len, meterdenom * 2, blind)); } } }
void AstVarXRef::dump(ostream& str) { this->AstNode::dump(str); if (lvalue()) str<<" [LV] => "; else str<<" [RV] <- "; str<<dotted()<<". - "; if (inlinedDots()!="") str<<" flat.="<<inlinedDots()<<" - "; if (varScopep()) { varScopep()->dump(str); } else if (varp()) { varp()->dump(str); } else { str<<"UNLINKED"; } }