int и логическая ошибка - PullRequest
       19

int и логическая ошибка

0 голосов
/ 07 декабря 2009

У меня есть метод, который генерирует и выдает ошибку, что int ожидался, но нашел логическое значение, но когда я переключаю его на логическое значение, он говорит ту же ошибку, но обращает int и логическое значение Вот мой код:

private void compileDeclaration(boolean isGlobal) {
         if (equals(theToken, "int")) {
            accept("int");
            String ident = theToken;
            if (!isIdent(theToken)) t.error("expected identifier, got " + theToken);
            else if (isGlobal){
                symTable.allocVar(ident, isGlobal);
            }

            if (!isGlobal) cs.emit(Machine.ALLOC, symTable.stackFrameSize());
            //dprint("declaring int " + ident);
            theToken = t.token();
            accept (";");
        } else if (equals (theToken, "final")) {
            accept("final");
            accept("int");
            String ident = theToken;
            if (!isIdent(theToken)) t.error("expected identifier, got " + theToken);
            theToken = t.token();
            accept("=");
            int numvalue = new Integer(theToken).intValue();
            if (!isNumber(theToken)) t.error("expected number, got " + theToken);
            else if (numvalue = 0) { **//This is where it highlights my error**
                symTable.allocConst(ident, numvalue);
            }

Любая помощь будет наиболее ценной.

Ответы [ 2 ]

8 голосов
/ 07 декабря 2009

Линия

else if (numvalue = 0) { **//This is where it highlights my error**

отсутствует символ равенства, т. Е.

else if (numvalue == 0) { **//This is where it highlights my error**
1 голос
/ 07 декабря 2009

Скорее всего, вы вызываете его в двух разных местах, один раз с целым числом, а другой с логическим значением.

Либо это, либо symTable.allocVar() ожидает int.

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