[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:38052] woody と sarge の flex/m4 の違い
山本直孝と申します。
flex を使っているのですが woody では問題無く通っていたコードが sarge
では通らないという現象に当たってしまいました。flex or m4 の問題なのか
ソース自体を修正すべきなのか分からないので、ご助言頂けますでしょうか。
環境としては、woody と sarge で flex と m4 のバージョンは以下のように
なっています。m4 は見比べてみましたが、 debian/ 以下のみの修正のようで
した。flex のバージョンアップで何か違いが出ていると思われます。
woody
ii flex 2.5.4a-24 A fast lexical analyzer generator.
ii m4 1.4-14 a macro processing language
sarge:
ii flex 2.5.31-12 A fast lexical analyzer generator.
ii m4 1.4-15 a macro processing language
sarge での出力は、以下のようになっています。
> flex ./cmd.l
stdin:2464: m4: Warning: Excess arguments to built-in `m4_ifdef' ignored
また、生成される C のソースコードを見ると途中で解析を止めているのか、
最後の方に書いてある関数が C のソースからは消えているような状態です。
少し調べましたところ、
http://www.winehq.org/hypermail/wine-patches/2003/05/0295.html
にある記事と同じ現象だったので ]] を ] ] に修正(スペースを入れる)した
ところ、問題無くコンパイルすることが出来ました。
具体的には、以下の修正をソースに施しました。
diff -r1.1 cmd.l
55c55
< { "open", token(OPEN), "open [<server> [<port>]]", "Connect a server." },
---
> { "open", token(OPEN), "open [<server> [<port>] ]", "Connect a server." },
ソースを修正すべきなのか(暫定的にはソースの修正で回避しましたが)、
flex もしくはm4 に某かの不具合がありそうかご助言頂ければ幸いです。
よろしくお願い致します。
----------
産総研・グリッド研究センター http://unit.aist.go.jp/grid/
太陽系観隊 http://centaurs.mtk.nao.ac.jp/swat/
山本直孝 Naotaka Yamamoto
E-mail: naotaka@xxxxxxxxxxxxxx