Terminology Clash
Things don't always go smoothly when AppleScript resolves terminology. Terms are sought in the dictionaries of the innermost application, of AppleScript itself, and of all scripting additions, as well as in the script. Given such a large namespace comprising contributions from multiple independent entities, it is possible for conflicts to arise. Such a conflict is called a terminology clash . Either the programmer generates the clash by an unwise choice of variable names, or different dictionaries generate it by defining the same term in different ways.
When the programmer causes a terminology clash, various things can happen. Sometimes the code won't compile; sometimes it won't run; sometimes it runs but gets an unexpected result; sometimes the clash is resolved sensibly and there's no problem.
Compile-time Error
When the compiler stops you from using a term, the term is probably defined elsewhere as a different "part of speech" from how you're trying to use it.
For example, this won't compile:
local count
-- compile-time error: Expected variable name or property but found command nameThe term count is defined by AppleScript itself as a command. Thus you're effectively trying to use a verb where a noun is expected.
This won't compile:
set sel to {length:2, offset:4}
-- compile-time error: Expected variable name, class name or property but
found command nameThis is similar to the previous example: offset is defined as a command in a scripting addition. Observe that
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access