cosmetics

git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@8407 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
Marcelo Matus 2006-01-13 01:08:10 +00:00
commit 02faa27d3f

View file

@ -154,38 +154,40 @@
/* aggregation support */ /* aggregation support */
/* /*
This macro performs constant aggregation. Basically the idea of This macro performs constant aggregation. Basically the idea of
constant aggregation is that you can group a collection of constants constant aggregation is that you can group a collection of constants
together. For example, suppose you have some code like this: together. For example, suppose you have some code like this:
#define UP 1 #define UP 1
#define DOWN 2 #define DOWN 2
#define LEFT 3 #define LEFT 3
#define RIGHT 4 #define RIGHT 4
Now, suppose you had a function like this: Now, suppose you had a function like this:
int move(int direction) int move(int direction)
In this case, you might want to restrict the direction argument to one of the supplied In this case, you might want to restrict the direction argument to
constant names. To do this, you could write some typemap code by hand. Alternatively, one of the supplied constant names. To do this, you could write some
you can use the %aggregate_check macro defined here to create a simple check function typemap code by hand. Alternatively, you can use the
for you. Here is an example: %aggregate_check macro defined here to create a simple check
function for you. Here is an example:
%aggregate_check(int, check_direction, UP, DOWN, LEFT, RIGHT); %aggregate_check(int, check_direction, UP, DOWN, LEFT, RIGHT);
Now, using a typemap Now, using a typemap
%typemap(check) int direction { %typemap(check) int direction {
if (!check_direction($1)) SWIG_exception(SWIG_ValueError,"Bad direction."); if (!check_direction($1)) SWIG_exception(SWIG_ValueError,"Bad direction.");
} }
or a contract (better) or a contract (better)
%contract move(int x) {
require:
check_direction(x);
}
%contract move(int x) {
require:
check_direction(x);
}
*/ */
%define %aggregate_check(TYPE, NAME, FIRST, ...) %define %aggregate_check(TYPE, NAME, FIRST, ...)
@ -238,7 +240,7 @@ static int NAME(TYPE x) {
%define %isdestructor match="destructor" %enddef %define %isdestructor match="destructor" %enddef
%define %isnamespace match="namespace" %enddef %define %isnamespace match="namespace" %enddef
%define %istemplate match="template" %enddef %define %istemplate match="template" %enddef
%define %isconstant match="constant" %enddef %define %isconstant match="constant" %enddef /* %constant definition */
%define %isunion match$kind="union" %enddef %define %isunion match$kind="union" %enddef
%define %isfunction match$kind="function" %enddef %define %isfunction match$kind="function" %enddef