]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/wxexpr.h
RenameEntry/Group() functions added to wxConfig and derivations (not yet
[wxWidgets.git] / include / wx / wxexpr.h
index 480ecbc2a4ad2660c09c2e984270f48bb966460b..76aad36b0d36114d0dcd30b80749c8159022d870 100644 (file)
@@ -6,7 +6,7 @@
 // Created:     01/02/97
 // RCS-ID:      $Id$
 // Copyright:   (c)
-// Licence:    wxWindows licence
+// Licence:     wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
 #ifndef _WX_WXEXPRH__
 #include "wx/defs.h"
 #include "wx/string.h"
 
-#if USE_IOSTREAMH
+#if wxUSE_IOSTREAMH
 #include <iostream.h>
 #else
 #include <iostream>
+#  ifdef _MSC_VER
+      using namespace std;
+#  endif
 #endif
 
 #include "wx/list.h"
@@ -56,9 +59,9 @@ typedef bool (*wxExprErrorHandler) (int errorType, char *msg);
 
 WXDLLEXPORT_DATA(extern wxExprErrorHandler) currentwxExprErrorHandler;
 
-WXDLLEXPORT_DATA(extern "C" FILE*) yyin;
+extern "C" WXDLLEXPORT_DATA(FILE*) yyin;
 
-extern "C" int WXDLLEXPORT yyparse(void);
+extern "C" WXDLLEXPORT int yyparse(void);
 
 typedef enum {
     wxExprNull,
@@ -202,65 +205,68 @@ class WXDLLEXPORT wxExpr
 
 class WXDLLEXPORT wxExprDatabase: public wxList
 {
-  DECLARE_DYNAMIC_CLASS(wxExprDatabase)
- private:
-  wxNode *position;              // Where we are in a search
-  wxHashTable *hash_table;
-  wxString attribute_to_hash;
- public:
-  int noErrors;
-
-  wxExprDatabase(wxExprErrorHandler handler = 0);
-
-  // Use hashing on both the functor, and the attribute of
-  // specified type (wxExprString or wxExprInteger) and name.
-  // So to find node 45
-  // (i.e. match the clause node(id=45, ...))
-  // it usually requires 1 look-up: the keys for functor and attribute
-  // are added together.
-  // Obviously if the attribute was missing in a clause, it would
-  // fail to be found by this method, but could be retrieved by a
-  // linear search using BeginFind and FindClauseByFunctor,
-  // or just searching through the list as per usual.
-
-  wxExprDatabase(wxExprType type, const wxString& attribute, int size = 500,
-                 wxExprErrorHandler handler = 0);
-
-  ~wxExprDatabase(void);
-
-  void BeginFind(void) ;          // Initialise a search
-  wxExpr *FindClause(long id) ;  // Find a term based on an integer id attribute
-                                 // e.g. node(id=23, type=rectangle, ....).
-
-  // Find on basis of attribute/value pairs, e.g. type=rectangle
-  // This doesn't use hashing; it's a linear search.
-  wxExpr *FindClause(const wxString& word, const wxString& value);
-  wxExpr *FindClause(const wxString& word, long value);
-  wxExpr *FindClause(const wxString& word, double value);
-  wxExpr *FindClauseByFunctor(const wxString& functor);
-
-  wxExpr *HashFind(const wxString& functor, const wxString& value) const;
-  wxExpr *HashFind(const wxString& functor, long value) const;
-
-  void Append(wxExpr *expr);  // Does cleverer things if hashing is on
-  void ClearDatabase(void);
-  inline int GetErrorCount() const { return noErrors; }
-  bool Read(const wxString& filename);
-  bool ReadFromString(const wxString& buffer);
-  bool Write(const wxString& fileName);
-  bool Write(ostream& stream);
-  void WriteLisp(ostream& stream);
-  
-  // Compatibility
-  inline bool ReadProlog(char *filename) { return Read(wxString(filename)); }
-  inline bool ReadPrologFromString(char *buffer) { return ReadFromString(wxString(buffer)); }
-  inline void WriteProlog(ostream& stream) { Write(stream); }
+private:
+    wxNode *position;              // Where we are in a search
+    wxHashTable *hash_table;
+    wxString attribute_to_hash;
+
+public:
+    int noErrors;
+
+    wxExprDatabase(wxExprErrorHandler handler = 0);
+
+    // Use hashing on both the functor, and the attribute of
+    // specified type (wxExprString or wxExprInteger) and name.
+    // So to find node 45
+    // (i.e. match the clause node(id=45, ...))
+    // it usually requires 1 look-up: the keys for functor and attribute
+    // are added together.
+    // Obviously if the attribute was missing in a clause, it would
+    // fail to be found by this method, but could be retrieved by a
+    // linear search using BeginFind and FindClauseByFunctor,
+    // or just searching through the list as per usual.
+
+    wxExprDatabase(wxExprType type, const wxString& attribute, int size = 500,
+            wxExprErrorHandler handler = 0);
+
+    ~wxExprDatabase(void);
+
+    void BeginFind(void) ;          // Initialise a search
+    wxExpr *FindClause(long id) ;  // Find a term based on an integer id attribute
+    // e.g. node(id=23, type=rectangle, ....).
+
+    // Find on basis of attribute/value pairs, e.g. type=rectangle
+    // This doesn't use hashing; it's a linear search.
+    wxExpr *FindClause(const wxString& word, const wxString& value);
+    wxExpr *FindClause(const wxString& word, long value);
+    wxExpr *FindClause(const wxString& word, double value);
+    wxExpr *FindClauseByFunctor(const wxString& functor);
+
+    wxExpr *HashFind(const wxString& functor, const wxString& value) const;
+    wxExpr *HashFind(const wxString& functor, long value) const;
+
+    void Append(wxExpr *expr);  // Does cleverer things if hashing is on
+    void ClearDatabase(void);
+    inline int GetErrorCount() const { return noErrors; }
+    bool Read(const wxString& filename);
+    bool ReadFromString(const wxString& buffer);
+    bool Write(const wxString& fileName);
+    bool Write(ostream& stream);
+    void WriteLisp(ostream& stream);
+
+    // Compatibility
+    inline bool ReadProlog(char *filename) { return Read(wxString(filename)); }
+    inline bool ReadPrologFromString(char *buffer) { return ReadFromString(wxString(buffer)); }
+    inline void WriteProlog(ostream& stream) { Write(stream); }
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxExprDatabase)
 };
 
 // Function call-style interface - some more convenience wrappers/unwrappers
 
 // Make a call
-wxExpr* WXDLLEXPORT wxExprMakeCall(const wxString& functor ...);
+WXDLLEXPORT wxExpr* wxExprMakeCall(const wxString& functor ...);
 
 #define wxExprMakeInteger(x) (new wxExpr((long)x))
 #define wxExprMakeReal(x) (new wxExpr((double)x))
@@ -269,13 +275,13 @@ wxExpr* WXDLLEXPORT wxExprMakeCall(const wxString& functor ...);
 #define wxExprMake(x)       (new wxExpr(x))
 
 // Checks functor
-bool WXDLLEXPORT wxExprIsFunctor(wxExpr *expr, const wxString& functor);
+WXDLLEXPORT bool wxExprIsFunctor(wxExpr *expr, const wxString& functor);
 
 // Temporary variable for communicating between wxexpr.cpp and YACC/LEX
 WXDLLEXPORT_DATA(extern wxExprDatabase*) thewxExprDatabase;
 
 // YACC/LEX can leave memory lying around...
-extern "C" int WXDLLEXPORT wxExprCleanUp();
+extern "C" WXDLLEXPORT int wxExprCleanUp();
 
 #endif