The 'aeut ' Resource

When terminology is resolved, AppleScript itself is represented by a dictionary (see "Resolution of Terminology," earlier in this chapter). This fact comes as a surprise to many AppleScript users, because they don't think of AppleScript as having a dictionary. And no wonder, as they don't normally get to see this dictionary. Nevertheless, it is there. It's called the 'aeut' resource, and it lives in the AppleScript scripting component file, AppleScript.component (inside the package, it's at Contents/Resources/AppleScript.rsrc). It is loaded when the AppleScript scripting component comes into being, it looks basically like any other dictionary, and it defines the terminology for all of AppleScript's built-in commands and classes (except for get and set, which are treated specially).

If you'd like to get a look at the 'aeut' resource, you can; both Smile and Script Debugger permit you to see it, by choosing File → Open Dictionary → AppleScript.

The 'aeut' resource contains the terms for virtually the entire AppleScript language, including comparison operators, prepositions, global script properties, and so forth. There are even some terms not discussed in this book (because in practice they don't arise, or may never even have been implemented, like the upper case class or the print depth global property). You can learn a lot from perusing the 'aeut' resource; at the very least, it can help to explain why certain variable names generate terminology conflicts (when the name is already defined in the 'aeut' resource).

Here's a quick guided tour of what you'll see if you decide to gaze directly upon the 'aeut' resource (don't worry, it won't turn you to stone). The AppleScript Suite contains the global terms that make the AppleScript language work. The Type Names Suite contains many minor types without elements or properties, including secondary arithmetic classes such as small integer (see Chapter 13) as well as the location reference type so crucial to the make command (see "Relative" in Chapter 11); however, you might not see this in the display, because the Type Names Suite is normally suppressed from a dictionary display. (Applications take advantage of this to define terms needed for compilation but not suitable for human view.) The Standard Suite (also called the Core Suite) and the Text Suite are visible to the compiler but are usually overridden and extended by individual applications; not all the terms within them have any intrinsic implementation in AppleScript. So, for example, the count command works on lists and strings, but the exists command does nothing unless a scriptable application implements it. Other suites and their contents are not visible to the compiler; they seem to be present for historical and information purposes (see "Suites," earlier in this chapter).