1

我有一个用以下定义指定的词法分析器:

ws      [ \t\n]+
punc            (\.|\,|\!|\?)
word        ({punc}|[a-zA-Z0-9])*
special         (\%|\_|\&|\$|\#)

我有一些需要解析的 utf-8 文件,当涉及到这些字符时,它自然会爆炸。我知道过去曾多次问过类似的问题,但都没有任何帮助。我尝试使用答案中给出的方法,但失败了。我猜问题出在word上面的定义中?

如果有人可以详细说明将 UTF-8 编码与 flex 结合使用的一般概念,那将非常有帮助。

4

1 回答 1

2

尝试(处理 -with flex -8):

%%
ws      [ \t\n]+
punc            (\.|\,|\!|\?)
word        ({punc}|[a-zA-Z0-9\x80-\xf3])*
special         (\%|\_|\&|\$|\#)

%%

(编码有点粗略......)OP提到的链接导致 Kaz的答案更加准确,wrt允许的序列。

于 2012-12-09T17:50:34.637 回答