diff -r 92a765b5b3e7 -r 91031d3aab7d webengine/wmlengine/src/css/include/CSSReader.h --- a/webengine/wmlengine/src/css/include/CSSReader.h Mon May 03 13:32:15 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,303 +0,0 @@ -/* -* Copyright (c) 2003 Nokia Corporation and/or its subsidiary(-ies). -* All rights reserved. -* This component and the accompanying materials are made available -* under the terms of the License "Eclipse Public License v1.0" -* which accompanies this distribution, and is available -* at the URL "http://www.eclipse.org/legal/epl-v10.html". -* -* Initial Contributors: -* Nokia Corporation - initial contribution. -* -* Contributors: -* -* Description: CSS Lexer -* -*/ - - -#ifndef TCSSReader_H -#define TCSSReader_H - -// INCLUDES -#include "nwx_defs.h" -#include "nw_string_string.h" -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -enum TCSSReaderTokenType{ - SPACE = 1, - ATKEYWORD, - HASH, - ASTERISK, - COMMA, - DOT, - COLON, - HYPHEN, - SEMI_COLON, - LEFT_BRACE, - RIGHT_BRACE, - LEFT_BRACKET, - RIGHT_BRACKET, - EQUALS, - CHARSET_RULE, - IMPORT_RULE, - MEDIA_RULE, - LINK_PSEUDO_CLASS, - VISITED_PSEUDO_CLASS, - FOCUS_PSEUDO_CLASS, - ACTIVE_PSEUDO_CLASS, - CACHED_PSEUDO_CLASS, - IMPORTANT, - VERTICAL_LINE, - CDO, - CDC, - BUFFER_END, - IDENTIFIER, - EMS, - EXS, - PXS, - INS, - CMS, - MMS, - PTS, - PERCENTAGE, - PCS, - NUMBER, - URI, - RGB, - STRING, - RIGHT_PARENTHESIS, - DIGIT, - ALPHA, - INVALID -}; - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* This class is a unit of text -* @lib css.lib -* @since 2.1 -*/ -class TCSSReaderUnit -{ - public: - // constructor - TCSSReaderUnit(TText8* aStorage, TUint32 aLength, TUint32 aNumChars) - { - iStorage = aStorage; - iLength = aLength; - iNumChars = aNumChars; - } - - TCSSReaderUnit() - { - iStorage = NULL; - iLength = 0; - iNumChars = 0; - } - - void Init(TText8* aStorage, TUint32 aLength, TUint32 aNumChars) - { - iStorage = aStorage; - iLength = aLength; - iNumChars = aNumChars; - } - /** - * Converts the text to unicode - * @since 2.1 - * @param aEncoding: encoding of the document being parsed - * return unicode String - */ - TText16* GetUnicodeL(TUint32 aEncoding); - TText16* GetUnicode(TUint32 aEncoding); - - public: //data - // pointer to beginning of text - TText8* iStorage; - // length of storage - TUint32 iLength; - // number of character - TUint32 iNumChars; -}; -// CLASS DECLARATION - -/** -* This class is the lexer for CSS syntax -* @lib css.lib -* @since 2.1 -*/ -class TCSSReader -{ - public: - // constructor - TCSSReader(TText8* aBuffer, TUint32 aLength, TUint32 aEncoding) - { - iBuffer = aBuffer; - iLength = aLength; - iEncoding = aEncoding; - iPosition = 0; - } - - TCSSReader() - { - iBuffer = NULL; - iLength = 0; - iEncoding = 0; - iPosition = 0; - } - - void Init(TText8* aBuffer, TUint32 aLength, TUint32 aEncoding) - { - iBuffer = aBuffer; - iLength = aLength; - iEncoding = aEncoding; - iPosition = 0; - } - - /** - * Skips white space as defined by CSS2 Spec - * @since 2.1 - * return void - */ - void SkipWhiteSpaces(); - - /** - * Finds if the media type is valid (all or handheld) - * @since 2.1 - * @param aMedia: media to be evaluated - * return ETrue if media is valid else EFalse - */ - TBool IsValidMedia(TCSSReaderUnit* aMedia); - - TInt8 ReadNextToken(TCSSReaderUnit* aStr); - - TInt8 GetPseudoClass(); - - TInt8 ReadNumberToken(TCSSReaderUnit* aStr); - - TBool ReadIdentifier(TCSSReaderUnit* aStr); - - TBool ReadString(TCSSReaderUnit* aStr); - - TBool ReadName(TCSSReaderUnit* aStr); - - TBool ReadURI(TCSSReaderUnit* aStr); - - TBool ReadCharset(); - - TBrowserStatusCode GoToToken(TUint8 aTokenType, TText8** aPosition); - - /** - * Ignores the At-rule of CSS starting at given position - * @since 2.1 - * @param aPosition - starting of At-Rule - * return void - */ - TBool IgnoreAtRule(TUint32 aPosition); - - /** - * Sets position of the reader - * @since 2.1 - * @param aPosition - position of reader - * return void - */ - inline void SetPosition(TUint32 aPosition){iPosition = aPosition;} - - /** - * Returns pointer to the buffer - * @since 2.1 - * return pointer to the buffer - */ - inline TText8* GetBuffer(){return iBuffer;} - - /** - * Returns length of buffer - * @since 2.1 - * return length of buffer - */ - inline TUint32 GetLength(){return iLength;} - - /** - * Returns current position of reader - * @since 2.1 - * return current position of reader - */ - inline TUint32 GetPosition(){return iPosition;} - - /** - * Returns encoding of buffer - * @since 2.1 - * return encoding of buffer - */ - inline TUint32 GetEncoding(){return iEncoding;} - - /** - * Advances the buffer by certain number of bytes - * @since 2.1 - * @param aNumBytes - number of bytes to advance - * return void - */ - TBool Advance(TUint32 aNumBytes); - - /** - * Sets encoding of the document - * @since 2.1 - * @param aEncoding - encoding of buffer - * return void - */ - inline void SetEncoding(TUint32 aEncoding){iEncoding = aEncoding;} - - /** - * Returns pointer to the buffer storage where reader is positioned - * @since 2.1 - * return pointer to the buffer storage where reader is positioned - */ - inline TText8* GetBufferPointer(){return (iBuffer+iPosition);} - - /** - * Gets the encoding associated with the text - * @since 2.1 - * return encoding of the document being parsed - */ - TUint32 GetCharsetVal(); - - /** - * Reads a character - * @since 2.1 - * return encoding of the document being parsed - */ - TInt32 ReadChar(TText16* aChar); - - TUint16 ReadEscape(TText16* aOutChar); - - private: // Functions - - TBool Equals(const TText16* aStr, TBool aCaseInsensitive); - - TBool ReadBlock(TText16 aClosingChar); - - private: // Data - - // pointer to the CSS buffer - TText8* iBuffer; - // length of buffer - TUint32 iLength; - // encoding of buffer - TUint32 iEncoding; - // position in the buffer - TUint32 iPosition; -}; - -#endif /* TCSSReader_H */ -