nDiki : 1999年01月24日

1999年1月24日 (日)

Naney's Computer Log 1999年1月24日

スポンサード リンク

flex から XS へ、Segmentation fault

Perl から flex の出力した yylex() を呼び出す実験。 まずは簡単な字句解析仕様記述を書いて、flex を通す。 この出力に yylexc2xs と名前をつけたスクリプトを通して XS に変換する。 これは単純に先頭に XS のためのヘッダファイルのインクルードの行を追加し、最後に Perl から yylex を呼ぶためのモジュール定義とコードを追加するだけのもの。

これをコンパイルして Perl から呼び出してみる。 Segmentation fault。 実際には Perl から l2xs_yylex() というCの関数を呼んでそこから flex の出力する yylex() を呼んでいる。 l2xs_yylex() から yylex() を呼ばないようにすると正常終了するので、やはり yylex() か、そこから先でなにかがあるようだ。

入力の問題かと yyin の値を Perl から渡すようにしたり l2xs_yylex() でファイルをオープンしてそれを設定したりしてから yylex() を呼んでも結果は同じ。

flex の出力は shared library にできないのか? Perl + shared library ということでデバッガでどうすればいいのかもわからず。

とりあえず棚上げ。 CPAN から ParseLex-2.05.tar.gz と Parse-Yapp-0.21.tar.gz をとってくる。 Perl 内で済ませられればそれでいいかな。 というかこの2つの出来がよければ自作する必要性もなくなるのだが。

[ 1月24日全て ]

About Me

Naney Naney

Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。

About nDiki

nDiki1999年1月に始めたコンピュータ日誌を前身とする NaneyWeb 日記(兼パーソナルナレッジベース)です。

#nNote タグがついている記事は他の記事に比べて、より断片的・未整理・不完全なちょっとしたノートです。まだ結論に至っていない考えなども含まれます。頻繁/大幅に更新したり削除したりすることがあります。

※本サイトの内容は個人的見解であり所属組織とは関係ありません。

Other Notes

ナレッジベースアプリケーション Obsidian で書いているノートの一部を notes.naney.org で 公開しています。

最近検索されている記事

月別インデックス
Process Time: 0.044711s / load averages: 0.22, 0.43, 0.47
nDiki by WATANABE Yoshimasa (Naney)
Powered by DiKicker