error in test contion

Alex Tweedly alex at
Fri Oct 25 18:45:14 EDT 2013

(Answering backwards .... :-)

I'd find it to confusing to deal with a statement like that "if ... 
then" one you wrote.

(I would be forever asking myself
    Is 'not" higher or lower precedence than 'or' ?
    Does that 'not' apply to the whole of the res of the expression, or 
just the first clause ??

  I don't remember - and the dictionary entries don't help - they say 
that I can combine 'and', 'or' and 'not - but don't mention which is 
higher precedence).

So just to save myself mental effort, I'd do something like ....

put not exists(...) into tCond1
put (the prgVrsn of stack "mcp" <> progVersion) into tCond2
if tCond1 OR tCond2 then ....

And that might either resolve, or failing that help with, the question 
of what the error message is trying to say.

-- Alex.

On 25/10/2013 22:19, Dr. Hawkins wrote:
>   I store the program version, calculated from the filename, as a custom
> property of the main stack.  So when the filename changes, the following
> code comes into play when opening:
> put exists (the prgVrsn of stack "mcp") , (the prgVrsn of stack "mcp" <>
> progVersion)
> if not exists (the prgVrsn of stack "mcp") OR (the prgVrsn of stack "mcp"
> <> progVersion) then
>           set the prgVrsn of stack "mcp" to progVersion
> The put executes, with false, false r some such.
> But then the test causes the message,
> Type    if-then: error in statement
> Object    mcp
> Line    if not exists (the prgVrsn of stack "mcp") OR (the prgVrsn of stack
> "mcp" <> progVersion) then
> Hint    openMcp

More information about the Use-livecode mailing list