I don't understand why I'm getting a compiler syntax error here. Consider a
method:
C_OBJECT($1)
C_TEXT($2;$4;$6)
C_POINTER($3;$5;$7;$ptr)
C_LONGINT($type;$error;$i)
C_TEXT($errMsg)
$paramObj:=$1
// loop through the parameters
For ($i;2;Count parameters;2)
$ptr:=${$i+1} // transfer the param to a ptr var
...
End for
The Complier declaration for this method looks like this:
//DOX_SET_paramLink
C_OBJECT(DOX_SET_paramLink ;$1)
C_TEXT(DOX_SET_paramLink ;$2)
C_POINTER(DOX_SET_paramLink ;$3)
C_TEXT(DOX_SET_paramLink ;$4)
C_POINTER(DOX_SET_paramLink ;$5)
C_TEXT(DOX_SET_paramLink ;$6)
C_POINTER(DOX_SET_paramLink ;$7)
The syntax error generated is:
The parameter ${$} has not been explicitly declared in the typing
methods...
The params are passed as a key/value pair, or in this case a pointer/value
pair.
In the recent past I could clear this up by changing the declaration to
something like
C_POINTER(${2})
But that's obviously only useful when all the params after $2 are
pointers. Is it the case (now) that param indirection only works on
similarly typed params?
I didn't think indirection was limited like this.
--
Kirk Brooks
San Francisco, CA
=======================
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ: http://lists.4d.com/faqnug.html
Archive: http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub: mailto:[email protected]
**********************************************************************