]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/wxexpr.h
fixed a canonical example of Stupid Bug(tm)
[wxWidgets.git] / include / wx / wxexpr.h
index 76aad36b0d36114d0dcd30b80749c8159022d870..acad013bcfe1b8694628c6442ff8e06d9d7e40da 100644 (file)
 #include "wx/defs.h"
 #include "wx/string.h"
 
-#if wxUSE_IOSTREAMH
-#include <iostream.h>
-#else
-#include <iostream>
-#  ifdef _MSC_VER
-      using namespace std;
-#  endif
-#endif
-
 #include "wx/list.h"
 #include "wx/hash.h"
 
@@ -59,9 +50,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,
@@ -81,8 +69,8 @@ class WXDLLEXPORT wxExpr
   wxExprType type;
   union {
     long integer;
-    char *word;
-    char *string;
+    wxChar *word;
+    wxChar *string;
     double real;
     wxExpr *first;  // If is a list expr, points to the first node
     } value;
@@ -90,7 +78,7 @@ class WXDLLEXPORT wxExpr
   wxExpr *next;     // If this is a node in a list, points to the next node
   wxExpr *last;     // If is a list expr, points to the last node
 
-  wxExpr(wxExprType the_type, char *word_or_string, bool allocate);
+  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(long the_integer);
@@ -121,7 +109,7 @@ class WXDLLEXPORT wxExpr
       return value.word;
     else if (type == wxExprString)
       return wxString(value.string);
-    else return wxString("");
+    else return wxString(wxT(""));
   }
 
   inline wxString StringValue(void) const {
@@ -129,7 +117,7 @@ class WXDLLEXPORT wxExpr
       return wxString(value.string);
     else if (type == wxExprWord)
       return wxString(value.word);
-    else return wxString("");
+    else return wxString(wxT(""));
   }
 
   // Get nth arg of clause (starting from 1)
@@ -148,9 +136,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);
@@ -186,12 +173,12 @@ class WXDLLEXPORT wxExpr
   bool GetAttributeValue(const wxString& att, wxExpr **var) const;
 
   // Compatibility with old PrologIO
-  inline void AssignAttributeValue(char *att, int *var) const { GetAttributeValue(att, *var); }
-  inline void AssignAttributeValue(char *att, long *var) const { GetAttributeValue(att, *var); }
-  inline void AssignAttributeValue(char *att, float *var) const { GetAttributeValue(att, *var); }
-  inline void AssignAttributeValue(char *att, double *var) const { GetAttributeValue(att, *var); }
-  inline void AssignAttributeValue(char *att, wxExpr **var) const { GetAttributeValue(att, var); }
-  void AssignAttributeValue(char *att, char **var) const ;  // Word OR string -> string
+  inline void AssignAttributeValue(wxChar *att, int *var) const { GetAttributeValue(att, *var); }
+  inline void AssignAttributeValue(wxChar *att, long *var) const { GetAttributeValue(att, *var); }
+  inline void AssignAttributeValue(wxChar *att, float *var) const { GetAttributeValue(att, *var); }
+  inline void AssignAttributeValue(wxChar *att, double *var) const { GetAttributeValue(att, *var); }
+  inline void AssignAttributeValue(wxChar *att, wxExpr **var) const { GetAttributeValue(att, var); }
+  void AssignAttributeValue(wxChar *att, wxChar **var) const ;  // Word OR string -> string
 
   // Add string items to list if the list attribute exists
   bool GetAttributeValueStringList(const wxString& att, wxList *var) const;
@@ -251,13 +238,12 @@ 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(char *filename) { return Read(wxString(filename)); }
+    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 void WriteProlog(FILE* stream) { Write(stream); }
 
 private:
     DECLARE_DYNAMIC_CLASS(wxExprDatabase)