[Synopsis-changes] Synopsis/Synopsis/include/Synopsis Dict.hh,1.2,1.3 List.hh,1.2,1.3 Tuple.hh,1.2,1.3
Stefan Seefeld stefan at synopsis.fresco.orgTue Jan 13 07:42:11 UTC 2004
- Previous message: [Synopsis-changes] Synopsis/Synopsis/Synopsis AST.py,1.30,1.31
- Next message: [Synopsis-changes] Synopsis/Synopsis/include/Synopsis/AST ASTModule.hh,1.1,1.2 SourceFile.hh,1.2,1.3
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Update of /cvs/synopsis/Synopsis/include/Synopsis
In directory frida:/tmp/cvs-serv25883/include/Synopsis
Modified Files:
Dict.hh List.hh Tuple.hh
Log Message:
bug fixes, and support for 'MacroCall' type
Index: Dict.hh
===================================================================
RCS file: /cvs/synopsis/Synopsis/include/Synopsis/Dict.hh,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -d -r1.2 -r1.3
--- Dict.hh 10 Jan 2004 22:50:34 -0000 1.2
+++ Dict.hh 13 Jan 2004 07:42:09 -0000 1.3
@@ -26,7 +26,8 @@ public:
Dict(Object o) throw(TypeError) : Object(o)
{ if (!PyDict_Check(o.my_impl)) throw TypeError("object not a dict");}
void set(Object k, Object v);
- Object get(Object k) const;
+ Object get(Object k, Object d = Object()) const;
+ bool has_key(Object k) const;
bool del(Object k);
iterator begin();
@@ -34,6 +35,7 @@ public:
void clear() { PyDict_Clear(my_impl);}
Dict copy() const { return Object(PyDict_Copy(my_impl));}
+ bool update(Dict d) { return PyDict_Update(my_impl, d.my_impl) == 0;}
List keys() const { return List(Object(PyDict_Keys(my_impl)));}
List values() const { return List(Object(PyDict_Values(my_impl)));}
@@ -106,11 +108,16 @@ inline void Dict::set(Object k, Object v
PyDict_SetItem(my_impl, k.my_impl, v.my_impl);
}
-inline Object Dict::get(Object k) const
+inline Object Dict::get(Object k, Object d) const
{
PyObject *retn = PyDict_GetItem(my_impl, k.my_impl);
if (retn) Py_INCREF(retn);
- return retn;
+ return retn ? Object(retn) : d;
+}
+
+inline bool Dict::has_key(Object k) const
+{
+ return PyDict_GetItem(my_impl, k.my_impl) != 0;
}
inline bool Dict::del(Object k)
Index: List.hh
===================================================================
RCS file: /cvs/synopsis/Synopsis/include/Synopsis/List.hh,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -d -r1.2 -r1.3
--- List.hh 10 Jan 2004 22:50:34 -0000 1.2
+++ List.hh 13 Jan 2004 07:42:09 -0000 1.3
@@ -10,6 +10,7 @@
#define _Synopsis_List_hh
#include <Synopsis/Object.hh>
+#include <Synopsis/Tuple.hh>
namespace Synopsis
{
@@ -19,6 +20,7 @@ class List : public Object
public:
List(size_t i = 0) : Object(PyList_New(i)) {}
List(Object) throw(TypeError);
+ Tuple tuple() const { return Tuple(PyList_AsTuple(my_impl));}
size_t size() const { return PyList_GET_SIZE(my_impl);}
void set(int i, Object o);
Object get(int i) const;
Index: Tuple.hh
===================================================================
RCS file: /cvs/synopsis/Synopsis/include/Synopsis/Tuple.hh,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -p -d -r1.2 -r1.3
--- Tuple.hh 10 Jan 2004 22:50:34 -0000 1.2
+++ Tuple.hh 13 Jan 2004 07:42:09 -0000 1.3
@@ -10,7 +10,6 @@
#define _Synopsis_Tuple_hh
#include <Synopsis/Object.hh>
-#include <Synopsis/List.hh>
namespace Synopsis
{
@@ -18,9 +17,8 @@ namespace Synopsis
class Tuple : public Object
{
public:
- Tuple(size_t i = 0) : Object(PyTuple_New(i)) {}
- Tuple(PyObject *);
- Tuple(List l) : Object(PyList_AsTuple(l.my_impl)) {}
+ Tuple() : Object(PyTuple_New(0)) {}
+ explicit Tuple(PyObject *);
Tuple(Object);
Tuple(Object, Object);
Tuple(Object, Object, Object);
@@ -72,9 +70,9 @@ Tuple::Tuple(Object o1, Object o2, Objec
Py_INCREF(o1.my_impl);
PyTuple_SET_ITEM(my_impl, 1, o2.my_impl);
Py_INCREF(o2.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o3.my_impl);
+ PyTuple_SET_ITEM(my_impl, 2, o3.my_impl);
Py_INCREF(o3.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o4.my_impl);
+ PyTuple_SET_ITEM(my_impl, 3, o4.my_impl);
Py_INCREF(o4.my_impl);
}
@@ -86,11 +84,11 @@ Tuple::Tuple(Object o1, Object o2, Objec
Py_INCREF(o1.my_impl);
PyTuple_SET_ITEM(my_impl, 1, o2.my_impl);
Py_INCREF(o2.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o3.my_impl);
+ PyTuple_SET_ITEM(my_impl, 2, o3.my_impl);
Py_INCREF(o3.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o4.my_impl);
+ PyTuple_SET_ITEM(my_impl, 3, o4.my_impl);
Py_INCREF(o4.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o5.my_impl);
+ PyTuple_SET_ITEM(my_impl, 4, o5.my_impl);
Py_INCREF(o5.my_impl);
}
@@ -102,13 +100,13 @@ Tuple::Tuple(Object o1, Object o2, Objec
Py_INCREF(o1.my_impl);
PyTuple_SET_ITEM(my_impl, 1, o2.my_impl);
Py_INCREF(o2.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o3.my_impl);
+ PyTuple_SET_ITEM(my_impl, 2, o3.my_impl);
Py_INCREF(o3.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o4.my_impl);
+ PyTuple_SET_ITEM(my_impl, 3, o4.my_impl);
Py_INCREF(o4.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o5.my_impl);
+ PyTuple_SET_ITEM(my_impl, 4, o5.my_impl);
Py_INCREF(o5.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o6.my_impl);
+ PyTuple_SET_ITEM(my_impl, 5, o6.my_impl);
Py_INCREF(o6.my_impl);
}
@@ -121,15 +119,15 @@ Tuple::Tuple(Object o1, Object o2, Objec
Py_INCREF(o1.my_impl);
PyTuple_SET_ITEM(my_impl, 1, o2.my_impl);
Py_INCREF(o2.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o3.my_impl);
+ PyTuple_SET_ITEM(my_impl, 2, o3.my_impl);
Py_INCREF(o3.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o4.my_impl);
+ PyTuple_SET_ITEM(my_impl, 3, o4.my_impl);
Py_INCREF(o4.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o5.my_impl);
+ PyTuple_SET_ITEM(my_impl, 4, o5.my_impl);
Py_INCREF(o5.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o6.my_impl);
+ PyTuple_SET_ITEM(my_impl, 5, o6.my_impl);
Py_INCREF(o6.my_impl);
- PyTuple_SET_ITEM(my_impl, 1, o7.my_impl);
+ PyTuple_SET_ITEM(my_impl, 6, o7.my_impl);
Py_INCREF(o7.my_impl);
}
- Previous message: [Synopsis-changes] Synopsis/Synopsis/Synopsis AST.py,1.30,1.31
- Next message: [Synopsis-changes] Synopsis/Synopsis/include/Synopsis/AST ASTModule.hh,1.1,1.2 SourceFile.hh,1.2,1.3
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Synopsis-changes mailing list