> On 27 Oct 2021, at 3:00 am,Craig wrote:
> 
> An array variable is just a variable, it is not a property. You cannot ?make? 
> one into the other.
> 
> So, basically, put the pArrayName[pElementName]  of button ?button? is just 
> syntax that does not exist in the lexicon, for the above reason.

Thanks Craig. I was thinking in terms of a natural language, not strict lexical 
syntax.

Because I would have thought strictly speaking  

put the dropShadow[color] of control X

shouldn't work, there must be an extension of the language  to interpret is as

put (the dropShadow of control X) into foo; put foo[color].

But that extension won’t work with a variable in place of the literal property 
name, or for a literal which is not a reserved word, because the parser has to 
check for literal reserved words before it evaluates variables.  Which also 
explains why the apparently similar

put the foo[bar] of control X

returns empty even though the control has a custom property foo with key bar 
having a non-empty value. 

Speaking of  reserved words here is an oddity

put rect[1]

returns “]" (strange, but true, and apparently happens for any reserved word 
value of rect)

Of course

put “rect” into foo; put foo[1]

returns empty, because as above reserved words are interpreted before variable 
evaluation, not after. It all makes sense now - well, except for rect[1]

_______________________________________________
use-livecode mailing list
use-livecode@lists.runrev.com
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-livecode

Reply via email to