「むかしむかし、先週の金曜日のようです」Unicodeデータを処理できる字句解析器が必要でした。
字句解析プログラムの作成者は
Flexを使用したいと考えていましたが、これは全体的な問題であることが判明しました。
Flex自体は、Unicodeデータの操作方法を知りません。 オートマトンを構築するとき、文字は7または8ビットであると想定されます。
flex-2.5.4a-unicode-patchに出会ったのは、16ビット文字と特定のバージョンの場合のみで、それが暗示するすべてを備えています。
一方、
神聖な神聖な再構築ツール
に登るのに汚れた手を必要としない、シンプルで非常に実行可能なソリューションがあります。
発表する
%option 8bit %option c++ ... alpha [A-Za-z] U1 [\x80-\xbf] U2 [\xc2-\xdf] U3 [\xe0-\xef] U4 [\xf0-\xf4] ualpha {alpha}|{U2}{U1}|{U3}{U1}{U1}|{U4}{U1}{U1}{U1} uname ({ualpha}|\_)* ...
およびvoilà...を使用できます。
%% ... {uname} { ... yylval.str_ = std::string(yytext); return XyzParser::ttName; }