2017-10-31 12 views
0

xplain2sqlGobo compiler and its toolsで作成しようとしています。 geant compileコマンドを発行した後、私は同様のエラーの多くを得る:STRING_8はis_equalのSTRING_UCに準拠していません

[野次る]クラスSQL_GENERATOR_TSQL65(SQL_GENERATOR、2610,5):タイプ 実引数#1の 'STRING_8は' 'UC_STRING' とタイプに準拠しない 機能UC_STRING 『エラー以上

「クラスで』 `is_equalにおける仮引数のこのコードのthe last lineを参照:

sql_infix_expression (a_left: XPLAIN_EXPRESSION; an_operator: STRING; a_right: XPLAIN_EXPRESSION): STRING 
     -- SQL expression for multiplication/division, etc. 
    require 
     valid_left: a_left /= Void 
     valid_right: a_right /= Void 
     operator_not_empty: an_operator /= Void and then not an_operator.is_empty 
    local 
     left_value, 
     right_value: STRING 
    do 
     if 
      an_operator.is_equal (once "+") and then 

私は知りませんエッフェル、私はちょうどこのコードをコンパイルしたい。他のプログラミング言語の常識や経験を使って修正できる他のビルドエラーがありましたが、これに対処する方法はわかりません。

答えて

1

この場合、is_equal (..)の代わりにsame_string (..)を使用できると思います。

+0

これはいくつかのエラーでは機能しましたが、すべてではありませんでした。 'is_equal(..)'を呼び出す 'equal(..)'(標準ライブラリ内)の本体を指すものもあります。 'is_equal(..) 'と同じように' equal(..)'の文字列のみの置き換えがありますか?私はドキュメンテーションでそれを見つけることを試みていますが、運がありません。 –

+0

私はいくつかの 'equal(..)'呼び出しを 'is_equal(..)'に変更して、エラーメッセージがこれらの特定の行やコードによって生成されているかどうかを確認し、 'same_string(..) ) '。これは面倒な作業ですが、うまくいくようです。 –

+0

この質問で私をさらに助けたいと思うかもしれません:https://stackoverflow.com/questions/47045431/getting-stack-trace-from-geant –

0

Goboコンパイラには、CATコールのエラーを警告にするオプションがありますが、ビルドを正常に完了するのには役に立たなかった。しかし、このプロジェクトはEiffelStudioと罰金コンパイル:

ec -config xplain2sql.ecf -c_compile -finalize 

生成される実行可能ファイルは、EIFGENs\xplain2sql\F_codeで見つけることができます。

関連する問題