#java #lexical
#java #лексический
Вопрос:
Я создаю лексический анализатор, который должен считывать текстовые входные и выходные токены для базового «созданного» языка и должен выводить токен при вызове. Я бы хотел, чтобы он различал идентификаторы, константы и т.д. из списка, который я предварительно определяю.
Мне нужно прочитать текстовый файл, используя входной поток. Цикл while будет перебирать символы по отдельности, но мне нужно, чтобы он распознал, являются ли сканируемые символы идентификатором или ‘ ‘ ‘-‘ ‘*’ ‘/’ и т.д… каков наилучший способ сделать это?
Я довольно новичок в программировании, поэтому буду признателен за любые советы о том, как это построить. большое спасибо за любые ответы
Ответ №1:
Не пытайтесь написать свой собственный лексер / анализатор.
Проще использовать генератор лексеров / синтаксических анализаторов, такой как ANTLR или SableCC.
Ответ №2:
Этот StreamTokenizer
класс, вероятно, поможет вам больше всего. Он будет считывать и различать идентификаторы, числа и строки. Вы также можете настроить его для идентификации операторов, таких как
, *
, и т.д.
Комментарии:
1. 1 для старого доброго.
StreamTokenizer
Здесь есть пример.