home *** CD-ROM | disk | FTP | other *** search
- //========================================================================
- //
- // Parser.h
- //
- // Copyright 1996 Derek B. Noonburg
- //
- //========================================================================
- //
- // Ported to EPOC by Sander van der Wal
- //
- // $Id: Parser.h 1.2 2000-09-17 13:38:15+02 svdwal Exp svdwal $
-
- #ifndef PARSER_H
- #define PARSER_H
-
- #ifdef __GNUC__
- #pragma interface
- #endif
-
- #ifndef __E32BASE_H__
- #include <e32base.h>
- #endif
-
- #include "Lexer.h"
-
- //------------------------------------------------------------------------
- // Parser
- //------------------------------------------------------------------------
-
- class Parser: public CBase {
- public:
-
- // Constructor.
- Parser(Lexer *aLexer): lexer(aLexer) {}
- void ConstructL();
-
- // Destructor.
- ~Parser();
-
- // Get the next object from the input stream.
- Object *getObjL(Object *obj);
-
- // if encrypted...
- Object *getEncryptedObjL(Object *obj, int num, int gen);
-
- // Get stream.
- Stream *getStream() { return lexer->getStream(); }
-
- // Get current position in file.
- int getPos() { return lexer->getPos(); }
-
- private:
-
- Lexer *lexer; // input stream
- Object buf1, buf2; // next two tokens
- int inlineImg; // set when inline image data is encountered
-
- Stream *makeStreamL(Object *dict);
- void shiftL();
- };
-
- #endif
-
-