]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/wxexpr.h
Added support for building wxCocoa
[wxWidgets.git] / include / wx / wxexpr.h
index 756cf639157547b85351a95ad02148741216ec06..304aeb09c9fb96e6e3010a475818e8ac6b5a29c7 100644 (file)
 #ifndef _WX_WXEXPRH__
 #define _WX_WXEXPRH__
 
-#ifdef __GNUG__
+#if defined(__GNUG__) && !defined(__APPLE__)
 #pragma interface "wxexpr.h"
 #endif
 
-#include <stdio.h>
+#if wxUSE_PROLOGIO
 
 #include "wx/defs.h"
 #include "wx/string.h"
 
-#include "wx/ioswrap.h"
-
 #include "wx/list.h"
 #include "wx/hash.h"
 
 #include "wx/expr.h"
 
+#include <stdio.h>
+
 // Compatibility
 #define PrologExpr wxExpr
 #define PrologDatabase wxExprDatabase
@@ -52,9 +52,6 @@ typedef bool (*wxExprErrorHandler) (int errorType, char *msg);
 
 WXDLLEXPORT_DATA(extern wxExprErrorHandler) currentwxExprErrorHandler;
 
-extern "C" WXDLLEXPORT_DATA(FILE*) yyin;
-
-extern "C" WXDLLEXPORT int yyparse(void);
 
 typedef enum {
     wxExprNull,
@@ -85,7 +82,7 @@ class WXDLLEXPORT wxExpr
 
   wxExpr(wxExprType the_type, wxChar *word_or_string, bool allocate);
   wxExpr(const wxString& functor);      // Assume this is a new clause - pass functor
-  wxExpr(wxExprType the_type, const wxString& word_or_string = "");
+  wxExpr(wxExprType the_type, const wxString& word_or_string = wxT(""));
   wxExpr(long the_integer);
   wxExpr(double the_real);
   wxExpr(wxList *the_list);
@@ -114,7 +111,7 @@ class WXDLLEXPORT wxExpr
       return value.word;
     else if (type == wxExprString)
       return wxString(value.string);
-    else return wxString(_T(""));
+    else return wxString(wxT(""));
   }
 
   inline wxString StringValue(void) const {
@@ -122,7 +119,7 @@ class WXDLLEXPORT wxExpr
       return wxString(value.string);
     else if (type == wxExprWord)
       return wxString(value.word);
-    else return wxString(_T(""));
+    else return wxString(wxT(""));
   }
 
   // Get nth arg of clause (starting from 1)
@@ -141,9 +138,8 @@ class WXDLLEXPORT wxExpr
   wxExpr *AttributeValue(const wxString& word) const;  // Use only for a clause
   wxString Functor(void) const;                     // Only for a clause
   bool IsFunctor(const wxString& s) const;                     // Only for a clause
-  void WriteClause(ostream& stream);  // Write this expression as a top-level clause
-  void WriteExpr(ostream& stream);    // Write as any other subexpression
-  void WriteLispExpr(ostream& stream);
+  void WriteClause(FILE* stream);  // Write this expression as a top-level clause
+  void WriteExpr(FILE* stream);    // Write as any other subexpression
 
   // Append an expression to a list
   void Append(wxExpr *expr);
@@ -194,6 +190,8 @@ class WXDLLEXPORT wxExpr
   // so we can index into the wxExpr database and fish out the pointer.
   inline void SetClientData(wxObject *data) { client_data = data; }
   inline wxObject *GetClientData(void) const { return client_data; }
+
+    DECLARE_NO_COPY_CLASS(wxExpr)
 };
 
 class WXDLLEXPORT wxExprDatabase: public wxList
@@ -244,16 +242,19 @@ public:
     bool Read(const wxString& filename);
     bool ReadFromString(const wxString& buffer);
     bool Write(const wxString& fileName);
-    bool Write(ostream& stream);
-    void WriteLisp(ostream& stream);
+    bool Write(FILE* stream);
 
     // Compatibility
     inline bool ReadProlog(wxChar *filename) { return Read(wxString(filename)); }
-    inline bool ReadPrologFromString(char *buffer) { return ReadFromString(wxString(buffer)); }
-    inline void WriteProlog(ostream& stream) { Write(stream); }
+    inline bool ReadPrologFromString(char *buffer)
+    {
+        return ReadFromString(wxString(buffer, wxConvLibc));
+    }
+    inline void WriteProlog(FILE* stream) { Write(stream); }
 
 private:
     DECLARE_DYNAMIC_CLASS(wxExprDatabase)
+    DECLARE_NO_COPY_CLASS(wxExprDatabase)
 };
 
 // Function call-style interface - some more convenience wrappers/unwrappers
@@ -276,5 +277,7 @@ WXDLLEXPORT_DATA(extern wxExprDatabase*) thewxExprDatabase;
 // YACC/LEX can leave memory lying around...
 extern "C" WXDLLEXPORT int wxExprCleanUp();
 
-#endif
+#endif // wxUSE_PROLOGIO
+
+#endif // _WX_WXEXPRH__