Files
core/PdfReader/Src/Lexer.h
Ilya.Kirillov 65d72ae4ec Убраны лишние файлы. Все файлы сконвертированы в UTF8.
git-svn-id: svn://fileserver/activex/AVS/Sources/TeamlabOffice/trunk/ServerComponents@62550 954022d7-b5bf-4e40-9824-e11837661b57
2016-05-21 00:02:55 +03:00

80 lines
2.1 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#ifndef _PDF_READER_LEXER_H
#define _PDF_READER_LEXER_H
#include "Object.h"
#include "Stream.h"
namespace PdfReader
{
class XRef;
#define TokenBufferSize 128
//------------------------------------------------------------------------
// Lexer
//------------------------------------------------------------------------
class Lexer
{
public:
// Конструктор для одного потока. Удаляем этот поток в деструкторе.
Lexer(XRef *pXref, Stream *pStream);
// Конструкор для одного потока или массива потоков.
Lexer(XRef *pXref, Object *pObject);
~Lexer();
// Считваем следующий объект из потока.
Object *GetObject(Object *obj);
// Переходим к началу новой строки.
void SkipToNextLine();
// Переходим к следующему символу.
void SkipChar()
{
GetChar();
}
Stream *GetStream()
{
return m_oCurStream.IsNone() ? (Stream *)NULL : m_oCurStream.GetStream();
}
// Текущая позиция. Используется только для сообщений об ошибке, поэтому
// возвращаемое значение типа int, а не unsigned int.
int GetPos()
{
return m_oCurStream.IsNone() ? -1 : (int)m_oCurStream.StreamGetPos();
}
void SetPos(unsigned int unPos, int nDir = 0)
{
if (!m_oCurStream.IsNone())
m_oCurStream.StreamSetPos(unPos, nDir);
}
// Проверяем является ли nChar пробелом.
static bool IsSpace(int nChar);
private:
int GetChar();
int LookChar();
private:
Array *m_pStreams; // Массив потоков
int m_nCurStreamIndex; // Номер текущего потока
Object m_oCurStream; // Текущий поток
bool m_bFreeArray; // Должны ли мы в данном классе осовбождать массив потоков?
char m_sTempBuffer[TokenBufferSize]; // Buffer
};
}
#endif // _PDF_READER_LEXER_H