STRING_8 不符合 STRING_UC 中的 is_equal

STRING_8 does not conform to STRING_UC in is_equal

我正在尝试构建 xplain2sql using Gobo compiler and its tools。发出 geant compile 命令后,我得到了很多类似的错误:

[CATCALL] class SQL_GENERATOR_TSQL65 (SQL_GENERATOR,2610,5): type 'STRING_8' of actual argument #1 does not conform to type 'UC_STRING' of formal argument in feature `is_equal' in class 'UC_STRING'

以上错误是指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

我不懂Eiffel,我只想编译这段代码。还有其他构建错误,我可以使用一些常识和其他编程语言的经验来修复这些错误,但我不知道如何处理。

在这种情况下,我认为您可以使用 same_string (..) 代替 is_equal (..)

Gobo 编译器中有一个选项可以将 CAT 调用错误转换为警告,但它没有帮助我成功完成构建。但是,该项目编译正常 EiffelStudio:

ec -config xplain2sql.ecf -c_compile -finalize

可以在 EIFGENs\xplain2sql\F_code 中找到生成的可执行文件。