コンパイラ作成日誌0x4 『作業効率化』

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前
住所: 東京

コンパイラ作成日誌0x4 『作業効率化』

投稿記事 by MoNoQLoREATOR » 11年前

とりあえず、前回の予告通り動作確認です。

…と思ったのですが生成されたCソースのコンパイルが通らないではありませんか。
なんということでしょう。

とりあえずVSでおなじみのC4996エラーを潰してみましたが、それでもなお「未定義の外部シンボル_yywrapが参照されました」というエラーが出るではありませんか!

調べてみると、_yywrapではありませんが、yywrapは常に1を返す関数だそうです。
とりあえずそれを定義すればよいのでは?と思い一番下に
► スポイラーを表示
と追加。
コンパイル通るじゃありませんか。
これはflex.exeさんが仕事し忘れているのでは?

まあいいでしょう。この際それは気にしないことにします。
というわけでやっと動作テストです。
画像
はい、こちらの期待通りに動いているようですね。
次回はbisonで文法チェックです!



数日間bisonやflexを経験してみて、一つ思うことがあります。
それは、コンパイルする時にいちいちコマンドを打つのが面倒だということです。
そこで、コンパイル対象ファイルをドラッグ&ドロップするだけでコマンドライン付きでflex.exeを実行してくれるプログラムをつくることにしました。
► スポイラーを表示
FantomWaves.h
は自作ライブラリのメインヘッダです。今のところ公開されていません。

しかし、コンパイルは常に失敗し、「~.cが開けない」と言われてしまいます。
今のところ原因が思いつきません。
これも次回の課題ですね。



それでは、良いプログラミングライフを!

アバター
へろりくしょん
記事: 92
登録日時: 14年前

RE: コンパイラ作成日誌0x4 『作業効率化』

投稿記事 by へろりくしょん » 11年前

MoNoQLoREATOR さんが書きました: 数日間bisonやflexを経験してみて、一つ思うことがあります。
それは、コンパイルする時にいちいちコマンドを打つのが面倒だということです。
そこで、コンパイル対象ファイルをドラッグ&ドロップするだけでコマンドライン付きでflex.exeを実行してくれるプログラムをつくることにしました。
Visual Studio を使っているのでしたら、カスタムビルドの設定で自動的にコンパイルしてくれますよ。
そして、生成された C のソースファイルの依存関係を設定していれば、全て上手い事ビルドしてくれます。

カスタムビルドを使わない派だったらごめんなさい。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前

Re: コンパイラ作成日誌0x4 『作業効率化』

投稿記事 by h2so5 » 11年前

...バッチ処理までC言語で書くんですか?

アバター
MoNoQLoREATOR
記事: 284
登録日時: 14年前
住所: 東京

Re: コンパイラ作成日誌0x4 『作業効率化』

投稿記事 by MoNoQLoREATOR » 11年前

問題が解決しました。
コマンドラインの書式が間違っていました。
「flex.exe file.l -o output.c」
ではなく
「flex.exe -ooutput.c file.l」
としなければならなかったようです。
特殊な書式だなと思うのは私だけなのでしょうか?


>>へろりさん
ありがとうございます!
そんなことが可能だったとは知りませんでした。
さっそく試してみて、その便利さに感動しています。

>>h2so5さん
「バッチ処理」…?バッチ…どこかで聞いたような…ハッ!バッチファイル!?
そうだ!その手があったか!!
コンソールウィンドウと向き合う機会が少ないので、全く思いつきませんでした。
バッチファイルについての知識もほとんど皆無ですし。