summaryrefslogtreecommitdiff
path: root/giscanner/ast.py
diff options
context:
space:
mode:
authorMark Lee <marklee@src.gnome.org>2009-06-19 16:53:03 -0700
committerColin Walters <walters@verbum.org>2009-06-22 14:01:56 -0400
commit7048d711b2787af81767bb472f5dbaf0f97d6db9 (patch)
tree1f5635988ec08dd7020c947e02f58cb32def5c90 /giscanner/ast.py
parent94bae77228d816a308c054357125713b746b687c (diff)
downloadgobject-introspection-7048d711b2787af81767bb472f5dbaf0f97d6db9.tar.gz
Bug 584423 – Add short/ushort support
Add type tags for short and ushort, plus all of the requisite code needed to utilize them in libgirepository. Add support in the scanner's AST files. Add test functions to the everything library and the expected gir file. gtypelib.c constant validation fixed by Colin Walters <walters@verbum.org>
Diffstat (limited to 'giscanner/ast.py')
-rw-r--r--giscanner/ast.py22
1 files changed, 13 insertions, 9 deletions
diff --git a/giscanner/ast.py b/giscanner/ast.py
index 0d1b9f3b..911cc2bc 100644
--- a/giscanner/ast.py
+++ b/giscanner/ast.py
@@ -36,6 +36,8 @@ TYPE_ANY = 'any'
TYPE_BOOLEAN = 'boolean'
TYPE_INT8 = 'int8'
TYPE_UINT8 = 'uint8'
+TYPE_SHORT = 'short'
+TYPE_USHORT = 'ushort'
TYPE_INT16 = 'int16'
TYPE_UINT16 = 'uint16'
TYPE_INT = 'int'
@@ -57,9 +59,10 @@ TYPE_FILENAME = 'filename'
BASIC_GIR_TYPES = [TYPE_BOOLEAN, TYPE_INT8, TYPE_UINT8, TYPE_INT16,
TYPE_UINT16, TYPE_INT32, TYPE_UINT32, TYPE_INT64,
- TYPE_UINT64, TYPE_INT, TYPE_UINT, TYPE_LONG,
- TYPE_ULONG, TYPE_SSIZET, TYPE_SIZET, TYPE_FLOAT,
- TYPE_DOUBLE, TYPE_TIMET, TYPE_GTYPE]
+ TYPE_UINT64, TYPE_SHORT, TYPE_USHORT, TYPE_INT,
+ TYPE_UINT, TYPE_LONG, TYPE_ULONG, TYPE_SSIZET,
+ TYPE_SIZET, TYPE_FLOAT, TYPE_DOUBLE, TYPE_TIMET,
+ TYPE_GTYPE]
GIR_TYPES = [TYPE_NONE, TYPE_ANY]
GIR_TYPES.extend(BASIC_GIR_TYPES)
GIR_TYPES.extend([TYPE_STRING, TYPE_FILENAME])
@@ -91,9 +94,9 @@ for name in GIR_TYPES:
type_names['char'] = TYPE_INT8
type_names['signed char'] = TYPE_INT8
type_names['unsigned char'] = TYPE_UINT8
-type_names['short'] = TYPE_INT16
-type_names['signed short'] = TYPE_INT16
-type_names['unsigned short'] = TYPE_UINT16
+type_names['short'] = TYPE_SHORT
+type_names['signed short'] = TYPE_SHORT
+type_names['unsigned short'] = TYPE_USHORT
type_names['int'] = TYPE_INT
type_names['signed int'] = TYPE_INT
type_names['signed'] = TYPE_INT
@@ -120,7 +123,7 @@ type_names['id'] = TYPE_ANY
# Suppress some GLib names
type_names['uchar'] = TYPE_UINT8
-type_names['ushort'] = TYPE_UINT16
+type_names['ushort'] = TYPE_USHORT
type_names['size'] = TYPE_SIZET
type_names['ssize'] = TYPE_SSIZET
type_names['pointer'] = TYPE_ANY
@@ -135,8 +138,9 @@ default_array_types['uint8*'] = TYPE_UINT8
default_array_types['utf8*'] = TYPE_STRING
# These types, when seen by reference, are interpreted as out parameters
-default_out_types = (TYPE_INT, TYPE_UINT, TYPE_LONG, TYPE_ULONG,
- TYPE_FLOAT, TYPE_DOUBLE, TYPE_SIZET, TYPE_SSIZET)
+default_out_types = (TYPE_SHORT, TYPE_USHORT, TYPE_INT, TYPE_UINT,
+ TYPE_LONG, TYPE_ULONG, TYPE_FLOAT, TYPE_DOUBLE,
+ TYPE_SIZET, TYPE_SSIZET)
def type_name_from_ctype(ctype):