williamr@2: // Copyright (c) 1999-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // BNF node header williamr@2: // williamr@2: // williamr@2: williamr@2: #ifndef __CBNFNODE_H__ williamr@2: #define __CBNFNODE_H__ williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: /** Declares that the "type" for node attributes is stored as a string. */ williamr@2: typedef const TDesC* CBNFNodeAttributeType; williamr@2: williamr@2: #define _SHAREDSTRING(X) IMPORT_C static CBNFNodeAttributeType K##X(); williamr@2: #define _SHAREDSTRINGBODY(X) EXPORT_C CBNFNodeAttributeType CBNFNode::K##X() \ williamr@2: { \ williamr@2: _LIT(K##X, #X); \ williamr@2: return &(K##X); \ williamr@2: } williamr@2: williamr@2: williamr@2: class CBNFNode : public CTypedNode williamr@2: /** Backus-Naur Form (BNF) node that forms part of a BNF tree (CBNFParser). williamr@2: williamr@2: Node types are stored as TInts, and attribute types as descriptors. williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: { williamr@2: public: williamr@2: //##ModelId=3B666BC70146 williamr@2: IMPORT_C ~CBNFNode(); williamr@2: williamr@2: //##ModelId=3B666BC70144 williamr@2: IMPORT_C static CBNFNode* NewL(TInt aType); williamr@2: williamr@2: _SHAREDSTRING(PreRuleCallback) williamr@2: _SHAREDSTRING(PostRuleCallback) williamr@2: _SHAREDSTRING(Reference) williamr@2: _SHAREDSTRING(RangeStart) williamr@2: _SHAREDSTRING(RangeEnd) williamr@2: _SHAREDSTRING(NMoreCount) williamr@2: _SHAREDSTRING(NMoreMinimum) williamr@2: _SHAREDSTRING(NMoreMaximum) williamr@2: williamr@2: protected: williamr@2: IMPORT_C CBNFNode(TInt aType); williamr@2: }; williamr@2: williamr@2: #endif // __CBNFNODE_H__