C ++ «ожидаемое первичное выражение до» («токен») - PullRequest
0 голосов
/ 24 мая 2011

У меня есть этот код:

FILE *f = fopen(intPath, "r");
Node *n;
if (f) {
    try {
        n = parse(f, intPath);
    } catch (SyntaxError e) {
        fclose(f); /***** line 536 *****/
        throw LangException(
            builtin_classes::exception_class::create_ImportError(
                String::fromAscii(e.filename)->
                append(String::fromAscii(":"))->
                append(String::fromInt(e.line))->
                append(String::fromAscii(":"))->
                append(String::fromInt(e.col))->
                append(String::fromAscii(": syntax error: "))->
                append(String::fromAscii(e.message))
        );
    }
    fclose(f);
    return n->eval(scope);
} else {
    throw LangException(
        builtin_classes::exception_class::create_ImportError(
            String::fromAscii("failed to open file for reading")
        ),
        line,
        col
    );
}

И компилятор выдает эту ошибку:

node.cpp: 537: 40: ошибка: ожидаемое первичное выражение до ‘(’ token
node.cpp: 544: 94: ошибка: ожидается ‘)’ до ‘;’ токен

Я понятия не имею, что это могло бы быть, тем более что в этом примере кода есть другое утверждение, которое делает то же самое, и оно не вызывает ошибку.

Ответы [ 4 ]

5 голосов
/ 24 мая 2011
throw LangException(
   builtin_classes::exception_class::create_ImportError(
      String::fromAscii(e.filename)->
      append(String::fromAscii(":"))->
      append(String::fromInt(e.line))->
      append(String::fromAscii(":"))->
      append(String::fromInt(e.col))->
      append(String::fromAscii(": syntax error: "))->
      append(String::fromAscii(e.message))
   )  // This closes the function call
; // You didn't close the throw here!
3 голосов
/ 24 мая 2011

Ваш ( и ваш ) не совпадают в этом большом, первом throw LangException блоке.

2 голосов
/ 24 мая 2011

Именно то, что он говорит. Вам не хватает токена ‘)’ до ‘;’ в этой строке.

LangException(...

не закрыто.

2 голосов
/ 24 мая 2011

Компилятор скажет вам, что не так. throw LangException( не имеет ).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...