怎么用lex处理DFA?# Programming - 葵花宝典
a*s
1 楼
【 以下文字转载自 CS 讨论区 】
发信人: arabidopsis (moon), 信区: CS
标 题: 怎么用lex处理DFA?
发信站: BBS 未名空间站 (Sat Feb 3 16:54:08 2007), 转信
正在看lex。里面举的例子都挺简单的,似乎
也看懂了。可是还是解决不了这类问题。
比如说:
1 -> a 2
1 -> b 3
2 -> a 2
3 -> b 3
2 ->
3 ->
(这个应该对应regular expression a*|b* 吧?)
我怎么用lex生成一个transition table,然后用这个表
判断某个字串是否符合该规则?
我现在想的是每个状态用一个树的节点表示,每个节点
含若干个指针指向前面的和后面的节点,并且存储导致
状态转换的条件。然后处理字串的每个字符来遍历这个树。
可是总觉得这个不太可行,主要是因为每个节点可能指向
的节点数目在lex扫描之前是不确定的。
发信人: arabidopsis (moon), 信区: CS
标 题: 怎么用lex处理DFA?
发信站: BBS 未名空间站 (Sat Feb 3 16:54:08 2007), 转信
正在看lex。里面举的例子都挺简单的,似乎
也看懂了。可是还是解决不了这类问题。
比如说:
1 -> a 2
1 -> b 3
2 -> a 2
3 -> b 3
2 ->
3 ->
(这个应该对应regular expression a*|b* 吧?)
我怎么用lex生成一个transition table,然后用这个表
判断某个字串是否符合该规则?
我现在想的是每个状态用一个树的节点表示,每个节点
含若干个指针指向前面的和后面的节点,并且存储导致
状态转换的条件。然后处理字串的每个字符来遍历这个树。
可是总觉得这个不太可行,主要是因为每个节点可能指向
的节点数目在lex扫描之前是不确定的。