全文下载:RPC的实现
目录
1. 前言
2
2. 基本概念
3
2.1. IDL
3
2.2. 代理(Proxy)
3
2.3. 存根(Stub)
4
3. 三要素
4
3.1. 网络通讯
4
3.2. 消息编解码
5
3.3. IDL编译器
5
4. flex和bison
5
4.1. 准备概念
5
4.1.1. 正则表达式(regex/regexp)
6
4.1.2. 符号∈
6
4.1.3. 终结符/非终结符/产生式
6
4.1.4. 记号(Token)
6
4.1.5. 形式文法
7
4.1.6. 上下文无关文法(CFG)
7
4.1.7. BNF
8
4.1.8. 推导
8
4.1.9. 语法树
8
4.1.10. LL(k)
9
4.1.11. LR(k)
9
4.1.12. LALR(k)
9
4.1.13. GLR
9
4.1.14. 移进/归约
9
4.2. flex和bison文件格式
9
4.2.1. 定义部分
10
4.2.2. 规则部分
10
4.2.3. 用户子例程部分
10
4.3. flex基础
10
4.3.1. flex文件格式
11
4.3.2. 选项
11
4.3.3. 名字定义
11
4.3.4. 词法规则
12
4.3.5. 匹配规则
12
4.3.6. %option
13
4.3.7. 全局变量yytext
13
4.3.8. 全局变量yyval
13
4.3.9. 全局变量yyleng
13
4.3.10. 全局函数yylex
13
4.3.11. 全局函数yywrap
13
4.4. bison基础
14
4.4.1. bison文件格式
14
4.4.2. %union
14
4.4.3. %token
15
4.4.4. 全局函数yyerror()
15
4.4.5. 全局函数yyparse()
15
4.5. 例1:单词计数
15
4.5.1. 目的
15
4.5.2. flex词法文件wc.l
16
4.5.3. Makefile
16
4.6. 例2:表达式
17
4.6.1. 目的
17
4.6.2. flex词法exp.l
17
4.6.3. bison语法exp.y
17
4.6.4. Makefile
19
4.6.5. 代码集成
19
4.7. 例3:函数
20
4.7.1. 目的
20
4.7.2. func.h
20
4.7.3. func.c
21
4.7.4. IDL代码func.idl
22
4.7.5. flex词法func.l
22
4.7.6. bison语法func.y
24
4.7.7. Makefile
27
5. 进阶
27
5.1. 客户端函数实现
27
5.2. 服务端函数实现
28
5.2.1. Stub部分实现
28
5.2.2. 用户部分实现
29
6. 参考资料
29
本文转自eyjian 51CTO博客,原文链接:http://blog.51cto.com/mooon/847858,如需转载请自行联系原作者