CBNFParser Class Reference

class CBNFParser : public CBase

Base class for parsers that use a BNF tree to parse an input stream.

The BNF tree form used is a variation on Extended BNF described in the XML1.0 specification. The general form of the tree is as follows:

Each node in the tree defines a rule that the input stream must meet to satisfy the grammar.

1. a node type is set to the rule type, as defined in TParserNodeTypes

2. node data stores any string required by the rule: e.g. for a comparison rule, the string to match against

3. the parser allows callback functions to be called either before or after the rule is processed. If these are present, they are stored as attributes of the node.

4. some rules allow sub-rules: for example, the AND rule expects a number of sub-rules, all of which must be successful if the AND rule itself is to succeed. Each sub-rule is represented as a child node of the parent rule. Sub-rules in turn can have sub-rules.

5. reference rule nodes are also allowed: these do not define themselves rules, but direct the parser to another rule. They can link rules to each other and so build rule sequences more complex than a simple tree.

All the top-level rules are stored as attributes of the root node. The attribute type is a string that names the rule; the attribute value is a pointer to the node that implements the rule.

The class supplies functions that encapsulate adding rules appropriately to the tree. The parser provider creates a derived class that implements the virtual method TreeL() that uses these functions to create a BNF rule tree.

The user of the parser initialises the parser with ResetL() , and then passes input data to the parser using ProcessData(). The parser supports partial parsing: the input stream does not have to completed before parsing can begin. As soon as data is added, the parser attempts to parse it.

Inherits from

Public Member Functions
~CBNFParser ()
IMPORT_C void AddComponentAttributeL ( CBNFNode &, CBNFNodeAttributeType , TInt )
IMPORT_C void CommitL ()
CBNFNode * CurrentRule ()
void DeleteMark ()
IMPORT_C void MDataProviderObserverReserved1 ()
IMPORT_C void MDataProviderObserverReserved2 ()
void Mark ()
HBufC * MarkedL ()
HBufC * MarkedWithInitialTextL (const TDesC &)
IMPORT_C CBNFNode * NewBNFL ()
IMPORT_C CBNFNode * NewComponentL ( TParserNodeTypes , const TDesC &)
IMPORT_C CBNFNode * NewComponentL ( TParserNodeTypes , HBufC *, TRuleCallback *, TRuleCallback *)
IMPORT_C CBNFNode * NewComponentL ( CBNFNode *, const TDesC &)
IMPORT_C CBNFNode & NewComponentL ( CBNFNode &, TParserNodeTypes , const TDesC &)
IMPORT_C CBNFNode & NewComponentL ( CBNFNode &, TParserNodeTypes , HBufC *, TRuleCallback *, TRuleCallback *)
IMPORT_C CBNFNode & NewComponentL ( CBNFNode *, CBNFNode &, const TDesC &)
IMPORT_C CBNFParser * NewL ( CAttributeLookupTable &)
IMPORT_C CBNFNode & NewRuleL ( CBNFNode *, const TDesC &, TParserNodeTypes , HBufC *, TRuleCallback *, TRuleCallback *)
IMPORT_C CBNFNode & NewRuleL ( CBNFNode *, const TDesC &, TParserNodeTypes , const TDesC &, TRuleCallback *, TRuleCallback *)
TBool OptionalMatched ()
IMPORT_C void ProcessDataL ( HBufC8 &)
IMPORT_C void ResetL ()
TBool RuleMatched ()
void SetAttributeLookupTable ( CAttributeLookupTable &)
IMPORT_C void SetBaseUriL (const TDesC *)
IMPORT_C void SetDataExpected ( TInt )
IMPORT_C void SetDocumentTypeL (const TDesC &)
IMPORT_C void SetDocumentTypeL (const TDesC &, const TDesC &)
IMPORT_C void SetStatus ( TInt )
TParseState State ()
HBufC * StringL ()
TBool Valid ()
Protected Member Functions
CBNFParser ( CAttributeLookupTable &)
IMPORT_C void AddRuleCallbackL ( CBNFNode &, const TDesC *, TRuleCallback *)
IMPORT_C TBool AndL ( CBNFNode &, CFragmentedString::TStringMatch &)
IMPORT_C CAttributeLookupTable & AttributeLUT ()
IMPORT_C void EndConditional ( TParserNodeTypes , TBool )
IMPORT_C TBool ExactL ( CBNFNode &, CFragmentedString::TStringMatch &)
IMPORT_C void ExecutePostRuleCallbackL ( CBNFNode &)
IMPORT_C void ExecutePreRuleCallbackL ( CBNFNode &)
IMPORT_C void MarkCallback ( CBNFParser &)
IMPORT_C TBool NMoreL ( CBNFNode &, CFragmentedString::TStringMatch &)
IMPORT_C TBool OptionalL ( CBNFNode &, CFragmentedString::TStringMatch &)
IMPORT_C TBool OrL ( CBNFNode &, CFragmentedString::TStringMatch &)
IMPORT_C TBool ParseL ()
IMPORT_C TBool PerformRuleL ( CBNFNode &, CFragmentedString::TStringMatch &)
IMPORT_C TBool RangeL ( CBNFNode &, CFragmentedString::TStringMatch &)
IMPORT_C TBool ReferenceL ( CBNFNode &, CFragmentedString::TStringMatch &)
IMPORT_C TBool SelectL ( CBNFNode &, CFragmentedString::TStringMatch &)
void SetState ( TParseState )
IMPORT_C void StartConditional ( TParserNodeTypes )
IMPORT_C CBNFNode * TreeL ()
IMPORT_C TBool WithoutL ( CBNFNode &, CFragmentedString::TStringMatch &)
Inherited Functions
CBase::CBase()
CBase::Delete(CBase *)
CBase::Extension_(TUint,TAny *&,TAny *)
CBase::operator new(TUint)
CBase::operator new(TUint,TAny *)
CBase::operator new(TUint,TLeave)
CBase::operator new(TUint,TLeave,TUint)
CBase::operator new(TUint,TUint)
CBase::~CBase()
Protected Member Type Definitions
typedef CStack < CBNFNode , EFalse > CRuleStack
typedef void( TRuleCallback
Protected Attributes
CBNFNode * iCurrentRule
CAttributeLookupTable & iLUT
CFragmentedString::TStringMatch iMatched
const TDesC * iMoreCount
const TDesC * iMoreMaximum
const TDesC * iMoreMinimum
TBool iOptionalMatched
TParseState iParsing
const TDesC * iPostRuleCallback
const TDesC * iPreRuleCallback
const TDesC * iRangeEnd
const TDesC * iRangeStart
const TDesC * iReferenceString
CRuleStack iRuleStack
CFragmentedString iString
TBool iStringComplete
CBNFNode * iSubRule
TBool iSubRuleMatched
CBNFNode * iTree

Constructor & Destructor Documentation

CBNFParser(CAttributeLookupTable &)

IMPORT_C CBNFParser ( CAttributeLookupTable & aLUT ) [protected]

Constructor.

Parameters

CAttributeLookupTable & aLUT Attribute lookup table

~CBNFParser()

IMPORT_C ~CBNFParser ( ) [virtual]

Destructor.

Member Functions Documentation

AddComponentAttributeL(CBNFNode &, CBNFNodeAttributeType, TInt)

IMPORT_C void AddComponentAttributeL ( CBNFNode & aRule,
CBNFNodeAttributeType aAttribute,
TInt aInt
)

Adds an additional attribute to an existing rule node.

For example, this is used with range rules, which specify the range boundaries using start and end attributes.

Parameters

CBNFNode & aRule Rule node on which to set the attribute
CBNFNodeAttributeType aAttribute Attribute type
TInt aInt Attribute value

AddRuleCallbackL(CBNFNode &, const TDesC *, TRuleCallback *)

IMPORT_C void AddRuleCallbackL ( CBNFNode & aRule,
const TDesC * aCallbackID,
TRuleCallback * aCallback
) [protected, virtual]

Adds a callback to a rule.

Parameters

CBNFNode & aRule The rule to which the callback is to be added
const TDesC * aCallbackID Callback type: either CBNFNode::KPreRuleCallback() or CBNFNode::KPostRuleCallback()
TRuleCallback * aCallback Callback function

AndL(CBNFNode &, CFragmentedString::TStringMatch &)

IMPORT_C TBool AndL ( CBNFNode & aRule,
CFragmentedString::TStringMatch & aMatched
) [protected, virtual]

Processes an EAnd rule node.

It is called by PerformRuleL() .

Parameters

CBNFNode & aRule The rule node being processed
CFragmentedString::TStringMatch & aMatched On return, flag indicating if input stream matched the rule

AttributeLUT()

IMPORT_C CAttributeLookupTable & AttributeLUT ( ) const [protected]

Gets the attribute look-up table used by this parser.

CommitL()

IMPORT_C void CommitL ( )

Notifies the parser that all the data has been passed in.

It causes the parser to parse any of the input stream not already parsed.

CurrentRule()

CBNFNode * CurrentRule ( ) [inline]

Gets a pointer to the rule node currently being processed.

DeleteMark()

void DeleteMark ( ) [inline]

Removes the latest mark. All the marks are stored in a stack and this removes the topmost mark.

EndConditional(TParserNodeTypes, TBool)

IMPORT_C void EndConditional ( TParserNodeTypes aRuleType,
TBool aSuccess
) [protected, virtual]

Parameters

TParserNodeTypes aRuleType
TBool aSuccess

ExactL(CBNFNode &, CFragmentedString::TStringMatch &)

IMPORT_C TBool ExactL ( CBNFNode & aRule,
CFragmentedString::TStringMatch & aMatched
) [protected, virtual]

Processes an EExact rule node.

It is called by PerformRuleL() .

Parameters

CBNFNode & aRule The rule node being processed
CFragmentedString::TStringMatch & aMatched On return, flag indicating if input stream matched the rule

ExecutePostRuleCallbackL(CBNFNode &)

IMPORT_C void ExecutePostRuleCallbackL ( CBNFNode & aRule ) [protected, virtual]

Executes a post-rule callback function.

Parameters

CBNFNode & aRule Node specifying the callback

ExecutePreRuleCallbackL(CBNFNode &)

IMPORT_C void ExecutePreRuleCallbackL ( CBNFNode & aRule ) [protected, virtual]

Executes a pre-rule callback function.

Parameters

CBNFNode & aRule Node specifying the callback

MDataProviderObserverReserved1()

IMPORT_C void MDataProviderObserverReserved1 ( ) [virtual]

MDataProviderObserverReserved2()

IMPORT_C void MDataProviderObserverReserved2 ( ) [virtual]

Mark()

void Mark ( ) [inline]

Set a mark to the current position of the input stream.

The mark acts as a tag in the stream currently being processed. As we process further along the stream after adding the mark, we can perform a rollback to the most previously set mark and start processing again (e.g. OR rule works this way). The string fragments won't be consumed (deleted) until all the marks on a fragment (and fragments before that) are deleted.

MarkCallback(CBNFParser &)

IMPORT_C void MarkCallback ( CBNFParser & aParser ) [protected, static]

Inserts a mark to the current position of the stream being processed.

Adding a mark is a very common callback operation before starting to process a rule, so the method is provided by the parser.

Parameters

CBNFParser & aParser Parser processing the stream

MarkedL()

HBufC * MarkedL ( ) [inline]

Get string between the "cursor position" and the latest mark on the stream.

MarkedWithInitialTextL(const TDesC &)

HBufC * MarkedWithInitialTextL ( const TDesC & aInitialText ) [inline]

Gets the marked string with a string added before the mached string. MarkedL()

Parameters

const TDesC & aInitialText

NMoreL(CBNFNode &, CFragmentedString::TStringMatch &)

IMPORT_C TBool NMoreL ( CBNFNode & aRule,
CFragmentedString::TStringMatch & aMatched
) [protected, virtual]

Processes an ENMore rule node.

It is called by PerformRuleL() .

Parameters

CBNFNode & aRule The rule node being processed
CFragmentedString::TStringMatch & aMatched On return, flag indicating if input stream matched the rule

NewBNFL()

IMPORT_C CBNFNode * NewBNFL ( )

Creates a new rule tree root node.

It creates a new single instance of CBNFNode as the root node of the rule tree. All the top-level rules are attached as attributes to this node. The root node should have single child node, which should be a reference to the logical root of the rule tree. This can be done be attaching the logical root rule as a component to the root rule.

NewComponentL(TParserNodeTypes, const TDesC &)

IMPORT_C CBNFNode * NewComponentL ( TParserNodeTypes aRuleType,
const TDesC & aData
)

Creates a new rule node, but does not add it to the tree.

This overload sets no rule callbacks.

Parameters

TParserNodeTypes aRuleType Rule type
const TDesC & aData Rule data reference. This is used with EExact and ESelect type rules to match actual text strings.

NewComponentL(TParserNodeTypes, HBufC *, TRuleCallback *, TRuleCallback *)

IMPORT_C CBNFNode * NewComponentL ( TParserNodeTypes aRuleType,
HBufC * aData = NULL,
TRuleCallback * aPreRule = NULL,
TRuleCallback * aPostRule = NULL
)

Creates a new rule node, but does not add it to the tree.

This overload allows rule callbacks to be set.

Parameters

TParserNodeTypes aRuleType Rule type
HBufC * aData = NULL Rule data pointer. This is used with EExact and ESelect type rules to match actual text strings.
TRuleCallback * aPreRule = NULL Function pointer to a pre-rule function that gets called before the parser starts processing this rule and its subtree.
TRuleCallback * aPostRule = NULL The new rule node

NewComponentL(CBNFNode *, const TDesC &)

IMPORT_C CBNFNode * NewComponentL ( CBNFNode * aRootRule,
const TDesC & aRuleName
)

Creates a new reference rule node.

Parameters

CBNFNode * aRootRule Root node
const TDesC & aRuleName Rule name

NewComponentL(CBNFNode &, TParserNodeTypes, const TDesC &)

IMPORT_C CBNFNode & NewComponentL ( CBNFNode & aParentRule,
TParserNodeTypes aRuleType,
const TDesC & aData
)

Creates a new sub-rule, and makes it a child of a specified parent rule.

This overload sets no rule callbacks.

Parameters

CBNFNode & aParentRule The rule to the new sub-rule shall be added as a child
TParserNodeTypes aRuleType Rule type
const TDesC & aData Rule data reference. This is used with EExact and ESelect type rules to match actual text strings.

NewComponentL(CBNFNode &, TParserNodeTypes, HBufC *, TRuleCallback *, TRuleCallback *)

IMPORT_C CBNFNode & NewComponentL ( CBNFNode & aParentRule,
TParserNodeTypes aRuleType,
HBufC * aData = NULL,
TRuleCallback * aPreRule = NULL,
TRuleCallback * aPostRule = NULL
)

Creates a new sub-rule, and makes it a child of a specified parent rule.

This overload sets rule callbacks.

Parameters

CBNFNode & aParentRule The rule to the new sub-rule shall be added as a child
TParserNodeTypes aRuleType Rule type
HBufC * aData = NULL Rule data pointer. This is used with EExact and ESelect type rules to match actual text strings.
TRuleCallback * aPreRule = NULL Function pointer to a pre-rule function that gets called before the parser starts processing this rule and its subtree.
TRuleCallback * aPostRule = NULL Function pointer to a post-rule function that gets called after the parser has processed this rule and its subtree.

NewComponentL(CBNFNode *, CBNFNode &, const TDesC &)

IMPORT_C CBNFNode & NewComponentL ( CBNFNode * aRootRule,
CBNFNode & aParentRule,
const TDesC & aRuleName
)

Creates a new reference rule node, and adds it as a child of the specified parent.

Note that the function succeeds even if the target rule aRuleName does not yet exist.

Parameters

CBNFNode * aRootRule Root node: the function needs this to find the target rule identified by aRuleName
CBNFNode & aParentRule Parent rule to which to attach the new rule as a child
const TDesC & aRuleName The name of the rule that the new node refers to

NewL(CAttributeLookupTable &)

IMPORT_C CBNFParser * NewL ( CAttributeLookupTable & aLUT ) [static]

Allocates and constructs a new BNF parser.

Parameters

CAttributeLookupTable & aLUT Attribute lookup table in which to store attributes for the rule tree

NewRuleL(CBNFNode *, const TDesC &, TParserNodeTypes, HBufC *, TRuleCallback *, TRuleCallback *)

IMPORT_C CBNFNode & NewRuleL ( CBNFNode * aRootRule,
const TDesC & aRuleName,
TParserNodeTypes aRuleType,
HBufC * aData,
TRuleCallback * aPreRule,
TRuleCallback * aPostRule
)

Creates a new rule node and adds it to the root of the rule tree.

This overload takes ownership of the node data.

Parameters

CBNFNode * aRootRule Pointer to the root BNF node, created with NewBNFL()
const TDesC & aRuleName Reference to a string identifying this rule. The string is used to make references to this rule from other rule's subtrees.
TParserNodeTypes aRuleType Rule type
HBufC * aData Rule data pointer. This is used with EExact and ESelect type rules to match actual text strings.
TRuleCallback * aPreRule Function pointer to a pre-rule function that gets called before the parser starts processing this rule and its children (i.e. the rule subtree).
TRuleCallback * aPostRule Function pointer to a post-rule function that gets called after the parser has processed this rule and its subtree.

NewRuleL(CBNFNode *, const TDesC &, TParserNodeTypes, const TDesC &, TRuleCallback *, TRuleCallback *)

IMPORT_C CBNFNode & NewRuleL ( CBNFNode * aRootRule,
const TDesC & aRuleName,
TParserNodeTypes aRuleType,
const TDesC & aData,
TRuleCallback * aPreRule,
TRuleCallback * aPostRule
)

Creates a new rule node and adds it to the root of the rule tree.

This overload takes a reference to the node data instead of owning it.

Parameters

CBNFNode * aRootRule Pointer to the root BNF node, created with NewBNFL()
const TDesC & aRuleName Reference to a string identifying this rule. The string is used to make references to this rule from other rule's subtrees.
TParserNodeTypes aRuleType Rule type
const TDesC & aData Rule data pointer. This is used with EExact and ESelect type rules to match actual text strings.
TRuleCallback * aPreRule Function pointer to a pre-rule function that gets called before the parser starts processing this rule and its children (i.e. the rule subtree).
TRuleCallback * aPostRule Function pointer to a post-rule function that gets called after the parser has processed this rule and its subtree.

OptionalL(CBNFNode &, CFragmentedString::TStringMatch &)

IMPORT_C TBool OptionalL ( CBNFNode & aRule,
CFragmentedString::TStringMatch & aMatched
) [protected, virtual]

Parameters

CBNFNode & aRule
CFragmentedString::TStringMatch & aMatched

OptionalMatched()

TBool OptionalMatched ( ) const [inline]

Tests if an Optional node sub-rule matched.

OrL(CBNFNode &, CFragmentedString::TStringMatch &)

IMPORT_C TBool OrL ( CBNFNode & aRule,
CFragmentedString::TStringMatch & aMatched
) [protected, virtual]

Processes an EOr rule node.

It is called by PerformRuleL() .

Parameters

CBNFNode & aRule The rule node being processed
CFragmentedString::TStringMatch & aMatched On return, flag indicating if input stream matched the rule

ParseL()

IMPORT_C TBool ParseL ( ) [protected]

PerformRuleL(CBNFNode &, CFragmentedString::TStringMatch &)

IMPORT_C TBool PerformRuleL ( CBNFNode & aRule,
CFragmentedString::TStringMatch & aMatched
) [protected, virtual]

Handles a node in the rule tree.

It calls the appropriate handler method for the rule type.

Parameters

CBNFNode & aRule Rule node
CFragmentedString::TStringMatch & aMatched On return, flag indicating if input stream matched the rule

ProcessDataL(HBufC8 &)

IMPORT_C void ProcessDataL ( HBufC8 & aData ) [virtual]

Called by the data provider to add data for the parser to process.

This implements MDataProviderObserver::ProcessDataL() .

Parameters

HBufC8 & aData The data to process

RangeL(CBNFNode &, CFragmentedString::TStringMatch &)

IMPORT_C TBool RangeL ( CBNFNode & aRule,
CFragmentedString::TStringMatch & aMatched
) [protected, virtual]

Processes an ERange rule node.

It is called by PerformRuleL() .

Parameters

CBNFNode & aRule The rule node being processed
CFragmentedString::TStringMatch & aMatched On return, flag indicating if input stream matched the rule

ReferenceL(CBNFNode &, CFragmentedString::TStringMatch &)

IMPORT_C TBool ReferenceL ( CBNFNode & aRule,
CFragmentedString::TStringMatch & aMatched
) [protected, virtual]

Processes a reference rule node.

It is called by PerformRuleL() .

Parameters

CBNFNode & aRule The rule node being processed
CFragmentedString::TStringMatch & aMatched On return, flag indicating if input stream matched the rule

ResetL()

IMPORT_C void ResetL ( ) [virtual]

Reset the parser to a state where it can accept and parse new input.

If no BNF tree yet exists the virtual method TreeL() is called to obtain the BNF tree for this parser. Any existing state of parsing and input data is destroyed.

RuleMatched()

TBool RuleMatched ( ) const [inline]

Tests if the used rule matched.

This is typically used in post-rule callbacks.

SelectL(CBNFNode &, CFragmentedString::TStringMatch &)

IMPORT_C TBool SelectL ( CBNFNode & aRule,
CFragmentedString::TStringMatch & aMatched
) [protected, virtual]

Processes an ESelect rule node.

It is called by PerformRuleL() .

Parameters

CBNFNode & aRule The rule node being processed
CFragmentedString::TStringMatch & aMatched On return, flag indicating if input stream matched the rule

SetAttributeLookupTable(CAttributeLookupTable &)

void SetAttributeLookupTable ( CAttributeLookupTable & aAttributeLookupTable )

Parameters

CAttributeLookupTable & aAttributeLookupTable

SetBaseUriL(const TDesC *)

IMPORT_C void SetBaseUriL ( const TDesC * aBaseUri ) [virtual]

Parameters

const TDesC * aBaseUri

SetDataExpected(TInt)

IMPORT_C void SetDataExpected ( TInt ) [virtual]

Parameters

TInt

SetDocumentTypeL(const TDesC &)

IMPORT_C void SetDocumentTypeL ( const TDesC & ) [virtual]

Parameters

const TDesC &

SetDocumentTypeL(const TDesC &, const TDesC &)

IMPORT_C void SetDocumentTypeL ( const TDesC & ,
const TDesC &
) [virtual]

Parameters

const TDesC &
const TDesC &

SetState(TParseState)

void SetState ( TParseState aState ) [protected, inline]

Sets the parser state.

Parameters

TParseState aState Parser state

SetStatus(TInt)

IMPORT_C void SetStatus ( TInt aStatus =  KErrNone ) [virtual]

Called by the data provider to report its status to its observer.

This implements MDataProviderObserver::SetStatus() .

Parameters

TInt aStatus =  KErrNone Status code

StartConditional(TParserNodeTypes)

IMPORT_C void StartConditional ( TParserNodeTypes aRuleType ) [protected, virtual]

Parameters

TParserNodeTypes aRuleType

State()

TParseState State ( ) const [inline]

Get the current state of the parser.

StringL()

HBufC * StringL ( ) const [inline]

Concatenates the rest of the input stream (which hasn't yet been processed) into a single string. The ownership of the string is given to the caller.

TreeL()

IMPORT_C CBNFNode * TreeL ( ) [protected, virtual]

Valid()

TBool Valid ( ) const [inline]

Checks if the input stream was completely processed

WithoutL(CBNFNode &, CFragmentedString::TStringMatch &)

IMPORT_C TBool WithoutL ( CBNFNode & aRule,
CFragmentedString::TStringMatch & aMatched
) [protected, virtual]

Processes an EWithout rule node.

It is called by PerformRuleL() .

Parameters

CBNFNode & aRule The rule node being processed
CFragmentedString::TStringMatch & aMatched On return, flag indicating if input stream matched the rule

Member Type Definitions Documentation

Typedef CRuleStack

typedef CStack < CBNFNode , EFalse > CRuleStack [protected]

Defines a type to handle a stack of rules.

Typedef TRuleCallback

typedef void( TRuleCallback [protected]

Type definition for a callback function pointer Callback functions need to get a reference to the parser as parameter and they need to be static.

Member Data Documentation

CBNFNode * iCurrentRule

CBNFNode * iCurrentRule [protected]

The BNF rule that is currently being processed.

CAttributeLookupTable & iLUT

CAttributeLookupTable & iLUT [protected]

Storage object for all the attributes and identifiers in a tree

CFragmentedString::TStringMatch iMatched

CFragmentedString::TStringMatch iMatched [protected]

Input stream matched rule flag.

const TDesC * iMoreCount

const TDesC * iMoreCount [protected]

Stores attribute identifier for nmore count attributes.

const TDesC * iMoreMaximum

const TDesC * iMoreMaximum [protected]

Stores attribute identifier for nmore maximum attributes.

const TDesC * iMoreMinimum

const TDesC * iMoreMinimum [protected]

Stores attribute identifier for nmore minimum attributes.

TBool iOptionalMatched

TBool iOptionalMatched [protected]

Flag that indicates when returning to a rule in the rulestack if an optional rule matched correctly.

TParseState iParsing

TParseState iParsing [protected]

Parser state.

const TDesC * iPostRuleCallback

const TDesC * iPostRuleCallback [protected]

Stores attribute identifier for post-rule callback attributes.

const TDesC * iPreRuleCallback

const TDesC * iPreRuleCallback [protected]

Stores attribute identifier for pre-rule callback attributes.

const TDesC * iRangeEnd

const TDesC * iRangeEnd [protected]

Stores attribute identifier for range end attributes.

const TDesC * iRangeStart

const TDesC * iRangeStart [protected]

Stores attribute identifier for range start attributes.

const TDesC * iReferenceString

const TDesC * iReferenceString [protected]

Stores attribute identifier for reference string attributes.

CRuleStack iRuleStack

CRuleStack iRuleStack [protected]

A stack of rules from iTree which are waiting to be completed. The stack basically holds the path along the rule tree.

CFragmentedString iString

CFragmentedString iString [protected]

An utility object which stores all the buffers passed into the parser and represents them as if they would form a single, continuous string. This class also performs the actual physical matching/selection of the strings and holds the marks set onto the string.

TBool iStringComplete

TBool iStringComplete [protected]

Flag indicating if the input stream has been completely processed.

CBNFNode * iSubRule

CBNFNode * iSubRule [protected]

The child rule we are returning from (if any). If this is NULL we are new to this BNF rule.

TBool iSubRuleMatched

TBool iSubRuleMatched [protected]

Flag that indicates when returning to a rule in the rulestack if the child rule matched correctly.

CBNFNode * iTree

CBNFNode * iTree [protected]

The BNF tree the parser is using to parse the input stream.