所以本程序读入使用一个递归算法:
a 开始的时候初始化一个STATEMENT对象,这个对象的statement是named.conf(这个值可以任意定义,但要特殊一点)。
b 判断文件有否结束,如果没结束,转c;如果结束,转f
c 依次读文件,如果读到的是单词,则,读入的第一个单词是statement,第二个单词是statement_name(有双引号的),第三个单词是statement_class,允许后两个单词是空,直到读到";、{”,转到d;如果读到的不是单词,而是“}”,则转到e
d 新建一个STATEMENT对象。。如果后面读到的字符是“;”,则表示结束,添加新的STATEMENT对象到当前STATEMENT对象的options_list尾部>转到b;如果读到“{”,则指向新建的STATEMENT的options_list(下移一级),转到b;
e 如果接着读到“;”,则使用当前STATEMENT的parent的options_list(上移一级),转到b;再接着读到的是其他字符,转g。
f temp2加载结束
g 错误处理