第四十六章 Caché 命令大全 ZZPRINT 命令
显示一个例程中的一个或多个源代码行。
大纲
ZZPRINT:pc "entry+offset^routine":before:after
参数
- pc 可选-后置条件表达式。
- entry 可选-例程中条目(标签)的名称。如果省略,则
ZZPRINT
从例程开始(第0行)开始。 - offset可选—一个整数,指定从条目(如果指定)或例程的开头(如果省略了条目)偏移的行数。偏移量需要加号(+)前缀。通常,偏移量是一个正整数。偏移量可以为负数;例如"
subsect+-3^mytest
,它显示在子分区之前的3行。如果省略偏移量,则显示从输入开始。 - routine 显示源代码行的例程。例程名称始终以插入号(
^
)前缀开头。 - before 可选-正整数计数,指定要显示的"
entry+offset^routine
"中指定的行之前的行数。不包括"entry+offset^routine
"行。 - after 可选-正整数计数,指定要显示的"
entry+offset^routine
"中指定的行之前的行数。不包括"entry+offset^routine
"行。
描述
ZZPRINT
命令显示来自指定ObjectScript例程的一个或多个源代码行。它可以显示指定的代码行和出现在指定源代码行之前和/或之后的指定行数,使可以在上下文中查看它。输入值指定显示的起点。但是,ZZPRINT
不会将其显示限制为指定的条目。在之前或之后的条目中,偏移量,之前和之后可能包含源代码行。
显示的行包括所有标签,注释和空格,完全空白的行除外。空白行,无论是在代码中还是在多行注释中,都不会显示或计数。因此,ZZPRINT
将以下多行注释显示为两行,而不是三行:
/* This comment includes
a blank line */
ZZPRINT
不计算或不显示预处理程序语句。
命令分隔符和空格要求
需使用引号(“”
)。左引号必须恰好出现在命令名称或后置条件表达式之后的一个空格处。在左引号之后或在右引号后面或之后可以出现任意数量的空格。
例程名称的脱字号(^
)前缀是必需的。如果指定偏移量,则可以在插入号前缀之前插入任意数量的空格。如果未指定偏移量,则条目名称和例程名称的插入符号前缀之间必须没有空格。
需要加号(+
)来指定偏移量。加号必须紧随条目名称之后(如果已指定)。没有立即跟在整数后面的加号表示偏移量为零。例如,紧跟加号(^
)前缀,空格或非数字字符的加号都表示偏移量为零。加号后紧跟一个整数表示一个正偏移量。加号后紧跟一个负整数表示负偏移量。
需要冒号(:
)分隔符来指定行前计数。要指定一个后行计数,必须指定两个冒号分隔符,无论是否指定一个前值。在这些冒号分隔符之前或之后可以有任意数量的空格。
参数
pc
可选的后置条件表达式。如果后置条件表达式为true(计算为非零数值),则Caché执行命令。如果后置条件表达式为假(计算为零),则Caché不执行命令。
entry
例程中条目的名称。条目名称区分大小写。如果例程不包含指定的条目,则系统生成·<NOLABEL>·错误。
offset
一个整数,指定要从条目开头(如果指定)或例程的开头偏移的行数。省略偏移量与零偏移量相同。与条目的零偏移是条目标签行本身(行1)。与例程的偏移量为零是例程开始之前的(不存在)行(第0行)。因此,要在例程的开头显示注释行,必须将偏移量指定为1(“+ 1 ^ mytest
”)。
偏移量计数包括除预处理程序语句以外的所有源代码行和完全空白的行。这些既不显示也不计数。从指定(或暗含)入口点计数时,偏移量超出例程中的可用行,则返回空字符串。
routine
用来显示源代码行的例程的名称。例程名称区分大小写。如果指定的例程不存在,则系统会生成<NOROUTINE>
错误。
必须具有例程的读取权限才能将其ZZPRINT
。如果没有此权限,则Caché 将生成<PROTECT>
错误
before
一个正整数,指定要在指定行之前显示的行数。这使可以在源代码行之前的源代码上下文中查看源代码行。这是从指定程序行向后的行数。之前的计数不包括"entry+offset^routine
"指定的程序行。如果之前计数大于可用代码行的数量,则ZZPRINT
显示可用代码行;它不会发出错误。
after
一个正整数,指定要在指定行之后显示的行数。这使可以在紧随其后的行的上下文中查看源代码行。这是从指定程序行开始的行数。之后的计数不包括"entry+offset^routine
"指定的程序行。如果之后计数大于可用代码行的数量,则ZZPRINT
显示可用代码行;它不会发出错误。
指定后值时,可以指定或忽略前值:
- 要显示指定的程序行和该行之后的指定行数,请为after指定一个正整数,为before指定一个0值。
- 要在例程中显示指定程序行之前的所有行,并在该行之后显示指定的行数,请指定一个after值而不指定一个before值。 (只需指定占位符冒号即可。)如果指定不带“ before”的after,则
ZZPRINT
从例程的开始到由after行数指定的指定程序行之后的位置显示。 - 要在指定的程序行之前和之后显示指定的行数,请为before指定一个正整数,为after指定一个正整数。