| 729 | |
| 730 | template<unsigned parseFlags, typename InputStream, typename Handler> |
| 731 | void ParseFalse(InputStream& is, Handler& handler) { |
| 732 | RAPIDJSON_ASSERT(is.Peek() == 'f'); |
| 733 | is.Take(); |
| 734 | |
| 735 | if (RAPIDJSON_LIKELY(Consume(is, 'a') && Consume(is, 'l') && Consume(is, 's') && Consume(is, 'e'))) { |
| 736 | if (RAPIDJSON_UNLIKELY(!handler.Bool(false))) |
| 737 | RAPIDJSON_PARSE_ERROR(kParseErrorTermination, is.Tell()); |
| 738 | } |
| 739 | else |
| 740 | RAPIDJSON_PARSE_ERROR(kParseErrorValueInvalid, is.Tell()); |
| 741 | } |
| 742 | |
| 743 | template<typename InputStream> |
| 744 | RAPIDJSON_FORCEINLINE static bool Consume(InputStream& is, typename InputStream::Ch expect) { |