Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1320762
  • 博文数量: 179
  • 博客积分: 4141
  • 博客等级: 中将
  • 技术积分: 2083
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-21 20:04
文章存档

2024年(1)

2019年(13)

2016年(1)

2014年(16)

2011年(8)

2010年(25)

2009年(115)

分类: 嵌入式

2009-03-22 11:18:33

函数流程图:


1.  do_directive函数简介:

1)       PP_STACKSIZE:Tasm兼容,定义函数参数的各项属性

2)       PP_ARG:Tasm兼容,将参数定义转换成单行宏定义

3)       PP_LOCAL:Tasm兼容,将本地变量转换成单行宏定义

4)       PP_CLEAR:消除之前所有的预定义宏

5)       PP_INCLUDE:插入 include文件并打开该文件

6)       PP_PUSH:插入Context实例

7)       PP_REPL:更改Context名字

8)       PP_POP:删除Context实例

9)       PP_ERROR:输出%error错误信息

10)    PP_IFPP_IFCTXPP_IFDEFPP_IFIDPP_IFIDNPP_IFIDNIPP_IFMACROPP_IFNCTXPP_IFNDEFPP_IFNIDPP_IFNIDNPP_IFNIDNIPP_IFNMACROPP_IFNNUMPP_IFNSTRPP_IFNUMPP_IFSTRPP_ELIFPP_ELIFCTXPP_ELIFDEFPP_ELIFIDPP_ELIFIDNPP_ELIFIDNIPP_ELIFMACROPP_ELIFNCTXPP_ELIFNDEFPP_ELIFNIDPP_ELIFNIDNPP_ELIFNIDNIPP_ELIFNMACROPP_ELIFNNUMPP_ELIFNSTRPP_ELIFNUMPP_ELIFSTR:添加Cond实例

11)    PP_ELSE:更改Cond实例状态

12)    PP_ENDIF:删除Cond实例

13)    PP_MACROPP_IMACRO:先初始化 defining,设置相关属性

14)    PP_ENDM, PP_ENDMACRO:defining插入 mmacros

15)    PP_ROTATE: pass0 不处理

16)    PP_REP: 利用 evaluate 计算重复次数,设置defining相关属性,将之插入defining链表中

17)    PP_ENDREP: defining 的头一个元素插入 istk->defining

18)    PP_EXITREP: pass0 不做处理

19)    PP_XDEFINE, PP_IXDEFINE, PP_DEFINE, PP_IDEFINE:获取预处理信息,处理相关宏,参数,然后根据预处理信息插入相关的链表

20)    PP_UNDEF: 删除相关的宏定义

21)    PP_STRLEN:计算字符串长度,作为单行宏插入相关链表

22)    PP_SUBSTR:

23)    PP_ASSIGNPP_IASSIGN:调用eval.cevaluate函数计算assign指定的值

24)    PP_LINE:

 
 
 
 
阅读(1417) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~