Robert Sneidar wrote:

The problem is, Revolution script is soooo friendly with variable typing that just passing an undefined variable name as an arguement to a function will simply pass the variable name as a literal to the parameter of the called function, so within the function, no matter what, the value of the parameter will be something. It would be nice if Revolution did not do that, but I understand they need to be compatible with prior xCard solutions.

If you set "explicitVariables" in the IDE, you will get errors for undefined variables (and if you declare the variable as a local within the handler, then it will be initialized to empty) - so avoiding some of the difficulties you have to deal with below. Of course, you still can't distinguish between a variable which is undefined and one which has been deliberately set to empty :-(

Once inside the function, variableNames and globalNames knows nothing of a local variable in the calling handler. And there is no way to distinguish if the parameter passed is the value of an existing variable, or the literal name of the variable I thought I was passing it. Revolution is simply being too friendly. Passing the variable as a reference doesn't help either. The parameter is still resolved to the value of the passed variable regardless, (which begs the question "what's the difference?") In short, there is no way for a called function to tell if a variable belonging to the scope of the calling script exists or not, and what it is. Until now.

Hmmmm - how about the case of :

on myHandler
 local myVar
 put "myVar" into myVar
 put "myVar" into varName
 put theType(myVar, varName) into myType
 -- function theType() returns a type of "U" which is wrong
end myHandler


--
Alex Tweedly       http://www.tweedly.net



--
No virus found in this outgoing message.
Checked by AVG Free Edition.
Version: 7.1.385 / Virus Database: 268.3.5/300 - Release Date: 03/04/2006

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to