Windows環境の標準ロジバンパーサーの作成方法。

ロジバンの公式パーサーが、今でも16ビットDOSのコマンドとして配布されているので

ついに自宅のWindows10環境で動かないのに困ったのでコンパイルしてバイナリ用意したのですが

ロジバン周辺はプログラム自体を理解する人は少なそうなので、一連の手順をメモしておきます。

 

まずはオフィシャルで公開しているプログラムのソースコードを以下のURLからダウンロードしてきます。

https://mw.lojban.org/papri/Official_LLG_Parser

おすすめはバージョン3.0が最新版なので、こちらでしょう。

http://home.ccil.org/~cowan/parser-3.0.00.tar.gz

ダウンロードしたファイルはtgz形式で圧縮されているので解凍できない場合は、Lhaplusを窓の杜からダウンロードしてきてインストールして解凍してください。

 

窓の杜 - Lhaplus

http://www.forest.impress.co.jp/library/software/lhaplus/

 

このC言語で書かれたソースコードをコンパイルして実行可能なプログラムにします。

CygwinなどをインストールすればgccでUnixやMacと同じ方法でコンパイルもできますが、Cygwin越しにしか使えないバイナリが出来てしまうので、実際の使いやすさを考えると、VisualStudioを使ってコンパイルしてしまう方が良いでしょう。

 

現在は開発環境この程度であれば、すべてフリーでそろえられます。

Microsoftも開発環境はかなりのぶぶん無料でダウンロードできるようになっています。

現在は正式にはVisualStudio2013が最新版ですのでURLは下のものをダウンロードしてくれば大丈夫です。

https://www.microsoft.com/ja-jp/download/details.aspx?id=40784

見つからない場合でも、検索エンジンで Visual C++ で検索すればなんとか手に入るでしょう。

 

ダウンロードしたら、インストールに結構時間がかかるかもしれませんが、気長に待ちましょう。

 

その後、VisualStudioが立ち上がったら「新しいプロジェクト>Visual C++空のプロジェクト」を選択してください。

 

ソースファイルを選択して、「追加>既存の項目」を選択して、出てきたダイアログですべてのファイルを選択して追加します。

 

その後、「ビルド」を実行すればコンパイル終了です。

 

これで、パーサーの作成は完了です。

 

ビルドに失敗して、下の様なエラーメッセージが出る場合は、C言語標準のstrcpyという関数の自由な使用をwindows側で規制しているのが原因なので。

 

エラー 1 error C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. d:\dl\parser-3.0.00\termin.c 28 1 Project2

これを解決する場合は、コンパイルオプションで読み込んだファイルの中の、logiban.hの先頭に

 

#define _CRT_SECURE_NO_WARNINGS

 

を一行追加してください。その後もう一度ビルドを実行すると、コンパイルが実行されます。

 

作ったファイルは、あなたの「ドキュメント」ディレクトリ以下の

\Documents\Visual Studio 2013\Projects

以下に自分のプロジェクトがあるので、"(自分の作ったプロジェクト名前/Debug)"ディレクトリ以下に出来ているのでそれを使ってください。

 

んー、オフィシャルのパーサーも作ってかなり時間がたっているので色々と周りの環境が変化しているのについていけなくなっている印象を受けますね。

ロジバンも新文法が固まるまでは、こちらが公式なのですから、このあたりの環境を整備しないと人が入ってこなくて困る気がします。

 

コンパイルしたファイルを置いておきますが、多分ロジバンに興味のある人が気軽にアクセスできる場所に安定して置いておくべきなんでしょうね。

parser.zip

投稿者 baban 2015/11/01 at 07:25

no comments no trackbacks

コメント

(leave url/email »)

前のコメント