In order to specify more complex ?¬‚ow control than simple sequential chains
of speech and system commands, the language provides conditionals jumps with
If and GotoPoint objects. An If object is made up of an Test such as ???A >=??? and a
Parameter containing the value to be compared with. The condition can be inverted
through the Boolean property, Not.
The elements in the diagram are mostly connected into a sequential chain of
Flow relationships. As the top row of Fig. 7.3 shows, such a Flow can come From
several different kinds of objects and go To a slightly different set. Start and Stop
can only be in appropriate roles in such a ?¬‚ow, and If cannot be the source of a
normal Flow relationship. Instead, If has two different relationships leaving it:
True and False. If the result of the whole condition is true, control ?¬‚ow will jump to
FIGURE 7.2 VoiceMenu elements with a VoiceOutput subdiagram
146 HOME AUTOMATION
the GotoPoint at the other end of the True relationship. If the result is false, control
?¬‚ow will follow the False relationship to any of the normal target objects, just as in
a normal Flow.
The If construct is thus not a full if..then..else familiar from third-generation
languages, but a simpler conditional jump, as is common in assembly languages.
GotoPoint has no behavior of its own: when included in a normal ?¬‚ow sequence
control simply passes on to the next element.
Pages:
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286