7 Error messages

以下のエラー・メッセージが Vmgen によって作成されます:

# can only be on the input side

【# は入力側にのみ指定できます】 ‘--’ (出力側) の後側で命令ストリーム(instruction-stream)のプレフィックス(通常は ‘#’)を使用しました。 これは前側(入力側)でのみ使用できます。

the prefix for this superinstruction must be defined earlier

【このスーパー命令(superinstruction)のプレフィックスは事前に定義する必要があります】 直接プレフィックス(たとえば ab = a b)を定義せずにスーパー命令(superinstruction)定義(たとえば abc = a b c)を行いました。 See Superinstructions

sync line syntax

【同期行構文】プリプロセッサ(たとえば m4)を使用して Vmgen 入力コードを生成している場合は、 #line (別名 sync lines;同期行)ディレクティブを作成するとよいでしょう。 このエラーは、 そのような行が Vmgen が期待する構文に無いことを示します(こんなことが起こってはいけません。 問題の行をバグ・レポートで報告してください)。

syntax error, wrong char

【構文エラー、 不正な文字】構文エラーです。 エラーの場所がすぐにわからない場合は、 次の点を確認すると役立つ場合があります: C 言語のコードが波かっこ({};braces)で区切られていない VM 命令に空行を入れていませんか? 波かっこで区切られた C 言語のコードを使用した場合、 先頭に空白を入れずに、 行の先頭に区切りの波かっこを置きましたか? 区切りの波かっこを忘れせんでしたか?

too many stacks

【スタックの数が多すぎます】Vmgen は現在、3 つのスタック(に加えて命令ストリーム)をサポートしています。 さらに必要な場合は作者にご連絡ください。

unknown prefix

【不明のプレフィックスです】スタック項目が定義された型プレフィックスと一致しません(スタック・プレフィックス削除後)。 そのスタック項目に必要な型プレフィックスを宣言するか、 別の型プレフィックスを使用する必要があります

unknown primitive

【不明のプリミティブです】最初に単純な VM 命令(simple VM instruction)を定義せずに、 スーパー命令(superinstruction)定義で単純 VM 命令の名前を使用しました。

さらに、 C 言語のコンパイラは、 Vmgen によって生成されたコードが原因でエラーを生成する可能性があり、 たとえば、 あなたは型キャスト関数を定義する必要があるかもしれません。