Я протестировал this example(lexe.java), но он дал мне только один выход.Лексический анализ дает только один выход?
Я дал этот текст в качестве читателя:
public class LexeTest{ private int a = 14; }
, а nextToken() функции:
public Category nextToken() {
if (inp.findWithinHorizon (tokenPat, 0) == null)
return Category.EOF;
else {
lastLexeme = inp.match().group (0);
if (inp.match().start (1) != -1)
return nextToken();
else if (inp.match().start (2) != -1)
return Category.IDENT;
else if (inp.match().start (3) != -1)
return Category.NUMERAL;
Category result = tokenMap.get (lastLexeme);
if (result == null)
return Category.ERROR;
else
return result;
}
}
Isdie основного метод:
System.out.println(lexeObject.nextToken());
выход:
IDENT
Почему? но текстовый файл содержит несколько ключевых слов? Кто-нибудь знает, в чем проблема?
em, я этого не замечал. Однако, пожалуйста, если вы можете просто написать мне основную, я попробовал «сделать-то», но я не добился успеха. –
Вы хотите «главное»? Который из? – Ingo
Да, основной метод, как вы называете 'Lexer # nextToken()' в цикле, спасибо –