Lines Matching defs:context

118 static RT_API_ATTRS bool RelativeTabbing(CONTEXT &context, int n) {
119 ConnectionState &connection{context.GetConnectionState()};
130 std::size_t bytesLeft{context.ViewBytesInRecord(p, true)};
136 context.HandleRelativePosition(byteCount);
148 context.HandleRelativePosition(-n);
151 context.HandleRelativePosition(-excess);
154 std::size_t bytesLeft{context.ViewBytesInRecord(p, false)};
158 context.HandleRelativePosition(-byteCount);
168 context.HandleRelativePosition(n);
174 static RT_API_ATTRS bool AbsoluteTabbing(CONTEXT &context, int n) {
175 ConnectionState &connection{context.GetConnectionState()};
184 return RelativeTabbing(context, n);
190 context.HandleAbsolutePosition(n);
196 CONTEXT &context, char ch, char next, int n) {
197 MutableModes &modes{context.mutableModes()};
250 if (!next && RelativeTabbing(context, n)) {
266 if (AbsoluteTabbing(context, n)) {
270 if (RelativeTabbing(context, next == 'L' ? -n : n)) {
279 context.SignalError(IostatErrorInFormat,
282 context.SignalError(
293 Context &context, bool stop) {
308 CharType ch{GetNextChar(context)};
315 ch = GetNextChar(context);
319 repeat = GetIntField(context, ch);
320 ch = GetNextChar(context);
322 ReportBadFormat(context,
329 ch = GetNextChar(context);
331 ReportBadFormat(context,
337 ReportBadFormat(context,
347 ReportBadFormat(context,
353 RUNTIME_CHECK(context, format_[stack_[height_].start] == '(');
372 ReportBadFormat(context, "FORMAT lacks initial '('", maybeReversionPoint);
380 context.AdvanceRecord(); // implied / before rightmost )
387 if (height_ > 1 && GetNextChar(context) != ')') {
388 ReportBadFormat(context,
395 ReportBadFormat(context,
415 ReportBadFormat(context,
430 EmitAscii(context, format_ + start, chars);
434 ReportBadFormat(context, "Invalid width on Hollerith in FORMAT",
438 EmitAscii(context, format_ + offset_, static_cast<std::size_t>(*repeat));
469 repeat = GetIntField(context);
471 HandleControl(context, static_cast<char>(ch), static_cast<char>(next),
475 context.AdvanceRecord(repeat && *repeat > 0 ? *repeat : 1);
477 context.mutableModes().nonAdvancing = true;
481 EmitAscii(context, format_ + offset_ - 1, 1);
484 context, "Invalid character in FORMAT", maybeReversionPoint);
493 FormatControl<CONTEXT>::GetNextDataEdit(Context &context, int maxRepeat) {
494 int repeat{CueUpNextDataEdit(context)};
497 edit.modes = context.mutableModes();
505 edit.descriptor = static_cast<char>(Capitalize(GetNextChar(context)));
523 ReportBadFormat(context, "Excessive DT'iotype' in FORMAT", start);
532 ReportBadFormat(context, "Unclosed DT'iotype' in FORMAT", start);
541 int n{GetIntField(context, '\0', &hadError)};
547 ReportBadFormat(context, "Excessive DT(v_list) in FORMAT", start);
551 auto ch{static_cast<char>(GetNextChar(context))};
558 ReportBadFormat(context, "Unclosed DT(v_list) in FORMAT", start);
576 edit.width = GetIntField(context);
579 ReportBadFormat(context, "Input field width is zero", start);
584 edit.digits = GetIntField(context);
588 edit.expoDigits = GetIntField(context);
597 RT_API_ATTRS void FormatControl<CONTEXT>::Finish(Context &context) {
598 CueUpNextDataEdit(context, true /* stop at colon or end of FORMAT */);