在该程序中,With语句中的标符表是这样排列的:
programmer,birthdate,marridate
在WITH语句块中,标识符匹的顺序是,拿writeln要输出的两个month来说,书中说"首选与WITH语句头部的标识符表中最后1个标识符匹配,然后从后往前(从右往左)继续匹配,得到完全的域名",就是说要得到month的完整域名,PASCAL的编译器是这样做的,
一、  month 与 marridate 匹配(因为marridate是WITH标识符表中最后一个)
     得到 marridate.month
二、  marridate.month 与 birthdate 匹配(birthdate为marridate左边的标识符)
     还是得到 marridate.month 因为在 birthdate 中并不包含 marridate,它们是并列的
三、  marridate.month 与 programmer 匹配
     得到 programmer.marridate.month其余的都可以类推的。说了这么一大堆,我最希望的是你能够明白。:-)