本仓库在原版 flex 基础上实现了 Unicode 扩展,可通过 %option unicode 或 --unicode 开关启用。
- 系统:macOS (aarch64)。
- 依赖:
autoconf,automake,bison,texinfo,help2man已预装;若缺失,可用 Homebrew 安装:
brew install autoconf automake bison texinfo help2man- 工程已包含
configure,可直接执行./configure生成 Makefile。
./configure
make构建过程中会自动生成两阶段的 flex 可执行文件以及 libfl。若需要重新配置,先 make distclean 再重复上述命令。
新增的 Unicode 选项使得规则中的 \uXXXX、\UXXXXXXXX 范围会被展开为 UTF-8 模式,字符类可以按码点粒度工作。示例:
%option unicode
CHINESE [\u4E00-\u9FFF]+
%%
{CHINESE} printf("CJK:%s\n", yytext);启用方式:命令行 flex --unicode demo.l,或在源文件中写 %option unicode。
- 进入
tests/,运行内置校验:
make unicode_utf8
./unicode_utf8 unicode_utf8.txt预期输出包括 CJK, GREEK, ARROWS, SYMBOLS, ASCII 等标识,表明同一类字符被完整识别。
2. 如需运行全部回归测试:
make checksrc/unicode_utils.{c,h}:完成 Unicode 字符类解析与 UTF-8 正则构造。src/scan.l:在词法器级别解析\u/\U转义并在编译期转换字符类。tests/unicode_utf8.l:作业附带的示例规则与输入文件。