gawkスクリプト用のフレックスパーサーを書いています。スラッシュ(/)文字の用途を区別する際に問題が発生しています。
明らかに、単一の/は除算の演算子になりますが、2つのスラッシュは正規表現または除算の両方である可能性があります。今、それは解析します
int((r-1)/3)*3+int((c-1)/3)+1
正規表現を持つように
/3)*3+int((c-1)/
意図した除算演算の代わりに。フレックスに数式として認識させるにはどうすればよいですか?
今のところ、これはgawkの正規表現を認識するための私のフレックス正規表現です。
EXT_REG_EXP "\/"("\\\/"|[^\/\n])*"\/"
除算演算子は、私の演算子リストに含まれている必要があります。
OPERATOR "+"|"-"|"*"|"/"|"%"|"^"|"!"|">"|"<"|"|"|"?"|":"|"~"|"$"|"="
しかし、フレックスの正規表現は貪欲なので、2つの除算を正規表現として扱うと思います。