Lines Matching full:state

40   std::optional<const char *> Parse(ParseState &state) const {
41 if (std::optional<const char *> at{state.PeekAtNextChar()}) {
43 state.UncheckedAdvance();
44 state.set_anyTokenMatched();
48 state.Say(MessageExpectedText{set_});
67 static std::optional<Success> Parse(ParseState &state) {
68 while (std::optional<const char *> p{state.PeekAtNextChar()}) {
72 state.UncheckedAdvance();
81 inline void MissingSpace(ParseState &state) {
82 if (!state.inFixedForm()) {
83 state.Nonstandard(
91 static std::optional<Success> Parse(ParseState &state) {
92 if (std::optional<const char *> p{state.PeekAtNextChar()}) {
95 state.UncheckedAdvance();
96 return space.Parse(state);
99 MissingSpace(state);
126 std::optional<Success> Parse(ParseState &state) const {
127 space.Parse(state);
128 const char *start{state.GetLocation()};
139 at = nextCh.Parse(state);
146 at = nextCh.Parse(state);
151 MissingSpace(state);
157 state.Say(start, MessageExpectedText{str_, bytes_});
162 if (auto after{state.PeekAtNextChar()}) {
164 state.Say(start, MessageExpectedText{str_, bytes_});
169 state.set_anyTokenMatched();
171 return spaceCheck.Parse(state);
173 return space.Parse(state);
225 static std::optional<resultType> Parse(ParseState &state) {
226 auto at{state.GetLocation()};
227 if (std::optional<const char *> cp{nextCh.Parse(state)}) {
230 state.Say(CharBlock{at, state.GetLocation()},
237 if (std::optional<const char *> next{state.PeekAtNextChar()}) {
240 state.UncheckedAdvance();
253 static std::optional<std::string> Parse(ParseState &state) {
256 while (auto ch{nextch.Parse(state)}) {
261 if (!doubled.Parse(state)) {
276 static std::optional<resultType> Parse(ParseState &state) {
293 space.Parse(state);
294 const char *start{state.GetLocation()};
295 std::optional<const char *> at{nextCh.Parse(state)};
300 !state.IsNonstandardOk(LanguageFeature::BOZExtensions,
305 at = nextCh.Parse(state);
318 at = nextCh.Parse(state);
336 if (!(at = nextCh.Parse(state)) || !baseChar(**at) ||
337 !state.IsNonstandardOk(LanguageFeature::BOZExtensions,
341 spaceCheck.Parse(state);
345 state.Say(start, "no digit in BOZ literal"_err_en_US);
356 static std::optional<resultType> Parse(ParseState &state) {
357 if (std::optional<const char *> ch1{state.PeekAtNextChar()}) {
359 state.UncheckedAdvance();
360 while (std::optional<const char *> p{state.PeekAtNextChar()}) {
364 state.UncheckedAdvance();
366 return CharBlock{*ch1, state.GetLocation()};
376 static std::optional<resultType> Parse(ParseState &state) {
377 resultType result{state.GetLocation()};
379 if (sign.Parse(state)) {
380 if (auto digits{digitString.Parse(state)}) {
391 static std::optional<std::uint64_t> Parse(ParseState &state) {
392 std::optional<const char *> firstDigit{digit.Parse(state)};
399 while (auto nextDigit{getDigit.Parse(state)}) {
411 state.Say(*firstDigit, "overflow in decimal literal"_err_en_US);
424 ParseState &state) {
433 state.Say(at, "overflow in signed decimal literal"_err_en_US);
444 static std::optional<std::int64_t> Parse(ParseState &state) {
445 std::optional<const char *> sign{state.PeekAtNextChar()};
451 state.UncheckedAdvance();
453 return SignedInteger(digitString64.Parse(state), *sign, negate, state);
461 static std::optional<std::uint64_t> Parse(ParseState &state) {
463 std::optional<const char *> firstDigit{getFirstDigit.Parse(state)};
470 while (auto nextDigit{getDigit.Parse(state)}) {
482 state.Say(*firstDigit, "overflow in decimal literal"_err_en_US);
490 static std::optional<std::int64_t> Parse(ParseState &state) {
491 Location at{state.GetLocation()};
493 DigitStringIgnoreSpaces{}.Parse(state), at, false /*positive*/, state);
499 static std::optional<std::int64_t> Parse(ParseState &state) {
502 if (std::optional<const char *> sign{getSign.Parse(state)}) {
505 Location at{state.GetLocation()};
507 DigitStringIgnoreSpaces{}.Parse(state), at, negate, state);
514 static std::optional<std::string> Parse(ParseState &state) {
515 space.Parse(state);
516 const char *start{state.GetLocation()};
518 DigitStringIgnoreSpaces{}.Parse(state)};
523 std::optional<const char *> h{letterH.Parse(state)};
529 int chBytes{UTF_8CharacterBytes(state.GetLocation())};
531 if (std::optional<const char *> at{nextCh.Parse(state)}) {
533 state.Say(start, "Bad character in Hollerith"_err_en_US);
538 state.Say(start, "Insufficient characters in Hollerith"_err_en_US);
550 static inline std::optional<Success> Parse(ParseState &state) {
551 if (state.IsAtEnd()) {
563 static std::optional<Success> Parse(ParseState &state) {
564 while (std::optional<const char *> p{state.GetNextChar()}) {
579 static std::optional<Success> Parse(ParseState &state) {
580 while (std::optional<const char *> p{state.PeekAtNextChar()}) {
586 state.UncheckedAdvance();
597 static std::optional<Success> Parse(ParseState &state) {
599 while (std::optional<const char *> p{state.GetNextChar()}) {
638 static std::optional<Success> Parse(ParseState &state) {
639 if (UserState * ustate{state.userState()}) {
648 while (std::optional<const char *> at{state.PeekAtNextChar()}) {
650 state.UncheckedAdvance();
655 std::size_t remain{state.BytesRemaining()};
657 state.set_inFixedForm(true).UncheckedAdvance(fixedBytes);
660 state.set_inFixedForm(false).UncheckedAdvance(freeBytes);
665 state.IsNonstandardOk(
667 state.UncheckedAdvance();