另外由于PL/0编译程序采用自顶向下的分析方法,一个语法单元分析程序调用别的语法单元的分析程序时,以参数形式(文本中以FSYS定义为单词符号集合作为形参)给出被调用的语法分析程序出口时合法的后继单词符号集合(如表2.3所给出),在出口处也调用测试程序。若当前单词符号是属于所给集合,则语法分析正常进行,否则出错。单词符号集合FSYS参数是可传递的,随着调用语法分析程序层次的深入,FSYS的集合逐步补充合法单词符。
图 2.9 TEST测试过程流程图
表 2.3 PL/0文法非终结符的开始符号与后继符号集合表
非终结符名 开始符号集合 后继符号集合
分程序 const var procedure ident if call begin while read write . ;
语句 ident call begin if while read write . ; end
条件 odd   +  -   (
ident number
then do
表达式 +  -  (
ident  number
.   ;  )
rop end then do
ident number ( .  ;  )
rop  +  -
end then do
因子 ident number ( .  ;  +
 -  *  /
end then do
*注: 表2.3中'rop'表示关系运算符集合,如=,#,<,<=,>,>=。