语法图
现在正好向您介绍语法图。它将帮助您理解计算机为什么不在意您是将一系列命令编写在单独的行中,还是将所有命令编写在同一行。
如果学习了 DEFINE 的语法图,您便会明白计算机为什么能够理解该宏。在线帮助中提供了所有命令和函数的语法图。为了方便起见,我们已经包含了 DEFINE 的语法图:
DEFINE function
|
v
(DEFINE)
|
v
|macro name|
|
v
+---------------<-----------------,
| |
v |
+-->(PARAMETER)-->|param. name|-->'
|
v
+----------------<-----------------,
| |
v |
+-->(LOCAL)-->|local macro name|-->'
|
v
+-----<-------,
| |
v |
+-->|token|-->'
|
v
(END_DEFINE)
|
v
在 DEFINE 语句之后,计算机会希望看到:
• 关键字 PARAMETER、
• 关键字 LOCAL 或
• 令牌。
计算机如果看到这三项中的任何一项,则会继续下一个语句。否则宏将停止。
在在线帮助的TOKEN下查看,您会看到命令是可接受的令牌。
现在请看 STORE 的语法图:
STORE command
->(STORE)-->+------>+-+--->(ALL)---->+->+-------------+->|file name|->
| | | | | |
`-(MI)->' `->|partname|->' `->(DEL_OLD)->'
首先,请注意 STORE 是一个命令,所以 STORE 可用作令牌。
STORE 的后面必须带有关键字 MI,或关键字 ALL,或零件的名称。本例为 ALL。
ALL 的后面必须带有 DEL_OLD 或文件名。本例中首先为 DEL_OLD,然后是以单引号括起的文件名。
可以验证,EXIT 后一定接着 CONFIRM。
现在,尝试不含 ALL 的宏:
DEFINE Quit STORE DEL_OLD 'workfile' EXIT CONFIRM END_DEFINE
您将收到以下消息:
Enter option or 'part_name'
计算机无法理解该宏,因为它希望会出现 MI、ALL 或零件名称。
所以您将明白逐行编写宏有助于人类读取,但计算机则依赖诸如语法图这类算法来进行理解。