// Parses the given string and returns a network according to the network // description language in networkbuilder.h Network* NetworkBuilder::BuildFromString(const StaticShape& input_shape, char** str) { SkipWhitespace(str); char code_ch = **str; if (code_ch == '[') { return ParseSeries(input_shape, nullptr, str); } if (input_shape.depth() == 0) { // There must be an input at this point. return ParseInput(str); } switch (code_ch) { case '(': return ParseParallel(input_shape, str); case 'R': return ParseR(input_shape, str); case 'S': return ParseS(input_shape, str); case 'C': return ParseC(input_shape, str); case 'M': return ParseM(input_shape, str); case 'L': return ParseLSTM(input_shape, str); case 'F': return ParseFullyConnected(input_shape, str); case 'O': return ParseOutput(input_shape, str); default: tprintf("Invalid network spec:%s\n", *str); return nullptr; } return nullptr; }
void qCtx::ParseTrim(qStr *in, qStr *out) { char c; while ( (c = in->GetC()) != EOF ) { if (!isspace(c)) break; if (c == '\n') { c = in->GetC(); break; } } if (c != EOF) ParseC(in, out, c); while ( (c = in->GetC()) != EOF ) { ParseC(in, out, c); } }
void qCtxComp::Parse(qStr *in, qStr *out) { char c; while ( (c = in->GetC()) != EOF ) { ParseC(in, out, c); } OutFlush(out); }
static BOOL ParseCharMetrics(LPSTR buffer, INT len, OLD_AFMMETRICS *metrics) { CHAR *cp = buffer; *metrics = badmetrics; while (*cp != '\0') { while (isspace(*cp)) ++cp; switch(*cp) { case 'C': if (ParseC(cp, metrics) == FALSE) return FALSE; break; case 'W': if (ParseW(cp, metrics) == FALSE) return FALSE; break; case 'N': if (ParseN(cp, metrics) == FALSE) return FALSE; break; case 'B': if (ParseB(cp, metrics) == FALSE) return FALSE; break; } cp = strchr(cp, ';'); if (cp == NULL) { WARN("No terminating semicolon\n"); break; } ++cp; } if (metrics->C == INT_MAX || metrics->WX == FLT_MAX || metrics->N == NULL || metrics->B.ury == FLT_MAX) { *metrics = badmetrics; return TRUE; } return TRUE; }
void qCtx::Parse(qStr *in, qStr *out) { if (GetLevel() > myEnv->GetMaxLevels()) { CStr s; while (!(s = in->GetS()).IsEmpty()) { out->PutS(s); } Throw(out, 99, "Maximum nesting level reached."); } else { char c; while ( (c = in->GetC()) != EOF ) { ParseC(in, out, c); } } }