词法分析器使用以下模式来识别字母{a,b,c}上的三个标记T 1 ,T 2和T 3 。
T 1 :a?(b∣c)* a
T 2 :b?(a∣c)* b
T 3 :c?(b∣a)* c
请注意,“ x?”表示符号x出现0或1。还要注意,分析器输出与可能的最长前缀匹配的令牌。
如果字符串bbaacabc由分析程序处理,则它输出的令牌序列是以下哪一项?
(A) T 1 T 2 T 3
(B) T 1 T 1 T 3
(C) T 2 T 1 T 3
(D) T 3 T 3答案: (D)
说明:符号x出现0或1。 T1:(b + c)* a + a(b + c)* a
T2:(a + c)* b + b(a + c)* b
T3:(b + a)* c + c(b + a)* c
给定字符串:bbaacabc
最长的匹配前缀是“ bbaac ” (可以由T3生成)
其余部分(在前缀之后)“ abc” (可以由T3生成)
因此,答案是T 3 T 3
这个问题的测验