posted @
2010-07-24 23:35 lwch 阅读(217) |
评论 (0) |
编辑 收藏
摘要: 1 #pragma once 2 #include "..\String\NWString.h" 3 #include "..\AutoPtr\AutoPtr.h" 4 #include "..\Common\List.h"&nb...
阅读全文
posted @
2010-07-22 23:23 lwch 阅读(1216) |
评论 (0) |
编辑 收藏
1.对于典型的if-else二义性文法,存在移进-接受(移进-归约)冲突,在我的LALR分析器中采用了和YACC相同的方法,首先处理移进操作.这样就可消除if-else的二义性.
if-else文法:
S->iEStS
S->iES
S->s
E->e
说明:
i代表if
s代表stmt
e代表exp
t代表else
对于以上文法生成的LALR(1)分析表为:
对于if exp stmt语句分析结果为:
对于if exp stmt else stmt语句分析结果为:
对于if exp if exp stmt语句分析结果为:
对于if exp if exp stmt else stmt语句分析结果为:
2.众所周知LALR文法同样存在归约-归约冲突,在我的LALR分析器中使用先书写的产生式进行归约.
对于给定的存在归约-归约冲突的文法:
S->T
S->i
T->i
生成LALR(1)分析表为:
分析输入串i的过程为:
以上就是我的LALR(1)分析器处理冲突的方法了.
下面逐步对这个分析器进行扩充,以实现一个能自由输入文法的分析器.
posted @
2010-07-22 15:04 lwch 阅读(1982) |
评论 (0) |
编辑 收藏
对于给定文法:
E->E+T
E->E-T
E->T
T->T*F
T->T/F
T->F
F->(E)
F->i
生成LALR(1)分析表为:
对指定串:(i+i)*i和(i+i)*分别分析后得到
虽说打印的时候没对齐,但结果是对的..
posted @
2010-07-21 20:24 lwch 阅读(872) |
评论 (1) |
编辑 收藏
分析器
LR项目内有一宏定义可定义为LR0或SLR1
LR1分析器分析速度过慢有待优化..
求Follow集用了非递归算法,发现递归算法容易引起无限循环.
希望对正在学习编译原理的同学有所启发.
posted @
2010-07-18 18:02 lwch 阅读(4702) |
评论 (6) |
编辑 收藏
对于给定文法:
E->E+T
E->E-T
E->T
T->T*F
T->T/F
T->F
F->(E)
F->i
生成LR(1)分析表得:
LR(1)分析表的确是无比的巨大啊...
posted @
2010-07-17 13:59 lwch 阅读(671) |
评论 (0) |
编辑 收藏
对于给定文法:
E->E+T
E->E-T
E->T
T->T*F
T->T/F
T->F
F->(E)
F->i
生成DFA状态机得:
1 该文法的拓展文法为:
2 $->E
3 E->E+T
4 E->E-T
5 E->T
6 T->T*F
7 T->T/F
8 T->F
9 F->(E)
10 F->i
11 该文法的项目如下:
12 (1) $->.E,#
13 (2) E->.E+T,#
14 (3) E->.E-T,#
15 (4) E->.T,#
16 (5) E->.E+T,+
17 (6) E->.E-T,+
18 (7) E->.T,+
19 (8) E->.E+T,-
20 (9) E->.E-T,-
21 (10) E->.T,-
22 (11) T->.T*F,#
23 (12) T->.T/F,#
24 (13) T->.F,#
25 (14) T->.T*F,+
26 (15) T->.T/F,+
27 (16) T->.F,+
28 (17) T->.T*F,-
29 (18) T->.T/F,-
30 (19) T->.F,-
31 (20) T->.T*F,*
32 (21) T->.T/F,*
33 (22) T->.F,*
34 (23) T->.T*F,/
35 (24) T->.T/F,/
36 (25) T->.F,/
37 (26) F->.(E),#
38 (27) F->.i,#
39 (28) F->.(E),+
40 (29) F->.i,+
41 (30) F->.(E),-
42 (31) F->.i,-
43 (32) F->.(E),*
44 (33) F->.i,*
45 (34) F->.(E),/
46 (35) F->.i,/
47 (36) $->E.,#
48 (37) E->E.+T,#
49 (38) E->E.-T,#
50 (39) E->E.+T,+
51 (40) E->E.-T,+
52 (41) E->E.+T,-
53 (42) E->E.-T,-
54 (43) E->T.,#
55 (44) E->T.,+
56 (45) E->T.,-
57 (46) T->T.*F,#
58 (47) T->T./F,#
59 (48) T->T.*F,+
60 (49) T->T./F,+
61 (50) T->T.*F,-
62 (51) T->T./F,-
63 (52) T->T.*F,*
64 (53) T->T./F,*
65 (54) T->T.*F,/
66 (55) T->T./F,/
67 (56) T->F.,#
68 (57) T->F.,+
69 (58) T->F.,-
70 (59) T->F.,*
71 (60) T->F.,/
72 (61) F->(.E),#
73 (62) E->.E+T,)
74 (63) E->.E-T,)
75 (64) E->.T,)
76 (65) T->.T*F,)
77 (66) T->.T/F,)
78 (67) T->.F,)
79 (68) F->.(E),)
80 (69) F->.i,)
81 (70) F->(.E),+
82 (71) F->(.E),-
83 (72) F->(.E),*
84 (73) F->(.E),/
85 (74) F->i.,#
86 (75) F->i.,+
87 (76) F->i.,-
88 (77) F->i.,*
89 (78) F->i.,/
90 (79) E->E+.T,#
91 (80) E->E+.T,+
92 (81) E->E+.T,-
93 (82) E->E-.T,#
94 (83) E->E-.T,+
95 (84) E->E-.T,-
96 (85) T->T*.F,#
97 (86) T->T*.F,+
98 (87) T->T*.F,-
99 (88) T->T*.F,*
100 (89) T->T*.F,/
101 (90) T->T/.F,#
102 (91) T->T/.F,+
103 (92) T->T/.F,-
104 (93) T->T/.F,*
105 (94) T->T/.F,/
106 (95) F->(E.),#
107 (96) E->E.+T,)
108 (97) E->E.-T,)
109 (98) F->(E.),+
110 (99) F->(E.),-
111 (100) F->(E.),*
112 (101) F->(E.),/
113 (102) E->T.,)
114 (103) T->T.*F,)
115 (104) T->T./F,)
116 (105) T->F.,)
117 (106) F->(.E),)
118 (107) F->i.,)
119 (108) E->E+T.,#
120 (109) E->E+T.,+
121 (110) E->E+T.,-
122 (111) E->E-T.,#
123 (112) E->E-T.,+
124 (113) E->E-T.,-
125 (114) T->T*F.,#
126 (115) T->T*F.,+
127 (116) T->T*F.,-
128 (117) T->T*F.,*
129 (118) T->T*F.,/
130 (119) T->T/F.,#
131 (120) T->T/F.,+
132 (121) T->T/F.,-
133 (122) T->T/F.,*
134 (123) T->T/F.,/
135 (124) F->(E).,#
136 (125) F->(E).,+
137 (126) F->(E).,-
138 (127) F->(E).,*
139 (128) F->(E).,/
140 (129) E->E+.T,)
141 (130) E->E-.T,)
142 (131) T->T*.F,)
143 (132) T->T/.F,)
144 (133) F->(E.),)
145 (134) E->E+T.,)
146 (135) E->E-T.,)
147 (136) T->T*F.,)
148 (137) T->T/F.,)
149 (138) F->(E).,)
150 项目规范族如下:
151 I0 { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35 }
152 I1 { 36, 37, 38, 39, 40, 41, 42 }
153 I2 { 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55 }
154 I3 { 56, 57, 58, 59, 60 }
155 I4 { 61, 62, 63, 64, 5, 6, 7, 8, 9, 10, 65, 66, 67, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 68, 69, 28, 29, 30, 31, 32, 33, 34, 35, 70, 71, 72, 73 }
156 I5 { 74, 75, 76, 77, 78 }
157 I6 { 79, 11, 12, 13, 20, 21, 22, 23, 24, 25, 26, 27, 32, 33, 34, 35, 80, 14, 15, 16, 28, 29, 81, 17, 18, 19, 30, 31 }
158 I7 { 82, 11, 12, 13, 20, 21, 22, 23, 24, 25, 26, 27, 32, 33, 34, 35, 83, 14, 15, 16, 28, 29, 84, 17, 18, 19, 30, 31 }
159 I8 { 85, 26, 27, 86, 28, 29, 87, 30, 31, 88, 32, 33, 89, 34, 35 }
160 I9 { 90, 26, 27, 91, 28, 29, 92, 30, 31, 93, 32, 33, 94, 34, 35 }
161 I10 { 95, 96, 97, 39, 40, 41, 42, 98, 99, 100, 101 }
162 I11 { 102, 44, 45, 103, 104, 48, 49, 50, 51, 52, 53, 54, 55 }
163 I12 { 105, 57, 58, 59, 60 }
164 I13 { 106, 62, 63, 64, 5, 6, 7, 8, 9, 10, 65, 66, 67, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 68, 69, 28, 29, 30, 31, 32, 33, 34, 35, 70, 71, 72, 73 }
165 I14 { 107, 75, 76, 77, 78 }
166 I15 { 108, 46, 47, 52, 53, 54, 55, 109, 48, 49, 110, 50, 51 }
167 I16 { 56, 59, 60, 57, 58 }
168 I17 { 61, 62, 63, 64, 5, 6, 7, 8, 9, 10, 65, 66, 67, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 68, 69, 28, 29, 30, 31, 32, 33, 34, 35, 72, 73, 70, 71 }
169 I18 { 74, 77, 78, 75, 76 }
170 I19 { 111, 46, 47, 52, 53, 54, 55, 112, 48, 49, 113, 50, 51 }
171 I20 { 114, 115, 116, 117, 118 }
172 I21 { 119, 120, 121, 122, 123 }
173 I22 { 124, 125, 126, 127, 128 }
174 I23 { 129, 65, 66, 67, 20, 21, 22, 23, 24, 25, 68, 69, 32, 33, 34, 35, 80, 14, 15, 16, 28, 29, 81, 17, 18, 19, 30, 31 }
175 I24 { 130, 65, 66, 67, 20, 21, 22, 23, 24, 25, 68, 69, 32, 33, 34, 35, 83, 14, 15, 16, 28, 29, 84, 17, 18, 19, 30, 31 }
176 I25 { 131, 68, 69, 86, 28, 29, 87, 30, 31, 88, 32, 33, 89, 34, 35 }
177 I26 { 132, 68, 69, 91, 28, 29, 92, 30, 31, 93, 32, 33, 94, 34, 35 }
178 I27 { 133, 96, 97, 39, 40, 41, 42, 98, 99, 100, 101 }
179 I28 { 85, 26, 27, 88, 32, 33, 89, 34, 35, 86, 28, 29, 87, 30, 31 }
180 I29 { 90, 26, 27, 93, 32, 33, 94, 34, 35, 91, 28, 29, 92, 30, 31 }
181 I30 { 95, 96, 97, 39, 40, 41, 42, 100, 101, 98, 99 }
182 I31 { 134, 103, 104, 52, 53, 54, 55, 109, 48, 49, 110, 50, 51 }
183 I32 { 105, 59, 60, 57, 58 }
184 I33 { 106, 62, 63, 64, 5, 6, 7, 8, 9, 10, 65, 66, 67, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 68, 69, 28, 29, 30, 31, 32, 33, 34, 35, 72, 73, 70, 71 }
185 I34 { 107, 77, 78, 75, 76 }
186 I35 { 135, 103, 104, 52, 53, 54, 55, 112, 48, 49, 113, 50, 51 }
187 I36 { 136, 115, 116, 117, 118 }
188 I37 { 137, 120, 121, 122, 123 }
189 I38 { 138, 125, 126, 127, 128 }
190 I39 { 114, 117, 118, 115, 116 }
191 I40 { 119, 122, 123, 120, 121 }
192 I41 { 124, 127, 128, 125, 126 }
193 I42 { 131, 68, 69, 88, 32, 33, 89, 34, 35, 86, 28, 29, 87, 30, 31 }
194 I43 { 132, 68, 69, 93, 32, 33, 94, 34, 35, 91, 28, 29, 92, 30, 31 }
195 I44 { 133, 96, 97, 39, 40, 41, 42, 100, 101, 98, 99 }
196 I45 { 136, 117, 118, 115, 116 }
197 I46 { 137, 122, 123, 120, 121 }
198 I47 { 138, 127, 128, 125, 126 }
199 状态转移表如下:
200 I0 -> I1 [ E ]
201 I0 -> I2 [ T ]
202 I0 -> I3 [ F ]
203 I0 -> I4 [ ( ]
204 I0 -> I5 [ i ]
205 I1 -> I6 [ + ]
206 I1 -> I7 [ - ]
207 I2 -> I8 [ * ]
208 I2 -> I9 [ / ]
209 I4 -> I10 [ E ]
210 I4 -> I11 [ T ]
211 I4 -> I12 [ F ]
212 I4 -> I13 [ ( ]
213 I4 -> I14 [ i ]
214 I6 -> I15 [ T ]
215 I6 -> I16 [ F ]
216 I6 -> I17 [ ( ]
217 I6 -> I18 [ i ]
218 I7 -> I19 [ T ]
219 I7 -> I16 [ F ]
220 I7 -> I17 [ ( ]
221 I7 -> I18 [ i ]
222 I8 -> I20 [ F ]
223 I8 -> I4 [ ( ]
224 I8 -> I5 [ i ]
225 I9 -> I21 [ F ]
226 I9 -> I4 [ ( ]
227 I9 -> I5 [ i ]
228 I10 -> I22 [ ) ]
229 I10 -> I23 [ + ]
230 I10 -> I24 [ - ]
231 I11 -> I25 [ * ]
232 I11 -> I26 [ / ]
233 I13 -> I27 [ E ]
234 I13 -> I11 [ T ]
235 I13 -> I12 [ F ]
236 I13 -> I13 [ ( ]
237 I13 -> I14 [ i ]
238 I15 -> I28 [ * ]
239 I15 -> I29 [ / ]
240 I17 -> I30 [ E ]
241 I17 -> I11 [ T ]
242 I17 -> I12 [ F ]
243 I17 -> I13 [ ( ]
244 I17 -> I14 [ i ]
245 I19 -> I28 [ * ]
246 I19 -> I29 [ / ]
247 I23 -> I31 [ T ]
248 I23 -> I32 [ F ]
249 I23 -> I33 [ ( ]
250 I23 -> I34 [ i ]
251 I24 -> I35 [ T ]
252 I24 -> I32 [ F ]
253 I24 -> I33 [ ( ]
254 I24 -> I34 [ i ]
255 I25 -> I36 [ F ]
256 I25 -> I13 [ ( ]
257 I25 -> I14 [ i ]
258 I26 -> I37 [ F ]
259 I26 -> I13 [ ( ]
260 I26 -> I14 [ i ]
261 I27 -> I38 [ ) ]
262 I27 -> I23 [ + ]
263 I27 -> I24 [ - ]
264 I28 -> I39 [ F ]
265 I28 -> I17 [ ( ]
266 I28 -> I18 [ i ]
267 I29 -> I40 [ F ]
268 I29 -> I17 [ ( ]
269 I29 -> I18 [ i ]
270 I30 -> I41 [ ) ]
271 I30 -> I23 [ + ]
272 I30 -> I24 [ - ]
273 I31 -> I42 [ * ]
274 I31 -> I43 [ / ]
275 I33 -> I44 [ E ]
276 I33 -> I11 [ T ]
277 I33 -> I12 [ F ]
278 I33 -> I13 [ ( ]
279 I33 -> I14 [ i ]
280 I35 -> I42 [ * ]
281 I35 -> I43 [ / ]
282 I42 -> I45 [ F ]
283 I42 -> I33 [ ( ]
284 I42 -> I34 [ i ]
285 I43 -> I46 [ F ]
286 I43 -> I33 [ ( ]
287 I43 -> I34 [ i ]
288 I44 -> I47 [ ) ]
289 I44 -> I23 [ + ]
290 I44 -> I24 [ - ]
由此可见LR(1)分析表会变得无比的巨大.
posted @
2010-07-16 16:03 lwch 阅读(480) |
评论 (0) |
编辑 收藏
对于给定二义性文法:
E->E+T
E->E-T
E->T
T->T*F
T->T/F
T->F
F->(E)
F->i
求得SLR(1)分析表为:
posted @
2010-07-13 00:00 lwch 阅读(995) |
评论 (0) |
编辑 收藏
首先我们探讨几个问题:
CString str = L"";
str += 'a' + L"a";
或str += L"a" + 'a';
分别会得到什么?
答案是一堆一样的乱码.
这是为什么呢?
由于运算符的优先级的关系先计算'a' + L"a"或L"a" + 'a'当字符串与单个字符相加时编译器认为是将指针向后移动'a'(0x61)个字节,最后进入CString的+=运算符重载函数,由于传入的是一个字符串指针所以函数会将从L"a"+0x61的位置开始到\0结尾的所有字符连接到原字符后.应此也就出现了乱码的情况.
解决方法:
CString str = L"";
str += CString('a') + L"a";
或str += CString(L"a") + 'a';
在做加法运算时都会进入CString的+运算符的重载函数以得到正确的结果.
posted @
2010-07-11 18:38 lwch 阅读(2812) |
评论 (3) |
编辑 收藏
对于给定文法:
S->aAcBe
A->b
A->Ab
B->d
生成分析表得:
1 LR(0)分析表为:
2 a c e b d # S A B
3 0 S2 ε ε ε ε ε 1 ε ε
4 1 ε ε ε ε ε acc ε ε ε
5 2 ε ε ε S4 ε ε ε 3 ε
6 3 ε S5 ε S6 ε ε ε ε ε
7 4 R2 R2 R2 R2 R2 R2 ε ε ε
8 5 ε ε ε ε S8 ε ε ε 7
9 6 R3 R3 R3 R3 R3 R3 ε ε ε
10 7 ε ε S9 ε ε ε ε ε ε
11 8 R4 R4 R4 R4 R4 R4 ε ε ε
12 9 R1 R1 R1 R1 R1 R1 ε ε ε
posted @
2010-07-11 17:05 lwch 阅读(1487) |
评论 (0) |
编辑 收藏
对于给定文法:
exp->exp1
exp1->exp2 | exp5
exp5->exp1 (“<” | “>” | “==”) exp2
exp2->exp3 | exp6
exp6->exp2 (“+” | “-“) exp3
exp3->exp4 | exp7
exp7->exp3(“*” | “/”) exp4
exp4->”(“ exp “)”
生成ε-Parser得:
1 ε- Parser:
2 Start:28
3 X: Type From To
4 (: 0 0 1(finial)
5 ): 0 2 3(finial)
6 ε: 2 1(finial) 0
7 ε: 2 1(finial) 2
8 *: 0 4 5(finial)
9 /: 0 6 7(finial)
10 ε: 2 8 4
11 ε: 2 5(finial) 9(finial)
12 ε: 2 8 6
13 ε: 2 7(finial) 9(finial)
14 ε: 2 3(finial) 8
15 ε: 2 9(finial) 8
16 ε: 2 10 0
17 ε: 2 3(finial) 11(finial)
18 ε: 2 10 0
19 ε: 2 9(finial) 11(finial)
20 +: 0 12 13(finial)
21 -: 0 14 15(finial)
22 ε: 2 16 12
23 ε: 2 13(finial) 17(finial)
24 ε: 2 16 14
25 ε: 2 15(finial) 17(finial)
26 ε: 2 11(finial) 16
27 ε: 2 17(finial) 16
28 ε: 2 18 10
29 ε: 2 11(finial) 19(finial)
30 ε: 2 18 10
31 ε: 2 17(finial) 19(finial)
32 <: 0 20 21(finial)
33 >: 0 22 23(finial)
34 ==: 1 24 25(finial)
35 ε: 2 26 20
36 ε: 2 21(finial) 27(finial)
37 ε: 2 26 22
38 ε: 2 23(finial) 27(finial)
39 ε: 2 26 24
40 ε: 2 25(finial) 27(finial)
41 ε: 2 19(finial) 26
42 ε: 2 27(finial) 26
43 ε: 2 28 18
44 ε: 2 19(finial) 29(finial)
45 ε: 2 28 18
46 ε: 2 27(finial) 29(finial)
缺点:必须手动生成文法树
下一步是去除ε边
posted @
2010-07-09 17:45 lwch 阅读(372) |
评论 (0) |
编辑 收藏
《数据结构之线性表》本文阐述了线性表中的顺序存储结构和链接存储结构,其中主要介绍了单链表和循环双链表结构,线性表乃最基本的数据结构。
《数据结构之栈》本文阐述了线性表的一种特殊形式栈,其中主要介绍了栈的顺序存储结构和连接存储结构,压栈与出栈操作。
posted @
2010-07-08 00:12 lwch 阅读(2163) |
评论 (2) |
编辑 收藏
《用正则表达式构造词法分析器》这篇文章阐述了如何用正则表达式构造语法树并生成ε-NFA,去除ε边转换到NFA,最后转换到DFA的所有过程。学习编译原理的朋友们如果遇到什么问题不妨看下这篇文章。
源码下载
posted @
2010-07-03 18:14 lwch 阅读(3434) |
评论 (3) |
编辑 收藏
稍后制作相关文档..
1Regex Expression:(ab|a[a-z0-9]+|cd)*
2CharClassList:
3* 0
4| 1
5a 2
6b 3
7+ 4
8a - z 5
90 - 9 6
10c 7
11d 8
12
13ε-NFA:
14Start:26 End:26
15X:From To
162:0 1
173:2 3
18ε:1 2
192:4 5
205:6 7
216:8 9
22ε:10 6
23ε:10 8
24ε:7 11
25ε:9 11
265:12 13
276:14 15
28ε:16 12
29ε:16 14
30ε:13 17
31ε:15 17
32ε:17 10
33ε:11 17
34ε:5 16
35ε:18 0
36ε:18 4
37ε:3 19
38ε:17 19
397:20 21
408:22 23
41ε:21 22
42ε:24 18
43ε:24 20
44ε:19 25
45ε:23 25
46ε:26 24
47ε:25 26
48
49NFA:
50Start:26
51X:From To
527:26(finial) 21
532:26(finial) 1
542:26(finial) 5
553:1 3(finial)
567:3(finial) 21
572:3(finial) 1
582:3(finial) 5
595:5 13(finial)
606:5 15(finial)
615:7(finial) 7(finial)
626:7(finial) 9(finial)
637:7(finial) 21
642:7(finial) 1
652:7(finial) 5
665:9(finial) 7(finial)
676:9(finial) 9(finial)
687:9(finial) 21
692:9(finial) 1
702:9(finial) 5
715:13(finial) 7(finial)
726:13(finial) 9(finial)
737:13(finial) 21
742:13(finial) 1
752:13(finial) 5
765:15(finial) 7(finial)
776:15(finial) 9(finial)
787:15(finial) 21
792:15(finial) 1
802:15(finial) 5
818:21 23(finial)
827:23(finial) 21
832:23(finial) 1
842:23(finial) 5
85
86DFA:
87Start:26
88X:Froms Tos
897:26 (finial) 21
902:26 (finial) 1 5
918:21 23 (finial)
923:1 5 3 (finial)
935:1 5 13 (finial)
946:1 5 15 (finial)
957:23 (finial) 21
962:23 (finial) 1 5
977:3 (finial) 21
982:3 (finial) 1 5
995:13 (finial) 7 (finial)
1006:13 (finial) 9 (finial)
1017:13 (finial) 21
1022:13 (finial) 1 5
1035:15 (finial) 7 (finial)
1046:15 (finial) 9 (finial)
1057:15 (finial) 21
1062:15 (finial) 1 5
1075:7 (finial) 7 (finial)
1086:7 (finial) 9 (finial)
1097:7 (finial) 21
1102:7 (finial) 1 5
1115:9 (finial) 7 (finial)
1126:9 (finial) 9 (finial)
1137:9 (finial) 21
1142:9 (finial) 1 5
posted @
2010-07-03 00:21 lwch 阅读(1069) |
评论 (0) |
编辑 收藏
由于未进行类型检查直接生成的虚拟机代码所以可以在代码中直接使用变量.
Do语句:
For语句:
Function:
If语句:
Local语句:
Switch语句:
While语句:
阶乘:
posted @
2010-06-26 10:57 lwch 阅读(629) |
评论 (0) |
编辑 收藏