]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/wxexpr.h
More deprecated class mods
[wxWidgets.git] / include / wx / wxexpr.h
diff --git a/include/wx/wxexpr.h b/include/wx/wxexpr.h
deleted file mode 100644 (file)
index 304aeb0..0000000
+++ /dev/null
@@ -1,283 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Name:        wxexpr.h
-// Purpose:     Prolog-like file I/O, used by resource system.
-// Author:      Julian Smart
-// Modified by:
-// Created:     01/02/97
-// RCS-ID:      $Id$
-// Copyright:   (c)
-// Licence:     wxWindows licence
-/////////////////////////////////////////////////////////////////////////////
-
-#ifndef _WX_WXEXPRH__
-#define _WX_WXEXPRH__
-
-#if defined(__GNUG__) && !defined(__APPLE__)
-#pragma interface "wxexpr.h"
-#endif
-
-#if wxUSE_PROLOGIO
-
-#include "wx/defs.h"
-#include "wx/string.h"
-
-#include "wx/list.h"
-#include "wx/hash.h"
-
-#include "wx/expr.h"
-
-#include <stdio.h>
-
-// Compatibility
-#define PrologExpr wxExpr
-#define PrologDatabase wxExprDatabase
-#define proioErrorHandler wxExprErrorHandler
-#define PROIO_ERROR_GENERAL 1
-#define PROIO_ERROR_SYNTAX  2
-#define PrologNull wxExprNull
-#define PrologInteger wxExprInteger
-#define PrologReal wxExprReal
-#define PrologWord wxExprWord
-#define PrologString wxExprString
-#define PrologList wxExprList
-#define PrologType wxExprType
-
-// Error types
-#define WXEXPR_ERROR_GENERAL 1
-#define WXEXPR_ERROR_SYNTAX  2
-
-// Error handler function definition. If app returns TRUE,
-// carry on processing.
-typedef bool (*wxExprErrorHandler) (int errorType, char *msg);
-
-WXDLLEXPORT_DATA(extern wxExprErrorHandler) currentwxExprErrorHandler;
-
-
-typedef enum {
-    wxExprNull,
-    wxExprInteger,
-    wxExprReal,
-    wxExprWord,
-    wxExprString,
-    wxExprList
-} wxExprType;
-
-class WXDLLEXPORT wxExprDatabase;
-
-class WXDLLEXPORT wxExpr
-{
- public:
-  wxObject *client_data;
-  wxExprType type;
-  union {
-    long integer;
-    wxChar *word;
-    wxChar *string;
-    double real;
-    wxExpr *first;  // If is a list expr, points to the first node
-    } value;
-
-  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, 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 = wxT(""));
-  wxExpr(long the_integer);
-  wxExpr(double the_real);
-  wxExpr(wxList *the_list);
-  ~wxExpr(void);
-
-  inline wxExprType Type(void) const { return type; }
-  inline long IntegerValue(void) const
-  {
-    if (type == wxExprInteger)
-      return value.integer;
-    else if (type == wxExprReal)
-      return (long)value.real;
-    else return 0;
-  }
-
-  inline double RealValue(void) const {
-    if (type == wxExprReal)
-      return value.real;
-    else if (type == wxExprInteger)
-      return (double)value.integer;
-    else return (double)0.0;
-  }
-
-  inline wxString WordValue(void) const {
-    if (type == wxExprWord)
-      return value.word;
-    else if (type == wxExprString)
-      return wxString(value.string);
-    else return wxString(wxT(""));
-  }
-
-  inline wxString StringValue(void) const {
-    if (type == wxExprString)
-      return wxString(value.string);
-    else if (type == wxExprWord)
-      return wxString(value.word);
-    else return wxString(wxT(""));
-  }
-
-  // Get nth arg of clause (starting from 1)
-  wxExpr *Arg(wxExprType type, int arg) const;
-
-  // Return nth argument of a list expression (starting from zero)
-  wxExpr *Nth(int arg) const;
-
-  // Returns the number of elements in a list expression
-  int Number(void) const;
-
-  // Make a clone
-  wxExpr *Copy(void) const;
-
-  wxExpr *GetAttributeValueNode(const wxString& word) const;  // Use only for a clause or list
-  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(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);
-  // Insert at beginning of list
-  void Insert(wxExpr *expr);
-
-  // Get first expr in list
-  inline wxExpr *GetFirst(void) const { return ((type == wxExprList) ? value.first : (wxExpr*)NULL); }
-
-  // Get next expr if this is a node in a list
-  inline wxExpr *GetNext(void) const { return next; }
-
-  // Get last expr in list
-  inline wxExpr *GetLast(void) const { return ((type == wxExprList) ? last : (wxExpr*)NULL); }
-
-  // This should really be called SetAttributeValue since any existing
-  // attribute-value is deleted first.
-  void AddAttributeValue(const wxString& attribute, long value);
-  void AddAttributeValue(const wxString& attribute, double value);
-  void AddAttributeValueWord(const wxString& attribute, const wxString& value);
-  void AddAttributeValueString(const wxString& attribute, const wxString& value);
-  void AddAttributeValue(const wxString& attribute, wxList *value);
-  void AddAttributeValue(const wxString& attribute, wxExpr *value);
-  void AddAttributeValueStringList(const wxString& attribute, wxList *string_list);
-
-  void DeleteAttributeValue(const wxString& attribute);
-
-  bool GetAttributeValue(const wxString& att, int& var) const;
-  bool GetAttributeValue(const wxString& att, long& var) const;
-  bool GetAttributeValue(const wxString& att, float& var) const;
-  bool GetAttributeValue(const wxString& att, double& var) const;
-  bool GetAttributeValue(const wxString& att, wxString& var) const;  // Word OR string -> string
-  bool GetAttributeValue(const wxString& att, wxExpr **var) const;
-
-  // Compatibility with old PrologIO
-  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;
-
-  // Associate other data with this expression, e.g. when reading in a
-  // number of linked items - store C++ object pointer with the expression
-  // 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
-{
-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(FILE* stream);
-
-    // Compatibility
-    inline bool ReadProlog(wxChar *filename) { return Read(wxString(filename)); }
-    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
-
-// Make a call
-WXDLLEXPORT wxExpr* wxExprMakeCall(const wxString& functor ...);
-
-#define wxExprMakeInteger(x) (new wxExpr((long)x))
-#define wxExprMakeReal(x) (new wxExpr((double)x))
-#define wxExprMakeString(x) (new wxExpr(wxExprString, x))
-#define wxExprMakeWord(x)   (new wxExpr(wxExprWord, x))
-#define wxExprMake(x)       (new wxExpr(x))
-
-// Checks 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" WXDLLEXPORT int wxExprCleanUp();
-
-#endif // wxUSE_PROLOGIO
-
-#endif // _WX_WXEXPRH__
-