现在的位置: 首页 > 综合 > 正文

(一)ghostscript源码分析之interp()函数的第二个参数

2013年09月19日 ⁄ 综合 ⁄ 共 3445字 ⁄ 字号 评论关闭

interp函数的第二个参数是const ref* pref。

它来至于上层函数的调用:

 

下面的临时变量ref ifile;就是传入参数。

 

 

这个参数在函数gs_main_run_file_open中被修改:

被修改的语句是:

r_set_attrs(pfref, a_execute+a_executable);

而这句代码的实现为:

也就是这个对象的type_attrs被修改了。而这个对象属性在interp函数中涉及到“分派”,是很重要的属性。

在gs_run_init_file ()中第一次调用scan_token()获得first_token,再把这个token放进操作符栈中。

 *++osp = first_token;这句实现这个功能。

后面还有一句:r_set_attrs(&ifile, a_executable);从这句调试来看这句并没有改别type_attrs的值。

这个ifile被传给interp函数之后,通过:

 

调用词法分析函数:scan_token()。

整个解析函数有两处调用scan_token()函数。

 

另外r_type_xe宏的实现在以前发过的文章关于iref.h中有讨论。

 

抱歉!评论已关闭.