00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef __DS_Stream_h__
00020 #define __DS_Stream_h__
00021
00022 #include "PRM_API.h"
00023 #include <iostream.h>
00024 #include <FS/CPP_TokenStream.h>
00025 #include <UT/UT_ErrorManager.h>
00026 #include <UT/UT_PtrArray.h>
00027 #include <UT/UT_String.h>
00028
00029 #define OBRACE "{"
00030 #define CBRACE "}"
00031
00032 class CPP_Manager;
00033
00034 class PRM_API DS_Stream : public CPP_TokenStream {
00035 public:
00036 DS_Stream(const char *filename, int pathvar=-1);
00037 DS_Stream(UT_IStream &is, const char *filename="<internal>",
00038 bool fordisablewhen = false);
00039 ~DS_Stream();
00040
00041
00042
00043
00044 int getOpenBrace();
00045 int parseBlock(UT_String &block, char delimiter = '\n',
00046 bool quote_tokens = false);
00047
00048
00049
00050
00051 int getErrorMessages(UT_String &str,
00052 UT_ErrorSeverity s = UT_ERROR_NONE)
00053 { return myErrorManager.getErrorMessages(str, s); }
00054 void clearErrors()
00055 { UTgetErrorManager()->clearAndDestroyErrors();
00056 myErrorManager.clearAndDestroyErrors(); }
00057 void stealErrors(DS_Stream &src)
00058 { myErrorManager.stealErrors(src.myErrorManager); }
00059
00060 void message(const char *m);
00061 void warning(const char *m);
00062 void error(const char *m);
00063
00064 private:
00065 UT_ErrorManager myErrorManager;
00066 };
00067
00068 #endif