2017-10-31 1 views
0

Gobo compiler and its tools을 사용하여 xplain2sql을 빌드하려고합니다. geant compile 명령을 실행 한 후에 나는 유사한 오류가 많이 얻을 :STRING_8이 is_equal의 STRING_UC를 준수하지 않습니다.

[야유는] 클래스 SQL_GENERATOR_TSQL65 (SQL_GENERATOR, 2610,5) : 실제 인수 1의 유형 'STRING_8은'UC_STRING ' 를 입력 적합하지 않습니다

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 

것은 나도 몰라 : UC_STRING '

위 오류'클래스의 '기능'is_equal에서 형식 인수로이 코드의 the last line을 말한다 에펠,이 코드를 컴파일하고 싶습니다. 다른 프로그래밍 언어에서 상식과 경험을 사용하여 수정할 수 있었던 다른 빌드 오류가 있었지만이를 처리하는 방법을 모르겠습니다.

답변

1

이 경우 is_equal (..) 대신 same_string (..)을 사용할 수 있다고 생각합니다.

+0

일부 오류는 있지만 모든 오류는 해결되지 않았습니다. 그것들 중 일부는'is_equal (..)'을 호출하는'equal (..)'(표준 라이브러리에서)을 가리킨다. 'is_equal (..) '처럼'equal (..) '을 문자열로 대체 할 수 있습니까? 내가 문서에서 찾을 수 있지만 행운을 찾으려고 노력하고있어. –

+0

나는'is_equal (..)'에 대한 몇 가지'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에서 찾을 수 있습니다.

관련 문제