随笔-91  评论-137  文章-0  trackbacks-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 on 2010-07-09 17:45 lwch 阅读(372) 评论(0)  编辑 收藏 引用 所属分类: NScript

只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理