スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

【同じタグを付けた記事の一覧】

Mery(テキストエディタ)で Prolog ソースコードの色分け表示

2015年04月15日(水)20時15分

Mery 用 Prolog ソースコード色分け表示ファイル

テキストエディタ「Mery」で Prolog のソースコードを色分け表示するための構文ファイルを作ってみました。

ダウンロード(リンク先ページの「PrologMSY.zip」)

Prolog は、処理系によって組み込み述語や演算子に結構な違いがあるため、それぞれの処理系に応じて、以下のような複数の構文ファイルとなりました。

PrologAZ.msy
「AZ-Prolog」用の構文ファイル。
PrologGNU.msy
「GNU Prolog」用の構文ファイル。
PrologSWI.msy
「SWI-Prolog」用の構文ファイル。
PrologYAP.msy
「YAP Prolog」用の構文ファイル。
PrologMAX.msy
四つの処理系のいずれか一つにでも含まれている「演算子」と「述語」を全て色分け表示する最大セット。
PrologMIN.msy
四つ全ての処理系が共通で含んでいる「演算子」「述語」のみを色分け表示する最小セット。

使い方

  1. Mery のメニューバーで「編集 → 編集モード → 編集モードの設定」をたどり「編集モードの設定」ダイアログを開く。
  2. 「編集モードの設定」ダイアログで「新規作成」し言語名を入力。
  3. 入力した言語名をダブルクリックし「”言語名”のプロパティ」ダイアログを開く。
  4. 「”言語名”のプロパティ」ダイアログで「インポート」し目当ての構文ファイル「Prolog~.msy」を選択。
  5. 「”言語名”のプロパティ」ダイアログの「関連付け」タブで拡張子を「追加」。

なお、拡張子「.pl」は Perl も使用しているため、これに関連付けする場合は、「上へ」ボタンで Perl より上位へ配置するか、読み込み毎に手作業で Prolog 表示に切り替えるかのどちらかになります。

強調文字列

あまりカラフルにするのもどうかと思ったのですが、いろいろあって結構カラフルになってしまいました。

  1. 演算子および単体記号「(),.[]{|}」。
  2. 変数(英大文字またはアンダーラインで始まる単語)。
  3. 数値。
  4. 組み込み述語
  5. 引用符(シングルクォーテーション)で囲まれた文字列。

上記で一つ納得がいっていないのが「5.」で、Prolog において引用符で囲まれた文字列は「アトム」扱いになりますから、他の「文字列定数や組み込みでない述語名としてのアトム」と同様に、「色を付けない」ようにしたかったのです。
が、Mery の構文ファイルにおいて「指定文字列を着色しない」という設定が無い為、やむなく着色してあります(これを着色しないと、引用符に囲まれた文字列内に「変数」や「数値」等の条件と一致する箇所があった場合、そこが部分着色されるという「より望ましくない結果」となってしまうため)。

SWI-Prolog 用の残念な点

SWI-Prolog 用の構文ファイルは「組み込み述語」の着色に少し残念な点があり、例えば「member/2」のような、比較的メジャーな述語名が着色されません。
着色されない、つまり「組み込み述語ではない」のですが、しかしこれは標準で使えます。
というのも、SWI-Prolog には「autoload」なる機能があり、「”準”組み込み述語」と言えるような主要な述語を含む拡張ライブラリに関しては、その述語の実行時点で、同名のユーザー定義述語が存在しない場合は、自動で読み込むようになっているようなのです。
そのため、「まるで組み込み述語のように使える」のですが、あくまでも拡張ライブラリ述語であり、起動時には読み込まれていないため、「current_predicate/1」では取得できませんでした。
今回作った構文ファイルは、「Prolog の組み込み述語一覧が欲しい」で書いた通り、「current_predicate/1」で取得した組み込み述語一覧を基に生成しているため、SWI-Prolog に関しては、「標準で使用できるが着色されない」という述語がかなりあると思われます。

関連記事

【同じタグを付けた記事の一覧】
プログラミング Prolog Mery

スポンサーサイト

コメントの投稿

非公開コメント

最新記事
最新コメント
Amazonおまかせリンク
カテゴリ
タグクラウド
Amazonお買い得ウィジェット
カレンダー
07 | 2017/08 | 09
- - 1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31 - -
月別アーカイブ
プロフィール

電脳太助

Author:電脳太助
Website:電脳スピーチ web

RSSリンクの表示
メールフォーム

名前:
メール:
件名:
本文:

サイト内検索
Ads by Google
FC2アクセスランキング
Ads by Google
FC2拍手ランキング
ユーザータグ

音楽管理(66)
ポータブル(57)
ソフト紹介(44)
プログラミング(42)
音声技術(41)
自作ソフト(35)
サイト運営(32)
FC2(31)
ブログ(30)
iTunes(27)
Windows(25)
LISMO(24)
音声合成(23)
音声認識(22)
x-アプリ(22)
電子ブック(22)
eラーニング(20)
バックアップ(19)
語学学習(19)
foobar2000(18)
ソースコード(18)
WindowsLiveWriter(15)
画像管理(15)
C++(14)
アフィリエイト(10)
DnspTools(10)
fi-6130(9)
FLAC(9)
JavaScript(9)
ウォークマン(9)
英語音読学習計画(8)
Gracenote(8)
Prolog(8)
ベクター(8)
雑記(8)
CodeBlocks(7)
SyntaxHighlighter(7)
TraConv(7)
spcbght(7)
wxWidgets(7)
VirtualBox(6)
W63CA(6)
DCP-J552N(6)
WinRT(6)
WindowsLiveMesh(6)
iGoinLM(6)
英語発音矯正実験(6)
ExactAudioCopy(6)
MP3Gain(6)
LAME(5)
音楽技術(5)
Mery(5)
楽器演奏(5)
GalateaTalk(4)
nLite(4)
WindowsLiveSkyDrive(4)
ホームページ(4)
GalateaProject(4)
MIDI(4)
LLVM(4)
PC-98(3)
カウンター(3)
AACGain(3)
iTCDini(3)
OverCutChecker(3)
拍手(3)
PK-513L(3)
UniversalExtractor(3)
アクセスランキング(3)
ImageCompositeEditor(2)
アクセス解析(2)
OCR(2)
qtaacenc(2)
資格試験(1)
AquesTalk(1)
AquesCmdDl(1)

FC2アクセスランキング
最新トラックバック
アクセスランキング
[ジャンルランキング]
コンピュータ
105位
アクセスランキングを見る>>

[サブジャンルランキング]
ソフトウェア
8位
アクセスランキングを見る>>
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。