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]
**********************************************************************

Reply via email to