TLex8 Class Reference

class TLex8

Provides general string-parsing functions suitable for numeric format conversions and syntactical-element parsing.

The class is the 8-bit variant for non-Unicode strings and 8-bit wide characters.

An instance of this class stores a string, maintaining an extraction mark to indicate the current lexical element being analysed and a pointer to the next character to be examined.

Objects of this type are normally accessed through the build independent type TLex.

TLex

Public Member Functions
TLex8 ()
TLex8 (const TUint8 *)
TLex8 (const TDesC8 &)
void Assign (const TLex8 &)
IMPORT_C void Assign (const TUint8 *)
IMPORT_C void Assign (const TDesC8 &)
IMPORT_C TInt BoundedVal ( TInt32 &, TInt )
IMPORT_C TInt BoundedVal ( TInt64 &, const TInt64 &)
IMPORT_C TInt BoundedVal ( TUint32 &, TRadix , TUint )
IMPORT_C TInt BoundedVal ( TInt64 &, TRadix , const TInt64 &)
TBool Eos ()
IMPORT_C TChar Get ()
IMPORT_C void Inc ()
IMPORT_C void Inc ( TInt )
void Mark ( TLexMark8 &)
void Mark ()
TInt MarkedOffset ()
IMPORT_C TInt MarkedOffset (const TLexMark8 )
IMPORT_C TPtrC8 MarkedToken ()
IMPORT_C TPtrC8 MarkedToken (const TLexMark8 )
IMPORT_C TPtrC8 NextToken ()
IMPORT_C TInt Offset ()
IMPORT_C TChar Peek ()
IMPORT_C TPtrC8 Remainder ()
IMPORT_C TPtrC8 RemainderFromMark ()
IMPORT_C TPtrC8 RemainderFromMark (const TLexMark8 )
void SkipAndMark ( TInt )
IMPORT_C void SkipAndMark ( TInt , TLexMark8 &)
IMPORT_C void SkipCharacters ()
IMPORT_C void SkipSpace ()
void SkipSpaceAndMark ()
IMPORT_C void SkipSpaceAndMark ( TLexMark8 &)
TInt TokenLength ()
IMPORT_C TInt TokenLength (const TLexMark8 )
IMPORT_C void UnGet ()
void UnGetToMark ()
IMPORT_C void UnGetToMark (const TLexMark8 )
IMPORT_C TInt Val ( TInt8 &)
IMPORT_C TInt Val ( TInt16 &)
IMPORT_C TInt Val ( TInt32 &)
IMPORT_C TInt Val ( TInt64 &)
TInt Val ( TInt &)
IMPORT_C TInt Val ( TUint8 &, TRadix )
IMPORT_C TInt Val ( TUint16 &, TRadix )
IMPORT_C TInt Val ( TUint32 &, TRadix )
IMPORT_C TInt Val ( TInt64 &, TRadix )
TInt Val ( TUint &, TRadix )
IMPORT_C TInt Val ( TReal32 &)
IMPORT_C TInt Val ( TReal32 &, TChar )
IMPORT_C TInt Val ( TReal64 &)
IMPORT_C TInt Val ( TReal64 &, TChar )
TInt Val ( TRealX &)
TInt Val ( TRealX &, TChar )
TInt Val ( TInt32 &, TInt )
TInt Val ( TInt64 &, const TInt64 &)
TInt Val ( TUint32 &, TRadix , TUint )
TInt Val ( TInt64 &, TRadix , const TInt64 &)
TLex8 & operator= (const TUint8 *)
TLex8 & operator= (const TDesC8 &)
Private Member Functions
void Scndig ( TInt &, TInt &, TUint64 &)
void ScndigAfterPoint ( TInt &, TUint64 &)
void ValidateMark (const TLexMark8 )
Private Attributes
__DECLARE_TEST
const TUint8 * iBuf
const TUint8 * iEnd
TLexMark8 iMark
const TUint8 * iNext

Constructor & Destructor Documentation

TLex8()

IMPORT_C TLex8 ( )

Default constructor.

Constructs a TLex8 , initialising its members to NULL.

TLex8(const TUint8 *)

TLex8 ( const TUint8 * aString ) [inline]

Constructs the object with a pointer to a string.

The extraction mark and next character members are initialised to point to the start of the string.

Parameters

const TUint8 * aString String to be assigned.

TLex8(const TDesC8 &)

TLex8 ( const TDesC8 & aDes ) [inline]

Constructs the object with a descriptor.

The extraction mark and next character members are initialised to point to the start of the string.

Parameters

const TDesC8 & aDes Descriptor to be assigned by reference.

Member Functions Documentation

Assign(const TLex8 &)

void Assign ( const TLex8 & aLex ) [inline]

Assigns a string to this object from another TLex8 object.

Parameters

const TLex8 & aLex The object to be assigned.

Assign(const TUint8 *)

IMPORT_C void Assign ( const TUint8 * aString )

Assigns a string to this object from another string.

Parameters

const TUint8 * aString A pointer to a string to be assigned.

Assign(const TDesC8 &)

IMPORT_C void Assign ( const TDesC8 & aDes )

Assigns a string to this object from a descriptor.

Parameters

const TDesC8 & aDes The descriptor to be assigned.

BoundedVal(TInt32 &, TInt)

IMPORT_C TInt BoundedVal ( TInt32 & aVal,
TInt aLimit
)

Parses the string to extract a 32-bit signed integer, and checks that it is within the specified limit.

Parameters

TInt32 & aVal On return, contains the extracted integer.
TInt aLimit The upper limit.

BoundedVal(TInt64 &, const TInt64 &)

IMPORT_C TInt BoundedVal ( TInt64 & aVal,
const TInt64 & aLimit
)

Parses the string to extract a 64-bit signed integer, and checks that it is within the specified limit.

Parameters

TInt64 & aVal On return, contains the extracted integer.
const TInt64 & aLimit The upper limit.

BoundedVal(TUint32 &, TRadix, TUint)

IMPORT_C TInt BoundedVal ( TUint32 & aVal,
TRadix aRadix,
TUint aLimit
)

Parses the string to extract a 32-bit unsigned integer, using the specified radix, and checks that it is within the specified limit.

The specified radix is one of binary, octal, decimal, or hexadecimal.

Parameters

TUint32 & aVal On return, contains the extracted integer.
TRadix aRadix The radix to use when converting the number.
TUint aLimit The upper limit.

BoundedVal(TInt64 &, TRadix, const TInt64 &)

IMPORT_C TInt BoundedVal ( TInt64 & aVal,
TRadix aRadix,
const TInt64 & aLimit
)

Parses the string to extract a 64-bit signed integer, using the specified radix, and checks that it is within the specified limit.

The specified radix is one of binary, octal, decimal, or hexadecimal.

Parameters

TInt64 & aVal On return, contains the extracted integer.
TRadix aRadix The radix to use when converting the number.
const TInt64 & aLimit The upper limit.

Eos()

TBool Eos ( ) const [inline]

Tests whether the next character position is at the end of the string.

Get()

IMPORT_C TChar Get ( )

Gets the next character in the string, and increments the next character position.

Inc()

IMPORT_C void Inc ( )

Increments to the next character position.

panic
USER 60, if the increment puts the next character position beyond the end of the string.

Inc(TInt)

IMPORT_C void Inc ( TInt aNumber )

Increments the next character position by aNumber.

panic
USER 60, if the increment puts the next character position before the start or beyond the end of the string.

Parameters

TInt aNumber The number of characters to increment the next character position by.

Mark(TLexMark8 &)

void Mark ( TLexMark8 & aMark ) const [inline]

Sets the supplied extraction mark to the TLex8's next character position.

Parameters

TLexMark8 & aMark On return, this is set to the next character position.

Mark()

void Mark ( ) [inline]

Sets the TLex8's next character position to its extraction mark.

MarkedOffset()

TInt MarkedOffset ( ) const [inline]

Gets the offset of the extraction mark from the start of the string.

MarkedOffset(const TLexMark8)

IMPORT_C TInt MarkedOffset ( const TLexMark8 aMark ) const

Gets the offset of the specified extraction mark from the start of the string.

panic
USER 63, if the specified mark is before the start or beyond the end of the string.

Parameters

const TLexMark8 aMark Extraction mark.

MarkedToken()

IMPORT_C TPtrC8 MarkedToken ( ) const

Extracts the marked token.

Note that the function assumes that the current extraction mark is valid.

panic
USER 63, if the specified mark is before the start or beyond the end of the string.

MarkedToken(const TLexMark8)

IMPORT_C TPtrC8 MarkedToken ( const TLexMark8 aMark ) const

Extracts the token, starting at the specified mark

panic
USER 63, if the specified mark is before the start or beyond the end of the string.

Parameters

const TLexMark8 aMark Extraction mark indicating the start of the token.

NextToken()

IMPORT_C TPtrC8 NextToken ( )

Strips any white space and extracts the next token.

Offset()

IMPORT_C TInt Offset ( ) const

Gets the offset of the next character position from the start of the string.

Peek()

IMPORT_C TChar Peek ( ) const

Shows the next character to be returned by Get() .

TLex8::Get

Remainder()

IMPORT_C TPtrC8 Remainder ( ) const

Gets a descriptor containing all the text from the next character position to the end of the string.

panic
USER 29, if the value of (next character position - extraction mark) is negative.

RemainderFromMark()

IMPORT_C TPtrC8 RemainderFromMark ( ) const

Gets a descriptor containing all the text from the current extraction mark to the end of the string.

The function assumes that the current extraction mark is valid.

RemainderFromMark(const TLexMark8)

IMPORT_C TPtrC8 RemainderFromMark ( const TLexMark8 aMark ) const

Gets a descriptor containing all the text from the specified extraction mark to the end of the string.

panic
USER 29, if the value of (next character position - extraction mark) is negative.
panic
USER 63, if the specified mark is before the start or beyond the end of the string.

Parameters

const TLexMark8 aMark Extraction mark indicating where remaining text starts.

Scndig(TInt &, TInt &, TUint64 &)

void Scndig ( TInt & aSig,
TInt & aExp,
TUint64 & aDl
) [private]

Parameters

TInt & aSig
TInt & aExp
TUint64 & aDl

ScndigAfterPoint(TInt &, TUint64 &)

void ScndigAfterPoint ( TInt & aSig,
TUint64 & aDl
) [private]

Parameters

TInt & aSig
TUint64 & aDl

SkipAndMark(TInt)

void SkipAndMark ( TInt aNumber ) [inline]

Moves the next character position a specified number of characters.

panic
USER 61, if the skip moves the next character position either to before the start or beyond the end of the string.

Parameters

TInt aNumber Number of characters to skip.

SkipAndMark(TInt, TLexMark8 &)

IMPORT_C void SkipAndMark ( TInt aNumber,
TLexMark8 & aMark
)

Moves the next character position a specified number of characters and copies it to the specified extraction mark.

panic
USER 61, if the skip moves the next character position either to before the start or beyond the end of the string.

Parameters

TInt aNumber Number of characters to skip.
TLexMark8 & aMark On return, set to the next character position.

SkipCharacters()

IMPORT_C void SkipCharacters ( )

Moves the next character position to the next white space (space or separator).

Stops if at the end of the string.

SkipSpace()

IMPORT_C void SkipSpace ( )

Moves the next character position past any white space (space or separator).

Stops if at the end of string.

SkipSpaceAndMark()

void SkipSpaceAndMark ( ) [inline]

Moves the next character position past any white space and copies it to the TLex8's extraction mark.

Stops if at the end of the string.

SkipSpaceAndMark(TLexMark8 &)

IMPORT_C void SkipSpaceAndMark ( TLexMark8 & aMark )

Moves the next character position past any white space and copies it to the specified extraction mark.

Stops if at the end of the string.

Parameters

TLexMark8 & aMark On return, contains a reference to the next character position.

TokenLength()

TInt TokenLength ( ) const [inline]

Gets the length of the token.

This is the difference between the next character position and the extraction mark.

TokenLength(const TLexMark8)

IMPORT_C TInt TokenLength ( const TLexMark8 aMark ) const

Gets the length of the token starting at the specified extraction mark.

panic
USER 63, if the specified mark is before the start or beyond the end of the string.

Parameters

const TLexMark8 aMark Extraction mark indicating the start of the token.

UnGet()

IMPORT_C void UnGet ( )

Decrements the next character position, allowing a previously "got" character to be re-read.

panic
USER 59, if the previous character is before the start of the string.

UnGetToMark()

void UnGetToMark ( ) [inline]

Sets the next character position to the current extraction mark position.

panic
USER 63, if the extraction mark is before the start or beyond the end of the string.

UnGetToMark(const TLexMark8)

IMPORT_C void UnGetToMark ( const TLexMark8 aMark )

Sets the next character position to the supplied extraction mark position.

panic
USER 63, if the extraction mark is before the start or beyond the end of the string.

Parameters

const TLexMark8 aMark Mark to copy to the next character position.

Val(TInt8 &)

IMPORT_C TInt Val ( TInt8 & aVal )

Parses the string to extract a signed 8-bit integer.

Parameters

TInt8 & aVal On return, contains the extracted integer.

Val(TInt16 &)

IMPORT_C TInt Val ( TInt16 & aVal )

Parses the string to extract a signed 16-bit integer.

Parameters

TInt16 & aVal On return, contains the extracted integer.

Val(TInt32 &)

IMPORT_C TInt Val ( TInt32 & aVal )

Parses the string to extract a signed 32-bit integer.

Parameters

TInt32 & aVal On return, contains the extracted integer.

Val(TInt64 &)

IMPORT_C TInt Val ( TInt64 & aVal )

Parses the string to extract a signed 64-bit integer.

Parameters

TInt64 & aVal On return, contains the extracted integer.

Val(TInt &)

TInt Val ( TInt & aVal ) [inline]

Parses the string to extract a signed integer.

Parameters

TInt & aVal On return, contains the extracted integer.

Val(TUint8 &, TRadix)

IMPORT_C TInt Val ( TUint8 & aVal,
TRadix aRadix
)

Parses the string to extract an 8-bit unsigned integer, using the specified radix.

The specified radix is one of binary, octal, decimal, or hexadecimal.

Parameters

TUint8 & aVal On return, contains the extracted integer.
TRadix aRadix The radix to use when converting the number.

Val(TUint16 &, TRadix)

IMPORT_C TInt Val ( TUint16 & aVal,
TRadix aRadix
)

Parses the string to extract a 16-bit unsigned integer, using the specified radix.

The specified radix is one of binary, octal, decimal, or hexadecimal.

Parameters

TUint16 & aVal On return, contains the extracted integer.
TRadix aRadix The radix to use when converting the number.

Val(TUint32 &, TRadix)

IMPORT_C TInt Val ( TUint32 & aVal,
TRadix aRadix
)

Parses the string to extract a 32-bit unsigned integer, using the specified radix.

The specified radix is one of binary, octal, decimal, or hexadecimal.

Parameters

TUint32 & aVal On return, contains the extracted integer.
TRadix aRadix The radix to use when converting the number.

Val(TInt64 &, TRadix)

IMPORT_C TInt Val ( TInt64 & aVal,
TRadix aRadix
)

Parses the string to extract a 64-bit integer (treated as unsigned), using the specified radix.

The specified radix is one of binary, octal, decimal, or hexadecimal.

Parameters

TInt64 & aVal On return, contains the extracted integer.
TRadix aRadix The radix to use when converting the number.

Val(TUint &, TRadix)

TInt Val ( TUint & aVal,
TRadix aRadix = EDecimal
) [inline]

Parses the string to extract an unsigned integer, using the specified radix.

Parameters

TUint & aVal On return, contains the extracted integer.
TRadix aRadix = EDecimal The radix to use when converting the number. The default radix for this function overload is decimal.

Val(TReal32 &)

IMPORT_C TInt Val ( TReal32 & aVal )

Parameters

TReal32 & aVal

Val(TReal32 &, TChar)

IMPORT_C TInt Val ( TReal32 & aVal,
TChar aPoint
)

Parameters

TReal32 & aVal
TChar aPoint

Val(TReal64 &)

IMPORT_C TInt Val ( TReal64 & aVal )

Parameters

TReal64 & aVal

Val(TReal64 &, TChar)

IMPORT_C TInt Val ( TReal64 & aVal,
TChar aPoint
)

Parameters

TReal64 & aVal
TChar aPoint

Val(TRealX &)

TInt Val ( TRealX & aVal )

Parameters

TRealX & aVal

Val(TRealX &, TChar)

TInt Val ( TRealX & aVal,
TChar aPoint
)

Parameters

TRealX & aVal
TChar aPoint

Val(TInt32 &, TInt)

TInt Val ( TInt32 & aVal,
TInt aLimit
) [inline]

Parameters

TInt32 & aVal
TInt aLimit

Val(TInt64 &, const TInt64 &)

TInt Val ( TInt64 & aVal,
const TInt64 & aLimit
) [inline]

Parameters

TInt64 & aVal
const TInt64 & aLimit

Val(TUint32 &, TRadix, TUint)

TInt Val ( TUint32 & aVal,
TRadix aRadix,
TUint aLimit
) [inline]

Parameters

TUint32 & aVal
TRadix aRadix
TUint aLimit

Val(TInt64 &, TRadix, const TInt64 &)

TInt Val ( TInt64 & aVal,
TRadix aRadix,
const TInt64 & aLimit
) [inline]

Parameters

TInt64 & aVal
TRadix aRadix
const TInt64 & aLimit

ValidateMark(const TLexMark8)

void ValidateMark ( const TLexMark8 aMark ) const [private]

Parameters

const TLexMark8 aMark

operator=(const TUint8 *)

TLex8 & operator= ( const TUint8 * aString ) [inline]

Allows strings to be assigned to a TLex8 .

Parameters

const TUint8 * aString String to be assigned to the TLex8.

operator=(const TDesC8 &)

TLex8 & operator= ( const TDesC8 & aDes ) [inline]

Allows descriptors to be assigned to a TLex8 .

Parameters

const TDesC8 & aDes Descriptor to be assigned to the TLex8.

Member Data Documentation

__DECLARE_TEST

__DECLARE_TEST [private]

const TUint8 * iBuf

const TUint8 * iBuf [private]

const TUint8 * iEnd

const TUint8 * iEnd [private]

TLexMark8 iMark

TLexMark8 iMark [private]

const TUint8 * iNext

const TUint8 * iNext [private]