Home | History | Annotate | Download | only in parser
      1 // Copyright 2016 PDFium Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style license that can be
      3 // found in the LICENSE file.
      4 
      5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
      6 
      7 #ifndef CORE_FPDFAPI_PARSER_FPDF_PARSER_UTILITY_H_
      8 #define CORE_FPDFAPI_PARSER_FPDF_PARSER_UTILITY_H_
      9 
     10 #include "core/fxcrt/cfx_retain_ptr.h"
     11 #include "core/fxcrt/fx_string.h"
     12 #include "core/fxcrt/fx_system.h"
     13 
     14 class IFX_SeekableReadStream;
     15 class CPDF_Dictionary;
     16 
     17 // Use the accessors below instead of directly accessing PDF_CharType.
     18 extern const char PDF_CharType[256];
     19 
     20 inline bool PDFCharIsWhitespace(uint8_t c) {
     21   return PDF_CharType[c] == 'W';
     22 }
     23 inline bool PDFCharIsNumeric(uint8_t c) {
     24   return PDF_CharType[c] == 'N';
     25 }
     26 inline bool PDFCharIsDelimiter(uint8_t c) {
     27   return PDF_CharType[c] == 'D';
     28 }
     29 inline bool PDFCharIsOther(uint8_t c) {
     30   return PDF_CharType[c] == 'R';
     31 }
     32 
     33 inline bool PDFCharIsLineEnding(uint8_t c) {
     34   return c == '\r' || c == '\n';
     35 }
     36 
     37 int32_t GetHeaderOffset(const CFX_RetainPtr<IFX_SeekableReadStream>& pFile);
     38 int32_t GetDirectInteger(CPDF_Dictionary* pDict, const CFX_ByteString& key);
     39 
     40 #endif  // CORE_FPDFAPI_PARSER_FPDF_PARSER_UTILITY_H_
     41