Dokumentacja klasy common::Tokenizer
[Moduł Tokenizer]

Tokenizer. Więcej...

#include <Tokenizer.hpp>

Lista wszystkich składowych.

Typy publiczne

enum  TOKEN {
  TOKEN_EOF, TOKEN_EOL, TOKEN_SYMBOL, TOKEN_INTEGER,
  TOKEN_FLOAT, TOKEN_CHAR, TOKEN_IDENTIFIER, TOKEN_KEYWORD,
  TOKEN_STRING
}
 Rodzaje tokenów. Więcej...

Metody publiczne

 Tokenizer (const tchar *Input, size_t NumChars, uint Flags)
 Tworzy z dokumentu podanego przez łańcuch tchar*.
 Tokenizer (const tstring *Input, uint Flags)
 Tworzy z dokumentu podanego przez tstring.
 Tokenizer (Stream *Input, uint Flags)
 Tworzy z dokumentu wczytywanego z dowolnego strumienia.
 ~Tokenizer ()
void CreateError ()
 Rzuca wyjątek z błędem parsowania. Domyślny komunikat.
void CreateError (const tstring &Msg)
 Rzuca wyjątek z błędem parsowania. Własny komunikat.
Konfiguracja


void RegisterKeyword (uint Id, const tstring &Keyword)
void RegisterKeywords (const tchar **Keywords, size_t KeywordCount)
 Wczytuje całą listę słów kluczowych w postaci tablicy łańcuchów tchar*.
Funkcje podstawowe
Zwracają informacje na temat ostatnio odczytanego tokena.

void Next ()
 Odczytuje następny token.
TOKEN GetToken ()
 Zwraca typ tokena.
size_t GetCharNum ()
size_t GetRowNum ()
size_t GetColNum ()
const tstring & GetString ()
 Działa zawsze, ale zastosowanie głównie dla GetToken() == common::Tokenizer::TOKEN_IDENTIFIER lub common::Tokenizer::TOKEN_STRING.
tchar GetChar ()
 Tylko jeśli GetToken() == common::Tokenizer::TOKEN_CHAR lub common::Tokenizer::TOKEN_SYMBOL.
uint GetId ()
 Tylko jeśli GetToken() == common::Tokenizer::TOKEN_KEYWORD.
bool GetUint1 (uint1 *Out)
 Tylko jeśli GetToken() == common::Tokenizer::TOKEN_INTEGER.
bool GetUint2 (uint2 *Out)
bool GetUint4 (uint4 *Out)
bool GetUint8 (uint8 *Out)
bool GetInt1 (int1 *Out)
bool GetInt2 (int2 *Out)
bool GetInt4 (int4 *Out)
bool GetInt8 (int8 *Out)
uint1 MustGetUint1 ()
uint2 MustGetUint2 ()
uint4 MustGetUint4 ()
uint8 MustGetUint8 ()
int1 MustGetInt1 ()
int2 MustGetInt2 ()
int4 MustGetInt4 ()
int8 MustGetInt8 ()
bool GetFloat (float *Out)
bool GetDouble (double *Out)
float MustGetFloat ()
double MustGetDouble ()
Zapytania
Zwracają true, jeśli ostatnio sparsowany token jest taki jak tu podany.

bool QueryToken (TOKEN Token)
bool QueryToken (TOKEN Token1, TOKEN Token2)
bool QueryEOF ()
bool QueryEOL ()
bool QuerySymbol (tchar Symbol)
bool QueryIdentifier (const tstring &Identifier)
bool QueryKeyword (uint KeywordId)
bool QueryKeyword (const tstring &Keyword)
Asercje
Rzucają wyjątek, jeśli ostatnio wczytany token nie spełnia danego warunku.

void AssertToken (TOKEN Token)
 Rzuca wyjątek z błędem parsowania, jeśli ostatnio sparsowany token nie jest podanego rodzaju.
void AssertToken (TOKEN Token1, TOKEN Token2)
 Rzuca wyjątek z błędem parsowania, jeśli ostatnio sparsowany token nie jest jednego z dwóch podanych rodzajów.
void AssertEOF ()
void AssertEOL ()
void AssertSymbol (tchar Symbol)
void AssertIdentifier (const tstring &Identifier)
void AssertKeyword (uint KeywordId)
void AssertKeyword (const tstring &Keyword)

Statyczne metody publiczne

static const tchar * GetTokenName (TOKEN Token)
 Zamienia typ tokena na jego czytelny dla użytkownika opis tekstowy, np. "Stała znakowa".
static void Escape (tstring *Out, const tstring &In, uint EscapeFlags)
 Escapuje łańcuch zgodnie ze składnią tokenizera.

Statyczne atrybuty publiczne

static const uint FLAG_TOKEN_EOL = 0x01
 Koniec wiersza '
' ma być uznawany za osobnego rodzaju token, nie za zwyczajny biały znak.
static const uint FLAG_MULTILINE_STRINGS = 0x02
 Łańcuch "" może się rozciągać na wiele wierszy zawierając w treści koniec wiersza.
static const uint ESCAPE_EOL = 0x01
 Zamieniać znaki końca wiersza na \r \n na sekwencje ucieczki.
static const uint ESCAPE_OTHER = 0x02


Opis szczegółowy

Tokenizer.

Dokumentacja składowych wyliczanych

Rodzaje tokenów.

Wartości wyliczeń:
TOKEN_EOF  Koniec całego dokumentu (dalej nie parsować).
TOKEN_EOL  Token końca linii (tylko kiedy FLAG_TOKEN_EOL).
TOKEN_SYMBOL  Jednoznakowy symbol (np. kropka).
TOKEN_INTEGER  Liczba całkowita, np. -123.
TOKEN_FLOAT  Liczba zmiennoprzecinkowa, np. 10.5.
TOKEN_CHAR  Stała znakowa, np. 'A'.
TOKEN_IDENTIFIER  Identyfikator, np. abc_123.
TOKEN_KEYWORD  Słowo kluczowe, czyli identyfikator pasujący do zarejestrowanych słów kluczowych.
TOKEN_STRING  Stała łańcuchowa, np. "ABC".


Dokumentacja konstruktora i destruktora

common::Tokenizer::Tokenizer ( const tchar *  Input,
size_t  NumChars,
uint  Flags 
)

Tworzy z dokumentu podanego przez łańcuch tchar*.

common::Tokenizer::Tokenizer ( const tstring *  Input,
uint  Flags 
)

Tworzy z dokumentu podanego przez tstring.

common::Tokenizer::Tokenizer ( Stream *  Input,
uint  Flags 
)

Tworzy z dokumentu wczytywanego z dowolnego strumienia.

common::Tokenizer::~Tokenizer (  ) 


Dokumentacja funkcji składowych

void common::Tokenizer::RegisterKeyword ( uint  Id,
const tstring &  Keyword 
)

void common::Tokenizer::RegisterKeywords ( const tchar **  Keywords,
size_t  KeywordCount 
)

Wczytuje całą listę słów kluczowych w postaci tablicy łańcuchów tchar*.

Słowa kluczowe będą miały kolejne identyfikatory 0, 1, 2 itd.

void common::Tokenizer::Next (  ) 

Odczytuje następny token.

TOKEN common::Tokenizer::GetToken (  ) 

Zwraca typ tokena.

size_t common::Tokenizer::GetCharNum (  ) 

size_t common::Tokenizer::GetRowNum (  ) 

size_t common::Tokenizer::GetColNum (  ) 

const tstring& common::Tokenizer::GetString (  ) 

Działa zawsze, ale zastosowanie głównie dla GetToken() == common::Tokenizer::TOKEN_IDENTIFIER lub common::Tokenizer::TOKEN_STRING.

tchar common::Tokenizer::GetChar (  ) 

uint common::Tokenizer::GetId (  ) 

bool common::Tokenizer::GetUint1 ( uint1 *  Out  ) 

bool common::Tokenizer::GetUint2 ( uint2 *  Out  ) 

bool common::Tokenizer::GetUint4 ( uint4 *  Out  ) 

bool common::Tokenizer::GetUint8 ( uint8 *  Out  ) 

bool common::Tokenizer::GetInt1 ( int1 *  Out  ) 

bool common::Tokenizer::GetInt2 ( int2 *  Out  ) 

bool common::Tokenizer::GetInt4 ( int4 *  Out  ) 

bool common::Tokenizer::GetInt8 ( int8 *  Out  ) 

uint1 common::Tokenizer::MustGetUint1 (  ) 

uint2 common::Tokenizer::MustGetUint2 (  ) 

uint4 common::Tokenizer::MustGetUint4 (  ) 

uint8 common::Tokenizer::MustGetUint8 (  ) 

int1 common::Tokenizer::MustGetInt1 (  ) 

int2 common::Tokenizer::MustGetInt2 (  ) 

int4 common::Tokenizer::MustGetInt4 (  ) 

int8 common::Tokenizer::MustGetInt8 (  ) 

bool common::Tokenizer::GetFloat ( float *  Out  ) 

bool common::Tokenizer::GetDouble ( double *  Out  ) 

float common::Tokenizer::MustGetFloat (  ) 

double common::Tokenizer::MustGetDouble (  ) 

void common::Tokenizer::CreateError (  ) 

Rzuca wyjątek z błędem parsowania. Domyślny komunikat.

void common::Tokenizer::CreateError ( const tstring &  Msg  ) 

Rzuca wyjątek z błędem parsowania. Własny komunikat.

bool common::Tokenizer::QueryToken ( TOKEN  Token  ) 

bool common::Tokenizer::QueryToken ( TOKEN  Token1,
TOKEN  Token2 
)

bool common::Tokenizer::QueryEOF (  ) 

bool common::Tokenizer::QueryEOL (  ) 

bool common::Tokenizer::QuerySymbol ( tchar  Symbol  ) 

bool common::Tokenizer::QueryIdentifier ( const tstring &  Identifier  ) 

bool common::Tokenizer::QueryKeyword ( uint  KeywordId  ) 

bool common::Tokenizer::QueryKeyword ( const tstring &  Keyword  ) 

void common::Tokenizer::AssertToken ( TOKEN  Token  ) 

Rzuca wyjątek z błędem parsowania, jeśli ostatnio sparsowany token nie jest podanego rodzaju.

void common::Tokenizer::AssertToken ( TOKEN  Token1,
TOKEN  Token2 
)

Rzuca wyjątek z błędem parsowania, jeśli ostatnio sparsowany token nie jest jednego z dwóch podanych rodzajów.

void common::Tokenizer::AssertEOF (  ) 

void common::Tokenizer::AssertEOL (  ) 

void common::Tokenizer::AssertSymbol ( tchar  Symbol  ) 

void common::Tokenizer::AssertIdentifier ( const tstring &  Identifier  ) 

void common::Tokenizer::AssertKeyword ( uint  KeywordId  ) 

void common::Tokenizer::AssertKeyword ( const tstring &  Keyword  ) 

static const tchar* common::Tokenizer::GetTokenName ( TOKEN  Token  )  [static]

Zamienia typ tokena na jego czytelny dla użytkownika opis tekstowy, np. "Stała znakowa".

static void common::Tokenizer::Escape ( tstring *  Out,
const tstring &  In,
uint  EscapeFlags 
) [static]

Escapuje łańcuch zgodnie ze składnią tokenizera.

Parametry:
EscapeFlags Używać stałych ESCAPE_EOL, ESCAPE_OTHER.


Dokumentacja atrybutów składowych

const uint common::Tokenizer::FLAG_TOKEN_EOL = 0x01 [static]

Koniec wiersza '
' ma być uznawany za osobnego rodzaju token, nie za zwyczajny biały znak.

Łańcuch "" może się rozciągać na wiele wierszy zawierając w treści koniec wiersza.

const uint common::Tokenizer::ESCAPE_EOL = 0x01 [static]

Zamieniać znaki końca wiersza na \r \n na sekwencje ucieczki.

const uint common::Tokenizer::ESCAPE_OTHER = 0x02 [static]

Zamieniać znaki niedostęne z klawiatury (w tym polskie litery) na \xHH


Dokumentacja dla tej klasy została wygenerowana z pliku:

Wygenerowano Sat Mar 29 18:17:03 2008 dla CommonLib programem  doxygen 1.5.5