[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:38053] Re: woody と sarge の flex/m4 の違い
武藤@Debianぷろじぇくとです。
At Fri, 22 Aug 2003 11:46:22 +0900,
Naotaka YAMAMOTO wrote:
> flex を使っているのですが woody では問題無く通っていたコードが sarge
> では通らないという現象に当たってしまいました。flex or m4 の問題なのか
> ソース自体を修正すべきなのか分からないので、ご助言頂けますでしょうか。
debian-develに「pitfalls in flex 2.5.xx」という題で、Bastian
Kleineidam氏が次のようなメールを出しています。
-------------------------------------------
I've seen that a lot of release critical errors come from the new
flex 2.5.xx version in unstable.
Here are some of the more common pitfalls:
1) These strings are not allowed in any flex input files, not
even in comments: "m4_" "[[" "]]"
So if you have x[i[j]] in your C code, flex will fail!
Solution: dont use m4_ prefix and put a space between [[ and ]]
see flex.info, node "M4 Dependency" for more info
2) yylineno is redefined (eg int yylineno = 0;)
Solution: Rename this variable to something else, eg mylineno.
Or use the internal line counting of flex with
"%options yylineno" and "int lineno() const" for accessing.
3) yytext_ptr is undefined
You use unput() after the second %% in your lexer file.
This is not possible anymore due to a bug in flex.
See http://bugs.debian.org/189332 for more info.
Solution: move the unput() usage in the rules or header section
(ie between or above the two %%).
Or wait until the flex people fix this :)
-------------------------------------------
あと、旧来との互換性のために、flex-oldというパッケージがありますね。
--
武藤 健志@Debian/JPプロジェクト (kmuto@debian.org, kmuto@debian.or.jp)
株式会社トップスタジオ (kmuto@xxxxxxxxxxxxxxx)
URI: http://www.topstudio.co.jp/~kmuto/ (Debianな話題など)