2016-11-13 1 views
2

私は、一意でなければならない手続き(本質的に)の名前を使用するDSLを構築しています。Prolog DSLでの多重定義のISOエラー分類

2番目の定義を表すためにどのようなエラー用語を使用するのかは不明です。

exist_error sortaちょっとぴったりですが、私はそれに不快です。それは複数の定義ではなく、定義が不足していることを暗示しているようです。

permission_error(変更、手順、名前/ Arity)は有望そうですが、「一部の人はこれを行うことができますが、あなたはできません」という意味です。それ以上の啓蒙がなければ、私はこれを使用します。

syntax_error sortaちょっと変わっていますが、read_term専用です。

ここに自分自身を定義する必要がありますか?スペックは「あなたができるときにこれらを使う」と言っています。

答えて

0

Prologプロジェクターが複数のユーザーによって使用されていたSWISHまたはPenginesは古くからあり、おそらくバッチ処理を通じて、リソースが他のユーザーによってブロックされる可能性はあまりありませんでした。

「操作は、システムができる一般的であること、操作の種類の中 であることしようとしている時に許可エラーが発生します。SICStusプロローグはここでそれを説明して誤差項permission_error/3の説明はmostlikelyです のうち、一般的に許可されている種類の中では をリクエストしていますが、この特定の時間は許可されていません。
http://sicstus.sics.se/sicstus/docs/4.0.4/html/sicstus/ref_002dere_002derr_002dper.html

しかし、私は誤差項の名から、我々は唯一のいくつかのアクセスまたは修正規則に違反し、ないなDSLなどの構文構造の上にいくつかの意味上の制限の適用範囲を期待し、同意するものとします。

しかし、これらの問題を抱えているのはおそらくあなただけではありません。 Prologシステムにエラー・タームをユーザーフレンドリなテキストと簡単に関連付けることができるメッセージング・サブシステムがある場合、新しいエラー用語を導入しない理由はありません。

あなたがフォロー誤差項がすでにSICStusプロローグによって提案し、ISOコア規格では見られない採用でした:

「一貫性エラーがない2つの有効な値または 操作が矛盾しているように指定されている場合に発生しますお互いに。" http://sicstus.sics.se/sicstus/docs/4.0.4/html/sicstus/ref_002dere_002derr_002dcns.html

「目標や宣言が間違っ 場所に表示されたときに、コンテキストエラーが発生した場合、またはのような目標や 宣言に何か問題がある場合とない場合があり;ポイントは、それは場違いであるということです。 " http://sicstus.sics.se/sicstus/docs/4.0.4/html/sicstus/ref_002dere_002derr_002dcon.html

特にSWI-Prologは、メッセージング・サブシステムを持っており、SWI-Prologは長い他のPrologのシステムとの相互運用性にさよならを言っています。したがって、SWI-Prologsメッセージングを使用する場合の唯一の危険性は、特定のロックインであり、それはあなたを気にしないかもしれません。

+0

私はあまりにも多くのことを読んでいます。 私のメッセージがSWI-Prologメッセージに適合しているといいですね。 – Anniepoo

+0

あなた自身を確認してください。http://www.swi-prolog.org/pldoc/doc_for?object=print_message/2とhttp://www.swi-prolog.org/pldoc/doc_for?object=message_hook/3。 「ロギング」カテゴリのエラーがあります。 –

関連する問題